diff --git a/js/BrowserStorage-CXOwjcP9.chunk.mjs b/js/BrowserStorage-CXOwjcP9.chunk.mjs deleted file mode 100644 index a9c2d0c3f..000000000 --- a/js/BrowserStorage-CXOwjcP9.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{M as o}from"./index-Dh8t1o6F-BSJbSXZa.chunk.mjs";const i=o.getBuilder("notifications").clearOnLogout().persist().build();export{i as B}; -//# sourceMappingURL=BrowserStorage-CXOwjcP9.chunk.mjs.map diff --git a/js/BrowserStorage-DzGhDfy9.chunk.mjs b/js/BrowserStorage-DzGhDfy9.chunk.mjs new file mode 100644 index 000000000..2d26a667a --- /dev/null +++ b/js/BrowserStorage-DzGhDfy9.chunk.mjs @@ -0,0 +1,2 @@ +import{M as o}from"./index-Dh8t1o6F-DtLu8tks.chunk.mjs";const i=o.getBuilder("notifications").clearOnLogout().persist().build();export{i as B}; +//# sourceMappingURL=BrowserStorage-DzGhDfy9.chunk.mjs.map diff --git a/js/BrowserStorage-CXOwjcP9.chunk.mjs.license b/js/BrowserStorage-DzGhDfy9.chunk.mjs.license similarity index 100% rename from js/BrowserStorage-CXOwjcP9.chunk.mjs.license rename to js/BrowserStorage-DzGhDfy9.chunk.mjs.license diff --git a/js/BrowserStorage-CXOwjcP9.chunk.mjs.map b/js/BrowserStorage-DzGhDfy9.chunk.mjs.map similarity index 87% rename from js/BrowserStorage-CXOwjcP9.chunk.mjs.map rename to js/BrowserStorage-DzGhDfy9.chunk.mjs.map index ae0bf11b4..94e7a570f 100644 --- a/js/BrowserStorage-CXOwjcP9.chunk.mjs.map +++ b/js/BrowserStorage-DzGhDfy9.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"BrowserStorage-CXOwjcP9.chunk.mjs","sources":["../src/services/BrowserStorage.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('notifications').clearOnLogout().persist().build()\n"],"names":["getBuilder"],"mappings":"wDAOA,MAAeA,EAAAA,EAAAA,WAAW,eAAe,EAAE,cAAa,EAAG,QAAS,EAAC,MAAK"} \ No newline at end of file +{"version":3,"file":"BrowserStorage-DzGhDfy9.chunk.mjs","sources":["../src/services/BrowserStorage.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('notifications').clearOnLogout().persist().build()\n"],"names":["getBuilder"],"mappings":"wDAOA,MAAeA,EAAAA,EAAAA,WAAW,eAAe,EAAE,cAAa,EAAG,QAAS,EAAC,MAAK"} \ No newline at end of file diff --git a/js/BrowserStorage-CXOwjcP9.chunk.mjs.map.license b/js/BrowserStorage-DzGhDfy9.chunk.mjs.map.license similarity index 100% rename from js/BrowserStorage-CXOwjcP9.chunk.mjs.map.license rename to js/BrowserStorage-DzGhDfy9.chunk.mjs.map.license diff --git a/js/NotificationsApp-DI9M0BLE.chunk.mjs b/js/NotificationsApp-Dl4t5GxQ.chunk.mjs similarity index 99% rename from js/NotificationsApp-DI9M0BLE.chunk.mjs rename to js/NotificationsApp-Dl4t5GxQ.chunk.mjs index a0a923e62..673e8df7e 100644 --- a/js/NotificationsApp-DI9M0BLE.chunk.mjs +++ b/js/NotificationsApp-Dl4t5GxQ.chunk.mjs @@ -1,2 +1,2 @@ -var _i=Object.defineProperty,hi=Object.defineProperties;var mi=Object.getOwnPropertyDescriptors;var Tn=Object.getOwnPropertySymbols;var yi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable;var Se=(c,y)=>(y=Symbol[c])?y:Symbol.for("Symbol."+c),bi=c=>{throw TypeError(c)};var vt=(c,y,o)=>y in c?_i(c,y,{enumerable:!0,configurable:!0,writable:!0,value:o}):c[y]=o,oe=(c,y)=>{for(var o in y||(y={}))yi.call(y,o)&&vt(c,o,y[o]);if(Tn)for(var o of Tn(y))gi.call(y,o)&&vt(c,o,y[o]);return c},Pe=(c,y)=>hi(c,mi(y));var Oe=(c,y,o)=>vt(c,typeof y!="symbol"?y+"":y,o);var ve=function(c,y){this[0]=c,this[1]=y},At=(c,y,o)=>{var l=(v,O,A,T)=>{try{var B=o[v](O),e=(O=B.value)instanceof ve,n=B.done;Promise.resolve(e?O[0]:O).then(r=>e?l(v==="return"?v:"next",O[1]?{done:r.done,value:r.value}:r,A,T):A({value:r,done:n})).catch(r=>l("throw",r,A,T))}catch(r){T(r)}},p=v=>b[v]=O=>new Promise((A,T)=>l(v,O,A,T)),b={};return o=o.apply(c,y),b[Se("asyncIterator")]=()=>b,p("next"),p("throw"),p("return"),b},Tt=c=>{var y=c[Se("asyncIterator")],o=!1,l,p={};return y==null?(y=c[Se("iterator")](),l=b=>p[b]=v=>y[b](v)):(y=y.call(c),l=b=>p[b]=v=>{if(o){if(o=!1,b==="throw")throw v;return v}return o=!0,{done:!1,value:new ve(new Promise(O=>{var A=y[b](v);A instanceof Object||bi("Object expected"),O(A)}),1)}}),p[Se("iterator")]=()=>p,l("next"),"throw"in y?l("throw"):p.throw=b=>{throw b},"return"in y&&l("return"),p},xn=(c,y,o)=>(y=c[Se("asyncIterator")])?y.call(c):(c=c[Se("iterator")](),y={},o=(l,p)=>(p=c[l])&&(y[l]=b=>new Promise((v,O,A)=>(b=p.call(c,b),A=b.done,Promise.resolve(b.value).then(T=>v({value:T,done:A}),O)))),o("next"),o("return"),y);import{e as et,u as wi,f as vi,g as kn,o as Ai,h as Ti,i as xi,j as ki,k as Si,m as tt,R as Oi,n as Ei,p as Ni,q as Wn,r as Ri,w as Ii,x as Ci,y as Pi,z as Sn,A as Ee,B as Bi,_ as de,C as Fi,t as le,D as ji,d as Qe,v as Ct,s as Rt,E as Ze,F as Li,l as Ye,G as On,H as Ui,I as xt,J as Mi,K as kt,L as Di}from"./index-Dh8t1o6F-BSJbSXZa.chunk.mjs";import{l as nt,f as j,o as P,g as z,m as ce,t as G,h as Be,k as te,n as En,u as ye,j as Nn,p as St,q as Jn,s as Hi,a as Q,w as J,e as ie,v as Rn,x as qi,b as X,y as In,z as Pt,A as It,B as Cn,C as Vi,D as Gi,E as Fe,G as zi,r as ee,F as Xn,H as Kn,T as $i,I as Wi,J as Ji}from"./style-CHsIVRyi.chunk.mjs";import{B as K}from"./BrowserStorage-CXOwjcP9.chunk.mjs";import"./vite-preload-helper-B9rAsR6N.chunk.mjs";const Xi={class:"empty-content",role:"note"},Ki={key:0,class:"empty-content__icon","aria-hidden":"true"},Qi={key:0,class:"empty-content__name"},Zi={key:1,class:"empty-content__description"},Yi={key:2,class:"empty-content__action"},er=nt({__name:"NcEmptyContent",props:{description:{default:""},name:{default:""}},setup(c){return(y,o)=>(P(),j("div",Xi,[y.$slots.icon?(P(),j("div",Ki,[ce(y.$slots,"icon",{},void 0,!0)])):z("",!0),ce(y.$slots,"name",{},()=>[y.name!==""?(P(),j("span",Qi,G(y.name),1)):z("",!0)],!0),y.description!==""||y.$slots.description?(P(),j("p",Zi,[ce(y.$slots,"description",{},()=>[Be(G(y.description),1)],!0)])):z("",!0),y.$slots.action?(P(),j("div",Yi,[ce(y.$slots,"action",{},void 0,!0)])):z("",!0)]))}}),tr=et(er,[["__scopeId","data-v-697cfd8f"]]),nr=["data-timestamp","title","textContent"],or=nt({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(c){const y=c,o=te(()=>({format:y.format})),l=te(()=>({ignoreSeconds:y.ignoreSeconds,relativeTime:y.relativeTime||"long",update:y.relativeTime!==!1})),p=wi(En(()=>y.timestamp),o),b=vi(En(()=>y.timestamp),l),v=te(()=>y.relativeTime?b.value:p.value);return(O,A)=>(P(),j("span",{class:"nc-datetime",dir:"auto","data-timestamp":O.timestamp,title:ye(p),textContent:G(v.value)},null,8,nr))}}),ir=["id"],rr={class:"header-menu__caret"},sr=["id"],ar={ref:"contentContainer",class:"header-menu__content"},ur=nt({__name:"NcHeaderMenu",props:{id:{},ariaLabel:{default:()=>{}},open:{type:Boolean,default:!1},isNav:{type:Boolean,default:!1},description:{default:()=>{}},excludeClickOutsideSelectors:{default:()=>[]}},emits:["closed","opened","update:open"],setup(c,{emit:y}){const o=y,l=kn(),p=kn(),b=Nn(),v=Nn(c.open),O=te(()=>c.isNav?"nav":"div"),A=St("contentContainer"),T=St("headerMenu"),B=St("triggerButton"),e=te(()=>Array.isArray(c.excludeClickOutsideSelectors)?c.excludeClickOutsideSelectors:c.excludeClickOutsideSelectors.split(" "));Ai(T,()=>r(!1),{ignore:e}),Ti("Escape",()=>r(!1),{prevent:!0}),xi(v,{disabled:()=>!c.isNav}),Jn(()=>c.open,f=>r(f));function n(){r(!v.value)}async function r(f){f!==v.value&&(v.value=f,o("update:open",f),await Hi(),await(f?_():g()),o(f?"opened":"closed"))}function u(f){var x;c.isNav&&f.relatedTarget instanceof Node&&((x=T.value)!=null&&x.contains(f.relatedTarget))&&r(!1)}async function _(){var f;c.isNav||b.value||(b.value=ki(A.value,{allowOutsideClick:!0,trapStack:Si(),fallbackFocus:(f=B.value)==null?void 0:f.$el}),b.value.activate())}function g(){var f;(f=b.value)==null||f.deactivate(),b.value=void 0}return(f,x)=>(P(),Q(It(O.value),{id:f.id,ref:"headerMenu","aria-labelledby":f.isNav?ye(p):null,class:Pt([{"header-menu--opened":v.value},"header-menu"]),onFocusout:u},{default:J(()=>[ie(ye(tt),{id:f.isNav?ye(p):null,ref:"triggerButton","aria-controls":"header-menu-".concat(f.id),"aria-expanded":v.value.toString(),"aria-label":f.ariaLabel,class:"header-menu__trigger",size:"large",variant:"tertiary-no-background",onClick:qi(n,["prevent"])},{icon:J(()=>[ce(f.$slots,"trigger",{},void 0,!0)]),_:3},8,["id","aria-controls","aria-expanded","aria-label"]),f.description?(P(),j("span",{key:0,id:ye(l),class:"header-menu__description hidden-visually"},G(f.description),9,ir)):z("",!0),Rn(X("div",rr,null,512),[[In,v.value]]),Rn(X("div",{id:"header-menu-".concat(f.id),class:"header-menu__wrapper"},[X("div",ar,[ce(f.$slots,"default",{},void 0,!0)],512)],8,sr),[[In,v.value]])]),_:3},40,["id","aria-labelledby","class"]))}}),lr=et(ur,[["__scopeId","data-v-d45c5788"]]),cr={};function dr(c,y){return P(),j("div",null,[ce(c.$slots,"trigger")])}const fr=et(cr,[["render",dr]]),pr={class:"user-bubble__name"},_r={key:0,class:"user-bubble__secondary"},hr=nt({__name:"NcUserBubble",props:Cn({avatarImage:{default:void 0},user:{default:void 0},displayName:{default:void 0},showUserStatus:{type:Boolean},url:{default:void 0},to:{default:void 0},primary:{type:Boolean},size:{default:20},margin:{default:2}},{open:{type:Boolean},openModifiers:{}}),emits:Cn(["click"],["update:open"]),setup(c,{emit:y}){const o=Vi(c,"open"),l=c,p=y,b=te(()=>{if(!l.avatarImage)return!1;try{return!!new URL(l.avatarImage)}catch(n){return!1}}),v=te(()=>!!l.avatarImage),O=te(()=>({marginInlineStart:"".concat(l.margin,"px")})),A=te(()=>{var n,r;if(!l.url||l.url.trim()==="")return!1;try{return!!new URL(l.url,(r=(n=l.url)==null?void 0:n.startsWith)!=null&&r.call(n,"/")?window.location.href:void 0)}catch(u){return Gi("[NcUserBubble] Invalid URL passed",{url:l.url}),!1}}),T=te(()=>A.value?l.url:void 0),B=te(()=>A.value?"a":l.to?Oi:"div"),e=te(()=>({height:"".concat(l.size,"px"),lineHeight:"".concat(l.size,"px"),borderRadius:"".concat(l.size/2,"px")}));return Jn([()=>l.displayName,()=>l.user],()=>{!l.displayName&&l.user}),(n,r)=>(P(),Q(It(n.$slots.default?ye(Ni):fr),{shown:o.value,"onUpdate:shown":r[1]||(r[1]=u=>o.value=u),class:"user-bubble__wrapper",trigger:"hover focus"},{trigger:J(({attrs:u})=>[(P(),Q(It(B.value),Fe({class:["user-bubble__content",{"user-bubble__content--primary":n.primary}],style:e.value,to:n.to,href:T.value},u,{onClick:r[0]||(r[0]=_=>p("click",_))}),{default:J(()=>[ie(ye(Ei),{url:v.value&&b.value?n.avatarImage:void 0,"icon-class":v.value&&!b.value?n.avatarImage:void 0,user:n.user,"display-name":n.displayName,size:n.size-n.margin*2,style:zi(O.value),"disable-tooltip":!0,"disable-menu":!0,"hide-status":!n.showUserStatus,class:"user-bubble__avatar"},null,8,["url","icon-class","user","display-name","size","style","hide-status"]),X("span",pr,G(n.displayName||n.user),1),n.$slots.name?(P(),j("span",_r,[ce(n.$slots,"name",{},void 0,!0)])):z("",!0)]),_:2},1040,["class","style","to","href"]))]),default:J(()=>[ce(n.$slots,"default",{},void 0,!0)]),_:3},40,["shown"]))}}),mr=et(hr,[["__scopeId","data-v-37bde6b7"]]);var Ae={},Pn={};const yr=Wn(Ri);var Bn;function gr(){return Bn||(Bn=1,function(c){Object.defineProperty(c,Symbol.toStringTag,{value:"Module"});const y=yr;function o(){try{return y.loadState("core","capabilities")}catch(l){return console.debug("Could not find capabilities initial state fall back to _oc_capabilities"),"_oc_capabilities"in window?window._oc_capabilities:{}}}c.getCapabilities=o}(Pn)),Pn}var Fn={},jn={},Ln={},Un;function Qn(){return Un||(Un=1,function(c){Object.defineProperty(c,Symbol.toStringTag,{value:"Module"});const y=Ii(),o=Ci(),l=r=>r&&r.__esModule?r:{default:r},p=l(y),b=l(o);class v{constructor(u){Oe(this,"bus");typeof u.getVersion!="function"||!b.default(u.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):p.default(u.getVersion())!==p.default(this.getVersion())&&console.warn("Proxying an event bus of version "+u.getVersion()+" with "+this.getVersion()),this.bus=u}getVersion(){return"3.3.3"}subscribe(u,_){this.bus.subscribe(u,_)}unsubscribe(u,_){this.bus.unsubscribe(u,_)}emit(u,..._){this.bus.emit(u,..._)}}class O{constructor(){Oe(this,"handlers",new Map)}getVersion(){return"3.3.3"}subscribe(u,_){this.handlers.set(u,(this.handlers.get(u)||[]).concat(_))}unsubscribe(u,_){this.handlers.set(u,(this.handlers.get(u)||[]).filter(g=>g!==_))}emit(u,..._){(this.handlers.get(u)||[]).forEach(g=>{try{g(_[0])}catch(f){console.error("could not invoke event listener",f)}})}}let A=null;function T(){var r;return A!==null?A:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):((r=window.OC)!=null&&r._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof(window==null?void 0:window._nc_event_bus)<"u"?A=new v(window._nc_event_bus):A=window._nc_event_bus=new O,A)}function B(r,u){T().subscribe(r,u)}function e(r,u){T().unsubscribe(r,u)}function n(r,...u){T().emit(r,...u)}c.ProxyBus=v,c.SimpleBus=O,c.emit=n,c.subscribe=B,c.unsubscribe=e}(Ln)),Ln}const br=Wn(Pi);var Mn;function wr(){return Mn||(Mn=1,function(c){Object.defineProperty(c,Symbol.toStringTag,{value:"Module"});const y=Qn(),o=br;let l;const p=[];function b(){var x;return l===void 0&&(l=(x=document.head.dataset.requesttoken)!=null?x:null),l}function v(x){p.push(x)}y.subscribe("csrf-token-update",x=>{l=x.token,p.forEach(C=>{try{C(l)}catch(F){console.error("Error updating CSRF token observer",F)}})});function O(){const x=document==null?void 0:document.querySelector('meta[name="csp-nonce"]');if(!x){const C=b();return C?btoa(C):void 0}return x.nonce}const A=o.getBuilder("public").persist().build();class T{constructor(){Oe(this,"_displayName");Oe(this,"uid");Oe(this,"isAdmin");A.getItem("guestUid")||A.setItem("guestUid",u()),this._displayName=A.getItem("guestNickname")||"",this.uid=A.getItem("guestUid")||u(),this.isAdmin=!1,y.subscribe("user:info:changed",C=>{this._displayName=C.displayName,A.setItem("guestNickname",C.displayName||"")})}get displayName(){return this._displayName}set displayName(C){this._displayName=C,A.setItem("guestNickname",C),y.emit("user:info:changed",this)}}let B;function e(){return B||(B=new T),B}function n(){var x;return((x=e())==null?void 0:x.displayName)||null}function r(x){if(!x||x.trim().length===0)throw new Error("Nickname cannot be empty");e().displayName=x}function u(){var x;return(x=globalThis.crypto)!=null&&x.randomUUID?globalThis.crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,C=>{const F=Math.random()*16|0;return(C==="x"?F:F&3|8).toString(16)})}let _;function g(x,C){return x?x.getAttribute(C):null}function f(){if(_!==void 0)return _;const x=document==null?void 0:document.getElementsByTagName("head")[0];if(!x)return null;const C=g(x,"data-user");return C===null?(_=null,_):(_={uid:C,displayName:g(x,"data-user-displayname"),isAdmin:!!window._oc_isadmin},_)}c.getCSPNonce=O,c.getCurrentUser=f,c.getGuestNickname=n,c.getGuestUser=e,c.getRequestToken=b,c.onRequestTokenUpdate=v,c.setGuestNickname=r}(jn)),jn}var Ot,Dn;function vr(){if(Dn)return Ot;Dn=1;function c(t,i){return function(){return t.apply(i,arguments)}}const{toString:y}=Object.prototype,{getPrototypeOf:o}=Object,{iterator:l,toStringTag:p}=Symbol,b=(t=>i=>{const s=y.call(i);return t[s]||(t[s]=s.slice(8,-1).toLowerCase())})(Object.create(null)),v=t=>(t=t.toLowerCase(),i=>b(i)===t),O=t=>i=>typeof i===t,{isArray:A}=Array,T=O("undefined");function B(t){return t!==null&&!T(t)&&t.constructor!==null&&!T(t.constructor)&&u(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const e=v("ArrayBuffer");function n(t){let i;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?i=ArrayBuffer.isView(t):i=t&&t.buffer&&e(t.buffer),i}const r=O("string"),u=O("function"),_=O("number"),g=t=>t!==null&&typeof t=="object",f=t=>t===!0||t===!1,x=t=>{if(b(t)!=="object")return!1;const i=o(t);return(i===null||i===Object.prototype||Object.getPrototypeOf(i)===null)&&!(p in t)&&!(l in t)},C=t=>{if(!g(t)||B(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(i){return!1}},F=v("Date"),q=v("File"),re=v("Blob"),Te=v("FileList"),Ne=t=>g(t)&&u(t.pipe),D=t=>{let i;return t&&(typeof FormData=="function"&&t instanceof FormData||u(t.append)&&((i=b(t))==="formdata"||i==="object"&&u(t.toString)&&t.toString()==="[object FormData]"))},je=v("URLSearchParams"),[Le,ot,Ue,fe]=["ReadableStream","Request","Response","Headers"].map(v),it=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Re(t,i,{allOwnKeys:s=!1}={}){if(t===null||typeof t>"u")return;let a,d;if(typeof t!="object"&&(t=[t]),A(t))for(a=0,d=t.length;a0;)if(d=s[a],i===d.toLowerCase())return d;return null}const ge=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Ee,Ft=t=>!T(t)&&t!==ge;function rt(){const{caseless:t,skipUndefined:i}=Ft(this)&&this||{},s={},a=(d,m)=>{const h=t&&Bt(s,m)||m;x(s[h])&&x(d)?s[h]=rt(s[h],d):x(d)?s[h]=rt({},d):A(d)?s[h]=d.slice():(!i||!T(d))&&(s[h]=d)};for(let d=0,m=arguments.length;d(Re(i,(d,m)=>{s&&u(d)?t[m]=c(d,s):t[m]=d},{allOwnKeys:a}),t),no=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),oo=(t,i,s,a)=>{t.prototype=Object.create(i.prototype,a),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:i.prototype}),s&&Object.assign(t.prototype,s)},io=(t,i,s,a)=>{let d,m,h;const k={};if(i=i||{},t==null)return i;do{for(d=Object.getOwnPropertyNames(t),m=d.length;m-- >0;)h=d[m],(!a||a(h,t,i))&&!k[h]&&(i[h]=t[h],k[h]=!0);t=s!==!1&&o(t)}while(t&&(!s||s(t,i))&&t!==Object.prototype);return i},ro=(t,i,s)=>{t=String(t),(s===void 0||s>t.length)&&(s=t.length),s-=i.length;const a=t.indexOf(i,s);return a!==-1&&a===s},so=t=>{if(!t)return null;if(A(t))return t;let i=t.length;if(!_(i))return null;const s=new Array(i);for(;i-- >0;)s[i]=t[i];return s},ao=(t=>i=>t&&i instanceof t)(typeof Uint8Array<"u"&&o(Uint8Array)),uo=(t,i)=>{const s=(t&&t[l]).call(t);let a;for(;(a=s.next())&&!a.done;){const d=a.value;i.call(t,d[0],d[1])}},lo=(t,i)=>{let s;const a=[];for(;(s=t.exec(i))!==null;)a.push(s);return a},co=v("HTMLFormElement"),fo=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(i,s,a){return s.toUpperCase()+a}),jt=(({hasOwnProperty:t})=>(i,s)=>t.call(i,s))(Object.prototype),po=v("RegExp"),Lt=(t,i)=>{const s=Object.getOwnPropertyDescriptors(t),a={};Re(s,(d,m)=>{let h;(h=i(d,m,t))!==!1&&(a[m]=h||d)}),Object.defineProperties(t,a)},_o=t=>{Lt(t,(i,s)=>{if(u(t)&&["arguments","caller","callee"].indexOf(s)!==-1)return!1;const a=t[s];if(u(a)){if(i.enumerable=!1,"writable"in i){i.writable=!1;return}i.set||(i.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")})}})},ho=(t,i)=>{const s={},a=d=>{d.forEach(m=>{s[m]=!0})};return A(t)?a(t):a(String(t).split(i)),s},mo=()=>{},yo=(t,i)=>t!=null&&Number.isFinite(t=+t)?t:i;function go(t){return!!(t&&u(t.append)&&t[p]==="FormData"&&t[l])}const bo=t=>{const i=new Array(10),s=(a,d)=>{if(g(a)){if(i.indexOf(a)>=0)return;if(B(a))return a;if(!("toJSON"in a)){i[d]=a;const m=A(a)?[]:{};return Re(a,(h,k)=>{const R=s(h,d+1);!T(R)&&(m[k]=R)}),i[d]=void 0,m}}return a};return s(t,0)},wo=v("AsyncFunction"),vo=t=>t&&(g(t)||u(t))&&u(t.then)&&u(t.catch),Ut=((t,i)=>t?setImmediate:i?((s,a)=>(ge.addEventListener("message",({source:d,data:m})=>{d===ge&&m===s&&a.length&&a.shift()()},!1),d=>{a.push(d),ge.postMessage(s,"*")}))("axios@".concat(Math.random()),[]):s=>setTimeout(s))(typeof setImmediate=="function",u(ge.postMessage)),Ao=typeof queueMicrotask<"u"?queueMicrotask.bind(ge):typeof Sn<"u"&&Sn.nextTick||Ut;var w={isArray:A,isArrayBuffer:e,isBuffer:B,isFormData:D,isArrayBufferView:n,isString:r,isNumber:_,isBoolean:f,isObject:g,isPlainObject:x,isEmptyObject:C,isReadableStream:Le,isRequest:ot,isResponse:Ue,isHeaders:fe,isUndefined:T,isDate:F,isFile:q,isBlob:re,isRegExp:po,isFunction:u,isStream:Ne,isURLSearchParams:je,isTypedArray:ao,isFileList:Te,forEach:Re,merge:rt,extend:to,trim:it,stripBOM:no,inherits:oo,toFlatObject:io,kindOf:b,kindOfTest:v,endsWith:ro,toArray:so,forEachEntry:uo,matchAll:lo,isHTMLForm:co,hasOwnProperty:jt,hasOwnProp:jt,reduceDescriptors:Lt,freezeMethods:_o,toObjectSet:ho,toCamelCase:fo,noop:mo,toFiniteNumber:yo,findKey:Bt,global:ge,isContextDefined:Ft,isSpecCompliantForm:go,toJSONObject:bo,isAsyncFn:wo,isThenable:vo,setImmediate:Ut,asap:Ao,isIterable:t=>t!=null&&u(t[l])};function U(t,i,s,a,d){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",i&&(this.code=i),s&&(this.config=s),a&&(this.request=a),d&&(this.response=d,this.status=d.status?d.status:null)}w.inherits(U,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:w.toJSONObject(this.config),code:this.code,status:this.status}}});const Mt=U.prototype,Dt={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{Dt[t]={value:t}}),Object.defineProperties(U,Dt),Object.defineProperty(Mt,"isAxiosError",{value:!0}),U.from=(t,i,s,a,d,m)=>{const h=Object.create(Mt);w.toFlatObject(t,h,function(S){return S!==Error.prototype},S=>S!=="isAxiosError");const k=t&&t.message?t.message:"Error",R=i==null&&t?t.code:i;return U.call(h,k,R,s,a,d),t&&h.cause==null&&Object.defineProperty(h,"cause",{value:t,configurable:!0}),h.name=t&&t.name||"Error",m&&Object.assign(h,m),h};var To=null;function st(t){return w.isPlainObject(t)||w.isArray(t)}function Ht(t){return w.endsWith(t,"[]")?t.slice(0,-2):t}function qt(t,i,s){return t?t.concat(i).map(function(a,d){return a=Ht(a),!s&&d?"["+a+"]":a}).join(s?".":""):i}function xo(t){return w.isArray(t)&&!t.some(st)}const ko=w.toFlatObject(w,{},null,function(t){return/^is[A-Z]/.test(t)});function Me(t,i,s){if(!w.isObject(t))throw new TypeError("target must be an object");i=i||new FormData,s=w.toFlatObject(s,{metaTokens:!0,dots:!1,indexes:!1},!1,function(M,E){return!w.isUndefined(E[M])});const a=s.metaTokens,d=s.visitor||S,m=s.dots,h=s.indexes,k=(s.Blob||typeof Blob<"u"&&Blob)&&w.isSpecCompliantForm(i);if(!w.isFunction(d))throw new TypeError("visitor must be a function");function R(M){if(M===null)return"";if(w.isDate(M))return M.toISOString();if(w.isBoolean(M))return M.toString();if(!k&&w.isBlob(M))throw new U("Blob is not supported. Use a Buffer instead.");return w.isArrayBuffer(M)||w.isTypedArray(M)?k&&typeof Blob=="function"?new Blob([M]):Bi.from(M):M}function S(M,E,I){let V=M;if(M&&!I&&typeof M=="object"){if(w.endsWith(E,"{}"))E=a?E:E.slice(0,-2),M=JSON.stringify(M);else if(w.isArray(M)&&xo(M)||(w.isFileList(M)||w.endsWith(E,"[]"))&&(V=w.toArray(M)))return E=Ht(E),V.forEach(function(Y,W){!(w.isUndefined(Y)||Y===null)&&i.append(h===!0?qt([E],W,m):h===null?E:E+"[]",R(Y))}),!1}return st(M)?!0:(i.append(qt(I,E,m),R(M)),!1)}const N=[],L=Object.assign(ko,{defaultVisitor:S,convertValue:R,isVisitable:st});function H(M,E){if(!w.isUndefined(M)){if(N.indexOf(M)!==-1)throw Error("Circular reference detected in "+E.join("."));N.push(M),w.forEach(M,function(I,V){(!(w.isUndefined(I)||I===null)&&d.call(i,I,w.isString(V)?V.trim():V,E,L))===!0&&H(I,E?E.concat(V):[V])}),N.pop()}}if(!w.isObject(t))throw new TypeError("data must be an object");return H(t),i}function Vt(t){const i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(s){return i[s]})}function at(t,i){this._pairs=[],t&&Me(t,this,i)}const Gt=at.prototype;Gt.append=function(t,i){this._pairs.push([t,i])},Gt.toString=function(t){const i=t?function(s){return t.call(this,s,Vt)}:Vt;return this._pairs.map(function(s){return i(s[0])+"="+i(s[1])},"").join("&")};function So(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function zt(t,i,s){if(!i)return t;const a=s&&s.encode||So;w.isFunction(s)&&(s={serialize:s});const d=s&&s.serialize;let m;if(d?m=d(i,s):m=w.isURLSearchParams(i)?i.toString():new at(i,s).toString(a),m){const h=t.indexOf("#");h!==-1&&(t=t.slice(0,h)),t+=(t.indexOf("?")===-1?"?":"&")+m}return t}class Oo{constructor(){this.handlers=[]}use(i,s,a){return this.handlers.push({fulfilled:i,rejected:s,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1}eject(i){this.handlers[i]&&(this.handlers[i]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(i){w.forEach(this.handlers,function(s){s!==null&&i(s)})}}var $t=Oo,Wt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Eo=typeof URLSearchParams<"u"?URLSearchParams:at,No=typeof FormData<"u"?FormData:null,Ro=typeof Blob<"u"?Blob:null,Io={isBrowser:!0,classes:{URLSearchParams:Eo,FormData:No,Blob:Ro},protocols:["http","https","file","blob","url","data"]};const ut=typeof window<"u"&&typeof document<"u",lt=typeof navigator=="object"&&navigator||void 0,Co=ut&&(!lt||["ReactNative","NativeScript","NS"].indexOf(lt.product)<0),Po=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Bo=ut&&window.location.href||"http://localhost";var Fo=Object.freeze({__proto__:null,hasBrowserEnv:ut,hasStandardBrowserWebWorkerEnv:Po,hasStandardBrowserEnv:Co,navigator:lt,origin:Bo}),Z=oe(oe({},Fo),Io);function jo(t,i){return Me(t,new Z.classes.URLSearchParams,oe({visitor:function(s,a,d,m){return Z.isNode&&w.isBuffer(s)?(this.append(a,s.toString("base64")),!1):m.defaultVisitor.apply(this,arguments)}},i))}function Lo(t){return w.matchAll(/\w+|\[(\w*)]/g,t).map(i=>i[0]==="[]"?"":i[1]||i[0])}function Uo(t){const i={},s=Object.keys(t);let a;const d=s.length;let m;for(a=0;a=s.length;return h=!h&&w.isArray(d)?d.length:h,R?(w.hasOwnProp(d,h)?d[h]=[d[h],a]:d[h]=a,!k):((!d[h]||!w.isObject(d[h]))&&(d[h]=[]),i(s,a,d[h],m)&&w.isArray(d[h])&&(d[h]=Uo(d[h])),!k)}if(w.isFormData(t)&&w.isFunction(t.entries)){const s={};return w.forEachEntry(t,(a,d)=>{i(Lo(a),d,s,0)}),s}return null}function Mo(t,i,s){if(w.isString(t))try{return(i||JSON.parse)(t),w.trim(t)}catch(a){if(a.name!=="SyntaxError")throw a}return(s||JSON.stringify)(t)}const ct={transitional:Wt,adapter:["xhr","http","fetch"],transformRequest:[function(t,i){const s=i.getContentType()||"",a=s.indexOf("application/json")>-1,d=w.isObject(t);if(d&&w.isHTMLForm(t)&&(t=new FormData(t)),w.isFormData(t))return a?JSON.stringify(Jt(t)):t;if(w.isArrayBuffer(t)||w.isBuffer(t)||w.isStream(t)||w.isFile(t)||w.isBlob(t)||w.isReadableStream(t))return t;if(w.isArrayBufferView(t))return t.buffer;if(w.isURLSearchParams(t))return i.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let m;if(d){if(s.indexOf("application/x-www-form-urlencoded")>-1)return jo(t,this.formSerializer).toString();if((m=w.isFileList(t))||s.indexOf("multipart/form-data")>-1){const h=this.env&&this.env.FormData;return Me(m?{"files[]":t}:t,h&&new h,this.formSerializer)}}return d||a?(i.setContentType("application/json",!1),Mo(t)):t}],transformResponse:[function(t){const i=this.transitional||ct.transitional,s=i&&i.forcedJSONParsing,a=this.responseType==="json";if(w.isResponse(t)||w.isReadableStream(t))return t;if(t&&w.isString(t)&&(s&&!this.responseType||a)){const d=!(i&&i.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(m){if(d)throw m.name==="SyntaxError"?U.from(m,U.ERR_BAD_RESPONSE,this,null,this.response):m}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Z.classes.FormData,Blob:Z.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};w.forEach(["delete","get","head","post","put","patch"],t=>{ct.headers[t]={}});var dt=ct;const Do=w.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var Ho=t=>{const i={};let s,a,d;return t&&t.split("\n").forEach(function(m){d=m.indexOf(":"),s=m.substring(0,d).trim().toLowerCase(),a=m.substring(d+1).trim(),!(!s||i[s]&&Do[s])&&(s==="set-cookie"?i[s]?i[s].push(a):i[s]=[a]:i[s]=i[s]?i[s]+", "+a:a)}),i};const Xt=Symbol("internals");function Ie(t){return t&&String(t).trim().toLowerCase()}function De(t){return t===!1||t==null?t:w.isArray(t)?t.map(De):String(t)}function qo(t){const i=Object.create(null),s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let a;for(;a=s.exec(t);)i[a[1]]=a[2];return i}const Vo=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function ft(t,i,s,a,d){if(w.isFunction(a))return a.call(this,i,s);if(d&&(i=s),!!w.isString(i)){if(w.isString(a))return i.indexOf(a)!==-1;if(w.isRegExp(a))return a.test(i)}}function Go(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(i,s,a)=>s.toUpperCase()+a)}function zo(t,i){const s=w.toCamelCase(" "+i);["get","set","has"].forEach(a=>{Object.defineProperty(t,a+s,{value:function(d,m,h){return this[a].call(this,i,d,m,h)},configurable:!0})})}class He{constructor(i){i&&this.set(i)}set(i,s,a){const d=this;function m(k,R,S){const N=Ie(R);if(!N)throw new Error("header name must be a non-empty string");const L=w.findKey(d,N);(!L||d[L]===void 0||S===!0||S===void 0&&d[L]!==!1)&&(d[L||R]=De(k))}const h=(k,R)=>w.forEach(k,(S,N)=>m(S,N,R));if(w.isPlainObject(i)||i instanceof this.constructor)h(i,s);else if(w.isString(i)&&(i=i.trim())&&!Vo(i))h(Ho(i),s);else if(w.isObject(i)&&w.isIterable(i)){let k={},R,S;for(const N of i){if(!w.isArray(N))throw TypeError("Object iterator must return a key-value pair");k[S=N[0]]=(R=k[S])?w.isArray(R)?[...R,N[1]]:[R,N[1]]:N[1]}h(k,s)}else i!=null&&m(s,i,a);return this}get(i,s){if(i=Ie(i),i){const a=w.findKey(this,i);if(a){const d=this[a];if(!s)return d;if(s===!0)return qo(d);if(w.isFunction(s))return s.call(this,d,a);if(w.isRegExp(s))return s.exec(d);throw new TypeError("parser must be boolean|regexp|function")}}}has(i,s){if(i=Ie(i),i){const a=w.findKey(this,i);return!!(a&&this[a]!==void 0&&(!s||ft(this,this[a],a,s)))}return!1}delete(i,s){const a=this;let d=!1;function m(h){if(h=Ie(h),h){const k=w.findKey(a,h);k&&(!s||ft(a,a[k],k,s))&&(delete a[k],d=!0)}}return w.isArray(i)?i.forEach(m):m(i),d}clear(i){const s=Object.keys(this);let a=s.length,d=!1;for(;a--;){const m=s[a];(!i||ft(this,this[m],m,i,!0))&&(delete this[m],d=!0)}return d}normalize(i){const s=this,a={};return w.forEach(this,(d,m)=>{const h=w.findKey(a,m);if(h){s[h]=De(d),delete s[m];return}const k=i?Go(m):String(m).trim();k!==m&&delete s[m],s[k]=De(d),a[k]=!0}),this}concat(...i){return this.constructor.concat(this,...i)}toJSON(i){const s=Object.create(null);return w.forEach(this,(a,d)=>{a!=null&&a!==!1&&(s[d]=i&&w.isArray(a)?a.join(", "):a)}),s}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([i,s])=>i+": "+s).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(i){return i instanceof this?i:new this(i)}static concat(i,...s){const a=new this(i);return s.forEach(d=>a.set(d)),a}static accessor(i){const s=(this[Xt]=this[Xt]={accessors:{}}).accessors,a=this.prototype;function d(m){const h=Ie(m);s[h]||(zo(a,m),s[h]=!0)}return w.isArray(i)?i.forEach(d):d(i),this}}He.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),w.reduceDescriptors(He.prototype,({value:t},i)=>{let s=i[0].toUpperCase()+i.slice(1);return{get:()=>t,set(a){this[s]=a}}}),w.freezeMethods(He);var ne=He;function pt(t,i){const s=this||dt,a=i||s,d=ne.from(a.headers);let m=a.data;return w.forEach(t,function(h){m=h.call(s,m,d.normalize(),i?i.status:void 0)}),d.normalize(),m}function Kt(t){return!!(t&&t.__CANCEL__)}function xe(t,i,s){U.call(this,t!=null?t:"canceled",U.ERR_CANCELED,i,s),this.name="CanceledError"}w.inherits(xe,U,{__CANCEL__:!0});function Qt(t,i,s){const a=s.config.validateStatus;!s.status||!a||a(s.status)?t(s):i(new U("Request failed with status code "+s.status,[U.ERR_BAD_REQUEST,U.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s))}function $o(t){const i=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return i&&i[1]||""}function Wo(t,i){t=t||10;const s=new Array(t),a=new Array(t);let d=0,m=0,h;return i=i!==void 0?i:1e3,function(k){const R=Date.now(),S=a[m];h||(h=R),s[d]=k,a[d]=R;let N=m,L=0;for(;N!==d;)L+=s[N++],N=N%t;if(d=(d+1)%t,d===m&&(m=(m+1)%t),R-h{s=R,d=null,m&&(clearTimeout(m),m=null),t(...k)};return[(...k)=>{const R=Date.now(),S=R-s;S>=a?h(k,R):(d=k,m||(m=setTimeout(()=>{m=null,h(d)},a-S)))},()=>d&&h(d)]}const qe=(t,i,s=3)=>{let a=0;const d=Wo(50,250);return Jo(m=>{const h=m.loaded,k=m.lengthComputable?m.total:void 0,R=h-a,S=d(R),N=h<=k;a=h;const L={loaded:h,total:k,progress:k?h/k:void 0,bytes:R,rate:S||void 0,estimated:S&&k&&N?(k-h)/S:void 0,event:m,lengthComputable:k!=null,[i?"download":"upload"]:!0};t(L)},s)},Zt=(t,i)=>{const s=t!=null;return[a=>i[0]({lengthComputable:s,total:t,loaded:a}),i[1]]},Yt=t=>(...i)=>w.asap(()=>t(...i));var Xo=Z.hasStandardBrowserEnv?((t,i)=>s=>(s=new URL(s,Z.origin),t.protocol===s.protocol&&t.host===s.host&&(i||t.port===s.port)))(new URL(Z.origin),Z.navigator&&/(msie|trident)/i.test(Z.navigator.userAgent)):()=>!0,Ko=Z.hasStandardBrowserEnv?{write(t,i,s,a,d,m){const h=[t+"="+encodeURIComponent(i)];w.isNumber(s)&&h.push("expires="+new Date(s).toGMTString()),w.isString(a)&&h.push("path="+a),w.isString(d)&&h.push("domain="+d),m===!0&&h.push("secure"),document.cookie=h.join("; ")},read(t){const i=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return i?decodeURIComponent(i[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Qo(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Zo(t,i){return i?t.replace(/\/?\/$/,"")+"/"+i.replace(/^\/+/,""):t}function en(t,i,s){let a=!Qo(i);return t&&(a||s==!1)?Zo(t,i):i}const tn=t=>t instanceof ne?oe({},t):t;function be(t,i){i=i||{};const s={};function a(S,N,L,H){return w.isPlainObject(S)&&w.isPlainObject(N)?w.merge.call({caseless:H},S,N):w.isPlainObject(N)?w.merge({},N):w.isArray(N)?N.slice():N}function d(S,N,L,H){if(w.isUndefined(N)){if(!w.isUndefined(S))return a(void 0,S,L,H)}else return a(S,N,L,H)}function m(S,N){if(!w.isUndefined(N))return a(void 0,N)}function h(S,N){if(w.isUndefined(N)){if(!w.isUndefined(S))return a(void 0,S)}else return a(void 0,N)}function k(S,N,L){if(L in i)return a(S,N);if(L in t)return a(void 0,S)}const R={url:m,method:m,data:m,baseURL:h,transformRequest:h,transformResponse:h,paramsSerializer:h,timeout:h,timeoutMessage:h,withCredentials:h,withXSRFToken:h,adapter:h,responseType:h,xsrfCookieName:h,xsrfHeaderName:h,onUploadProgress:h,onDownloadProgress:h,decompress:h,maxContentLength:h,maxBodyLength:h,beforeRedirect:h,transport:h,httpAgent:h,httpsAgent:h,cancelToken:h,socketPath:h,responseEncoding:h,validateStatus:k,headers:(S,N,L)=>d(tn(S),tn(N),L,!0)};return w.forEach(Object.keys(oe(oe({},t),i)),function(S){const N=R[S]||d,L=N(t[S],i[S],S);w.isUndefined(L)&&N!==k||(s[S]=L)}),s}var nn=t=>{const i=be({},t);let{data:s,withXSRFToken:a,xsrfHeaderName:d,xsrfCookieName:m,headers:h,auth:k}=i;if(i.headers=h=ne.from(h),i.url=zt(en(i.baseURL,i.url,i.allowAbsoluteUrls),t.params,t.paramsSerializer),k&&h.set("Authorization","Basic "+btoa((k.username||"")+":"+(k.password?unescape(encodeURIComponent(k.password)):""))),w.isFormData(s)){if(Z.hasStandardBrowserEnv||Z.hasStandardBrowserWebWorkerEnv)h.setContentType(void 0);else if(w.isFunction(s.getHeaders)){const R=s.getHeaders(),S=["content-type","content-length"];Object.entries(R).forEach(([N,L])=>{S.includes(N.toLowerCase())&&h.set(N,L)})}}if(Z.hasStandardBrowserEnv&&(a&&w.isFunction(a)&&(a=a(i)),a||a!==!1&&Xo(i.url))){const R=d&&m&&Ko.read(m);R&&h.set(d,R)}return i},Yo=typeof XMLHttpRequest<"u"&&function(t){return new Promise(function(i,s){const a=nn(t);let d=a.data;const m=ne.from(a.headers).normalize();let{responseType:h,onUploadProgress:k,onDownloadProgress:R}=a,S,N,L,H,M;function E(){H&&H(),M&&M(),a.cancelToken&&a.cancelToken.unsubscribe(S),a.signal&&a.signal.removeEventListener("abort",S)}let I=new XMLHttpRequest;I.open(a.method.toUpperCase(),a.url,!0),I.timeout=a.timeout;function V(){if(!I)return;const W=ne.from("getAllResponseHeaders"in I&&I.getAllResponseHeaders()),ae={data:!h||h==="text"||h==="json"?I.responseText:I.response,status:I.status,statusText:I.statusText,headers:W,config:t,request:I};Qt(function(pe){i(pe),E()},function(pe){s(pe),E()},ae),I=null}"onloadend"in I?I.onloadend=V:I.onreadystatechange=function(){!I||I.readyState!==4||I.status===0&&!(I.responseURL&&I.responseURL.indexOf("file:")===0)||setTimeout(V)},I.onabort=function(){I&&(s(new U("Request aborted",U.ECONNABORTED,t,I)),I=null)},I.onerror=function(W){const ae=W&&W.message?W.message:"Network Error",pe=new U(ae,U.ERR_NETWORK,t,I);pe.event=W||null,s(pe),I=null},I.ontimeout=function(){let W=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const ae=a.transitional||Wt;a.timeoutErrorMessage&&(W=a.timeoutErrorMessage),s(new U(W,ae.clarifyTimeoutError?U.ETIMEDOUT:U.ECONNABORTED,t,I)),I=null},d===void 0&&m.setContentType(null),"setRequestHeader"in I&&w.forEach(m.toJSON(),function(W,ae){I.setRequestHeader(ae,W)}),w.isUndefined(a.withCredentials)||(I.withCredentials=!!a.withCredentials),h&&h!=="json"&&(I.responseType=a.responseType),R&&([L,M]=qe(R,!0),I.addEventListener("progress",L)),k&&I.upload&&([N,H]=qe(k),I.upload.addEventListener("progress",N),I.upload.addEventListener("loadend",H)),(a.cancelToken||a.signal)&&(S=W=>{I&&(s(!W||W.type?new xe(null,t,I):W),I.abort(),I=null)},a.cancelToken&&a.cancelToken.subscribe(S),a.signal&&(a.signal.aborted?S():a.signal.addEventListener("abort",S)));const Y=$o(a.url);if(Y&&Z.protocols.indexOf(Y)===-1){s(new U("Unsupported protocol "+Y+":",U.ERR_BAD_REQUEST,t));return}I.send(d||null)})},ei=(t,i)=>{const{length:s}=t=t?t.filter(Boolean):[];if(i||s){let a=new AbortController,d;const m=function(S){if(!d){d=!0,k();const N=S instanceof Error?S:this.reason;a.abort(N instanceof U?N:new xe(N instanceof Error?N.message:N))}};let h=i&&setTimeout(()=>{h=null,m(new U("timeout ".concat(i," of ms exceeded"),U.ETIMEDOUT))},i);const k=()=>{t&&(h&&clearTimeout(h),h=null,t.forEach(S=>{S.unsubscribe?S.unsubscribe(m):S.removeEventListener("abort",m)}),t=null)};t.forEach(S=>S.addEventListener("abort",m));const{signal:R}=a;return R.unsubscribe=()=>w.asap(k),R}};const ti=function*(t,i){let s=t.byteLength;if(s{const d=ni(t,i);let m=0,h,k=R=>{h||(h=!0,a&&a(R))};return new ReadableStream({async pull(R){try{const{done:S,value:N}=await d.next();if(S){k(),R.close();return}let L=N.byteLength;if(s){let H=m+=L;s(H)}R.enqueue(new Uint8Array(N))}catch(S){throw k(S),S}},cancel(R){return k(R),d.return()}},{highWaterMark:2})},rn=64*1024,{isFunction:Ve}=w,ii=(({Request:t,Response:i})=>({Request:t,Response:i}))(w.global),{ReadableStream:sn,TextEncoder:an}=w.global,un=(t,...i)=>{try{return!!t(...i)}catch(s){return!1}},ri=t=>{t=w.merge.call({skipUndefined:!0},ii,t);const{fetch:i,Request:s,Response:a}=t,d=i?Ve(i):typeof fetch=="function",m=Ve(s),h=Ve(a);if(!d)return!1;const k=d&&Ve(sn),R=d&&(typeof an=="function"?(E=>I=>E.encode(I))(new an):async E=>new Uint8Array(await new s(E).arrayBuffer())),S=m&&k&&un(()=>{let E=!1;const I=new s(Z.origin,{body:new sn,method:"POST",get duplex(){return E=!0,"half"}}).headers.has("Content-Type");return E&&!I}),N=h&&k&&un(()=>w.isReadableStream(new a("").body)),L={stream:N&&(E=>E.body)};d&&["text","arrayBuffer","blob","formData","stream"].forEach(E=>{!L[E]&&(L[E]=(I,V)=>{let Y=I&&I[E];if(Y)return Y.call(I);throw new U("Response type '".concat(E,"' is not supported"),U.ERR_NOT_SUPPORT,V)})});const H=async E=>{if(E==null)return 0;if(w.isBlob(E))return E.size;if(w.isSpecCompliantForm(E))return(await new s(Z.origin,{method:"POST",body:E}).arrayBuffer()).byteLength;if(w.isArrayBufferView(E)||w.isArrayBuffer(E))return E.byteLength;if(w.isURLSearchParams(E)&&(E=E+""),w.isString(E))return(await R(E)).byteLength},M=async(E,I)=>{const V=w.toFiniteNumber(E.getContentLength());return V!=null?V:H(I)};return async E=>{let{url:I,method:V,data:Y,signal:W,cancelToken:ae,timeout:pe,onDownloadProgress:gt,onUploadProgress:mn,responseType:_e,headers:bt,withCredentials:Je="same-origin",fetchOptions:yn}=nn(E),gn=i||fetch;_e=_e?(_e+"").toLowerCase():"text";let Xe=ei([W,ae&&ae.toAbortSignal()],pe),Ce=null;const we=Xe&&Xe.unsubscribe&&(()=>{Xe.unsubscribe()});let bn;try{if(mn&&S&&V!=="get"&&V!=="head"&&(bn=await M(bt,Y))!==0){let me=new s(I,{method:"POST",body:Y,duplex:"half"}),ke;if(w.isFormData(Y)&&(ke=me.headers.get("content-type"))&&bt.setContentType(ke),me.body){const[wt,Ke]=Zt(bn,qe(Yt(mn)));Y=on(me.body,rn,wt,Ke)}}w.isString(Je)||(Je=Je?"include":"omit");const ue=m&&"credentials"in s.prototype,wn=Pe(oe({},yn),{signal:Xe,method:V.toUpperCase(),headers:bt.normalize().toJSON(),body:Y,duplex:"half",credentials:ue?Je:void 0});Ce=m&&new s(I,wn);let he=await(m?gn(Ce,yn):gn(I,wn));const vn=N&&(_e==="stream"||_e==="response");if(N&&(gt||vn&&we)){const me={};["status","statusText","headers"].forEach(An=>{me[An]=he[An]});const ke=w.toFiniteNumber(he.headers.get("content-length")),[wt,Ke]=gt&&Zt(ke,qe(Yt(gt),!0))||[];he=new a(on(he.body,rn,wt,()=>{Ke&&Ke(),we&&we()}),me)}_e=_e||"text";let pi=await L[w.findKey(L,_e)||"text"](he,E);return!vn&&we&&we(),await new Promise((me,ke)=>{Qt(me,ke,{data:pi,headers:ne.from(he.headers),status:he.status,statusText:he.statusText,config:E,request:Ce})})}catch(ue){throw we&&we(),ue&&ue.name==="TypeError"&&/Load failed|fetch/i.test(ue.message)?Object.assign(new U("Network Error",U.ERR_NETWORK,E,Ce),{cause:ue.cause||ue}):U.from(ue,ue&&ue.code,E,Ce)}}},si=new Map,ln=t=>{let i=t?t.env:{};const{fetch:s,Request:a,Response:d}=i,m=[a,d,s];let h=m.length,k=h,R,S,N=si;for(;k--;)R=m[k],S=N.get(R),S===void 0&&N.set(R,S=k?new Map:ri(i)),N=S;return S};ln();const _t={http:To,xhr:Yo,fetch:{get:ln}};w.forEach(_t,(t,i)=>{if(t){try{Object.defineProperty(t,"name",{value:i})}catch(s){}Object.defineProperty(t,"adapterName",{value:i})}});const cn=t=>"- ".concat(t),ai=t=>w.isFunction(t)||t===null||t===!1;var dn={getAdapter:(t,i)=>{t=w.isArray(t)?t:[t];const{length:s}=t;let a,d;const m={};for(let h=0;h"adapter ".concat(R," ")+(S===!1?"is not supported by the environment":"is not available in the build"));let k=s?h.length>1?"since :\n"+h.map(cn).join("\n"):" "+cn(h[0]):"as no adapter specified";throw new U("There is no suitable adapter to dispatch the request "+k,"ERR_NOT_SUPPORT")}return d},adapters:_t};function ht(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new xe(null,t)}function fn(t){return ht(t),t.headers=ne.from(t.headers),t.data=pt.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),dn.getAdapter(t.adapter||dt.adapter,t)(t).then(function(i){return ht(t),i.data=pt.call(t,t.transformResponse,i),i.headers=ne.from(i.headers),i},function(i){return Kt(i)||(ht(t),i&&i.response&&(i.response.data=pt.call(t,t.transformResponse,i.response),i.response.headers=ne.from(i.response.headers))),Promise.reject(i)})}const pn="1.12.2",Ge={};["object","boolean","number","function","string","symbol"].forEach((t,i)=>{Ge[t]=function(s){return typeof s===t||"a"+(i<1?"n ":" ")+t}});const _n={};Ge.transitional=function(t,i,s){function a(d,m){return"[Axios v"+pn+"] Transitional option '"+d+"'"+m+(s?". "+s:"")}return(d,m,h)=>{if(t===!1)throw new U(a(m," has been removed"+(i?" in "+i:"")),U.ERR_DEPRECATED);return i&&!_n[m]&&(_n[m]=!0,console.warn(a(m," has been deprecated since v"+i+" and will be removed in the near future"))),t?t(d,m,h):!0}},Ge.spelling=function(t){return(i,s)=>(console.warn("".concat(s," is likely a misspelling of ").concat(t)),!0)};function ui(t,i,s){if(typeof t!="object")throw new U("options must be an object",U.ERR_BAD_OPTION_VALUE);const a=Object.keys(t);let d=a.length;for(;d-- >0;){const m=a[d],h=i[m];if(h){const k=t[m],R=k===void 0||h(k,m,t);if(R!==!0)throw new U("option "+m+" must be "+R,U.ERR_BAD_OPTION_VALUE);continue}if(s!==!0)throw new U("Unknown option "+m,U.ERR_BAD_OPTION)}}var ze={assertOptions:ui,validators:Ge};const se=ze.validators;class $e{constructor(i){this.defaults=i||{},this.interceptors={request:new $t,response:new $t}}async request(i,s){try{return await this._request(i,s)}catch(a){if(a instanceof Error){let d={};Error.captureStackTrace?Error.captureStackTrace(d):d=new Error;const m=d.stack?d.stack.replace(/^.+\n/,""):"";try{a.stack?m&&!String(a.stack).endsWith(m.replace(/^.+\n.+\n/,""))&&(a.stack+="\n"+m):a.stack=m}catch(h){}}throw a}}_request(i,s){typeof i=="string"?(s=s||{},s.url=i):s=i||{},s=be(this.defaults,s);const{transitional:a,paramsSerializer:d,headers:m}=s;a!==void 0&&ze.assertOptions(a,{silentJSONParsing:se.transitional(se.boolean),forcedJSONParsing:se.transitional(se.boolean),clarifyTimeoutError:se.transitional(se.boolean)},!1),d!=null&&(w.isFunction(d)?s.paramsSerializer={serialize:d}:ze.assertOptions(d,{encode:se.function,serialize:se.function},!0)),s.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?s.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:s.allowAbsoluteUrls=!0),ze.assertOptions(s,{baseUrl:se.spelling("baseURL"),withXsrfToken:se.spelling("withXSRFToken")},!0),s.method=(s.method||this.defaults.method||"get").toLowerCase();let h=m&&w.merge(m.common,m[s.method]);m&&w.forEach(["delete","get","head","post","put","patch","common"],E=>{delete m[E]}),s.headers=ne.concat(h,m);const k=[];let R=!0;this.interceptors.request.forEach(function(E){typeof E.runWhen=="function"&&E.runWhen(s)===!1||(R=R&&E.synchronous,k.unshift(E.fulfilled,E.rejected))});const S=[];this.interceptors.response.forEach(function(E){S.push(E.fulfilled,E.rejected)});let N,L=0,H;if(!R){const E=[fn.bind(this),void 0];for(E.unshift(...k),E.push(...S),H=E.length,N=Promise.resolve(s);L{if(!a._listeners)return;let m=a._listeners.length;for(;m-- >0;)a._listeners[m](d);a._listeners=null}),this.promise.then=d=>{let m;const h=new Promise(k=>{a.subscribe(k),m=k}).then(d);return h.cancel=function(){a.unsubscribe(m)},h},i(function(d,m,h){a.reason||(a.reason=new xe(d,m,h),s(a.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(i){if(this.reason){i(this.reason);return}this._listeners?this._listeners.push(i):this._listeners=[i]}unsubscribe(i){if(!this._listeners)return;const s=this._listeners.indexOf(i);s!==-1&&this._listeners.splice(s,1)}toAbortSignal(){const i=new AbortController,s=a=>{i.abort(a)};return this.subscribe(s),i.signal.unsubscribe=()=>this.unsubscribe(s),i.signal}static source(){let i;return{token:new mt(function(s){i=s}),cancel:i}}}var li=mt;function ci(t){return function(i){return t.apply(null,i)}}function di(t){return w.isObject(t)&&t.isAxiosError===!0}const yt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(yt).forEach(([t,i])=>{yt[i]=t});var fi=yt;function hn(t){const i=new We(t),s=c(We.prototype.request,i);return w.extend(s,We.prototype,i,{allOwnKeys:!0}),w.extend(s,i,null,{allOwnKeys:!0}),s.create=function(a){return hn(be(t,a))},s}const $=hn(dt);return $.Axios=We,$.CanceledError=xe,$.CancelToken=li,$.isCancel=Kt,$.VERSION=pn,$.toFormData=Me,$.AxiosError=U,$.Cancel=$.CanceledError,$.all=function(t){return Promise.all(t)},$.spread=ci,$.isAxiosError=di,$.mergeConfig=be,$.AxiosHeaders=ne,$.formToJSON=t=>Jt(w.isHTMLForm(t)?new FormData(t):t),$.getAdapter=dn.getAdapter,$.HttpStatusCode=fi,$.default=$,Ot=$,Ot}var Hn={},qn;function Ar(){return qn||(qn=1,function(c){Object.defineProperty(c,Symbol.toStringTag,{value:"Module"});const y=(n,r)=>A(n,"",r),o=n=>"/remote.php/"+n,l=(n,r)=>{var u;return((u=r==null?void 0:r.baseURL)!=null?u:T())+o(n)},p=(n,r,u)=>{var _;const g=Object.assign({ocsVersion:2},u||{}).ocsVersion===1?1:2;return((_=u==null?void 0:u.baseURL)!=null?_:T())+"/ocs/v"+g+".php"+b(n,r,u)},b=(n,r,u)=>{const _=Object.assign({escape:!0},u||{}),g=function(f,x){return x=x||{},f.replace(/{([^{}]*)}/g,function(C,F){const q=x[F];return _.escape?encodeURIComponent(typeof q=="string"||typeof q=="number"?q.toString():C):typeof q=="string"||typeof q=="number"?q.toString():C})};return n.charAt(0)!=="/"&&(n="/"+n),g(n,r||{})},v=(n,r,u)=>{var _,g,f;const x=Object.assign({noRewrite:!1},u||{}),C=(_=u==null?void 0:u.baseURL)!=null?_:B();return((f=(g=window==null?void 0:window.OC)==null?void 0:g.config)==null?void 0:f.modRewriteWorking)===!0&&!x.noRewrite?C+b(n,r,u):C+"/index.php"+b(n,r,u)},O=(n,r)=>r.includes(".")?A(n,"img",r):A(n,"img","".concat(r,".svg")),A=(n,r,u)=>{var _,g,f;const x=(f=(g=(_=window==null?void 0:window.OC)==null?void 0:_.coreApps)==null?void 0:g.includes(n))!=null?f:!1,C=u.slice(-3)==="php";let F=B();return C&&!x?(F+="/index.php/apps/".concat(n),r&&(F+="/".concat(encodeURI(r))),u!=="index.php"&&(F+="/".concat(u))):!C&&!x?(F=e(n),r&&(F+="/".concat(r,"/")),F.at(-1)!=="/"&&(F+="/"),F+=u):((n==="settings"||n==="core"||n==="search")&&r==="ajax"&&(F+="/index.php"),n&&(F+="/".concat(n)),r&&(F+="/".concat(r)),F+="/".concat(u)),F},T=()=>window.location.protocol+"//"+window.location.host+B();function B(){let n=window._oc_webroot;if(typeof n>"u"){n=location.pathname;const r=n.indexOf("/index.php/");if(r!==-1)n=n.slice(0,r);else{const u=n.indexOf("/",1);n=n.slice(0,u>0?u:void 0)}}return n}function e(n){var r,u;return(u=((r=window._oc_appswebroots)!=null?r:{})[n])!=null?u:""}c.generateFilePath=A,c.generateOcsUrl=p,c.generateRemoteUrl=l,c.generateUrl=v,c.getAppRootUrl=e,c.getBaseUrl=T,c.getRootUrl=B,c.imagePath=O,c.linkTo=y}(Hn)),Hn}var Vn;function Tr(){return Vn||(Vn=1,function(c){var n;Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=wr(),o=vr(),l=Ar(),p=(r=>r&&r.__esModule?r:{default:r})(o),b=p.default.create({headers:{requesttoken:(n=y.getRequestToken())!=null?n:"","X-Requested-With":"XMLHttpRequest"}});y.onRequestTokenUpdate(r=>{b.defaults.headers.requesttoken=r});const v=Object.assign(b,{CancelToken:p.default.CancelToken,isCancel:p.default.isCancel}),O=Symbol("csrf-retry");function A(r){return async u=>{var C;if(!o.isAxiosError(u))throw u;const{config:_,response:g,request:f}=u,x=f==null?void 0:f.responseURL;if(_&&!_[O]&&(g==null?void 0:g.status)===412&&((C=g==null?void 0:g.data)==null?void 0:C.message)==="CSRF check failed"){console.warn("Request to ".concat(x," failed because of a CSRF mismatch. Fetching a new token"));const{data:{token:F}}=await r.get(l.generateUrl("/csrftoken"));return console.debug("New request token ".concat(F," fetched")),r.defaults.headers.requesttoken=F,r(Pe(oe({},_),{headers:Pe(oe({},_.headers),{requesttoken:F}),[O]:!0}))}throw u}}const T=Symbol("retryDelay");function B(r){return async u=>{if(!o.isAxiosError(u))throw u;const{config:_,response:g,request:f}=u,x=f==null?void 0:f.responseURL,C=g==null?void 0:g.status,F=g==null?void 0:g.headers;let q=typeof(_==null?void 0:_[T])=="number"?_==null?void 0:_[T]:1;if(C===503&&(F==null?void 0:F["x-nextcloud-maintenance-mode"])==="1"&&(_!=null&&_.retryIfMaintenanceMode)){if(q*=2,q>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:x}),u;return console.warn("Request to ".concat(x," failed because of maintenance mode. Retrying in ").concat(q,"s")),await new Promise(re=>{setTimeout(re,q*1e3)}),r(Pe(oe({},_),{[T]:q}))}throw u}}async function e(r){var u;if(o.isAxiosError(r)){const{config:_,response:g,request:f}=r,x=f==null?void 0:f.responseURL;(g==null?void 0:g.status)===401&&((u=g==null?void 0:g.data)==null?void 0:u.message)==="Current user is not logged in"&&(_!=null&&_.reloadExpiredSession)&&(window!=null&&window.location)&&(console.error("Request to ".concat(x," failed because the user session expired. Reloading the page …")),window.location.reload())}throw r}v.interceptors.response.use(r=>r,A(v)),v.interceptors.response.use(r=>r,B(v)),v.interceptors.response.use(r=>r,e),Object.defineProperty(c,"isAxiosError",{enumerable:!0,get:()=>o.isAxiosError}),Object.defineProperty(c,"isCancel",{enumerable:!0,get:()=>o.isCancel}),c.default=v}(Fn)),Fn}var Gn;function xr(){if(Gn)return Ae;Gn=1;var c=Ae&&Ae.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(Ae,"__esModule",{value:!0}),Ae.getSupportedTypes=p,Ae.listen=b;const y=gr(),o=c(Tr()),l=Qn();function p(){const A=(0,y.getCapabilities)();return A.notify_push?A.notify_push.type:[]}function b(A,T,B={}){return v(B),window._notify_push_listeners[A]||(window._notify_push_listeners[A]=[]),window._notify_push_listeners[A].push(T),window._notify_push_ws!==null&&typeof window._notify_push_ws=="object"&&window._notify_push_ready?window._notify_push_ws.send("listen "+A):O(B),window._notify_push_available}function v(A={}){typeof window._notify_push_listeners>"u"&&(window._notify_push_listeners={},window._notify_push_ws=null,window._notify_push_online=!0,window._notify_push_available=!1,window._notify_push_error_count=0,window._notify_push_ready=!1,(0,l.subscribe)("networkOffline",()=>{window._notify_push_online=!1,window._notify_push_ws=null,window._notify_push_ready=!1}),(0,l.subscribe)("networkOnline",()=>{window._notify_push_error_count=0,window._notify_push_online=!0,O(A)}))}async function O(A={}){if(window._notify_push_ws)return!0;window._notify_push_ws=!0;const T=(0,y.getCapabilities)();if(!T.notify_push)return window._notify_push_available=!1,window._notify_push_ws=null,!1;window._notify_push_available=!0;let B;return A.credentials||(B=(await o.default.post(T.notify_push.endpoints.pre_auth)).data),window._notify_push_ws=new WebSocket(T.notify_push.endpoints.websocket),window._notify_push_ws.onopen=()=>{if(typeof window._notify_push_ws=="object"&&window._notify_push_ws){B?(window._notify_push_ws.send(""),window._notify_push_ws.send(B)):A.credentials&&(window._notify_push_ws.send(A.credentials.username),window._notify_push_ws.send(A.credentials.password)),window._notify_push_ready=!0;for(let e in window._notify_push_listeners)window._notify_push_ws.send("listen "+e)}},window._notify_push_ws.onmessage=e=>{if(e.data==="authenticated")window._notify_push_error_count=0;else{const n=e.data.indexOf(" ");let[r,u]=n>0?[e.data.slice(0,n),e.data.slice(n+1)]:[e.data,null];if(u&&(u=JSON.parse(u)),window._notify_push_listeners[r])for(let _ of window._notify_push_listeners[r])_(r,u)}},window._notify_push_ws.onerror=window._notify_push_ws.onclose=()=>{window._notify_push_ws=null,window._notify_push_error_count+=1,window._notify_push_ready=!1,setTimeout(()=>{window._notify_push_online&&O(A)},1e3*window._notify_push_error_count)},!0}return Ae}var kr=xr();const Sr={name:"BellOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Or=["aria-hidden","aria-label"],Er=["fill","width","height"],Nr={d:"M10 21H14C14 22.1 13.1 23 12 23S10 22.1 10 21M21 19V20H3V19L5 17V11C5 7.9 7 5.2 10 4.3V4C10 2.9 10.9 2 12 2S14 2.9 14 4V4.3C17 5.2 19 7.9 19 11V17L21 19M17 11C17 8.2 14.8 6 12 6S7 8.2 7 11V18H17V11Z"},Rr={key:0};function Ir(c,y,o,l,p,b){return P(),j("span",Fe(c.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon bell-outline-icon",role:"img",onClick:y[0]||(y[0]=v=>c.$emit("click",v))}),[(P(),j("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[X("path",Nr,[o.title?(P(),j("title",Rr,G(o.title),1)):z("",!0)])],8,Er))],16,Or)}const Cr=de(Sr,[["render",Ir]]),Pr={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Br=["aria-hidden","aria-label"],Fr=["fill","width","height"],jr={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},Lr={key:0};function Ur(c,y,o,l,p,b){return P(),j("span",Fe(c.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon close-icon",role:"img",onClick:y[0]||(y[0]=v=>c.$emit("click",v))}),[(P(),j("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[X("path",jr,[o.title?(P(),j("title",Lr,G(o.title),1)):z("",!0)])],8,Fr))],16,Br)}const Zn=de(Pr,[["render",Ur]]),Mr={name:"MessageOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Dr=["aria-hidden","aria-label"],Hr=["fill","width","height"],qr={d:"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16Z"},Vr={key:0};function Gr(c,y,o,l,p,b){return P(),j("span",Fe(c.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon message-outline-icon",role:"img",onClick:y[0]||(y[0]=v=>c.$emit("click",v))}),[(P(),j("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[X("path",qr,[o.title?(P(),j("title",Vr,G(o.title),1)):z("",!0)])],8,Hr))],16,Dr)}const Yn=de(Mr,[["render",Gr]]),zr={name:"BellIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$r=["aria-hidden","aria-label"],Wr=["fill","width","height"],Jr={d:"M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21A2,2 0 0,1 12,23A2,2 0 0,1 10,21"},Xr={key:0};function Kr(c,y,o,l,p,b){return P(),j("span",Fe(c.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon bell-icon",role:"img",onClick:y[0]||(y[0]=v=>c.$emit("click",v))}),[(P(),j("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[X("path",Jr,[o.title?(P(),j("title",Xr,G(o.title),1)):z("",!0)])],8,Wr))],16,$r)}const Qr=de(zr,[["render",Kr]]),Zr={key:0,class:"notifications-button__icon"},Yr=["width","height"],es={__name:"IconNotification",props:{showDot:{type:Boolean,default:!1},showWarning:{type:Boolean,default:!1},size:{type:Number,default:20}},setup(c){var v;const y=(v=Fi())==null?void 0:v.theming,o=/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;function l(O){const A=parseInt(O.substring(1,3),16)/255,T=parseInt(O.substring(3,5),16)/255,B=parseInt(O.substring(5,7),16)/255,e=Math.max(A,T,B),n=Math.min(A,T,B);let r=0,u=0;const _=(e+n)/2;if(e!==n){const g=e-n;switch(u=_>.5?g/(2-e-n):g/(e+n),e){case A:r=(T-B)/g+(T{if(!(y!=null&&y.color)||!o.test(y==null?void 0:y.color))return!1;const[O,A,T]=l(y.color);return(O>=330||O<=15)&&A>.4&&(T>.1||T<.6)}),b=te(()=>{if(!(y!=null&&y.color)||!o.test(y==null?void 0:y.color))return!1;const[O,A,T]=l(y.color);return(O>=305||O<=64)&&A>.7&&(T>.1||T<.6)});return(O,A)=>c.showDot||c.showWarning?(P(),j("span",Zr,[(P(),j("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1",width:c.size,height:c.size,viewBox:"0 0 24 24",fill:"currentColor"},[A[0]||(A[0]=X("path",{d:"M 19,11.79 C 18.5,11.92 18,12 17.5,12 14.47,12 12,9.53 12,6.5 12,5.03 12.58,3.7 13.5,2.71 13.15,2.28 12.61,2 12,2 10.9,2 10,2.9 10,4 V 4.29 C 7.03,5.17 5,7.9 5,11 v 6 l -2,2 v 1 H 21 V 19 L 19,17 V 11.79 M 12,23 c 1.11,0 2,-0.89 2,-2 h -4 c 0,1.11 0.9,2 2,2 z"},null,-1)),X("path",{class:Pt(["notification__dot",{"notification__dot--warning":c.showWarning&&!b.value,"notification__dot--white":p.value||c.showWarning&&b.value}]),d:"M 21,6.5 C 21,8.43 19.43,10 17.5,10 15.57,10 14,8.43 14,6.5 14,4.57 15.57,3 17.5,3 19.43,3 21,4.57 21,6.5"},null,2)],8,Yr))])):(P(),Q(Qr,{key:1,class:"notifications-button__icon",size:c.size},null,8,["size"]))}},ts={__name:"ActionButton",props:{action:{type:Object,required:!0}},emits:["click"],setup(c,{emit:y}){const o=c,l=y,p=te(()=>o.action.type==="WEB");function b(v){const O={url:o.action.link,type:o.action.type||"GET"};l("click",{event:v,action:O})}return(v,O)=>(P(),Q(ye(tt),{variant:p.value||c.action.primary?"primary":"secondary",href:p.value?c.action.link:void 0,class:"action-button pull-right",onClick:b},{default:J(()=>[Be(G(c.action.label),1)]),_:1},8,["variant","href"]))}},ns={name:"DefaultParameter",props:{type:{type:String,required:!0},id:{type:[Number,String],required:!0},name:{type:String,required:!0},link:{type:String,default:""}},computed:{hasInternalLink(){return this.link&&(this.type==="deck-board"||this.type==="deck-card")}}},os=["href"],is=["href"],rs={key:2};function ss(c,y,o,l,p,b){return b.hasInternalLink?(P(),j("a",{key:0,href:o.link},[X("strong",null,G(o.name),1)],8,os)):o.link?(P(),j("a",{key:1,href:o.link,class:"external",target:"_blank",rel:"noopener noreferrer"},[X("strong",null,G(o.name),1)],8,is)):(P(),j("strong",rs,G(o.name),1))}const as=de(ns,[["render",ss],["__scopeId","data-v-9803ab31"]]),us={name:"FileParameter",props:{type:{type:String,required:!0},id:{type:[Number,String],required:!0},name:{type:String,required:!0},path:{type:String,default:""},link:{type:String,default:""}},computed:{title(){const c=this.path.lastIndexOf("/"),y=this.path.indexOf("/"),o=this.path.substring(y===0?1:0,c);return o.length===0?"":le("notifications","in {path}",{path:o})}}},ls=["title","href"];function cs(c,y,o,l,p,b){return P(),j("a",{title:b.title,class:"filename",href:o.link},G(o.name),9,ls)}const ds=de(us,[["render",cs]]),fs={name:"UserParameter",components:{NcUserBubble:mr},props:{type:{type:String,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},server:{type:String,default:""}},computed:{cloudId(){return this.server?this.id+"@"+this.server:""}}},ps={class:"mention"},_s=["title"];function hs(c,y,o,l,p,b){const v=ee("NcUserBubble");return P(),j("div",ps,[b.cloudId?(P(),j("strong",{key:1,title:b.cloudId},G(o.name),9,_s)):(P(),Q(v,{key:0,"display-name":o.name,user:o.id},null,8,["display-name","user"]))])}const ms=de(fs,[["render",hs],["__scopeId","data-v-85edf4b2"]]),ys={name:"NotificationItem",components:{ActionButton:ts,NcButton:tt,NcDateTime:or,IconClose:Zn,IconMessageOutline:Yn,NcRichText:ji},props:{notification:{type:Object,required:!0}},emits:["remove"],data(){return{showFullMessage:!1}},computed:{timestamp(){return this.notification.datetime==="warning"?0:new Date(this.notification.datetime).valueOf()},useLink(){if(!this.notification.link)return!1;let c=!1;return Object.keys(Object(this.notification.subjectRichParameters)).forEach(y=>{Object(this.notification.subjectRichParameters)[y].link&&(c=!0)}),!c},preparedSubjectParameters(){return this.prepareParameters(this.notification.subjectRichParameters)},preparedMessageParameters(){return this.prepareParameters(this.notification.messageRichParameters)},isCollapsedMessage(){return this.notification.message.length>200&&!this.showFullMessage}},methods:{t:le,prepareParameters(c={}){const y={};return Object.keys(c).forEach(o=>{const l=c[o].type;l==="user"?y[o]={component:ms,props:c[o]}:l==="file"?y[o]={component:ds,props:c[o]}:y[o]={component:as,props:c[o]}}),y},onClickMessage(c){c.target.closest(".rich-text--wrapper")?this.showFullMessage=!this.showFullMessage:!this.notification.messageRich&&this.notification.message&&(this.showFullMessage=!this.showFullMessage)},async onClickAction({event:c,action:y}){try{const o={cancelAction:!1,notification:this.notification,action:y};if(await Ze("notifications:action:execute",o),y.type==="WEB"){o.cancelAction&&c.preventDefault();return}if(o.cancelAction)return;await Qe({method:y.type,url:y.url}),this.$emit("remove"),Ze("notifications:action:executed",c)}catch(o){console.error("Failed to perform action",o),Rt(le("notifications","Failed to perform action"))}},onDismissNotification(){Qe.delete(Ct("apps/notifications/api/v2/notifications/{id}",{id:this.notification.notificationId})).then(()=>{this.$emit("remove")}).catch(()=>{Rt(le("notifications","Failed to dismiss notification"))})}}},gs=["data-id","data-timestamp","data-object-type","data-app"],bs={class:"notification-heading"},ws=["href"],vs={key:0,class:"image"},As=["src"],Ts={class:"subject"},xs=["href"],ks={key:0,class:"image"},Ss=["src"],Os={key:2,class:"subject"},Es={key:2,class:"notification-subject"},Ns={key:0,class:"image"},Rs=["src"],Is={key:2,class:"subject"},Cs={key:1},Ps={key:0,class:"notification-overflow"},Bs={key:4,class:"notification-actions"},Fs={key:5,class:"notification-actions"};function js(c,y,o,l,p,b){const v=ee("NcDateTime"),O=ee("IconClose"),A=ee("NcButton"),T=ee("NcRichText"),B=ee("ActionButton"),e=ee("IconMessageOutline");return P(),j("li",{class:"notification","data-id":o.notification.notificationId,"data-timestamp":b.timestamp,"data-object-type":o.notification.objectType,"data-app":o.notification.app},[X("div",bs,[b.timestamp?(P(),Q(v,{key:0,class:"notification-time","ignore-seconds":"",format:{timeStyle:"short",dateStyle:"long"},timestamp:b.timestamp},null,8,["timestamp"])):z("",!0),b.timestamp?(P(),Q(A,{key:1,class:"notification-dismiss-button",variant:"tertiary","aria-label":b.t("notifications","Dismiss"),onClick:b.onDismissNotification},{icon:J(()=>[ie(O,{size:20})]),_:1},8,["aria-label","onClick"])):z("",!0)]),o.notification.externalLink?(P(),j("a",{key:0,href:o.notification.externalLink,class:"notification-subject full-subject-link external",target:"_blank",rel:"noreferrer noopener"},[o.notification.icon?(P(),j("span",vs,[X("img",{src:o.notification.icon,class:"notification-icon",alt:""},null,8,As)])):z("",!0),X("span",Ts,G(o.notification.subject)+" ↗",1)],8,ws)):b.useLink?(P(),j("a",{key:1,href:o.notification.link,class:"notification-subject full-subject-link"},[o.notification.icon?(P(),j("span",ks,[X("img",{src:o.notification.icon,class:"notification-icon",alt:""},null,8,Ss)])):z("",!0),o.notification.subjectRich?(P(),Q(T,{key:1,text:o.notification.subjectRich,arguments:b.preparedSubjectParameters},null,8,["text","arguments"])):(P(),j("span",Os,G(o.notification.subject),1))],8,xs)):(P(),j("div",Es,[o.notification.icon?(P(),j("span",Ns,[X("img",{src:o.notification.icon,class:"notification-icon",alt:""},null,8,Rs)])):z("",!0),o.notification.subjectRich?(P(),Q(T,{key:1,text:o.notification.subjectRich,arguments:b.preparedSubjectParameters},null,8,["text","arguments"])):(P(),j("span",Is,G(o.notification.subject),1))])),o.notification.message?(P(),j("div",{key:3,class:"notification-message",onClick:y[0]||(y[0]=(...n)=>b.onClickMessage&&b.onClickMessage(...n))},[X("div",{class:Pt(["message-container",{collapsed:b.isCollapsedMessage}])},[o.notification.messageRich?(P(),Q(T,{key:0,text:o.notification.messageRich,arguments:b.preparedMessageParameters,autolink:!0},null,8,["text","arguments"])):(P(),j("span",Cs,G(o.notification.message),1))],2),b.isCollapsedMessage?(P(),j("div",Ps)):z("",!0)])):z("",!0),o.notification.actions.length?(P(),j("div",Bs,[(P(!0),j(Xn,null,Kn(o.notification.actions,(n,r)=>(P(),Q(B,{key:r,action:n,onClick:b.onClickAction,onRemove:y[1]||(y[1]=u=>c.$emit("remove"))},null,8,["action","onClick"]))),128))])):o.notification.externalLink?(P(),j("div",Fs,[ie(A,{variant:"primary",href:"https://nextcloud.com/fairusepolicy",class:"action-button pull-right",target:"_blank",rel:"noreferrer noopener"},{icon:J(()=>[ie(e,{size:20})]),default:J(()=>[Be(" "+G(b.t("notifications","Contact Nextcloud GmbH"))+" ↗ ",1)]),_:1})])):z("",!0)],8,gs)}const Ls=de(ys,[["render",js],["__scopeId","data-v-58882784"]]);async function eo(c,y,o,l){const p=parseInt(K.getItem("lastUpdated"),10),b=K.getItem("tabId"),v=Math.floor(Date.now()/1e3);return(o||b===c&&p+25=0&&e<=1){if(n._volume=e,n._muted)return n;n.usingWebAudio&&n.masterGain.gain.setValueAtTime(e,o.ctx.currentTime);for(var r=0;r=0;n--)e._howls[n].unload();return e.usingWebAudio&&e.ctx&&typeof e.ctx.close<"u"&&(e.ctx.close(),e.ctx=null,B()),e},codecs:function(e){return(this||o)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||o;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if(typeof Audio<"u")try{var n=new Audio;typeof n.oncanplaythrough>"u"&&(e._canPlayEvent="canplay")}catch(r){e.noAudio=!0}else e.noAudio=!0;try{var n=new Audio;n.muted&&(e.noAudio=!0)}catch(r){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||o,n=null;try{n=typeof Audio<"u"?new Audio:null}catch(F){return e}if(!n||typeof n.canPlayType!="function")return e;var r=n.canPlayType("audio/mpeg;").replace(/^no$/,""),u=e._navigator?e._navigator.userAgent:"",_=u.match(/OPR\/(\d+)/g),g=_&&parseInt(_[0].split("/")[1],10)<33,f=u.indexOf("Safari")!==-1&&u.indexOf("Chrome")===-1,x=u.match(/Version\/(.*?) /),C=f&&x&&parseInt(x[1],10)<15;return e._codecs={mp3:!!(!g&&(r||n.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!r,opus:!!n.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!n.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!n.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(n.canPlayType('audio/wav; codecs="1"')||n.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!n.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!n.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(n.canPlayType("audio/x-m4a;")||n.canPlayType("audio/m4a;")||n.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(n.canPlayType("audio/x-m4b;")||n.canPlayType("audio/m4b;")||n.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(n.canPlayType("audio/x-mp4;")||n.canPlayType("audio/mp4;")||n.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!C&&n.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!C&&n.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!n.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(n.canPlayType("audio/x-flac;")||n.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||o;if(!(e._audioUnlocked||!e.ctx)){e._audioUnlocked=!1,e.autoUnlock=!1,!e._mobileUnloaded&&e.ctx.sampleRate!==44100&&(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var n=function(r){for(;e._html5AudioPool.length"u"?C.noteOn(0):C.start(0),typeof e.ctx.resume=="function"&&e.ctx.resume(),C.onended=function(){C.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",n,!0),document.removeEventListener("touchend",n,!0),document.removeEventListener("click",n,!0),document.removeEventListener("keydown",n,!0);for(var F=0;F"u"||!o.usingWebAudio)){for(var n=0;n"u"||!o.usingWebAudio))return e.state==="running"&&e.ctx.state!=="interrupted"&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):e.state==="suspended"||e.state==="running"&&e.ctx.state==="interrupted"?(e.ctx.resume().then(function(){e.state="running";for(var n=0;n"u"&&(e="__default",!r._playLock)){for(var _=0,g=0;g0?f._seek:r._sprite[e][0]/1e3),F=Math.max(0,(r._sprite[e][0]+r._sprite[e][1])/1e3-C),q=F*1e3/Math.abs(f._rate),re=r._sprite[e][0]/1e3,Te=(r._sprite[e][0]+r._sprite[e][1])/1e3;f._sprite=e,f._ended=!1;var Ne=function(){f._paused=!1,f._seek=C,f._start=re,f._stop=Te,f._loop=!!(f._loop||r._sprite[e][2])};if(C>=Te){r._ended(f);return}var D=f._node;if(r._webAudio){var je=function(){r._playLock=!1,Ne(),r._refreshBuffer(f);var fe=f._muted||r._muted?0:f._volume;D.gain.setValueAtTime(fe,o.ctx.currentTime),f._playStart=o.ctx.currentTime,typeof D.bufferSource.start>"u"?f._loop?D.bufferSource.noteGrainOn(0,C,86400):D.bufferSource.noteGrainOn(0,C,F):f._loop?D.bufferSource.start(0,C,86400):D.bufferSource.start(0,C,F),q!==1/0&&(r._endTimers[f._id]=setTimeout(r._ended.bind(r,f),q)),n||setTimeout(function(){r._emit("play",f._id),r._loadQueue()},0)};o.state==="running"&&o.ctx.state!=="interrupted"?je():(r._playLock=!0,r.once("resume",je),r._clearTimer(f._id))}else{var Le=function(){D.currentTime=C,D.muted=f._muted||r._muted||o._muted||D.muted,D.volume=f._volume*o.volume(),D.playbackRate=f._rate;try{var fe=D.play();if(fe&&typeof Promise<"u"&&(fe instanceof Promise||typeof fe.then=="function")?(r._playLock=!0,Ne(),fe.then(function(){r._playLock=!1,D._unlocked=!0,n?r._loadQueue():r._emit("play",f._id)}).catch(function(){r._playLock=!1,r._emit("playerror",f._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),f._ended=!0,f._paused=!0})):n||(r._playLock=!1,Ne(),r._emit("play",f._id)),D.playbackRate=f._rate,D.paused){r._emit("playerror",f._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}e!=="__default"||f._loop?r._endTimers[f._id]=setTimeout(r._ended.bind(r,f),q):(r._endTimers[f._id]=function(){r._ended(f),D.removeEventListener("ended",r._endTimers[f._id],!1)},D.addEventListener("ended",r._endTimers[f._id],!1))}catch(it){r._emit("playerror",f._id,it)}};D.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(D.src=r._src,D.load());var ot=window&&window.ejecta||!D.readyState&&o._navigator.isCocoonJS;if(D.readyState>=3||ot)Le();else{r._playLock=!0,r._state="loading";var Ue=function(){r._state="loaded",Le(),D.removeEventListener(o._canPlayEvent,Ue,!1)};D.addEventListener(o._canPlayEvent,Ue,!1),r._clearTimer(f._id)}}return f._id},pause:function(e){var n=this;if(n._state!=="loaded"||n._playLock)return n._queue.push({event:"pause",action:function(){n.pause(e)}}),n;for(var r=n._getSoundIds(e),u=0;u"u"?_._node.bufferSource.noteOff(0):_._node.bufferSource.stop(0),n._cleanBuffer(_._node)}else(!isNaN(_._node.duration)||_._node.duration===1/0)&&_._node.pause();arguments[1]||n._emit("pause",_?_._id:null)}return n},stop:function(e,n){var r=this;if(r._state!=="loaded"||r._playLock)return r._queue.push({event:"stop",action:function(){r.stop(e)}}),r;for(var u=r._getSoundIds(e),_=0;_"u"?g._node.bufferSource.noteOff(0):g._node.bufferSource.stop(0),r._cleanBuffer(g._node)):(!isNaN(g._node.duration)||g._node.duration===1/0)&&(g._node.currentTime=g._start||0,g._node.pause(),g._node.duration===1/0&&r._clearSound(g._node))),n||r._emit("stop",g._id))}return r},mute:function(e,n){var r=this;if(r._state!=="loaded"||r._playLock)return r._queue.push({event:"mute",action:function(){r.mute(e,n)}}),r;if(typeof n>"u")if(typeof e=="boolean")r._muted=e;else return r._muted;for(var u=r._getSoundIds(n),_=0;_"u"){var _=e._getSoundIds(),g=_.indexOf(n[0]);g>=0?u=parseInt(n[0],10):r=parseFloat(n[0])}else n.length>=2&&(r=parseFloat(n[0]),u=parseInt(n[1],10));var f;if(typeof r<"u"&&r>=0&&r<=1){if(e._state!=="loaded"||e._playLock)return e._queue.push({event:"volume",action:function(){e.volume.apply(e,n)}}),e;typeof u>"u"&&(e._volume=r),u=e._getSoundIds(u);for(var x=0;x"u")}}return _},_startFadeInterval:function(e,n,r,u,_,g){var f=this,x=n,C=r-n,F=Math.abs(C/.01),q=Math.max(4,F>0?u/F:u),re=Date.now();e._fadeTo=r,e._interval=setInterval(function(){var Te=(Date.now()-re)/u;re=Date.now(),x+=C*Te,x=Math.round(x*100)/100,C<0?x=Math.max(r,x):x=Math.min(r,x),f._webAudio?e._volume=x:f.volume(x,e._id,!0),g&&(f._volume=x),(rn&&x>=r)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,f.volume(r,e._id),f._emit("fade",e._id))},q)},_stopFade:function(e){var n=this,r=n._soundById(e);return r&&r._interval&&(n._webAudio&&r._node.gain.cancelScheduledValues(o.ctx.currentTime),clearInterval(r._interval),r._interval=null,n.volume(r._fadeTo,e),r._fadeTo=null,n._emit("fade",e)),n},loop:function(){var e=this,n=arguments,r,u,_;if(n.length===0)return e._loop;if(n.length===1)if(typeof n[0]=="boolean")r=n[0],e._loop=r;else return _=e._soundById(parseInt(n[0],10)),_?_._loop:!1;else n.length===2&&(r=n[0],u=parseInt(n[1],10));for(var g=e._getSoundIds(u),f=0;f=0?u=parseInt(n[0],10):r=parseFloat(n[0])}else n.length===2&&(r=parseFloat(n[0]),u=parseInt(n[1],10));var f;if(typeof r=="number"){if(e._state!=="loaded"||e._playLock)return e._queue.push({event:"rate",action:function(){e.rate.apply(e,n)}}),e;typeof u>"u"&&(e._rate=r),u=e._getSoundIds(u);for(var x=0;x=0?u=parseInt(n[0],10):e._sounds.length&&(u=e._sounds[0]._id,r=parseFloat(n[0]))}else n.length===2&&(r=parseFloat(n[0]),u=parseInt(n[1],10));if(typeof u>"u")return 0;if(typeof r=="number"&&(e._state!=="loaded"||e._playLock))return e._queue.push({event:"seek",action:function(){e.seek.apply(e,n)}}),e;var f=e._soundById(u);if(f)if(typeof r=="number"&&r>=0){var x=e.playing(u);x&&e.pause(u,!0),f._seek=r,f._ended=!1,e._clearTimer(u),!e._webAudio&&f._node&&!isNaN(f._node.duration)&&(f._node.currentTime=r);var C=function(){x&&e.play(u,!0),e._emit("seek",u)};if(x&&!e._webAudio){var F=function(){e._playLock?setTimeout(F,0):C()};setTimeout(F,0)}else C()}else if(e._webAudio){var q=e.playing(u)?o.ctx.currentTime-f._playStart:0,re=f._rateSeek?f._rateSeek-f._seek:0;return f._seek+(re+q*Math.abs(f._rate))}else return f._node.currentTime;return e},playing:function(e){var n=this;if(typeof e=="number"){var r=n._soundById(e);return r?!r._paused:!1}for(var u=0;u=0&&o._howls.splice(u,1);var _=!0;for(r=0;r=0){_=!1;break}return b&&_&&delete b[e._src],o.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,n,r,u){var _=this,g=_["_on"+e];return typeof n=="function"&&g.push(u?{id:r,fn:n,once:u}:{id:r,fn:n}),_},off:function(e,n,r){var u=this,_=u["_on"+e],g=0;if(typeof n=="number"&&(r=n,n=null),n||r)for(g=0;g<_.length;g++){var f=r===_[g].id;if(n===_[g].fn&&f||!n&&f){_.splice(g,1);break}}else if(e)u["_on"+e]=[];else{var x=Object.keys(u);for(g=0;g=0;g--)(!_[g].id||_[g].id===n||e==="load")&&(setTimeout(function(f){f.call(this,n,r)}.bind(u,_[g].fn),0),_[g].once&&u.off(e,_[g].fn,_[g].id));return u._loadQueue(e),u},_loadQueue:function(e){var n=this;if(n._queue.length>0){var r=n._queue[0];r.event===e&&(n._queue.shift(),n._loadQueue()),e||r.action()}return n},_ended:function(e){var n=this,r=e._sprite;if(!n._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;u--){if(r<=n)return;e._sounds[u]._ended&&(e._webAudio&&e._sounds[u]._node&&e._sounds[u]._node.disconnect(0),e._sounds.splice(u,1),r--)}}},_getSoundIds:function(e){var n=this;if(typeof e>"u"){for(var r=[],u=0;u=0;if(!e.bufferSource)return n;if(o._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),r))try{e.bufferSource.buffer=o._scratchBuffer}catch(u){}return e.bufferSource=null,n},_clearSound:function(e){var n=/MSIE |Trident\//.test(o._navigator&&o._navigator.userAgent);n||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var p=function(e){this._parent=e,this.init()};p.prototype={init:function(){var e=this,n=e._parent;return e._muted=n._muted,e._loop=n._loop,e._volume=n._volume,e._rate=n._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++o._counter,n._sounds.push(e),e.create(),e},create:function(){var e=this,n=e._parent,r=o._muted||e._muted||e._parent._muted?0:e._volume;return n._webAudio?(e._node=typeof o.ctx.createGain>"u"?o.ctx.createGainNode():o.ctx.createGain(),e._node.gain.setValueAtTime(r,o.ctx.currentTime),e._node.paused=!0,e._node.connect(o.masterGain)):o.noAudio||(e._node=o._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(o._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=n._src,e._node.preload=n._preload===!0?"auto":n._preload,e._node.volume=r*o.volume(),e._node.load()),e},reset:function(){var e=this,n=e._parent;return e._muted=n._muted,e._loop=n._loop,e._volume=n._volume,e._rate=n._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++o._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,n=e._parent;n._duration=Math.ceil(e._node.duration*10)/10,Object.keys(n._sprite).length===0&&(n._sprite={__default:[0,n._duration*1e3]}),n._state!=="loaded"&&(n._state="loaded",n._emit("load"),n._loadQueue()),e._node.removeEventListener(o._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,n=e._parent;n._duration===1/0&&(n._duration=Math.ceil(e._node.duration*10)/10,n._sprite.__default[1]===1/0&&(n._sprite.__default[1]=n._duration*1e3),n._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var b={},v=function(e){var n=e._src;if(b[n]){e._duration=b[n].duration,T(e);return}if(/^data:[^;]+;base64,/.test(n)){for(var r=atob(n.split(",")[1]),u=new Uint8Array(r.length),_=0;_0?(b[n._src]=_,T(n,_)):r()};typeof Promise<"u"&&o.ctx.decodeAudioData.length===1?o.ctx.decodeAudioData(e).then(u).catch(r):o.ctx.decodeAudioData(e,u,r)},T=function(e,n){n&&!e._duration&&(e._duration=n.duration),Object.keys(e._sprite).length===0&&(e._sprite={__default:[0,e._duration*1e3]}),e._state!=="loaded"&&(e._state="loaded",e._emit("load"),e._loadQueue())},B=function(){if(o.usingWebAudio){try{typeof AudioContext<"u"?o.ctx=new AudioContext:typeof webkitAudioContext<"u"?o.ctx=new webkitAudioContext:o.usingWebAudio=!1}catch(_){o.usingWebAudio=!1}o.ctx||(o.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(o._navigator&&o._navigator.platform),n=o._navigator&&o._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),r=n?parseInt(n[1],10):null;if(e&&r&&r<9){var u=/safari/.test(o._navigator&&o._navigator.userAgent.toLowerCase());o._navigator&&!u&&(o.usingWebAudio=!1)}o.usingWebAudio&&(o.masterGain=typeof o.ctx.createGain>"u"?o.ctx.createGainNode():o.ctx.createGain(),o.masterGain.gain.setValueAtTime(o._muted?0:o._volume,o.ctx.currentTime),o.masterGain.connect(o.ctx.destination)),o._setup()}};c.Howler=o,c.Howl=l,typeof Ee<"u"?(Ee.HowlerGlobal=y,Ee.Howler=o,Ee.Howl=l,Ee.Sound=p):typeof window<"u"&&(window.HowlerGlobal=y,window.Howler=o,window.Howl=l,window.Sound=p)})(),function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(o){var l=this;if(!l.ctx||!l.ctx.listener)return l;for(var p=l._howls.length-1;p>=0;p--)l._howls[p].stereo(o);return l},HowlerGlobal.prototype.pos=function(o,l,p){var b=this;if(!b.ctx||!b.ctx.listener)return b;if(l=typeof l!="number"?b._pos[1]:l,p=typeof p!="number"?b._pos[2]:p,typeof o=="number")b._pos=[o,l,p],typeof b.ctx.listener.positionX<"u"?(b.ctx.listener.positionX.setTargetAtTime(b._pos[0],Howler.ctx.currentTime,.1),b.ctx.listener.positionY.setTargetAtTime(b._pos[1],Howler.ctx.currentTime,.1),b.ctx.listener.positionZ.setTargetAtTime(b._pos[2],Howler.ctx.currentTime,.1)):b.ctx.listener.setPosition(b._pos[0],b._pos[1],b._pos[2]);else return b._pos;return b},HowlerGlobal.prototype.orientation=function(o,l,p,b,v,O){var A=this;if(!A.ctx||!A.ctx.listener)return A;var T=A._orientation;if(l=typeof l!="number"?T[1]:l,p=typeof p!="number"?T[2]:p,b=typeof b!="number"?T[3]:b,v=typeof v!="number"?T[4]:v,O=typeof O!="number"?T[5]:O,typeof o=="number")A._orientation=[o,l,p,b,v,O],typeof A.ctx.listener.forwardX<"u"?(A.ctx.listener.forwardX.setTargetAtTime(o,Howler.ctx.currentTime,.1),A.ctx.listener.forwardY.setTargetAtTime(l,Howler.ctx.currentTime,.1),A.ctx.listener.forwardZ.setTargetAtTime(p,Howler.ctx.currentTime,.1),A.ctx.listener.upX.setTargetAtTime(b,Howler.ctx.currentTime,.1),A.ctx.listener.upY.setTargetAtTime(v,Howler.ctx.currentTime,.1),A.ctx.listener.upZ.setTargetAtTime(O,Howler.ctx.currentTime,.1)):A.ctx.listener.setOrientation(o,l,p,b,v,O);else return T;return A},Howl.prototype.init=function(o){return function(l){var p=this;return p._orientation=l.orientation||[1,0,0],p._stereo=l.stereo||null,p._pos=l.pos||null,p._pannerAttr={coneInnerAngle:typeof l.coneInnerAngle<"u"?l.coneInnerAngle:360,coneOuterAngle:typeof l.coneOuterAngle<"u"?l.coneOuterAngle:360,coneOuterGain:typeof l.coneOuterGain<"u"?l.coneOuterGain:0,distanceModel:typeof l.distanceModel<"u"?l.distanceModel:"inverse",maxDistance:typeof l.maxDistance<"u"?l.maxDistance:1e4,panningModel:typeof l.panningModel<"u"?l.panningModel:"HRTF",refDistance:typeof l.refDistance<"u"?l.refDistance:1,rolloffFactor:typeof l.rolloffFactor<"u"?l.rolloffFactor:1},p._onstereo=l.onstereo?[{fn:l.onstereo}]:[],p._onpos=l.onpos?[{fn:l.onpos}]:[],p._onorientation=l.onorientation?[{fn:l.onorientation}]:[],o.call(this,l)}}(Howl.prototype.init),Howl.prototype.stereo=function(o,l){var p=this;if(!p._webAudio)return p;if(p._state!=="loaded")return p._queue.push({event:"stereo",action:function(){p.stereo(o,l)}}),p;var b=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof l>"u")if(typeof o=="number")p._stereo=o,p._pos=[o,0,0];else return p._stereo;for(var v=p._getSoundIds(l),O=0;O"u")if(typeof o=="number")v._pos=[o,l,p];else return v._pos;for(var O=v._getSoundIds(b),A=0;A"u")if(typeof o=="number")v._orientation=[o,l,p];else return v._orientation;for(var O=v._getSoundIds(b),A=0;A"u"&&(p.pannerAttr||(p.pannerAttr={coneInnerAngle:p.coneInnerAngle,coneOuterAngle:p.coneOuterAngle,coneOuterGain:p.coneOuterGain,distanceModel:p.distanceModel,maxDistance:p.maxDistance,refDistance:p.refDistance,rolloffFactor:p.rolloffFactor,panningModel:p.panningModel}),o._pannerAttr={coneInnerAngle:typeof p.pannerAttr.coneInnerAngle<"u"?p.pannerAttr.coneInnerAngle:o._coneInnerAngle,coneOuterAngle:typeof p.pannerAttr.coneOuterAngle<"u"?p.pannerAttr.coneOuterAngle:o._coneOuterAngle,coneOuterGain:typeof p.pannerAttr.coneOuterGain<"u"?p.pannerAttr.coneOuterGain:o._coneOuterGain,distanceModel:typeof p.pannerAttr.distanceModel<"u"?p.pannerAttr.distanceModel:o._distanceModel,maxDistance:typeof p.pannerAttr.maxDistance<"u"?p.pannerAttr.maxDistance:o._maxDistance,refDistance:typeof p.pannerAttr.refDistance<"u"?p.pannerAttr.refDistance:o._refDistance,rolloffFactor:typeof p.pannerAttr.rolloffFactor<"u"?p.pannerAttr.rolloffFactor:o._rolloffFactor,panningModel:typeof p.pannerAttr.panningModel<"u"?p.pannerAttr.panningModel:o._panningModel});else return v=o._soundById(parseInt(l[0],10)),v?v._pannerAttr:o._pannerAttr;else l.length===2&&(p=l[0],b=parseInt(l[1],10));for(var O=o._getSoundIds(b),A=0;Aconsole.debug("Audio output successfully redirected to secondary speaker")).catch(n=>console.error("Failed to redirect audio output:",n)),e.play()}}}else Ye("notifications","sound_notification")&&new Nt.Howl({src:[On("notifications","img","notification.ogg")],volume:.5}).play()}const Vs=Ye("core","config",{session_keepalive:!0}).session_keepalive,Gs=Ye("notifications","throttled_push_notifications"),zs={notificationId:-1,app:"core",user:"",datetime:"warning",objectId:"",objectType:"",subject:le("notifications","Push notifications might be unreliable"),message:le("notifications","Nextcloud GmbH sponsors a free push notification gateway for private users. To ensure good service, the gateway limits the number of push notifications per server. For enterprise users, a more scalable gateway is available. Contact Nextcloud GmbH for more information."),link:"https://nextcloud.com/fairusepolicy",actions:[],externalLink:"https://nextcloud.com/fairusepolicy",icon:Di("core","actions/alert-outline.svg")},$s={name:"NotificationsApp",components:{IconBellOutline:Cr,IconClose:Zn,IconMessageOutline:Yn,IconNotification:es,NcButton:tt,NcEmptyContent:tr,NcHeaderMenu:lr,NotificationItem:Ls},setup(){return{fairUsePolicyNotification:zs,hasThrottledPushNotifications:Gs}},data(){return{webNotificationsGranted:!1,backgroundFetching:!1,hasNotifyPush:!1,shutdown:!1,notifications:[],lastETag:null,lastTabId:null,userStatus:null,tabId:null,webNotificationsThresholdId:0,pollIntervalBase:3e4,pollIntervalCurrent:3e4,interval:null,pushEndpoints:null,open:!1}},computed:{showBrowserNotifications(){return this.backgroundFetching&&this.webNotificationsGranted&&this.userStatus!=="dnd"&&this.tabId===this.lastTabId},emptyContentMessage(){return this.webNotificationsGranted===null?le("notifications","Requesting browser permissions to show notifications"):this.hasThrottledPushNotifications?this.fairUsePolicyNotification.subject:le("notifications","No notifications")},emptyContentDescription(){return this.hasThrottledPushNotifications?this.fairUsePolicyNotification.message:""}},mounted(){this.tabId=Mi()||""+Math.random(),this._oldcount=0,this.checkWebNotificationPermissions(),this._fetch(),kr.listen("notify_notification",()=>{this._fetchAfterNotifyPush()})&&(console.debug("Has notify_push enabled, slowing polling to 15 minutes"),this.pollIntervalBase=15*60*1e3,this.hasNotifyPush=!0),this._setPollingInterval(this.pollIntervalBase),this._watchTabVisibility(),kt("networkOffline",this.handleNetworkOffline),kt("networkOnline",this.handleNetworkOnline),kt("user_status:status.updated",this.userStatusUpdated)},beforeUnmount(){xt("user_status:status.updated",this.userStatusUpdated),xt("networkOffline",this.handleNetworkOffline),xt("networkOnline",this.handleNetworkOnline)},methods:{t:le,userStatusUpdated(c){Ui().uid===c.userId&&(this.userStatus=c.status)},async onOpen(){this.requestWebNotificationPermissions(),await Et(this.tabId),await this._fetch()},handleNetworkOffline(){console.debug("Network is offline, slowing down pollingInterval to "+this.pollIntervalBase*10),this._setPollingInterval(this.pollIntervalBase*10)},handleNetworkOnline(){this._fetch(),console.debug("Network is online, reseting pollingInterval to "+this.pollIntervalBase),this._setPollingInterval(this.pollIntervalBase)},setupBackgroundFetcher(){Vs?(console.debug("Started background fetcher as session_keepalive is enabled"),this.interval=window.setInterval(this._backgroundFetch.bind(this),this.pollIntervalCurrent)):console.debug("Did not start background fetcher as session_keepalive is off")},onDismissAll(){Qe.delete(Ct("apps/notifications/api/v2/notifications")).then(()=>{this.notifications=[],this.open=!1,Et(this.tabId)}).catch(()=>{Rt(le("notifications","Failed to dismiss all notifications"))})},onRemove(c){this.notifications.splice(c,1),Et(this.tabId)},_updateDocTitleOnNewNotifications(c){c.length>this._oldcount&&(this._oldcount=c.length,this.backgroundFetching&&document.hidden&&(document.title.startsWith("* ")||(document.title="* "+document.title)))},_restoreTitle(){document.title.startsWith("* ")&&(document.title=document.title.substring(2))},_fetchAfterNotifyPush(){this.backgroundFetching=!0,this.hasNotifyPush&&this.tabId!==this.lastTabId?(console.debug("Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it"),setTimeout(()=>{this._fetch()},5e3)):(console.debug("Refreshing notifications are notify_push event"),this._fetch())},async _fetch(){this.notifications.length&&this.notifications[0].notificationId>this.webNotificationsThresholdId&&(this.webNotificationsThresholdId=this.notifications[0].notificationId);const c=await eo(this.tabId,this.lastETag,!this.backgroundFetching,this.hasNotifyPush);c.status===204?(console.debug("Fetching notifications but no content, slowing down polling to "+this.pollIntervalBase*10),this._setPollingInterval(this.pollIntervalBase*10)):c.status===200?(this.userStatus=c.headers["x-nextcloud-user-status"],this.lastETag=c.headers.etag,this.lastTabId=c.tabId,this.notifications=c.data,this.processWebNotifications(c.data),console.debug("Got notification data, restoring default polling interval."),this._setPollingInterval(this.pollIntervalBase),this._updateDocTitleOnNewNotifications(this.notifications),!this.backgroundFetching&&this.notifications.length&&(this.webNotificationsThresholdId=this.notifications[0].notificationId)):c.status===304?this._setPollingInterval(this.pollIntervalBase):c.status===503?(console.info("Slowing down notifications: instance is in maintenance mode."),this._setPollingInterval(this.pollIntervalBase*10)):c.status===404?(console.info("Slowing down notifications: app is disabled."),this._setPollingInterval(this.pollIntervalBase*10)):(console.info("Slowing down notifications: Status "+c.status),this._setPollingInterval(this.pollIntervalBase*10))},_backgroundFetch(){this.backgroundFetching=!0,this._fetch()},_watchTabVisibility(){document.addEventListener("visibilitychange",this._visibilityChange,!1)},_visibilityChange(){document.hidden||this._restoreTitle()},_setPollingInterval(c){this.interval&&c===this.pollIntervalCurrent||(console.debug("Polling interval updated to "+c),this.interval&&(window.clearInterval(this.interval),this.interval=null),this.pollIntervalCurrent=c,this.setupBackgroundFetcher())},_shutDownNotifications(c){console.debug("Shutting down notifications "+(c?"temporary":"bye")),this.interval&&(window.clearInterval(this.interval),this.interval=null),this.shutdown=!c},checkWebNotificationPermissions(){if(!("Notification"in window)){console.info("Browser does not support notifications"),this.webNotificationsGranted=!1;return}if(window.Notification.permission==="granted"){console.debug("Notifications permissions granted"),this.webNotificationsGranted=!0;return}if(window.Notification.permission==="denied"){console.debug("Notifications permissions denied"),this.webNotificationsGranted=!1;return}if(window.location.protocol==="http:"){console.debug("Notifications require HTTPS"),this.webNotificationsGranted=!1;return}console.info("Notifications permissions not yet requested"),this.webNotificationsGranted=null},async requestWebNotificationPermissions(){this.webNotificationsGranted===null&&(console.info("Requesting notifications permissions"),window.Notification.requestPermission().then(c=>{this.webNotificationsGranted=c==="granted"}))},processWebNotifications(c){c.forEach(y=>{this.backgroundFetching&&Ze("notifications:notification:received",{notification:y}),this.showBrowserNotifications&&this.webNotificationsThresholdIdp.open=u),class:"notifications-button","exclude-click-outside-selectors":[".popover"],"aria-label":b.t("notifications","Notifications"),title:b.t("notifications","Notifications"),onOpened:b.onOpen},{trigger:J(()=>[ie(v,{size:20,"show-dot":p.notifications.length!==0||p.webNotificationsGranted===null,"show-warning":l.hasThrottledPushNotifications},null,8,["show-dot","show-warning"])]),default:J(()=>[X("div",Ws,[ie($i,{name:"fade",mode:"out-in"},{default:J(()=>[p.notifications.length>0?(P(),Q(Wi,{key:0,class:"notification-wrapper",name:"list",tag:"ul"},{default:J(()=>[l.hasThrottledPushNotifications?(P(),Q(O,{key:-2016,notification:l.fairUsePolicyNotification},null,8,["notification"])):z("",!0),(P(!0),j(Xn,null,Kn(p.notifications,(u,_)=>(P(),Q(O,{key:u.notificationId,notification:u,onRemove:g=>b.onRemove(_)},null,8,["notification","onRemove"]))),128))]),_:1})):(P(),Q(e,{key:1,name:b.emptyContentMessage,description:b.emptyContentDescription},Ji({icon:J(()=>[l.hasThrottledPushNotifications?(P(),j("span",Js)):(P(),Q(A,{key:0}))]),_:2},[l.hasThrottledPushNotifications?{name:"action",fn:J(()=>[ie(B,{variant:"primary",href:"https://nextcloud.com/fairusepolicy",target:"_blank",rel:"noreferrer noopener"},{icon:J(()=>[ie(T,{size:20})]),default:J(()=>[Be(" "+G(b.t("notifications","Contact Nextcloud GmbH"))+" ↗ ",1)]),_:1})]),key:"0"}:void 0]),1032,["name","description"]))]),_:1}),p.notifications.length>0?(P(),j("div",Xs,[ie(B,{variant:"tertiary",wide:"",onClick:b.onDismissAll},{icon:J(()=>[ie(n,{size:20})]),default:J(()=>[Be(" "+G(b.t("notifications","Dismiss all notifications")),1)]),_:1},8,["onClick"])])):z("",!0)])]),_:1},8,["open","aria-label","title","onOpened"]))}const na=de($s,[["render",Ks],["__scopeId","data-v-57714b57"]]);export{na as default}; -//# sourceMappingURL=NotificationsApp-DI9M0BLE.chunk.mjs.map +var _i=Object.defineProperty,hi=Object.defineProperties;var mi=Object.getOwnPropertyDescriptors;var Tn=Object.getOwnPropertySymbols;var yi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable;var Se=(c,y)=>(y=Symbol[c])?y:Symbol.for("Symbol."+c),bi=c=>{throw TypeError(c)};var vt=(c,y,o)=>y in c?_i(c,y,{enumerable:!0,configurable:!0,writable:!0,value:o}):c[y]=o,oe=(c,y)=>{for(var o in y||(y={}))yi.call(y,o)&&vt(c,o,y[o]);if(Tn)for(var o of Tn(y))gi.call(y,o)&&vt(c,o,y[o]);return c},Pe=(c,y)=>hi(c,mi(y));var Oe=(c,y,o)=>vt(c,typeof y!="symbol"?y+"":y,o);var ve=function(c,y){this[0]=c,this[1]=y},At=(c,y,o)=>{var l=(v,O,A,T)=>{try{var B=o[v](O),e=(O=B.value)instanceof ve,n=B.done;Promise.resolve(e?O[0]:O).then(r=>e?l(v==="return"?v:"next",O[1]?{done:r.done,value:r.value}:r,A,T):A({value:r,done:n})).catch(r=>l("throw",r,A,T))}catch(r){T(r)}},p=v=>b[v]=O=>new Promise((A,T)=>l(v,O,A,T)),b={};return o=o.apply(c,y),b[Se("asyncIterator")]=()=>b,p("next"),p("throw"),p("return"),b},Tt=c=>{var y=c[Se("asyncIterator")],o=!1,l,p={};return y==null?(y=c[Se("iterator")](),l=b=>p[b]=v=>y[b](v)):(y=y.call(c),l=b=>p[b]=v=>{if(o){if(o=!1,b==="throw")throw v;return v}return o=!0,{done:!1,value:new ve(new Promise(O=>{var A=y[b](v);A instanceof Object||bi("Object expected"),O(A)}),1)}}),p[Se("iterator")]=()=>p,l("next"),"throw"in y?l("throw"):p.throw=b=>{throw b},"return"in y&&l("return"),p},xn=(c,y,o)=>(y=c[Se("asyncIterator")])?y.call(c):(c=c[Se("iterator")](),y={},o=(l,p)=>(p=c[l])&&(y[l]=b=>new Promise((v,O,A)=>(b=p.call(c,b),A=b.done,Promise.resolve(b.value).then(T=>v({value:T,done:A}),O)))),o("next"),o("return"),y);import{e as et,u as wi,f as vi,g as kn,o as Ai,h as Ti,i as xi,j as ki,k as Si,m as tt,R as Oi,n as Ei,p as Ni,q as Wn,r as Ri,w as Ii,x as Ci,y as Pi,z as Sn,A as Ee,B as Bi,_ as de,C as Fi,t as le,D as ji,d as Qe,v as Ct,s as Rt,E as Ze,F as Li,l as Ye,G as On,H as Ui,I as xt,J as Mi,K as kt,L as Di}from"./index-Dh8t1o6F-DtLu8tks.chunk.mjs";import{l as nt,f as j,o as P,g as z,m as ce,t as G,h as Be,k as te,n as En,u as ye,j as Nn,p as St,q as Jn,s as Hi,a as Q,w as J,e as ie,v as Rn,x as qi,b as X,y as In,z as Pt,A as It,B as Cn,C as Vi,D as Gi,E as Fe,G as zi,r as ee,F as Xn,H as Kn,T as $i,I as Wi,J as Ji}from"./style-CHsIVRyi.chunk.mjs";import{B as K}from"./BrowserStorage-DzGhDfy9.chunk.mjs";import"./vite-preload-helper-B9rAsR6N.chunk.mjs";const Xi={class:"empty-content",role:"note"},Ki={key:0,class:"empty-content__icon","aria-hidden":"true"},Qi={key:0,class:"empty-content__name"},Zi={key:1,class:"empty-content__description"},Yi={key:2,class:"empty-content__action"},er=nt({__name:"NcEmptyContent",props:{description:{default:""},name:{default:""}},setup(c){return(y,o)=>(P(),j("div",Xi,[y.$slots.icon?(P(),j("div",Ki,[ce(y.$slots,"icon",{},void 0,!0)])):z("",!0),ce(y.$slots,"name",{},()=>[y.name!==""?(P(),j("span",Qi,G(y.name),1)):z("",!0)],!0),y.description!==""||y.$slots.description?(P(),j("p",Zi,[ce(y.$slots,"description",{},()=>[Be(G(y.description),1)],!0)])):z("",!0),y.$slots.action?(P(),j("div",Yi,[ce(y.$slots,"action",{},void 0,!0)])):z("",!0)]))}}),tr=et(er,[["__scopeId","data-v-697cfd8f"]]),nr=["data-timestamp","title","textContent"],or=nt({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(c){const y=c,o=te(()=>({format:y.format})),l=te(()=>({ignoreSeconds:y.ignoreSeconds,relativeTime:y.relativeTime||"long",update:y.relativeTime!==!1})),p=wi(En(()=>y.timestamp),o),b=vi(En(()=>y.timestamp),l),v=te(()=>y.relativeTime?b.value:p.value);return(O,A)=>(P(),j("span",{class:"nc-datetime",dir:"auto","data-timestamp":O.timestamp,title:ye(p),textContent:G(v.value)},null,8,nr))}}),ir=["id"],rr={class:"header-menu__caret"},sr=["id"],ar={ref:"contentContainer",class:"header-menu__content"},ur=nt({__name:"NcHeaderMenu",props:{id:{},ariaLabel:{default:()=>{}},open:{type:Boolean,default:!1},isNav:{type:Boolean,default:!1},description:{default:()=>{}},excludeClickOutsideSelectors:{default:()=>[]}},emits:["closed","opened","update:open"],setup(c,{emit:y}){const o=y,l=kn(),p=kn(),b=Nn(),v=Nn(c.open),O=te(()=>c.isNav?"nav":"div"),A=St("contentContainer"),T=St("headerMenu"),B=St("triggerButton"),e=te(()=>Array.isArray(c.excludeClickOutsideSelectors)?c.excludeClickOutsideSelectors:c.excludeClickOutsideSelectors.split(" "));Ai(T,()=>r(!1),{ignore:e}),Ti("Escape",()=>r(!1),{prevent:!0}),xi(v,{disabled:()=>!c.isNav}),Jn(()=>c.open,f=>r(f));function n(){r(!v.value)}async function r(f){f!==v.value&&(v.value=f,o("update:open",f),await Hi(),await(f?_():g()),o(f?"opened":"closed"))}function u(f){var x;c.isNav&&f.relatedTarget instanceof Node&&((x=T.value)!=null&&x.contains(f.relatedTarget))&&r(!1)}async function _(){var f;c.isNav||b.value||(b.value=ki(A.value,{allowOutsideClick:!0,trapStack:Si(),fallbackFocus:(f=B.value)==null?void 0:f.$el}),b.value.activate())}function g(){var f;(f=b.value)==null||f.deactivate(),b.value=void 0}return(f,x)=>(P(),Q(It(O.value),{id:f.id,ref:"headerMenu","aria-labelledby":f.isNav?ye(p):null,class:Pt([{"header-menu--opened":v.value},"header-menu"]),onFocusout:u},{default:J(()=>[ie(ye(tt),{id:f.isNav?ye(p):null,ref:"triggerButton","aria-controls":"header-menu-".concat(f.id),"aria-expanded":v.value.toString(),"aria-label":f.ariaLabel,class:"header-menu__trigger",size:"large",variant:"tertiary-no-background",onClick:qi(n,["prevent"])},{icon:J(()=>[ce(f.$slots,"trigger",{},void 0,!0)]),_:3},8,["id","aria-controls","aria-expanded","aria-label"]),f.description?(P(),j("span",{key:0,id:ye(l),class:"header-menu__description hidden-visually"},G(f.description),9,ir)):z("",!0),Rn(X("div",rr,null,512),[[In,v.value]]),Rn(X("div",{id:"header-menu-".concat(f.id),class:"header-menu__wrapper"},[X("div",ar,[ce(f.$slots,"default",{},void 0,!0)],512)],8,sr),[[In,v.value]])]),_:3},40,["id","aria-labelledby","class"]))}}),lr=et(ur,[["__scopeId","data-v-d45c5788"]]),cr={};function dr(c,y){return P(),j("div",null,[ce(c.$slots,"trigger")])}const fr=et(cr,[["render",dr]]),pr={class:"user-bubble__name"},_r={key:0,class:"user-bubble__secondary"},hr=nt({__name:"NcUserBubble",props:Cn({avatarImage:{default:void 0},user:{default:void 0},displayName:{default:void 0},showUserStatus:{type:Boolean},url:{default:void 0},to:{default:void 0},primary:{type:Boolean},size:{default:20},margin:{default:2}},{open:{type:Boolean},openModifiers:{}}),emits:Cn(["click"],["update:open"]),setup(c,{emit:y}){const o=Vi(c,"open"),l=c,p=y,b=te(()=>{if(!l.avatarImage)return!1;try{return!!new URL(l.avatarImage)}catch(n){return!1}}),v=te(()=>!!l.avatarImage),O=te(()=>({marginInlineStart:"".concat(l.margin,"px")})),A=te(()=>{var n,r;if(!l.url||l.url.trim()==="")return!1;try{return!!new URL(l.url,(r=(n=l.url)==null?void 0:n.startsWith)!=null&&r.call(n,"/")?window.location.href:void 0)}catch(u){return Gi("[NcUserBubble] Invalid URL passed",{url:l.url}),!1}}),T=te(()=>A.value?l.url:void 0),B=te(()=>A.value?"a":l.to?Oi:"div"),e=te(()=>({height:"".concat(l.size,"px"),lineHeight:"".concat(l.size,"px"),borderRadius:"".concat(l.size/2,"px")}));return Jn([()=>l.displayName,()=>l.user],()=>{!l.displayName&&l.user}),(n,r)=>(P(),Q(It(n.$slots.default?ye(Ni):fr),{shown:o.value,"onUpdate:shown":r[1]||(r[1]=u=>o.value=u),class:"user-bubble__wrapper",trigger:"hover focus"},{trigger:J(({attrs:u})=>[(P(),Q(It(B.value),Fe({class:["user-bubble__content",{"user-bubble__content--primary":n.primary}],style:e.value,to:n.to,href:T.value},u,{onClick:r[0]||(r[0]=_=>p("click",_))}),{default:J(()=>[ie(ye(Ei),{url:v.value&&b.value?n.avatarImage:void 0,"icon-class":v.value&&!b.value?n.avatarImage:void 0,user:n.user,"display-name":n.displayName,size:n.size-n.margin*2,style:zi(O.value),"disable-tooltip":!0,"disable-menu":!0,"hide-status":!n.showUserStatus,class:"user-bubble__avatar"},null,8,["url","icon-class","user","display-name","size","style","hide-status"]),X("span",pr,G(n.displayName||n.user),1),n.$slots.name?(P(),j("span",_r,[ce(n.$slots,"name",{},void 0,!0)])):z("",!0)]),_:2},1040,["class","style","to","href"]))]),default:J(()=>[ce(n.$slots,"default",{},void 0,!0)]),_:3},40,["shown"]))}}),mr=et(hr,[["__scopeId","data-v-37bde6b7"]]);var Ae={},Pn={};const yr=Wn(Ri);var Bn;function gr(){return Bn||(Bn=1,function(c){Object.defineProperty(c,Symbol.toStringTag,{value:"Module"});const y=yr;function o(){try{return y.loadState("core","capabilities")}catch(l){return console.debug("Could not find capabilities initial state fall back to _oc_capabilities"),"_oc_capabilities"in window?window._oc_capabilities:{}}}c.getCapabilities=o}(Pn)),Pn}var Fn={},jn={},Ln={},Un;function Qn(){return Un||(Un=1,function(c){Object.defineProperty(c,Symbol.toStringTag,{value:"Module"});const y=Ii(),o=Ci(),l=r=>r&&r.__esModule?r:{default:r},p=l(y),b=l(o);class v{constructor(u){Oe(this,"bus");typeof u.getVersion!="function"||!b.default(u.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):p.default(u.getVersion())!==p.default(this.getVersion())&&console.warn("Proxying an event bus of version "+u.getVersion()+" with "+this.getVersion()),this.bus=u}getVersion(){return"3.3.3"}subscribe(u,_){this.bus.subscribe(u,_)}unsubscribe(u,_){this.bus.unsubscribe(u,_)}emit(u,..._){this.bus.emit(u,..._)}}class O{constructor(){Oe(this,"handlers",new Map)}getVersion(){return"3.3.3"}subscribe(u,_){this.handlers.set(u,(this.handlers.get(u)||[]).concat(_))}unsubscribe(u,_){this.handlers.set(u,(this.handlers.get(u)||[]).filter(g=>g!==_))}emit(u,..._){(this.handlers.get(u)||[]).forEach(g=>{try{g(_[0])}catch(f){console.error("could not invoke event listener",f)}})}}let A=null;function T(){var r;return A!==null?A:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):((r=window.OC)!=null&&r._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof(window==null?void 0:window._nc_event_bus)<"u"?A=new v(window._nc_event_bus):A=window._nc_event_bus=new O,A)}function B(r,u){T().subscribe(r,u)}function e(r,u){T().unsubscribe(r,u)}function n(r,...u){T().emit(r,...u)}c.ProxyBus=v,c.SimpleBus=O,c.emit=n,c.subscribe=B,c.unsubscribe=e}(Ln)),Ln}const br=Wn(Pi);var Mn;function wr(){return Mn||(Mn=1,function(c){Object.defineProperty(c,Symbol.toStringTag,{value:"Module"});const y=Qn(),o=br;let l;const p=[];function b(){var x;return l===void 0&&(l=(x=document.head.dataset.requesttoken)!=null?x:null),l}function v(x){p.push(x)}y.subscribe("csrf-token-update",x=>{l=x.token,p.forEach(C=>{try{C(l)}catch(F){console.error("Error updating CSRF token observer",F)}})});function O(){const x=document==null?void 0:document.querySelector('meta[name="csp-nonce"]');if(!x){const C=b();return C?btoa(C):void 0}return x.nonce}const A=o.getBuilder("public").persist().build();class T{constructor(){Oe(this,"_displayName");Oe(this,"uid");Oe(this,"isAdmin");A.getItem("guestUid")||A.setItem("guestUid",u()),this._displayName=A.getItem("guestNickname")||"",this.uid=A.getItem("guestUid")||u(),this.isAdmin=!1,y.subscribe("user:info:changed",C=>{this._displayName=C.displayName,A.setItem("guestNickname",C.displayName||"")})}get displayName(){return this._displayName}set displayName(C){this._displayName=C,A.setItem("guestNickname",C),y.emit("user:info:changed",this)}}let B;function e(){return B||(B=new T),B}function n(){var x;return((x=e())==null?void 0:x.displayName)||null}function r(x){if(!x||x.trim().length===0)throw new Error("Nickname cannot be empty");e().displayName=x}function u(){var x;return(x=globalThis.crypto)!=null&&x.randomUUID?globalThis.crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,C=>{const F=Math.random()*16|0;return(C==="x"?F:F&3|8).toString(16)})}let _;function g(x,C){return x?x.getAttribute(C):null}function f(){if(_!==void 0)return _;const x=document==null?void 0:document.getElementsByTagName("head")[0];if(!x)return null;const C=g(x,"data-user");return C===null?(_=null,_):(_={uid:C,displayName:g(x,"data-user-displayname"),isAdmin:!!window._oc_isadmin},_)}c.getCSPNonce=O,c.getCurrentUser=f,c.getGuestNickname=n,c.getGuestUser=e,c.getRequestToken=b,c.onRequestTokenUpdate=v,c.setGuestNickname=r}(jn)),jn}var Ot,Dn;function vr(){if(Dn)return Ot;Dn=1;function c(t,i){return function(){return t.apply(i,arguments)}}const{toString:y}=Object.prototype,{getPrototypeOf:o}=Object,{iterator:l,toStringTag:p}=Symbol,b=(t=>i=>{const s=y.call(i);return t[s]||(t[s]=s.slice(8,-1).toLowerCase())})(Object.create(null)),v=t=>(t=t.toLowerCase(),i=>b(i)===t),O=t=>i=>typeof i===t,{isArray:A}=Array,T=O("undefined");function B(t){return t!==null&&!T(t)&&t.constructor!==null&&!T(t.constructor)&&u(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const e=v("ArrayBuffer");function n(t){let i;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?i=ArrayBuffer.isView(t):i=t&&t.buffer&&e(t.buffer),i}const r=O("string"),u=O("function"),_=O("number"),g=t=>t!==null&&typeof t=="object",f=t=>t===!0||t===!1,x=t=>{if(b(t)!=="object")return!1;const i=o(t);return(i===null||i===Object.prototype||Object.getPrototypeOf(i)===null)&&!(p in t)&&!(l in t)},C=t=>{if(!g(t)||B(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(i){return!1}},F=v("Date"),q=v("File"),re=v("Blob"),Te=v("FileList"),Ne=t=>g(t)&&u(t.pipe),D=t=>{let i;return t&&(typeof FormData=="function"&&t instanceof FormData||u(t.append)&&((i=b(t))==="formdata"||i==="object"&&u(t.toString)&&t.toString()==="[object FormData]"))},je=v("URLSearchParams"),[Le,ot,Ue,fe]=["ReadableStream","Request","Response","Headers"].map(v),it=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Re(t,i,{allOwnKeys:s=!1}={}){if(t===null||typeof t>"u")return;let a,d;if(typeof t!="object"&&(t=[t]),A(t))for(a=0,d=t.length;a0;)if(d=s[a],i===d.toLowerCase())return d;return null}const ge=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Ee,Ft=t=>!T(t)&&t!==ge;function rt(){const{caseless:t,skipUndefined:i}=Ft(this)&&this||{},s={},a=(d,m)=>{const h=t&&Bt(s,m)||m;x(s[h])&&x(d)?s[h]=rt(s[h],d):x(d)?s[h]=rt({},d):A(d)?s[h]=d.slice():(!i||!T(d))&&(s[h]=d)};for(let d=0,m=arguments.length;d(Re(i,(d,m)=>{s&&u(d)?t[m]=c(d,s):t[m]=d},{allOwnKeys:a}),t),no=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),oo=(t,i,s,a)=>{t.prototype=Object.create(i.prototype,a),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:i.prototype}),s&&Object.assign(t.prototype,s)},io=(t,i,s,a)=>{let d,m,h;const k={};if(i=i||{},t==null)return i;do{for(d=Object.getOwnPropertyNames(t),m=d.length;m-- >0;)h=d[m],(!a||a(h,t,i))&&!k[h]&&(i[h]=t[h],k[h]=!0);t=s!==!1&&o(t)}while(t&&(!s||s(t,i))&&t!==Object.prototype);return i},ro=(t,i,s)=>{t=String(t),(s===void 0||s>t.length)&&(s=t.length),s-=i.length;const a=t.indexOf(i,s);return a!==-1&&a===s},so=t=>{if(!t)return null;if(A(t))return t;let i=t.length;if(!_(i))return null;const s=new Array(i);for(;i-- >0;)s[i]=t[i];return s},ao=(t=>i=>t&&i instanceof t)(typeof Uint8Array<"u"&&o(Uint8Array)),uo=(t,i)=>{const s=(t&&t[l]).call(t);let a;for(;(a=s.next())&&!a.done;){const d=a.value;i.call(t,d[0],d[1])}},lo=(t,i)=>{let s;const a=[];for(;(s=t.exec(i))!==null;)a.push(s);return a},co=v("HTMLFormElement"),fo=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(i,s,a){return s.toUpperCase()+a}),jt=(({hasOwnProperty:t})=>(i,s)=>t.call(i,s))(Object.prototype),po=v("RegExp"),Lt=(t,i)=>{const s=Object.getOwnPropertyDescriptors(t),a={};Re(s,(d,m)=>{let h;(h=i(d,m,t))!==!1&&(a[m]=h||d)}),Object.defineProperties(t,a)},_o=t=>{Lt(t,(i,s)=>{if(u(t)&&["arguments","caller","callee"].indexOf(s)!==-1)return!1;const a=t[s];if(u(a)){if(i.enumerable=!1,"writable"in i){i.writable=!1;return}i.set||(i.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")})}})},ho=(t,i)=>{const s={},a=d=>{d.forEach(m=>{s[m]=!0})};return A(t)?a(t):a(String(t).split(i)),s},mo=()=>{},yo=(t,i)=>t!=null&&Number.isFinite(t=+t)?t:i;function go(t){return!!(t&&u(t.append)&&t[p]==="FormData"&&t[l])}const bo=t=>{const i=new Array(10),s=(a,d)=>{if(g(a)){if(i.indexOf(a)>=0)return;if(B(a))return a;if(!("toJSON"in a)){i[d]=a;const m=A(a)?[]:{};return Re(a,(h,k)=>{const R=s(h,d+1);!T(R)&&(m[k]=R)}),i[d]=void 0,m}}return a};return s(t,0)},wo=v("AsyncFunction"),vo=t=>t&&(g(t)||u(t))&&u(t.then)&&u(t.catch),Ut=((t,i)=>t?setImmediate:i?((s,a)=>(ge.addEventListener("message",({source:d,data:m})=>{d===ge&&m===s&&a.length&&a.shift()()},!1),d=>{a.push(d),ge.postMessage(s,"*")}))("axios@".concat(Math.random()),[]):s=>setTimeout(s))(typeof setImmediate=="function",u(ge.postMessage)),Ao=typeof queueMicrotask<"u"?queueMicrotask.bind(ge):typeof Sn<"u"&&Sn.nextTick||Ut;var w={isArray:A,isArrayBuffer:e,isBuffer:B,isFormData:D,isArrayBufferView:n,isString:r,isNumber:_,isBoolean:f,isObject:g,isPlainObject:x,isEmptyObject:C,isReadableStream:Le,isRequest:ot,isResponse:Ue,isHeaders:fe,isUndefined:T,isDate:F,isFile:q,isBlob:re,isRegExp:po,isFunction:u,isStream:Ne,isURLSearchParams:je,isTypedArray:ao,isFileList:Te,forEach:Re,merge:rt,extend:to,trim:it,stripBOM:no,inherits:oo,toFlatObject:io,kindOf:b,kindOfTest:v,endsWith:ro,toArray:so,forEachEntry:uo,matchAll:lo,isHTMLForm:co,hasOwnProperty:jt,hasOwnProp:jt,reduceDescriptors:Lt,freezeMethods:_o,toObjectSet:ho,toCamelCase:fo,noop:mo,toFiniteNumber:yo,findKey:Bt,global:ge,isContextDefined:Ft,isSpecCompliantForm:go,toJSONObject:bo,isAsyncFn:wo,isThenable:vo,setImmediate:Ut,asap:Ao,isIterable:t=>t!=null&&u(t[l])};function U(t,i,s,a,d){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",i&&(this.code=i),s&&(this.config=s),a&&(this.request=a),d&&(this.response=d,this.status=d.status?d.status:null)}w.inherits(U,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:w.toJSONObject(this.config),code:this.code,status:this.status}}});const Mt=U.prototype,Dt={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{Dt[t]={value:t}}),Object.defineProperties(U,Dt),Object.defineProperty(Mt,"isAxiosError",{value:!0}),U.from=(t,i,s,a,d,m)=>{const h=Object.create(Mt);w.toFlatObject(t,h,function(S){return S!==Error.prototype},S=>S!=="isAxiosError");const k=t&&t.message?t.message:"Error",R=i==null&&t?t.code:i;return U.call(h,k,R,s,a,d),t&&h.cause==null&&Object.defineProperty(h,"cause",{value:t,configurable:!0}),h.name=t&&t.name||"Error",m&&Object.assign(h,m),h};var To=null;function st(t){return w.isPlainObject(t)||w.isArray(t)}function Ht(t){return w.endsWith(t,"[]")?t.slice(0,-2):t}function qt(t,i,s){return t?t.concat(i).map(function(a,d){return a=Ht(a),!s&&d?"["+a+"]":a}).join(s?".":""):i}function xo(t){return w.isArray(t)&&!t.some(st)}const ko=w.toFlatObject(w,{},null,function(t){return/^is[A-Z]/.test(t)});function Me(t,i,s){if(!w.isObject(t))throw new TypeError("target must be an object");i=i||new FormData,s=w.toFlatObject(s,{metaTokens:!0,dots:!1,indexes:!1},!1,function(M,E){return!w.isUndefined(E[M])});const a=s.metaTokens,d=s.visitor||S,m=s.dots,h=s.indexes,k=(s.Blob||typeof Blob<"u"&&Blob)&&w.isSpecCompliantForm(i);if(!w.isFunction(d))throw new TypeError("visitor must be a function");function R(M){if(M===null)return"";if(w.isDate(M))return M.toISOString();if(w.isBoolean(M))return M.toString();if(!k&&w.isBlob(M))throw new U("Blob is not supported. Use a Buffer instead.");return w.isArrayBuffer(M)||w.isTypedArray(M)?k&&typeof Blob=="function"?new Blob([M]):Bi.from(M):M}function S(M,E,I){let V=M;if(M&&!I&&typeof M=="object"){if(w.endsWith(E,"{}"))E=a?E:E.slice(0,-2),M=JSON.stringify(M);else if(w.isArray(M)&&xo(M)||(w.isFileList(M)||w.endsWith(E,"[]"))&&(V=w.toArray(M)))return E=Ht(E),V.forEach(function(Y,W){!(w.isUndefined(Y)||Y===null)&&i.append(h===!0?qt([E],W,m):h===null?E:E+"[]",R(Y))}),!1}return st(M)?!0:(i.append(qt(I,E,m),R(M)),!1)}const N=[],L=Object.assign(ko,{defaultVisitor:S,convertValue:R,isVisitable:st});function H(M,E){if(!w.isUndefined(M)){if(N.indexOf(M)!==-1)throw Error("Circular reference detected in "+E.join("."));N.push(M),w.forEach(M,function(I,V){(!(w.isUndefined(I)||I===null)&&d.call(i,I,w.isString(V)?V.trim():V,E,L))===!0&&H(I,E?E.concat(V):[V])}),N.pop()}}if(!w.isObject(t))throw new TypeError("data must be an object");return H(t),i}function Vt(t){const i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(s){return i[s]})}function at(t,i){this._pairs=[],t&&Me(t,this,i)}const Gt=at.prototype;Gt.append=function(t,i){this._pairs.push([t,i])},Gt.toString=function(t){const i=t?function(s){return t.call(this,s,Vt)}:Vt;return this._pairs.map(function(s){return i(s[0])+"="+i(s[1])},"").join("&")};function So(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function zt(t,i,s){if(!i)return t;const a=s&&s.encode||So;w.isFunction(s)&&(s={serialize:s});const d=s&&s.serialize;let m;if(d?m=d(i,s):m=w.isURLSearchParams(i)?i.toString():new at(i,s).toString(a),m){const h=t.indexOf("#");h!==-1&&(t=t.slice(0,h)),t+=(t.indexOf("?")===-1?"?":"&")+m}return t}class Oo{constructor(){this.handlers=[]}use(i,s,a){return this.handlers.push({fulfilled:i,rejected:s,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1}eject(i){this.handlers[i]&&(this.handlers[i]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(i){w.forEach(this.handlers,function(s){s!==null&&i(s)})}}var $t=Oo,Wt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Eo=typeof URLSearchParams<"u"?URLSearchParams:at,No=typeof FormData<"u"?FormData:null,Ro=typeof Blob<"u"?Blob:null,Io={isBrowser:!0,classes:{URLSearchParams:Eo,FormData:No,Blob:Ro},protocols:["http","https","file","blob","url","data"]};const ut=typeof window<"u"&&typeof document<"u",lt=typeof navigator=="object"&&navigator||void 0,Co=ut&&(!lt||["ReactNative","NativeScript","NS"].indexOf(lt.product)<0),Po=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Bo=ut&&window.location.href||"http://localhost";var Fo=Object.freeze({__proto__:null,hasBrowserEnv:ut,hasStandardBrowserWebWorkerEnv:Po,hasStandardBrowserEnv:Co,navigator:lt,origin:Bo}),Z=oe(oe({},Fo),Io);function jo(t,i){return Me(t,new Z.classes.URLSearchParams,oe({visitor:function(s,a,d,m){return Z.isNode&&w.isBuffer(s)?(this.append(a,s.toString("base64")),!1):m.defaultVisitor.apply(this,arguments)}},i))}function Lo(t){return w.matchAll(/\w+|\[(\w*)]/g,t).map(i=>i[0]==="[]"?"":i[1]||i[0])}function Uo(t){const i={},s=Object.keys(t);let a;const d=s.length;let m;for(a=0;a=s.length;return h=!h&&w.isArray(d)?d.length:h,R?(w.hasOwnProp(d,h)?d[h]=[d[h],a]:d[h]=a,!k):((!d[h]||!w.isObject(d[h]))&&(d[h]=[]),i(s,a,d[h],m)&&w.isArray(d[h])&&(d[h]=Uo(d[h])),!k)}if(w.isFormData(t)&&w.isFunction(t.entries)){const s={};return w.forEachEntry(t,(a,d)=>{i(Lo(a),d,s,0)}),s}return null}function Mo(t,i,s){if(w.isString(t))try{return(i||JSON.parse)(t),w.trim(t)}catch(a){if(a.name!=="SyntaxError")throw a}return(s||JSON.stringify)(t)}const ct={transitional:Wt,adapter:["xhr","http","fetch"],transformRequest:[function(t,i){const s=i.getContentType()||"",a=s.indexOf("application/json")>-1,d=w.isObject(t);if(d&&w.isHTMLForm(t)&&(t=new FormData(t)),w.isFormData(t))return a?JSON.stringify(Jt(t)):t;if(w.isArrayBuffer(t)||w.isBuffer(t)||w.isStream(t)||w.isFile(t)||w.isBlob(t)||w.isReadableStream(t))return t;if(w.isArrayBufferView(t))return t.buffer;if(w.isURLSearchParams(t))return i.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let m;if(d){if(s.indexOf("application/x-www-form-urlencoded")>-1)return jo(t,this.formSerializer).toString();if((m=w.isFileList(t))||s.indexOf("multipart/form-data")>-1){const h=this.env&&this.env.FormData;return Me(m?{"files[]":t}:t,h&&new h,this.formSerializer)}}return d||a?(i.setContentType("application/json",!1),Mo(t)):t}],transformResponse:[function(t){const i=this.transitional||ct.transitional,s=i&&i.forcedJSONParsing,a=this.responseType==="json";if(w.isResponse(t)||w.isReadableStream(t))return t;if(t&&w.isString(t)&&(s&&!this.responseType||a)){const d=!(i&&i.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(m){if(d)throw m.name==="SyntaxError"?U.from(m,U.ERR_BAD_RESPONSE,this,null,this.response):m}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Z.classes.FormData,Blob:Z.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};w.forEach(["delete","get","head","post","put","patch"],t=>{ct.headers[t]={}});var dt=ct;const Do=w.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var Ho=t=>{const i={};let s,a,d;return t&&t.split("\n").forEach(function(m){d=m.indexOf(":"),s=m.substring(0,d).trim().toLowerCase(),a=m.substring(d+1).trim(),!(!s||i[s]&&Do[s])&&(s==="set-cookie"?i[s]?i[s].push(a):i[s]=[a]:i[s]=i[s]?i[s]+", "+a:a)}),i};const Xt=Symbol("internals");function Ie(t){return t&&String(t).trim().toLowerCase()}function De(t){return t===!1||t==null?t:w.isArray(t)?t.map(De):String(t)}function qo(t){const i=Object.create(null),s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let a;for(;a=s.exec(t);)i[a[1]]=a[2];return i}const Vo=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function ft(t,i,s,a,d){if(w.isFunction(a))return a.call(this,i,s);if(d&&(i=s),!!w.isString(i)){if(w.isString(a))return i.indexOf(a)!==-1;if(w.isRegExp(a))return a.test(i)}}function Go(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(i,s,a)=>s.toUpperCase()+a)}function zo(t,i){const s=w.toCamelCase(" "+i);["get","set","has"].forEach(a=>{Object.defineProperty(t,a+s,{value:function(d,m,h){return this[a].call(this,i,d,m,h)},configurable:!0})})}class He{constructor(i){i&&this.set(i)}set(i,s,a){const d=this;function m(k,R,S){const N=Ie(R);if(!N)throw new Error("header name must be a non-empty string");const L=w.findKey(d,N);(!L||d[L]===void 0||S===!0||S===void 0&&d[L]!==!1)&&(d[L||R]=De(k))}const h=(k,R)=>w.forEach(k,(S,N)=>m(S,N,R));if(w.isPlainObject(i)||i instanceof this.constructor)h(i,s);else if(w.isString(i)&&(i=i.trim())&&!Vo(i))h(Ho(i),s);else if(w.isObject(i)&&w.isIterable(i)){let k={},R,S;for(const N of i){if(!w.isArray(N))throw TypeError("Object iterator must return a key-value pair");k[S=N[0]]=(R=k[S])?w.isArray(R)?[...R,N[1]]:[R,N[1]]:N[1]}h(k,s)}else i!=null&&m(s,i,a);return this}get(i,s){if(i=Ie(i),i){const a=w.findKey(this,i);if(a){const d=this[a];if(!s)return d;if(s===!0)return qo(d);if(w.isFunction(s))return s.call(this,d,a);if(w.isRegExp(s))return s.exec(d);throw new TypeError("parser must be boolean|regexp|function")}}}has(i,s){if(i=Ie(i),i){const a=w.findKey(this,i);return!!(a&&this[a]!==void 0&&(!s||ft(this,this[a],a,s)))}return!1}delete(i,s){const a=this;let d=!1;function m(h){if(h=Ie(h),h){const k=w.findKey(a,h);k&&(!s||ft(a,a[k],k,s))&&(delete a[k],d=!0)}}return w.isArray(i)?i.forEach(m):m(i),d}clear(i){const s=Object.keys(this);let a=s.length,d=!1;for(;a--;){const m=s[a];(!i||ft(this,this[m],m,i,!0))&&(delete this[m],d=!0)}return d}normalize(i){const s=this,a={};return w.forEach(this,(d,m)=>{const h=w.findKey(a,m);if(h){s[h]=De(d),delete s[m];return}const k=i?Go(m):String(m).trim();k!==m&&delete s[m],s[k]=De(d),a[k]=!0}),this}concat(...i){return this.constructor.concat(this,...i)}toJSON(i){const s=Object.create(null);return w.forEach(this,(a,d)=>{a!=null&&a!==!1&&(s[d]=i&&w.isArray(a)?a.join(", "):a)}),s}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([i,s])=>i+": "+s).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(i){return i instanceof this?i:new this(i)}static concat(i,...s){const a=new this(i);return s.forEach(d=>a.set(d)),a}static accessor(i){const s=(this[Xt]=this[Xt]={accessors:{}}).accessors,a=this.prototype;function d(m){const h=Ie(m);s[h]||(zo(a,m),s[h]=!0)}return w.isArray(i)?i.forEach(d):d(i),this}}He.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),w.reduceDescriptors(He.prototype,({value:t},i)=>{let s=i[0].toUpperCase()+i.slice(1);return{get:()=>t,set(a){this[s]=a}}}),w.freezeMethods(He);var ne=He;function pt(t,i){const s=this||dt,a=i||s,d=ne.from(a.headers);let m=a.data;return w.forEach(t,function(h){m=h.call(s,m,d.normalize(),i?i.status:void 0)}),d.normalize(),m}function Kt(t){return!!(t&&t.__CANCEL__)}function xe(t,i,s){U.call(this,t!=null?t:"canceled",U.ERR_CANCELED,i,s),this.name="CanceledError"}w.inherits(xe,U,{__CANCEL__:!0});function Qt(t,i,s){const a=s.config.validateStatus;!s.status||!a||a(s.status)?t(s):i(new U("Request failed with status code "+s.status,[U.ERR_BAD_REQUEST,U.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s))}function $o(t){const i=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return i&&i[1]||""}function Wo(t,i){t=t||10;const s=new Array(t),a=new Array(t);let d=0,m=0,h;return i=i!==void 0?i:1e3,function(k){const R=Date.now(),S=a[m];h||(h=R),s[d]=k,a[d]=R;let N=m,L=0;for(;N!==d;)L+=s[N++],N=N%t;if(d=(d+1)%t,d===m&&(m=(m+1)%t),R-h{s=R,d=null,m&&(clearTimeout(m),m=null),t(...k)};return[(...k)=>{const R=Date.now(),S=R-s;S>=a?h(k,R):(d=k,m||(m=setTimeout(()=>{m=null,h(d)},a-S)))},()=>d&&h(d)]}const qe=(t,i,s=3)=>{let a=0;const d=Wo(50,250);return Jo(m=>{const h=m.loaded,k=m.lengthComputable?m.total:void 0,R=h-a,S=d(R),N=h<=k;a=h;const L={loaded:h,total:k,progress:k?h/k:void 0,bytes:R,rate:S||void 0,estimated:S&&k&&N?(k-h)/S:void 0,event:m,lengthComputable:k!=null,[i?"download":"upload"]:!0};t(L)},s)},Zt=(t,i)=>{const s=t!=null;return[a=>i[0]({lengthComputable:s,total:t,loaded:a}),i[1]]},Yt=t=>(...i)=>w.asap(()=>t(...i));var Xo=Z.hasStandardBrowserEnv?((t,i)=>s=>(s=new URL(s,Z.origin),t.protocol===s.protocol&&t.host===s.host&&(i||t.port===s.port)))(new URL(Z.origin),Z.navigator&&/(msie|trident)/i.test(Z.navigator.userAgent)):()=>!0,Ko=Z.hasStandardBrowserEnv?{write(t,i,s,a,d,m){const h=[t+"="+encodeURIComponent(i)];w.isNumber(s)&&h.push("expires="+new Date(s).toGMTString()),w.isString(a)&&h.push("path="+a),w.isString(d)&&h.push("domain="+d),m===!0&&h.push("secure"),document.cookie=h.join("; ")},read(t){const i=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return i?decodeURIComponent(i[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Qo(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Zo(t,i){return i?t.replace(/\/?\/$/,"")+"/"+i.replace(/^\/+/,""):t}function en(t,i,s){let a=!Qo(i);return t&&(a||s==!1)?Zo(t,i):i}const tn=t=>t instanceof ne?oe({},t):t;function be(t,i){i=i||{};const s={};function a(S,N,L,H){return w.isPlainObject(S)&&w.isPlainObject(N)?w.merge.call({caseless:H},S,N):w.isPlainObject(N)?w.merge({},N):w.isArray(N)?N.slice():N}function d(S,N,L,H){if(w.isUndefined(N)){if(!w.isUndefined(S))return a(void 0,S,L,H)}else return a(S,N,L,H)}function m(S,N){if(!w.isUndefined(N))return a(void 0,N)}function h(S,N){if(w.isUndefined(N)){if(!w.isUndefined(S))return a(void 0,S)}else return a(void 0,N)}function k(S,N,L){if(L in i)return a(S,N);if(L in t)return a(void 0,S)}const R={url:m,method:m,data:m,baseURL:h,transformRequest:h,transformResponse:h,paramsSerializer:h,timeout:h,timeoutMessage:h,withCredentials:h,withXSRFToken:h,adapter:h,responseType:h,xsrfCookieName:h,xsrfHeaderName:h,onUploadProgress:h,onDownloadProgress:h,decompress:h,maxContentLength:h,maxBodyLength:h,beforeRedirect:h,transport:h,httpAgent:h,httpsAgent:h,cancelToken:h,socketPath:h,responseEncoding:h,validateStatus:k,headers:(S,N,L)=>d(tn(S),tn(N),L,!0)};return w.forEach(Object.keys(oe(oe({},t),i)),function(S){const N=R[S]||d,L=N(t[S],i[S],S);w.isUndefined(L)&&N!==k||(s[S]=L)}),s}var nn=t=>{const i=be({},t);let{data:s,withXSRFToken:a,xsrfHeaderName:d,xsrfCookieName:m,headers:h,auth:k}=i;if(i.headers=h=ne.from(h),i.url=zt(en(i.baseURL,i.url,i.allowAbsoluteUrls),t.params,t.paramsSerializer),k&&h.set("Authorization","Basic "+btoa((k.username||"")+":"+(k.password?unescape(encodeURIComponent(k.password)):""))),w.isFormData(s)){if(Z.hasStandardBrowserEnv||Z.hasStandardBrowserWebWorkerEnv)h.setContentType(void 0);else if(w.isFunction(s.getHeaders)){const R=s.getHeaders(),S=["content-type","content-length"];Object.entries(R).forEach(([N,L])=>{S.includes(N.toLowerCase())&&h.set(N,L)})}}if(Z.hasStandardBrowserEnv&&(a&&w.isFunction(a)&&(a=a(i)),a||a!==!1&&Xo(i.url))){const R=d&&m&&Ko.read(m);R&&h.set(d,R)}return i},Yo=typeof XMLHttpRequest<"u"&&function(t){return new Promise(function(i,s){const a=nn(t);let d=a.data;const m=ne.from(a.headers).normalize();let{responseType:h,onUploadProgress:k,onDownloadProgress:R}=a,S,N,L,H,M;function E(){H&&H(),M&&M(),a.cancelToken&&a.cancelToken.unsubscribe(S),a.signal&&a.signal.removeEventListener("abort",S)}let I=new XMLHttpRequest;I.open(a.method.toUpperCase(),a.url,!0),I.timeout=a.timeout;function V(){if(!I)return;const W=ne.from("getAllResponseHeaders"in I&&I.getAllResponseHeaders()),ae={data:!h||h==="text"||h==="json"?I.responseText:I.response,status:I.status,statusText:I.statusText,headers:W,config:t,request:I};Qt(function(pe){i(pe),E()},function(pe){s(pe),E()},ae),I=null}"onloadend"in I?I.onloadend=V:I.onreadystatechange=function(){!I||I.readyState!==4||I.status===0&&!(I.responseURL&&I.responseURL.indexOf("file:")===0)||setTimeout(V)},I.onabort=function(){I&&(s(new U("Request aborted",U.ECONNABORTED,t,I)),I=null)},I.onerror=function(W){const ae=W&&W.message?W.message:"Network Error",pe=new U(ae,U.ERR_NETWORK,t,I);pe.event=W||null,s(pe),I=null},I.ontimeout=function(){let W=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const ae=a.transitional||Wt;a.timeoutErrorMessage&&(W=a.timeoutErrorMessage),s(new U(W,ae.clarifyTimeoutError?U.ETIMEDOUT:U.ECONNABORTED,t,I)),I=null},d===void 0&&m.setContentType(null),"setRequestHeader"in I&&w.forEach(m.toJSON(),function(W,ae){I.setRequestHeader(ae,W)}),w.isUndefined(a.withCredentials)||(I.withCredentials=!!a.withCredentials),h&&h!=="json"&&(I.responseType=a.responseType),R&&([L,M]=qe(R,!0),I.addEventListener("progress",L)),k&&I.upload&&([N,H]=qe(k),I.upload.addEventListener("progress",N),I.upload.addEventListener("loadend",H)),(a.cancelToken||a.signal)&&(S=W=>{I&&(s(!W||W.type?new xe(null,t,I):W),I.abort(),I=null)},a.cancelToken&&a.cancelToken.subscribe(S),a.signal&&(a.signal.aborted?S():a.signal.addEventListener("abort",S)));const Y=$o(a.url);if(Y&&Z.protocols.indexOf(Y)===-1){s(new U("Unsupported protocol "+Y+":",U.ERR_BAD_REQUEST,t));return}I.send(d||null)})},ei=(t,i)=>{const{length:s}=t=t?t.filter(Boolean):[];if(i||s){let a=new AbortController,d;const m=function(S){if(!d){d=!0,k();const N=S instanceof Error?S:this.reason;a.abort(N instanceof U?N:new xe(N instanceof Error?N.message:N))}};let h=i&&setTimeout(()=>{h=null,m(new U("timeout ".concat(i," of ms exceeded"),U.ETIMEDOUT))},i);const k=()=>{t&&(h&&clearTimeout(h),h=null,t.forEach(S=>{S.unsubscribe?S.unsubscribe(m):S.removeEventListener("abort",m)}),t=null)};t.forEach(S=>S.addEventListener("abort",m));const{signal:R}=a;return R.unsubscribe=()=>w.asap(k),R}};const ti=function*(t,i){let s=t.byteLength;if(s{const d=ni(t,i);let m=0,h,k=R=>{h||(h=!0,a&&a(R))};return new ReadableStream({async pull(R){try{const{done:S,value:N}=await d.next();if(S){k(),R.close();return}let L=N.byteLength;if(s){let H=m+=L;s(H)}R.enqueue(new Uint8Array(N))}catch(S){throw k(S),S}},cancel(R){return k(R),d.return()}},{highWaterMark:2})},rn=64*1024,{isFunction:Ve}=w,ii=(({Request:t,Response:i})=>({Request:t,Response:i}))(w.global),{ReadableStream:sn,TextEncoder:an}=w.global,un=(t,...i)=>{try{return!!t(...i)}catch(s){return!1}},ri=t=>{t=w.merge.call({skipUndefined:!0},ii,t);const{fetch:i,Request:s,Response:a}=t,d=i?Ve(i):typeof fetch=="function",m=Ve(s),h=Ve(a);if(!d)return!1;const k=d&&Ve(sn),R=d&&(typeof an=="function"?(E=>I=>E.encode(I))(new an):async E=>new Uint8Array(await new s(E).arrayBuffer())),S=m&&k&&un(()=>{let E=!1;const I=new s(Z.origin,{body:new sn,method:"POST",get duplex(){return E=!0,"half"}}).headers.has("Content-Type");return E&&!I}),N=h&&k&&un(()=>w.isReadableStream(new a("").body)),L={stream:N&&(E=>E.body)};d&&["text","arrayBuffer","blob","formData","stream"].forEach(E=>{!L[E]&&(L[E]=(I,V)=>{let Y=I&&I[E];if(Y)return Y.call(I);throw new U("Response type '".concat(E,"' is not supported"),U.ERR_NOT_SUPPORT,V)})});const H=async E=>{if(E==null)return 0;if(w.isBlob(E))return E.size;if(w.isSpecCompliantForm(E))return(await new s(Z.origin,{method:"POST",body:E}).arrayBuffer()).byteLength;if(w.isArrayBufferView(E)||w.isArrayBuffer(E))return E.byteLength;if(w.isURLSearchParams(E)&&(E=E+""),w.isString(E))return(await R(E)).byteLength},M=async(E,I)=>{const V=w.toFiniteNumber(E.getContentLength());return V!=null?V:H(I)};return async E=>{let{url:I,method:V,data:Y,signal:W,cancelToken:ae,timeout:pe,onDownloadProgress:gt,onUploadProgress:mn,responseType:_e,headers:bt,withCredentials:Je="same-origin",fetchOptions:yn}=nn(E),gn=i||fetch;_e=_e?(_e+"").toLowerCase():"text";let Xe=ei([W,ae&&ae.toAbortSignal()],pe),Ce=null;const we=Xe&&Xe.unsubscribe&&(()=>{Xe.unsubscribe()});let bn;try{if(mn&&S&&V!=="get"&&V!=="head"&&(bn=await M(bt,Y))!==0){let me=new s(I,{method:"POST",body:Y,duplex:"half"}),ke;if(w.isFormData(Y)&&(ke=me.headers.get("content-type"))&&bt.setContentType(ke),me.body){const[wt,Ke]=Zt(bn,qe(Yt(mn)));Y=on(me.body,rn,wt,Ke)}}w.isString(Je)||(Je=Je?"include":"omit");const ue=m&&"credentials"in s.prototype,wn=Pe(oe({},yn),{signal:Xe,method:V.toUpperCase(),headers:bt.normalize().toJSON(),body:Y,duplex:"half",credentials:ue?Je:void 0});Ce=m&&new s(I,wn);let he=await(m?gn(Ce,yn):gn(I,wn));const vn=N&&(_e==="stream"||_e==="response");if(N&&(gt||vn&&we)){const me={};["status","statusText","headers"].forEach(An=>{me[An]=he[An]});const ke=w.toFiniteNumber(he.headers.get("content-length")),[wt,Ke]=gt&&Zt(ke,qe(Yt(gt),!0))||[];he=new a(on(he.body,rn,wt,()=>{Ke&&Ke(),we&&we()}),me)}_e=_e||"text";let pi=await L[w.findKey(L,_e)||"text"](he,E);return!vn&&we&&we(),await new Promise((me,ke)=>{Qt(me,ke,{data:pi,headers:ne.from(he.headers),status:he.status,statusText:he.statusText,config:E,request:Ce})})}catch(ue){throw we&&we(),ue&&ue.name==="TypeError"&&/Load failed|fetch/i.test(ue.message)?Object.assign(new U("Network Error",U.ERR_NETWORK,E,Ce),{cause:ue.cause||ue}):U.from(ue,ue&&ue.code,E,Ce)}}},si=new Map,ln=t=>{let i=t?t.env:{};const{fetch:s,Request:a,Response:d}=i,m=[a,d,s];let h=m.length,k=h,R,S,N=si;for(;k--;)R=m[k],S=N.get(R),S===void 0&&N.set(R,S=k?new Map:ri(i)),N=S;return S};ln();const _t={http:To,xhr:Yo,fetch:{get:ln}};w.forEach(_t,(t,i)=>{if(t){try{Object.defineProperty(t,"name",{value:i})}catch(s){}Object.defineProperty(t,"adapterName",{value:i})}});const cn=t=>"- ".concat(t),ai=t=>w.isFunction(t)||t===null||t===!1;var dn={getAdapter:(t,i)=>{t=w.isArray(t)?t:[t];const{length:s}=t;let a,d;const m={};for(let h=0;h"adapter ".concat(R," ")+(S===!1?"is not supported by the environment":"is not available in the build"));let k=s?h.length>1?"since :\n"+h.map(cn).join("\n"):" "+cn(h[0]):"as no adapter specified";throw new U("There is no suitable adapter to dispatch the request "+k,"ERR_NOT_SUPPORT")}return d},adapters:_t};function ht(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new xe(null,t)}function fn(t){return ht(t),t.headers=ne.from(t.headers),t.data=pt.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),dn.getAdapter(t.adapter||dt.adapter,t)(t).then(function(i){return ht(t),i.data=pt.call(t,t.transformResponse,i),i.headers=ne.from(i.headers),i},function(i){return Kt(i)||(ht(t),i&&i.response&&(i.response.data=pt.call(t,t.transformResponse,i.response),i.response.headers=ne.from(i.response.headers))),Promise.reject(i)})}const pn="1.12.2",Ge={};["object","boolean","number","function","string","symbol"].forEach((t,i)=>{Ge[t]=function(s){return typeof s===t||"a"+(i<1?"n ":" ")+t}});const _n={};Ge.transitional=function(t,i,s){function a(d,m){return"[Axios v"+pn+"] Transitional option '"+d+"'"+m+(s?". "+s:"")}return(d,m,h)=>{if(t===!1)throw new U(a(m," has been removed"+(i?" in "+i:"")),U.ERR_DEPRECATED);return i&&!_n[m]&&(_n[m]=!0,console.warn(a(m," has been deprecated since v"+i+" and will be removed in the near future"))),t?t(d,m,h):!0}},Ge.spelling=function(t){return(i,s)=>(console.warn("".concat(s," is likely a misspelling of ").concat(t)),!0)};function ui(t,i,s){if(typeof t!="object")throw new U("options must be an object",U.ERR_BAD_OPTION_VALUE);const a=Object.keys(t);let d=a.length;for(;d-- >0;){const m=a[d],h=i[m];if(h){const k=t[m],R=k===void 0||h(k,m,t);if(R!==!0)throw new U("option "+m+" must be "+R,U.ERR_BAD_OPTION_VALUE);continue}if(s!==!0)throw new U("Unknown option "+m,U.ERR_BAD_OPTION)}}var ze={assertOptions:ui,validators:Ge};const se=ze.validators;class $e{constructor(i){this.defaults=i||{},this.interceptors={request:new $t,response:new $t}}async request(i,s){try{return await this._request(i,s)}catch(a){if(a instanceof Error){let d={};Error.captureStackTrace?Error.captureStackTrace(d):d=new Error;const m=d.stack?d.stack.replace(/^.+\n/,""):"";try{a.stack?m&&!String(a.stack).endsWith(m.replace(/^.+\n.+\n/,""))&&(a.stack+="\n"+m):a.stack=m}catch(h){}}throw a}}_request(i,s){typeof i=="string"?(s=s||{},s.url=i):s=i||{},s=be(this.defaults,s);const{transitional:a,paramsSerializer:d,headers:m}=s;a!==void 0&&ze.assertOptions(a,{silentJSONParsing:se.transitional(se.boolean),forcedJSONParsing:se.transitional(se.boolean),clarifyTimeoutError:se.transitional(se.boolean)},!1),d!=null&&(w.isFunction(d)?s.paramsSerializer={serialize:d}:ze.assertOptions(d,{encode:se.function,serialize:se.function},!0)),s.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?s.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:s.allowAbsoluteUrls=!0),ze.assertOptions(s,{baseUrl:se.spelling("baseURL"),withXsrfToken:se.spelling("withXSRFToken")},!0),s.method=(s.method||this.defaults.method||"get").toLowerCase();let h=m&&w.merge(m.common,m[s.method]);m&&w.forEach(["delete","get","head","post","put","patch","common"],E=>{delete m[E]}),s.headers=ne.concat(h,m);const k=[];let R=!0;this.interceptors.request.forEach(function(E){typeof E.runWhen=="function"&&E.runWhen(s)===!1||(R=R&&E.synchronous,k.unshift(E.fulfilled,E.rejected))});const S=[];this.interceptors.response.forEach(function(E){S.push(E.fulfilled,E.rejected)});let N,L=0,H;if(!R){const E=[fn.bind(this),void 0];for(E.unshift(...k),E.push(...S),H=E.length,N=Promise.resolve(s);L{if(!a._listeners)return;let m=a._listeners.length;for(;m-- >0;)a._listeners[m](d);a._listeners=null}),this.promise.then=d=>{let m;const h=new Promise(k=>{a.subscribe(k),m=k}).then(d);return h.cancel=function(){a.unsubscribe(m)},h},i(function(d,m,h){a.reason||(a.reason=new xe(d,m,h),s(a.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(i){if(this.reason){i(this.reason);return}this._listeners?this._listeners.push(i):this._listeners=[i]}unsubscribe(i){if(!this._listeners)return;const s=this._listeners.indexOf(i);s!==-1&&this._listeners.splice(s,1)}toAbortSignal(){const i=new AbortController,s=a=>{i.abort(a)};return this.subscribe(s),i.signal.unsubscribe=()=>this.unsubscribe(s),i.signal}static source(){let i;return{token:new mt(function(s){i=s}),cancel:i}}}var li=mt;function ci(t){return function(i){return t.apply(null,i)}}function di(t){return w.isObject(t)&&t.isAxiosError===!0}const yt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(yt).forEach(([t,i])=>{yt[i]=t});var fi=yt;function hn(t){const i=new We(t),s=c(We.prototype.request,i);return w.extend(s,We.prototype,i,{allOwnKeys:!0}),w.extend(s,i,null,{allOwnKeys:!0}),s.create=function(a){return hn(be(t,a))},s}const $=hn(dt);return $.Axios=We,$.CanceledError=xe,$.CancelToken=li,$.isCancel=Kt,$.VERSION=pn,$.toFormData=Me,$.AxiosError=U,$.Cancel=$.CanceledError,$.all=function(t){return Promise.all(t)},$.spread=ci,$.isAxiosError=di,$.mergeConfig=be,$.AxiosHeaders=ne,$.formToJSON=t=>Jt(w.isHTMLForm(t)?new FormData(t):t),$.getAdapter=dn.getAdapter,$.HttpStatusCode=fi,$.default=$,Ot=$,Ot}var Hn={},qn;function Ar(){return qn||(qn=1,function(c){Object.defineProperty(c,Symbol.toStringTag,{value:"Module"});const y=(n,r)=>A(n,"",r),o=n=>"/remote.php/"+n,l=(n,r)=>{var u;return((u=r==null?void 0:r.baseURL)!=null?u:T())+o(n)},p=(n,r,u)=>{var _;const g=Object.assign({ocsVersion:2},u||{}).ocsVersion===1?1:2;return((_=u==null?void 0:u.baseURL)!=null?_:T())+"/ocs/v"+g+".php"+b(n,r,u)},b=(n,r,u)=>{const _=Object.assign({escape:!0},u||{}),g=function(f,x){return x=x||{},f.replace(/{([^{}]*)}/g,function(C,F){const q=x[F];return _.escape?encodeURIComponent(typeof q=="string"||typeof q=="number"?q.toString():C):typeof q=="string"||typeof q=="number"?q.toString():C})};return n.charAt(0)!=="/"&&(n="/"+n),g(n,r||{})},v=(n,r,u)=>{var _,g,f;const x=Object.assign({noRewrite:!1},u||{}),C=(_=u==null?void 0:u.baseURL)!=null?_:B();return((f=(g=window==null?void 0:window.OC)==null?void 0:g.config)==null?void 0:f.modRewriteWorking)===!0&&!x.noRewrite?C+b(n,r,u):C+"/index.php"+b(n,r,u)},O=(n,r)=>r.includes(".")?A(n,"img",r):A(n,"img","".concat(r,".svg")),A=(n,r,u)=>{var _,g,f;const x=(f=(g=(_=window==null?void 0:window.OC)==null?void 0:_.coreApps)==null?void 0:g.includes(n))!=null?f:!1,C=u.slice(-3)==="php";let F=B();return C&&!x?(F+="/index.php/apps/".concat(n),r&&(F+="/".concat(encodeURI(r))),u!=="index.php"&&(F+="/".concat(u))):!C&&!x?(F=e(n),r&&(F+="/".concat(r,"/")),F.at(-1)!=="/"&&(F+="/"),F+=u):((n==="settings"||n==="core"||n==="search")&&r==="ajax"&&(F+="/index.php"),n&&(F+="/".concat(n)),r&&(F+="/".concat(r)),F+="/".concat(u)),F},T=()=>window.location.protocol+"//"+window.location.host+B();function B(){let n=window._oc_webroot;if(typeof n>"u"){n=location.pathname;const r=n.indexOf("/index.php/");if(r!==-1)n=n.slice(0,r);else{const u=n.indexOf("/",1);n=n.slice(0,u>0?u:void 0)}}return n}function e(n){var r,u;return(u=((r=window._oc_appswebroots)!=null?r:{})[n])!=null?u:""}c.generateFilePath=A,c.generateOcsUrl=p,c.generateRemoteUrl=l,c.generateUrl=v,c.getAppRootUrl=e,c.getBaseUrl=T,c.getRootUrl=B,c.imagePath=O,c.linkTo=y}(Hn)),Hn}var Vn;function Tr(){return Vn||(Vn=1,function(c){var n;Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=wr(),o=vr(),l=Ar(),p=(r=>r&&r.__esModule?r:{default:r})(o),b=p.default.create({headers:{requesttoken:(n=y.getRequestToken())!=null?n:"","X-Requested-With":"XMLHttpRequest"}});y.onRequestTokenUpdate(r=>{b.defaults.headers.requesttoken=r});const v=Object.assign(b,{CancelToken:p.default.CancelToken,isCancel:p.default.isCancel}),O=Symbol("csrf-retry");function A(r){return async u=>{var C;if(!o.isAxiosError(u))throw u;const{config:_,response:g,request:f}=u,x=f==null?void 0:f.responseURL;if(_&&!_[O]&&(g==null?void 0:g.status)===412&&((C=g==null?void 0:g.data)==null?void 0:C.message)==="CSRF check failed"){console.warn("Request to ".concat(x," failed because of a CSRF mismatch. Fetching a new token"));const{data:{token:F}}=await r.get(l.generateUrl("/csrftoken"));return console.debug("New request token ".concat(F," fetched")),r.defaults.headers.requesttoken=F,r(Pe(oe({},_),{headers:Pe(oe({},_.headers),{requesttoken:F}),[O]:!0}))}throw u}}const T=Symbol("retryDelay");function B(r){return async u=>{if(!o.isAxiosError(u))throw u;const{config:_,response:g,request:f}=u,x=f==null?void 0:f.responseURL,C=g==null?void 0:g.status,F=g==null?void 0:g.headers;let q=typeof(_==null?void 0:_[T])=="number"?_==null?void 0:_[T]:1;if(C===503&&(F==null?void 0:F["x-nextcloud-maintenance-mode"])==="1"&&(_!=null&&_.retryIfMaintenanceMode)){if(q*=2,q>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:x}),u;return console.warn("Request to ".concat(x," failed because of maintenance mode. Retrying in ").concat(q,"s")),await new Promise(re=>{setTimeout(re,q*1e3)}),r(Pe(oe({},_),{[T]:q}))}throw u}}async function e(r){var u;if(o.isAxiosError(r)){const{config:_,response:g,request:f}=r,x=f==null?void 0:f.responseURL;(g==null?void 0:g.status)===401&&((u=g==null?void 0:g.data)==null?void 0:u.message)==="Current user is not logged in"&&(_!=null&&_.reloadExpiredSession)&&(window!=null&&window.location)&&(console.error("Request to ".concat(x," failed because the user session expired. Reloading the page …")),window.location.reload())}throw r}v.interceptors.response.use(r=>r,A(v)),v.interceptors.response.use(r=>r,B(v)),v.interceptors.response.use(r=>r,e),Object.defineProperty(c,"isAxiosError",{enumerable:!0,get:()=>o.isAxiosError}),Object.defineProperty(c,"isCancel",{enumerable:!0,get:()=>o.isCancel}),c.default=v}(Fn)),Fn}var Gn;function xr(){if(Gn)return Ae;Gn=1;var c=Ae&&Ae.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(Ae,"__esModule",{value:!0}),Ae.getSupportedTypes=p,Ae.listen=b;const y=gr(),o=c(Tr()),l=Qn();function p(){const A=(0,y.getCapabilities)();return A.notify_push?A.notify_push.type:[]}function b(A,T,B={}){return v(B),window._notify_push_listeners[A]||(window._notify_push_listeners[A]=[]),window._notify_push_listeners[A].push(T),window._notify_push_ws!==null&&typeof window._notify_push_ws=="object"&&window._notify_push_ready?window._notify_push_ws.send("listen "+A):O(B),window._notify_push_available}function v(A={}){typeof window._notify_push_listeners>"u"&&(window._notify_push_listeners={},window._notify_push_ws=null,window._notify_push_online=!0,window._notify_push_available=!1,window._notify_push_error_count=0,window._notify_push_ready=!1,(0,l.subscribe)("networkOffline",()=>{window._notify_push_online=!1,window._notify_push_ws=null,window._notify_push_ready=!1}),(0,l.subscribe)("networkOnline",()=>{window._notify_push_error_count=0,window._notify_push_online=!0,O(A)}))}async function O(A={}){if(window._notify_push_ws)return!0;window._notify_push_ws=!0;const T=(0,y.getCapabilities)();if(!T.notify_push)return window._notify_push_available=!1,window._notify_push_ws=null,!1;window._notify_push_available=!0;let B;return A.credentials||(B=(await o.default.post(T.notify_push.endpoints.pre_auth)).data),window._notify_push_ws=new WebSocket(T.notify_push.endpoints.websocket),window._notify_push_ws.onopen=()=>{if(typeof window._notify_push_ws=="object"&&window._notify_push_ws){B?(window._notify_push_ws.send(""),window._notify_push_ws.send(B)):A.credentials&&(window._notify_push_ws.send(A.credentials.username),window._notify_push_ws.send(A.credentials.password)),window._notify_push_ready=!0;for(let e in window._notify_push_listeners)window._notify_push_ws.send("listen "+e)}},window._notify_push_ws.onmessage=e=>{if(e.data==="authenticated")window._notify_push_error_count=0;else{const n=e.data.indexOf(" ");let[r,u]=n>0?[e.data.slice(0,n),e.data.slice(n+1)]:[e.data,null];if(u&&(u=JSON.parse(u)),window._notify_push_listeners[r])for(let _ of window._notify_push_listeners[r])_(r,u)}},window._notify_push_ws.onerror=window._notify_push_ws.onclose=()=>{window._notify_push_ws=null,window._notify_push_error_count+=1,window._notify_push_ready=!1,setTimeout(()=>{window._notify_push_online&&O(A)},1e3*window._notify_push_error_count)},!0}return Ae}var kr=xr();const Sr={name:"BellOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Or=["aria-hidden","aria-label"],Er=["fill","width","height"],Nr={d:"M10 21H14C14 22.1 13.1 23 12 23S10 22.1 10 21M21 19V20H3V19L5 17V11C5 7.9 7 5.2 10 4.3V4C10 2.9 10.9 2 12 2S14 2.9 14 4V4.3C17 5.2 19 7.9 19 11V17L21 19M17 11C17 8.2 14.8 6 12 6S7 8.2 7 11V18H17V11Z"},Rr={key:0};function Ir(c,y,o,l,p,b){return P(),j("span",Fe(c.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon bell-outline-icon",role:"img",onClick:y[0]||(y[0]=v=>c.$emit("click",v))}),[(P(),j("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[X("path",Nr,[o.title?(P(),j("title",Rr,G(o.title),1)):z("",!0)])],8,Er))],16,Or)}const Cr=de(Sr,[["render",Ir]]),Pr={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Br=["aria-hidden","aria-label"],Fr=["fill","width","height"],jr={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},Lr={key:0};function Ur(c,y,o,l,p,b){return P(),j("span",Fe(c.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon close-icon",role:"img",onClick:y[0]||(y[0]=v=>c.$emit("click",v))}),[(P(),j("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[X("path",jr,[o.title?(P(),j("title",Lr,G(o.title),1)):z("",!0)])],8,Fr))],16,Br)}const Zn=de(Pr,[["render",Ur]]),Mr={name:"MessageOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Dr=["aria-hidden","aria-label"],Hr=["fill","width","height"],qr={d:"M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16Z"},Vr={key:0};function Gr(c,y,o,l,p,b){return P(),j("span",Fe(c.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon message-outline-icon",role:"img",onClick:y[0]||(y[0]=v=>c.$emit("click",v))}),[(P(),j("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[X("path",qr,[o.title?(P(),j("title",Vr,G(o.title),1)):z("",!0)])],8,Hr))],16,Dr)}const Yn=de(Mr,[["render",Gr]]),zr={name:"BellIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$r=["aria-hidden","aria-label"],Wr=["fill","width","height"],Jr={d:"M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21A2,2 0 0,1 12,23A2,2 0 0,1 10,21"},Xr={key:0};function Kr(c,y,o,l,p,b){return P(),j("span",Fe(c.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon bell-icon",role:"img",onClick:y[0]||(y[0]=v=>c.$emit("click",v))}),[(P(),j("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[X("path",Jr,[o.title?(P(),j("title",Xr,G(o.title),1)):z("",!0)])],8,Wr))],16,$r)}const Qr=de(zr,[["render",Kr]]),Zr={key:0,class:"notifications-button__icon"},Yr=["width","height"],es={__name:"IconNotification",props:{showDot:{type:Boolean,default:!1},showWarning:{type:Boolean,default:!1},size:{type:Number,default:20}},setup(c){var v;const y=(v=Fi())==null?void 0:v.theming,o=/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;function l(O){const A=parseInt(O.substring(1,3),16)/255,T=parseInt(O.substring(3,5),16)/255,B=parseInt(O.substring(5,7),16)/255,e=Math.max(A,T,B),n=Math.min(A,T,B);let r=0,u=0;const _=(e+n)/2;if(e!==n){const g=e-n;switch(u=_>.5?g/(2-e-n):g/(e+n),e){case A:r=(T-B)/g+(T{if(!(y!=null&&y.color)||!o.test(y==null?void 0:y.color))return!1;const[O,A,T]=l(y.color);return(O>=330||O<=15)&&A>.4&&(T>.1||T<.6)}),b=te(()=>{if(!(y!=null&&y.color)||!o.test(y==null?void 0:y.color))return!1;const[O,A,T]=l(y.color);return(O>=305||O<=64)&&A>.7&&(T>.1||T<.6)});return(O,A)=>c.showDot||c.showWarning?(P(),j("span",Zr,[(P(),j("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1",width:c.size,height:c.size,viewBox:"0 0 24 24",fill:"currentColor"},[A[0]||(A[0]=X("path",{d:"M 19,11.79 C 18.5,11.92 18,12 17.5,12 14.47,12 12,9.53 12,6.5 12,5.03 12.58,3.7 13.5,2.71 13.15,2.28 12.61,2 12,2 10.9,2 10,2.9 10,4 V 4.29 C 7.03,5.17 5,7.9 5,11 v 6 l -2,2 v 1 H 21 V 19 L 19,17 V 11.79 M 12,23 c 1.11,0 2,-0.89 2,-2 h -4 c 0,1.11 0.9,2 2,2 z"},null,-1)),X("path",{class:Pt(["notification__dot",{"notification__dot--warning":c.showWarning&&!b.value,"notification__dot--white":p.value||c.showWarning&&b.value}]),d:"M 21,6.5 C 21,8.43 19.43,10 17.5,10 15.57,10 14,8.43 14,6.5 14,4.57 15.57,3 17.5,3 19.43,3 21,4.57 21,6.5"},null,2)],8,Yr))])):(P(),Q(Qr,{key:1,class:"notifications-button__icon",size:c.size},null,8,["size"]))}},ts={__name:"ActionButton",props:{action:{type:Object,required:!0}},emits:["click"],setup(c,{emit:y}){const o=c,l=y,p=te(()=>o.action.type==="WEB");function b(v){const O={url:o.action.link,type:o.action.type||"GET"};l("click",{event:v,action:O})}return(v,O)=>(P(),Q(ye(tt),{variant:p.value||c.action.primary?"primary":"secondary",href:p.value?c.action.link:void 0,class:"action-button pull-right",onClick:b},{default:J(()=>[Be(G(c.action.label),1)]),_:1},8,["variant","href"]))}},ns={name:"DefaultParameter",props:{type:{type:String,required:!0},id:{type:[Number,String],required:!0},name:{type:String,required:!0},link:{type:String,default:""}},computed:{hasInternalLink(){return this.link&&(this.type==="deck-board"||this.type==="deck-card")}}},os=["href"],is=["href"],rs={key:2};function ss(c,y,o,l,p,b){return b.hasInternalLink?(P(),j("a",{key:0,href:o.link},[X("strong",null,G(o.name),1)],8,os)):o.link?(P(),j("a",{key:1,href:o.link,class:"external",target:"_blank",rel:"noopener noreferrer"},[X("strong",null,G(o.name),1)],8,is)):(P(),j("strong",rs,G(o.name),1))}const as=de(ns,[["render",ss],["__scopeId","data-v-9803ab31"]]),us={name:"FileParameter",props:{type:{type:String,required:!0},id:{type:[Number,String],required:!0},name:{type:String,required:!0},path:{type:String,default:""},link:{type:String,default:""}},computed:{title(){const c=this.path.lastIndexOf("/"),y=this.path.indexOf("/"),o=this.path.substring(y===0?1:0,c);return o.length===0?"":le("notifications","in {path}",{path:o})}}},ls=["title","href"];function cs(c,y,o,l,p,b){return P(),j("a",{title:b.title,class:"filename",href:o.link},G(o.name),9,ls)}const ds=de(us,[["render",cs]]),fs={name:"UserParameter",components:{NcUserBubble:mr},props:{type:{type:String,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},server:{type:String,default:""}},computed:{cloudId(){return this.server?this.id+"@"+this.server:""}}},ps={class:"mention"},_s=["title"];function hs(c,y,o,l,p,b){const v=ee("NcUserBubble");return P(),j("div",ps,[b.cloudId?(P(),j("strong",{key:1,title:b.cloudId},G(o.name),9,_s)):(P(),Q(v,{key:0,"display-name":o.name,user:o.id},null,8,["display-name","user"]))])}const ms=de(fs,[["render",hs],["__scopeId","data-v-85edf4b2"]]),ys={name:"NotificationItem",components:{ActionButton:ts,NcButton:tt,NcDateTime:or,IconClose:Zn,IconMessageOutline:Yn,NcRichText:ji},props:{notification:{type:Object,required:!0}},emits:["remove"],data(){return{showFullMessage:!1}},computed:{timestamp(){return this.notification.datetime==="warning"?0:new Date(this.notification.datetime).valueOf()},useLink(){if(!this.notification.link)return!1;let c=!1;return Object.keys(Object(this.notification.subjectRichParameters)).forEach(y=>{Object(this.notification.subjectRichParameters)[y].link&&(c=!0)}),!c},preparedSubjectParameters(){return this.prepareParameters(this.notification.subjectRichParameters)},preparedMessageParameters(){return this.prepareParameters(this.notification.messageRichParameters)},isCollapsedMessage(){return this.notification.message.length>200&&!this.showFullMessage}},methods:{t:le,prepareParameters(c={}){const y={};return Object.keys(c).forEach(o=>{const l=c[o].type;l==="user"?y[o]={component:ms,props:c[o]}:l==="file"?y[o]={component:ds,props:c[o]}:y[o]={component:as,props:c[o]}}),y},onClickMessage(c){c.target.closest(".rich-text--wrapper")?this.showFullMessage=!this.showFullMessage:!this.notification.messageRich&&this.notification.message&&(this.showFullMessage=!this.showFullMessage)},async onClickAction({event:c,action:y}){try{const o={cancelAction:!1,notification:this.notification,action:y};if(await Ze("notifications:action:execute",o),y.type==="WEB"){o.cancelAction&&c.preventDefault();return}if(o.cancelAction)return;await Qe({method:y.type,url:y.url}),this.$emit("remove"),Ze("notifications:action:executed",c)}catch(o){console.error("Failed to perform action",o),Rt(le("notifications","Failed to perform action"))}},onDismissNotification(){Qe.delete(Ct("apps/notifications/api/v2/notifications/{id}",{id:this.notification.notificationId})).then(()=>{this.$emit("remove")}).catch(()=>{Rt(le("notifications","Failed to dismiss notification"))})}}},gs=["data-id","data-timestamp","data-object-type","data-app"],bs={class:"notification-heading"},ws=["href"],vs={key:0,class:"image"},As=["src"],Ts={class:"subject"},xs=["href"],ks={key:0,class:"image"},Ss=["src"],Os={key:2,class:"subject"},Es={key:2,class:"notification-subject"},Ns={key:0,class:"image"},Rs=["src"],Is={key:2,class:"subject"},Cs={key:1},Ps={key:0,class:"notification-overflow"},Bs={key:4,class:"notification-actions"},Fs={key:5,class:"notification-actions"};function js(c,y,o,l,p,b){const v=ee("NcDateTime"),O=ee("IconClose"),A=ee("NcButton"),T=ee("NcRichText"),B=ee("ActionButton"),e=ee("IconMessageOutline");return P(),j("li",{class:"notification","data-id":o.notification.notificationId,"data-timestamp":b.timestamp,"data-object-type":o.notification.objectType,"data-app":o.notification.app},[X("div",bs,[b.timestamp?(P(),Q(v,{key:0,class:"notification-time","ignore-seconds":"",format:{timeStyle:"short",dateStyle:"long"},timestamp:b.timestamp},null,8,["timestamp"])):z("",!0),b.timestamp?(P(),Q(A,{key:1,class:"notification-dismiss-button",variant:"tertiary","aria-label":b.t("notifications","Dismiss"),onClick:b.onDismissNotification},{icon:J(()=>[ie(O,{size:20})]),_:1},8,["aria-label","onClick"])):z("",!0)]),o.notification.externalLink?(P(),j("a",{key:0,href:o.notification.externalLink,class:"notification-subject full-subject-link external",target:"_blank",rel:"noreferrer noopener"},[o.notification.icon?(P(),j("span",vs,[X("img",{src:o.notification.icon,class:"notification-icon",alt:""},null,8,As)])):z("",!0),X("span",Ts,G(o.notification.subject)+" ↗",1)],8,ws)):b.useLink?(P(),j("a",{key:1,href:o.notification.link,class:"notification-subject full-subject-link"},[o.notification.icon?(P(),j("span",ks,[X("img",{src:o.notification.icon,class:"notification-icon",alt:""},null,8,Ss)])):z("",!0),o.notification.subjectRich?(P(),Q(T,{key:1,text:o.notification.subjectRich,arguments:b.preparedSubjectParameters},null,8,["text","arguments"])):(P(),j("span",Os,G(o.notification.subject),1))],8,xs)):(P(),j("div",Es,[o.notification.icon?(P(),j("span",Ns,[X("img",{src:o.notification.icon,class:"notification-icon",alt:""},null,8,Rs)])):z("",!0),o.notification.subjectRich?(P(),Q(T,{key:1,text:o.notification.subjectRich,arguments:b.preparedSubjectParameters},null,8,["text","arguments"])):(P(),j("span",Is,G(o.notification.subject),1))])),o.notification.message?(P(),j("div",{key:3,class:"notification-message",onClick:y[0]||(y[0]=(...n)=>b.onClickMessage&&b.onClickMessage(...n))},[X("div",{class:Pt(["message-container",{collapsed:b.isCollapsedMessage}])},[o.notification.messageRich?(P(),Q(T,{key:0,text:o.notification.messageRich,arguments:b.preparedMessageParameters,autolink:!0},null,8,["text","arguments"])):(P(),j("span",Cs,G(o.notification.message),1))],2),b.isCollapsedMessage?(P(),j("div",Ps)):z("",!0)])):z("",!0),o.notification.actions.length?(P(),j("div",Bs,[(P(!0),j(Xn,null,Kn(o.notification.actions,(n,r)=>(P(),Q(B,{key:r,action:n,onClick:b.onClickAction,onRemove:y[1]||(y[1]=u=>c.$emit("remove"))},null,8,["action","onClick"]))),128))])):o.notification.externalLink?(P(),j("div",Fs,[ie(A,{variant:"primary",href:"https://nextcloud.com/fairusepolicy",class:"action-button pull-right",target:"_blank",rel:"noreferrer noopener"},{icon:J(()=>[ie(e,{size:20})]),default:J(()=>[Be(" "+G(b.t("notifications","Contact Nextcloud GmbH"))+" ↗ ",1)]),_:1})])):z("",!0)],8,gs)}const Ls=de(ys,[["render",js],["__scopeId","data-v-58882784"]]);async function eo(c,y,o,l){const p=parseInt(K.getItem("lastUpdated"),10),b=K.getItem("tabId"),v=Math.floor(Date.now()/1e3);return(o||b===c&&p+25=0&&e<=1){if(n._volume=e,n._muted)return n;n.usingWebAudio&&n.masterGain.gain.setValueAtTime(e,o.ctx.currentTime);for(var r=0;r=0;n--)e._howls[n].unload();return e.usingWebAudio&&e.ctx&&typeof e.ctx.close<"u"&&(e.ctx.close(),e.ctx=null,B()),e},codecs:function(e){return(this||o)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||o;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if(typeof Audio<"u")try{var n=new Audio;typeof n.oncanplaythrough>"u"&&(e._canPlayEvent="canplay")}catch(r){e.noAudio=!0}else e.noAudio=!0;try{var n=new Audio;n.muted&&(e.noAudio=!0)}catch(r){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||o,n=null;try{n=typeof Audio<"u"?new Audio:null}catch(F){return e}if(!n||typeof n.canPlayType!="function")return e;var r=n.canPlayType("audio/mpeg;").replace(/^no$/,""),u=e._navigator?e._navigator.userAgent:"",_=u.match(/OPR\/(\d+)/g),g=_&&parseInt(_[0].split("/")[1],10)<33,f=u.indexOf("Safari")!==-1&&u.indexOf("Chrome")===-1,x=u.match(/Version\/(.*?) /),C=f&&x&&parseInt(x[1],10)<15;return e._codecs={mp3:!!(!g&&(r||n.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!r,opus:!!n.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!n.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!n.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(n.canPlayType('audio/wav; codecs="1"')||n.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!n.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!n.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(n.canPlayType("audio/x-m4a;")||n.canPlayType("audio/m4a;")||n.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(n.canPlayType("audio/x-m4b;")||n.canPlayType("audio/m4b;")||n.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(n.canPlayType("audio/x-mp4;")||n.canPlayType("audio/mp4;")||n.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!C&&n.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!C&&n.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!n.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(n.canPlayType("audio/x-flac;")||n.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||o;if(!(e._audioUnlocked||!e.ctx)){e._audioUnlocked=!1,e.autoUnlock=!1,!e._mobileUnloaded&&e.ctx.sampleRate!==44100&&(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var n=function(r){for(;e._html5AudioPool.length"u"?C.noteOn(0):C.start(0),typeof e.ctx.resume=="function"&&e.ctx.resume(),C.onended=function(){C.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",n,!0),document.removeEventListener("touchend",n,!0),document.removeEventListener("click",n,!0),document.removeEventListener("keydown",n,!0);for(var F=0;F"u"||!o.usingWebAudio)){for(var n=0;n"u"||!o.usingWebAudio))return e.state==="running"&&e.ctx.state!=="interrupted"&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):e.state==="suspended"||e.state==="running"&&e.ctx.state==="interrupted"?(e.ctx.resume().then(function(){e.state="running";for(var n=0;n"u"&&(e="__default",!r._playLock)){for(var _=0,g=0;g0?f._seek:r._sprite[e][0]/1e3),F=Math.max(0,(r._sprite[e][0]+r._sprite[e][1])/1e3-C),q=F*1e3/Math.abs(f._rate),re=r._sprite[e][0]/1e3,Te=(r._sprite[e][0]+r._sprite[e][1])/1e3;f._sprite=e,f._ended=!1;var Ne=function(){f._paused=!1,f._seek=C,f._start=re,f._stop=Te,f._loop=!!(f._loop||r._sprite[e][2])};if(C>=Te){r._ended(f);return}var D=f._node;if(r._webAudio){var je=function(){r._playLock=!1,Ne(),r._refreshBuffer(f);var fe=f._muted||r._muted?0:f._volume;D.gain.setValueAtTime(fe,o.ctx.currentTime),f._playStart=o.ctx.currentTime,typeof D.bufferSource.start>"u"?f._loop?D.bufferSource.noteGrainOn(0,C,86400):D.bufferSource.noteGrainOn(0,C,F):f._loop?D.bufferSource.start(0,C,86400):D.bufferSource.start(0,C,F),q!==1/0&&(r._endTimers[f._id]=setTimeout(r._ended.bind(r,f),q)),n||setTimeout(function(){r._emit("play",f._id),r._loadQueue()},0)};o.state==="running"&&o.ctx.state!=="interrupted"?je():(r._playLock=!0,r.once("resume",je),r._clearTimer(f._id))}else{var Le=function(){D.currentTime=C,D.muted=f._muted||r._muted||o._muted||D.muted,D.volume=f._volume*o.volume(),D.playbackRate=f._rate;try{var fe=D.play();if(fe&&typeof Promise<"u"&&(fe instanceof Promise||typeof fe.then=="function")?(r._playLock=!0,Ne(),fe.then(function(){r._playLock=!1,D._unlocked=!0,n?r._loadQueue():r._emit("play",f._id)}).catch(function(){r._playLock=!1,r._emit("playerror",f._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),f._ended=!0,f._paused=!0})):n||(r._playLock=!1,Ne(),r._emit("play",f._id)),D.playbackRate=f._rate,D.paused){r._emit("playerror",f._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}e!=="__default"||f._loop?r._endTimers[f._id]=setTimeout(r._ended.bind(r,f),q):(r._endTimers[f._id]=function(){r._ended(f),D.removeEventListener("ended",r._endTimers[f._id],!1)},D.addEventListener("ended",r._endTimers[f._id],!1))}catch(it){r._emit("playerror",f._id,it)}};D.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(D.src=r._src,D.load());var ot=window&&window.ejecta||!D.readyState&&o._navigator.isCocoonJS;if(D.readyState>=3||ot)Le();else{r._playLock=!0,r._state="loading";var Ue=function(){r._state="loaded",Le(),D.removeEventListener(o._canPlayEvent,Ue,!1)};D.addEventListener(o._canPlayEvent,Ue,!1),r._clearTimer(f._id)}}return f._id},pause:function(e){var n=this;if(n._state!=="loaded"||n._playLock)return n._queue.push({event:"pause",action:function(){n.pause(e)}}),n;for(var r=n._getSoundIds(e),u=0;u"u"?_._node.bufferSource.noteOff(0):_._node.bufferSource.stop(0),n._cleanBuffer(_._node)}else(!isNaN(_._node.duration)||_._node.duration===1/0)&&_._node.pause();arguments[1]||n._emit("pause",_?_._id:null)}return n},stop:function(e,n){var r=this;if(r._state!=="loaded"||r._playLock)return r._queue.push({event:"stop",action:function(){r.stop(e)}}),r;for(var u=r._getSoundIds(e),_=0;_"u"?g._node.bufferSource.noteOff(0):g._node.bufferSource.stop(0),r._cleanBuffer(g._node)):(!isNaN(g._node.duration)||g._node.duration===1/0)&&(g._node.currentTime=g._start||0,g._node.pause(),g._node.duration===1/0&&r._clearSound(g._node))),n||r._emit("stop",g._id))}return r},mute:function(e,n){var r=this;if(r._state!=="loaded"||r._playLock)return r._queue.push({event:"mute",action:function(){r.mute(e,n)}}),r;if(typeof n>"u")if(typeof e=="boolean")r._muted=e;else return r._muted;for(var u=r._getSoundIds(n),_=0;_"u"){var _=e._getSoundIds(),g=_.indexOf(n[0]);g>=0?u=parseInt(n[0],10):r=parseFloat(n[0])}else n.length>=2&&(r=parseFloat(n[0]),u=parseInt(n[1],10));var f;if(typeof r<"u"&&r>=0&&r<=1){if(e._state!=="loaded"||e._playLock)return e._queue.push({event:"volume",action:function(){e.volume.apply(e,n)}}),e;typeof u>"u"&&(e._volume=r),u=e._getSoundIds(u);for(var x=0;x"u")}}return _},_startFadeInterval:function(e,n,r,u,_,g){var f=this,x=n,C=r-n,F=Math.abs(C/.01),q=Math.max(4,F>0?u/F:u),re=Date.now();e._fadeTo=r,e._interval=setInterval(function(){var Te=(Date.now()-re)/u;re=Date.now(),x+=C*Te,x=Math.round(x*100)/100,C<0?x=Math.max(r,x):x=Math.min(r,x),f._webAudio?e._volume=x:f.volume(x,e._id,!0),g&&(f._volume=x),(rn&&x>=r)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,f.volume(r,e._id),f._emit("fade",e._id))},q)},_stopFade:function(e){var n=this,r=n._soundById(e);return r&&r._interval&&(n._webAudio&&r._node.gain.cancelScheduledValues(o.ctx.currentTime),clearInterval(r._interval),r._interval=null,n.volume(r._fadeTo,e),r._fadeTo=null,n._emit("fade",e)),n},loop:function(){var e=this,n=arguments,r,u,_;if(n.length===0)return e._loop;if(n.length===1)if(typeof n[0]=="boolean")r=n[0],e._loop=r;else return _=e._soundById(parseInt(n[0],10)),_?_._loop:!1;else n.length===2&&(r=n[0],u=parseInt(n[1],10));for(var g=e._getSoundIds(u),f=0;f=0?u=parseInt(n[0],10):r=parseFloat(n[0])}else n.length===2&&(r=parseFloat(n[0]),u=parseInt(n[1],10));var f;if(typeof r=="number"){if(e._state!=="loaded"||e._playLock)return e._queue.push({event:"rate",action:function(){e.rate.apply(e,n)}}),e;typeof u>"u"&&(e._rate=r),u=e._getSoundIds(u);for(var x=0;x=0?u=parseInt(n[0],10):e._sounds.length&&(u=e._sounds[0]._id,r=parseFloat(n[0]))}else n.length===2&&(r=parseFloat(n[0]),u=parseInt(n[1],10));if(typeof u>"u")return 0;if(typeof r=="number"&&(e._state!=="loaded"||e._playLock))return e._queue.push({event:"seek",action:function(){e.seek.apply(e,n)}}),e;var f=e._soundById(u);if(f)if(typeof r=="number"&&r>=0){var x=e.playing(u);x&&e.pause(u,!0),f._seek=r,f._ended=!1,e._clearTimer(u),!e._webAudio&&f._node&&!isNaN(f._node.duration)&&(f._node.currentTime=r);var C=function(){x&&e.play(u,!0),e._emit("seek",u)};if(x&&!e._webAudio){var F=function(){e._playLock?setTimeout(F,0):C()};setTimeout(F,0)}else C()}else if(e._webAudio){var q=e.playing(u)?o.ctx.currentTime-f._playStart:0,re=f._rateSeek?f._rateSeek-f._seek:0;return f._seek+(re+q*Math.abs(f._rate))}else return f._node.currentTime;return e},playing:function(e){var n=this;if(typeof e=="number"){var r=n._soundById(e);return r?!r._paused:!1}for(var u=0;u=0&&o._howls.splice(u,1);var _=!0;for(r=0;r=0){_=!1;break}return b&&_&&delete b[e._src],o.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,n,r,u){var _=this,g=_["_on"+e];return typeof n=="function"&&g.push(u?{id:r,fn:n,once:u}:{id:r,fn:n}),_},off:function(e,n,r){var u=this,_=u["_on"+e],g=0;if(typeof n=="number"&&(r=n,n=null),n||r)for(g=0;g<_.length;g++){var f=r===_[g].id;if(n===_[g].fn&&f||!n&&f){_.splice(g,1);break}}else if(e)u["_on"+e]=[];else{var x=Object.keys(u);for(g=0;g=0;g--)(!_[g].id||_[g].id===n||e==="load")&&(setTimeout(function(f){f.call(this,n,r)}.bind(u,_[g].fn),0),_[g].once&&u.off(e,_[g].fn,_[g].id));return u._loadQueue(e),u},_loadQueue:function(e){var n=this;if(n._queue.length>0){var r=n._queue[0];r.event===e&&(n._queue.shift(),n._loadQueue()),e||r.action()}return n},_ended:function(e){var n=this,r=e._sprite;if(!n._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;u--){if(r<=n)return;e._sounds[u]._ended&&(e._webAudio&&e._sounds[u]._node&&e._sounds[u]._node.disconnect(0),e._sounds.splice(u,1),r--)}}},_getSoundIds:function(e){var n=this;if(typeof e>"u"){for(var r=[],u=0;u=0;if(!e.bufferSource)return n;if(o._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),r))try{e.bufferSource.buffer=o._scratchBuffer}catch(u){}return e.bufferSource=null,n},_clearSound:function(e){var n=/MSIE |Trident\//.test(o._navigator&&o._navigator.userAgent);n||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var p=function(e){this._parent=e,this.init()};p.prototype={init:function(){var e=this,n=e._parent;return e._muted=n._muted,e._loop=n._loop,e._volume=n._volume,e._rate=n._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++o._counter,n._sounds.push(e),e.create(),e},create:function(){var e=this,n=e._parent,r=o._muted||e._muted||e._parent._muted?0:e._volume;return n._webAudio?(e._node=typeof o.ctx.createGain>"u"?o.ctx.createGainNode():o.ctx.createGain(),e._node.gain.setValueAtTime(r,o.ctx.currentTime),e._node.paused=!0,e._node.connect(o.masterGain)):o.noAudio||(e._node=o._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(o._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=n._src,e._node.preload=n._preload===!0?"auto":n._preload,e._node.volume=r*o.volume(),e._node.load()),e},reset:function(){var e=this,n=e._parent;return e._muted=n._muted,e._loop=n._loop,e._volume=n._volume,e._rate=n._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++o._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,n=e._parent;n._duration=Math.ceil(e._node.duration*10)/10,Object.keys(n._sprite).length===0&&(n._sprite={__default:[0,n._duration*1e3]}),n._state!=="loaded"&&(n._state="loaded",n._emit("load"),n._loadQueue()),e._node.removeEventListener(o._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,n=e._parent;n._duration===1/0&&(n._duration=Math.ceil(e._node.duration*10)/10,n._sprite.__default[1]===1/0&&(n._sprite.__default[1]=n._duration*1e3),n._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var b={},v=function(e){var n=e._src;if(b[n]){e._duration=b[n].duration,T(e);return}if(/^data:[^;]+;base64,/.test(n)){for(var r=atob(n.split(",")[1]),u=new Uint8Array(r.length),_=0;_0?(b[n._src]=_,T(n,_)):r()};typeof Promise<"u"&&o.ctx.decodeAudioData.length===1?o.ctx.decodeAudioData(e).then(u).catch(r):o.ctx.decodeAudioData(e,u,r)},T=function(e,n){n&&!e._duration&&(e._duration=n.duration),Object.keys(e._sprite).length===0&&(e._sprite={__default:[0,e._duration*1e3]}),e._state!=="loaded"&&(e._state="loaded",e._emit("load"),e._loadQueue())},B=function(){if(o.usingWebAudio){try{typeof AudioContext<"u"?o.ctx=new AudioContext:typeof webkitAudioContext<"u"?o.ctx=new webkitAudioContext:o.usingWebAudio=!1}catch(_){o.usingWebAudio=!1}o.ctx||(o.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(o._navigator&&o._navigator.platform),n=o._navigator&&o._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),r=n?parseInt(n[1],10):null;if(e&&r&&r<9){var u=/safari/.test(o._navigator&&o._navigator.userAgent.toLowerCase());o._navigator&&!u&&(o.usingWebAudio=!1)}o.usingWebAudio&&(o.masterGain=typeof o.ctx.createGain>"u"?o.ctx.createGainNode():o.ctx.createGain(),o.masterGain.gain.setValueAtTime(o._muted?0:o._volume,o.ctx.currentTime),o.masterGain.connect(o.ctx.destination)),o._setup()}};c.Howler=o,c.Howl=l,typeof Ee<"u"?(Ee.HowlerGlobal=y,Ee.Howler=o,Ee.Howl=l,Ee.Sound=p):typeof window<"u"&&(window.HowlerGlobal=y,window.Howler=o,window.Howl=l,window.Sound=p)})(),function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(o){var l=this;if(!l.ctx||!l.ctx.listener)return l;for(var p=l._howls.length-1;p>=0;p--)l._howls[p].stereo(o);return l},HowlerGlobal.prototype.pos=function(o,l,p){var b=this;if(!b.ctx||!b.ctx.listener)return b;if(l=typeof l!="number"?b._pos[1]:l,p=typeof p!="number"?b._pos[2]:p,typeof o=="number")b._pos=[o,l,p],typeof b.ctx.listener.positionX<"u"?(b.ctx.listener.positionX.setTargetAtTime(b._pos[0],Howler.ctx.currentTime,.1),b.ctx.listener.positionY.setTargetAtTime(b._pos[1],Howler.ctx.currentTime,.1),b.ctx.listener.positionZ.setTargetAtTime(b._pos[2],Howler.ctx.currentTime,.1)):b.ctx.listener.setPosition(b._pos[0],b._pos[1],b._pos[2]);else return b._pos;return b},HowlerGlobal.prototype.orientation=function(o,l,p,b,v,O){var A=this;if(!A.ctx||!A.ctx.listener)return A;var T=A._orientation;if(l=typeof l!="number"?T[1]:l,p=typeof p!="number"?T[2]:p,b=typeof b!="number"?T[3]:b,v=typeof v!="number"?T[4]:v,O=typeof O!="number"?T[5]:O,typeof o=="number")A._orientation=[o,l,p,b,v,O],typeof A.ctx.listener.forwardX<"u"?(A.ctx.listener.forwardX.setTargetAtTime(o,Howler.ctx.currentTime,.1),A.ctx.listener.forwardY.setTargetAtTime(l,Howler.ctx.currentTime,.1),A.ctx.listener.forwardZ.setTargetAtTime(p,Howler.ctx.currentTime,.1),A.ctx.listener.upX.setTargetAtTime(b,Howler.ctx.currentTime,.1),A.ctx.listener.upY.setTargetAtTime(v,Howler.ctx.currentTime,.1),A.ctx.listener.upZ.setTargetAtTime(O,Howler.ctx.currentTime,.1)):A.ctx.listener.setOrientation(o,l,p,b,v,O);else return T;return A},Howl.prototype.init=function(o){return function(l){var p=this;return p._orientation=l.orientation||[1,0,0],p._stereo=l.stereo||null,p._pos=l.pos||null,p._pannerAttr={coneInnerAngle:typeof l.coneInnerAngle<"u"?l.coneInnerAngle:360,coneOuterAngle:typeof l.coneOuterAngle<"u"?l.coneOuterAngle:360,coneOuterGain:typeof l.coneOuterGain<"u"?l.coneOuterGain:0,distanceModel:typeof l.distanceModel<"u"?l.distanceModel:"inverse",maxDistance:typeof l.maxDistance<"u"?l.maxDistance:1e4,panningModel:typeof l.panningModel<"u"?l.panningModel:"HRTF",refDistance:typeof l.refDistance<"u"?l.refDistance:1,rolloffFactor:typeof l.rolloffFactor<"u"?l.rolloffFactor:1},p._onstereo=l.onstereo?[{fn:l.onstereo}]:[],p._onpos=l.onpos?[{fn:l.onpos}]:[],p._onorientation=l.onorientation?[{fn:l.onorientation}]:[],o.call(this,l)}}(Howl.prototype.init),Howl.prototype.stereo=function(o,l){var p=this;if(!p._webAudio)return p;if(p._state!=="loaded")return p._queue.push({event:"stereo",action:function(){p.stereo(o,l)}}),p;var b=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof l>"u")if(typeof o=="number")p._stereo=o,p._pos=[o,0,0];else return p._stereo;for(var v=p._getSoundIds(l),O=0;O"u")if(typeof o=="number")v._pos=[o,l,p];else return v._pos;for(var O=v._getSoundIds(b),A=0;A"u")if(typeof o=="number")v._orientation=[o,l,p];else return v._orientation;for(var O=v._getSoundIds(b),A=0;A"u"&&(p.pannerAttr||(p.pannerAttr={coneInnerAngle:p.coneInnerAngle,coneOuterAngle:p.coneOuterAngle,coneOuterGain:p.coneOuterGain,distanceModel:p.distanceModel,maxDistance:p.maxDistance,refDistance:p.refDistance,rolloffFactor:p.rolloffFactor,panningModel:p.panningModel}),o._pannerAttr={coneInnerAngle:typeof p.pannerAttr.coneInnerAngle<"u"?p.pannerAttr.coneInnerAngle:o._coneInnerAngle,coneOuterAngle:typeof p.pannerAttr.coneOuterAngle<"u"?p.pannerAttr.coneOuterAngle:o._coneOuterAngle,coneOuterGain:typeof p.pannerAttr.coneOuterGain<"u"?p.pannerAttr.coneOuterGain:o._coneOuterGain,distanceModel:typeof p.pannerAttr.distanceModel<"u"?p.pannerAttr.distanceModel:o._distanceModel,maxDistance:typeof p.pannerAttr.maxDistance<"u"?p.pannerAttr.maxDistance:o._maxDistance,refDistance:typeof p.pannerAttr.refDistance<"u"?p.pannerAttr.refDistance:o._refDistance,rolloffFactor:typeof p.pannerAttr.rolloffFactor<"u"?p.pannerAttr.rolloffFactor:o._rolloffFactor,panningModel:typeof p.pannerAttr.panningModel<"u"?p.pannerAttr.panningModel:o._panningModel});else return v=o._soundById(parseInt(l[0],10)),v?v._pannerAttr:o._pannerAttr;else l.length===2&&(p=l[0],b=parseInt(l[1],10));for(var O=o._getSoundIds(b),A=0;Aconsole.debug("Audio output successfully redirected to secondary speaker")).catch(n=>console.error("Failed to redirect audio output:",n)),e.play()}}}else Ye("notifications","sound_notification")&&new Nt.Howl({src:[On("notifications","img","notification.ogg")],volume:.5}).play()}const Vs=Ye("core","config",{session_keepalive:!0}).session_keepalive,Gs=Ye("notifications","throttled_push_notifications"),zs={notificationId:-1,app:"core",user:"",datetime:"warning",objectId:"",objectType:"",subject:le("notifications","Push notifications might be unreliable"),message:le("notifications","Nextcloud GmbH sponsors a free push notification gateway for private users. To ensure good service, the gateway limits the number of push notifications per server. For enterprise users, a more scalable gateway is available. Contact Nextcloud GmbH for more information."),link:"https://nextcloud.com/fairusepolicy",actions:[],externalLink:"https://nextcloud.com/fairusepolicy",icon:Di("core","actions/alert-outline.svg")},$s={name:"NotificationsApp",components:{IconBellOutline:Cr,IconClose:Zn,IconMessageOutline:Yn,IconNotification:es,NcButton:tt,NcEmptyContent:tr,NcHeaderMenu:lr,NotificationItem:Ls},setup(){return{fairUsePolicyNotification:zs,hasThrottledPushNotifications:Gs}},data(){return{webNotificationsGranted:!1,backgroundFetching:!1,hasNotifyPush:!1,shutdown:!1,notifications:[],lastETag:null,lastTabId:null,userStatus:null,tabId:null,webNotificationsThresholdId:0,pollIntervalBase:3e4,pollIntervalCurrent:3e4,interval:null,pushEndpoints:null,open:!1}},computed:{showBrowserNotifications(){return this.backgroundFetching&&this.webNotificationsGranted&&this.userStatus!=="dnd"&&this.tabId===this.lastTabId},emptyContentMessage(){return this.webNotificationsGranted===null?le("notifications","Requesting browser permissions to show notifications"):this.hasThrottledPushNotifications?this.fairUsePolicyNotification.subject:le("notifications","No notifications")},emptyContentDescription(){return this.hasThrottledPushNotifications?this.fairUsePolicyNotification.message:""}},mounted(){this.tabId=Mi()||""+Math.random(),this._oldcount=0,this.checkWebNotificationPermissions(),this._fetch(),kr.listen("notify_notification",()=>{this._fetchAfterNotifyPush()})&&(console.debug("Has notify_push enabled, slowing polling to 15 minutes"),this.pollIntervalBase=15*60*1e3,this.hasNotifyPush=!0),this._setPollingInterval(this.pollIntervalBase),this._watchTabVisibility(),kt("networkOffline",this.handleNetworkOffline),kt("networkOnline",this.handleNetworkOnline),kt("user_status:status.updated",this.userStatusUpdated)},beforeUnmount(){xt("user_status:status.updated",this.userStatusUpdated),xt("networkOffline",this.handleNetworkOffline),xt("networkOnline",this.handleNetworkOnline)},methods:{t:le,userStatusUpdated(c){Ui().uid===c.userId&&(this.userStatus=c.status)},async onOpen(){this.requestWebNotificationPermissions(),await Et(this.tabId),await this._fetch()},handleNetworkOffline(){console.debug("Network is offline, slowing down pollingInterval to "+this.pollIntervalBase*10),this._setPollingInterval(this.pollIntervalBase*10)},handleNetworkOnline(){this._fetch(),console.debug("Network is online, reseting pollingInterval to "+this.pollIntervalBase),this._setPollingInterval(this.pollIntervalBase)},setupBackgroundFetcher(){Vs?(console.debug("Started background fetcher as session_keepalive is enabled"),this.interval=window.setInterval(this._backgroundFetch.bind(this),this.pollIntervalCurrent)):console.debug("Did not start background fetcher as session_keepalive is off")},onDismissAll(){Qe.delete(Ct("apps/notifications/api/v2/notifications")).then(()=>{this.notifications=[],this.open=!1,Et(this.tabId)}).catch(()=>{Rt(le("notifications","Failed to dismiss all notifications"))})},onRemove(c){this.notifications.splice(c,1),Et(this.tabId)},_updateDocTitleOnNewNotifications(c){c.length>this._oldcount&&(this._oldcount=c.length,this.backgroundFetching&&document.hidden&&(document.title.startsWith("* ")||(document.title="* "+document.title)))},_restoreTitle(){document.title.startsWith("* ")&&(document.title=document.title.substring(2))},_fetchAfterNotifyPush(){this.backgroundFetching=!0,this.hasNotifyPush&&this.tabId!==this.lastTabId?(console.debug("Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it"),setTimeout(()=>{this._fetch()},5e3)):(console.debug("Refreshing notifications are notify_push event"),this._fetch())},async _fetch(){this.notifications.length&&this.notifications[0].notificationId>this.webNotificationsThresholdId&&(this.webNotificationsThresholdId=this.notifications[0].notificationId);const c=await eo(this.tabId,this.lastETag,!this.backgroundFetching,this.hasNotifyPush);c.status===204?(console.debug("Fetching notifications but no content, slowing down polling to "+this.pollIntervalBase*10),this._setPollingInterval(this.pollIntervalBase*10)):c.status===200?(this.userStatus=c.headers["x-nextcloud-user-status"],this.lastETag=c.headers.etag,this.lastTabId=c.tabId,this.notifications=c.data,this.processWebNotifications(c.data),console.debug("Got notification data, restoring default polling interval."),this._setPollingInterval(this.pollIntervalBase),this._updateDocTitleOnNewNotifications(this.notifications),!this.backgroundFetching&&this.notifications.length&&(this.webNotificationsThresholdId=this.notifications[0].notificationId)):c.status===304?this._setPollingInterval(this.pollIntervalBase):c.status===503?(console.info("Slowing down notifications: instance is in maintenance mode."),this._setPollingInterval(this.pollIntervalBase*10)):c.status===404?(console.info("Slowing down notifications: app is disabled."),this._setPollingInterval(this.pollIntervalBase*10)):(console.info("Slowing down notifications: Status "+c.status),this._setPollingInterval(this.pollIntervalBase*10))},_backgroundFetch(){this.backgroundFetching=!0,this._fetch()},_watchTabVisibility(){document.addEventListener("visibilitychange",this._visibilityChange,!1)},_visibilityChange(){document.hidden||this._restoreTitle()},_setPollingInterval(c){this.interval&&c===this.pollIntervalCurrent||(console.debug("Polling interval updated to "+c),this.interval&&(window.clearInterval(this.interval),this.interval=null),this.pollIntervalCurrent=c,this.setupBackgroundFetcher())},_shutDownNotifications(c){console.debug("Shutting down notifications "+(c?"temporary":"bye")),this.interval&&(window.clearInterval(this.interval),this.interval=null),this.shutdown=!c},checkWebNotificationPermissions(){if(!("Notification"in window)){console.info("Browser does not support notifications"),this.webNotificationsGranted=!1;return}if(window.Notification.permission==="granted"){console.debug("Notifications permissions granted"),this.webNotificationsGranted=!0;return}if(window.Notification.permission==="denied"){console.debug("Notifications permissions denied"),this.webNotificationsGranted=!1;return}if(window.location.protocol==="http:"){console.debug("Notifications require HTTPS"),this.webNotificationsGranted=!1;return}console.info("Notifications permissions not yet requested"),this.webNotificationsGranted=null},async requestWebNotificationPermissions(){this.webNotificationsGranted===null&&(console.info("Requesting notifications permissions"),window.Notification.requestPermission().then(c=>{this.webNotificationsGranted=c==="granted"}))},processWebNotifications(c){c.forEach(y=>{this.backgroundFetching&&Ze("notifications:notification:received",{notification:y}),this.showBrowserNotifications&&this.webNotificationsThresholdIdp.open=u),class:"notifications-button","exclude-click-outside-selectors":[".popover"],"aria-label":b.t("notifications","Notifications"),title:b.t("notifications","Notifications"),onOpened:b.onOpen},{trigger:J(()=>[ie(v,{size:20,"show-dot":p.notifications.length!==0||p.webNotificationsGranted===null,"show-warning":l.hasThrottledPushNotifications},null,8,["show-dot","show-warning"])]),default:J(()=>[X("div",Ws,[ie($i,{name:"fade",mode:"out-in"},{default:J(()=>[p.notifications.length>0?(P(),Q(Wi,{key:0,class:"notification-wrapper",name:"list",tag:"ul"},{default:J(()=>[l.hasThrottledPushNotifications?(P(),Q(O,{key:-2016,notification:l.fairUsePolicyNotification},null,8,["notification"])):z("",!0),(P(!0),j(Xn,null,Kn(p.notifications,(u,_)=>(P(),Q(O,{key:u.notificationId,notification:u,onRemove:g=>b.onRemove(_)},null,8,["notification","onRemove"]))),128))]),_:1})):(P(),Q(e,{key:1,name:b.emptyContentMessage,description:b.emptyContentDescription},Ji({icon:J(()=>[l.hasThrottledPushNotifications?(P(),j("span",Js)):(P(),Q(A,{key:0}))]),_:2},[l.hasThrottledPushNotifications?{name:"action",fn:J(()=>[ie(B,{variant:"primary",href:"https://nextcloud.com/fairusepolicy",target:"_blank",rel:"noreferrer noopener"},{icon:J(()=>[ie(T,{size:20})]),default:J(()=>[Be(" "+G(b.t("notifications","Contact Nextcloud GmbH"))+" ↗ ",1)]),_:1})]),key:"0"}:void 0]),1032,["name","description"]))]),_:1}),p.notifications.length>0?(P(),j("div",Xs,[ie(B,{variant:"tertiary",wide:"",onClick:b.onDismissAll},{icon:J(()=>[ie(n,{size:20})]),default:J(()=>[Be(" "+G(b.t("notifications","Dismiss all notifications")),1)]),_:1},8,["onClick"])])):z("",!0)])]),_:1},8,["open","aria-label","title","onOpened"]))}const na=de($s,[["render",Ks],["__scopeId","data-v-57714b57"]]);export{na as default}; +//# sourceMappingURL=NotificationsApp-Dl4t5GxQ.chunk.mjs.map diff --git a/js/NotificationsApp-DI9M0BLE.chunk.mjs.license b/js/NotificationsApp-Dl4t5GxQ.chunk.mjs.license similarity index 100% rename from js/NotificationsApp-DI9M0BLE.chunk.mjs.license rename to js/NotificationsApp-Dl4t5GxQ.chunk.mjs.license diff --git a/js/NotificationsApp-DI9M0BLE.chunk.mjs.map b/js/NotificationsApp-Dl4t5GxQ.chunk.mjs.map similarity index 99% rename from js/NotificationsApp-DI9M0BLE.chunk.mjs.map rename to js/NotificationsApp-Dl4t5GxQ.chunk.mjs.map index 4566fcd2b..41ed3d31f 100644 --- a/js/NotificationsApp-DI9M0BLE.chunk.mjs.map +++ b/js/NotificationsApp-Dl4t5GxQ.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NotificationsApp-DI9M0BLE.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcEmptyContent-BdOezubv.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHeaderMenu-DfO7ghiM.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserBubble-DfxVEEZg.mjs","../node_modules/@nextcloud/capabilities/dist/index.cjs","../node_modules/@nextcloud/event-bus/dist/index.cjs","../node_modules/@nextcloud/auth/dist/index.cjs","../node_modules/axios/dist/browser/axios.cjs","../node_modules/@nextcloud/router/dist/index.cjs","../node_modules/@nextcloud/axios/dist/index.cjs","../node_modules/@nextcloud/notify_push/dist/index.js","../node_modules/vue-material-design-icons/BellOutline.vue","../node_modules/vue-material-design-icons/Close.vue","../node_modules/vue-material-design-icons/MessageOutline.vue","../node_modules/vue-material-design-icons/Bell.vue","../src/Components/IconNotification.vue","../src/Components/ActionButton.vue","../src/Components/Parameters/DefaultParameter.vue","../src/Components/Parameters/FileParameter.vue","../src/Components/Parameters/UserParameter.vue","../src/Components/NotificationItem.vue","../src/services/notificationsService.js","../node_modules/howler/dist/howler.js","../src/services/webNotificationsService.js","../src/NotificationsApp.vue"],"sourcesContent":["import '../assets/NcEmptyContent-q-geAf0w.css';\nimport { defineComponent, createElementBlock, openBlock, createCommentVNode, renderSlot, toDisplayString, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = {\n class: \"empty-content\",\n role: \"note\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"empty-content__icon\",\n \"aria-hidden\": \"true\"\n};\nconst _hoisted_3 = {\n key: 0,\n class: \"empty-content__name\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"empty-content__description\"\n};\nconst _hoisted_5 = {\n key: 2,\n class: \"empty-content__action\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcEmptyContent\",\n props: {\n description: { default: \"\" },\n name: { default: \"\" }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n _ctx.$slots.icon ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n _ctx.name !== \"\" ? (openBlock(), createElementBlock(\"span\", _hoisted_3, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true)\n ], true),\n _ctx.description !== \"\" || _ctx.$slots.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(_ctx.description), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n _ctx.$slots.action ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"action\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\nconst NcEmptyContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-697cfd8f\"]]);\nexport {\n NcEmptyContent as N\n};\n//# sourceMappingURL=NcEmptyContent-BdOezubv.mjs.map\n","import { defineComponent, computed, toRef, createElementBlock, openBlock, toDisplayString, unref } from \"vue\";\nimport { useFormatTime, useFormatRelativeTime } from \"../composables/useFormatDateTime/index.mjs\";\nconst _hoisted_1 = [\"data-timestamp\", \"title\", \"textContent\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTime\",\n props: {\n timestamp: {},\n format: { default: () => ({ timeStyle: \"medium\", dateStyle: \"short\" }) },\n relativeTime: { type: [Boolean, String], default: \"long\" },\n ignoreSeconds: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const timeOptions = computed(() => ({ format: props.format }));\n const relativeTimeOptions = computed(() => ({\n ignoreSeconds: props.ignoreSeconds,\n relativeTime: props.relativeTime || \"long\",\n update: props.relativeTime !== false\n }));\n const title = useFormatTime(toRef(() => props.timestamp), timeOptions);\n const relativeTime = useFormatRelativeTime(toRef(() => props.timestamp), relativeTimeOptions);\n const formattedTime = computed(() => props.relativeTime ? relativeTime.value : title.value);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: \"nc-datetime\",\n dir: \"auto\",\n \"data-timestamp\": _ctx.timestamp,\n title: unref(title),\n textContent: toDisplayString(formattedTime.value)\n }, null, 8, _hoisted_1);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs.map\n","import '../assets/NcHeaderMenu-Hy0UKyUu.css';\nimport { defineComponent, ref, computed, useTemplateRef, watch, nextTick, createBlock, openBlock, resolveDynamicComponent, normalizeClass, unref, withCtx, createVNode, createElementBlock, createCommentVNode, withDirectives, withModifiers, renderSlot, toDisplayString, createElementVNode, vShow } from \"vue\";\nimport { onClickOutside } from \"@vueuse/core\";\nimport { createFocusTrap } from \"focus-trap\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport { useHotKey } from \"../composables/useHotKey/index.mjs\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-B6cEicto.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { N as NcButton } from \"./NcButton-DkC5k3Lb.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = { class: \"header-menu__caret\" };\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = {\n ref: \"contentContainer\",\n class: \"header-menu__content\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcHeaderMenu\",\n props: {\n id: {},\n ariaLabel: { default: () => void 0 },\n open: { type: Boolean, default: false },\n isNav: { type: Boolean, default: false },\n description: { default: () => void 0 },\n excludeClickOutsideSelectors: { default: () => [] }\n },\n emits: [\"closed\", \"opened\", \"update:open\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const descriptionId = createElementId();\n const triggerId = createElementId();\n const focusTrap = ref();\n const isOpened = ref(__props.open);\n const wrapperTag = computed(() => __props.isNav ? \"nav\" : \"div\");\n const contentContainerElement = useTemplateRef(\"contentContainer\");\n const headerMenuElement = useTemplateRef(\"headerMenu\");\n const triggerButtonInstance = useTemplateRef(\"triggerButton\");\n const ignore = computed(() => Array.isArray(__props.excludeClickOutsideSelectors) ? __props.excludeClickOutsideSelectors : __props.excludeClickOutsideSelectors.split(\" \"));\n onClickOutside(headerMenuElement, () => setMenuState(false), { ignore });\n useHotKey(\"Escape\", () => setMenuState(false), { prevent: true });\n useTrapStackControl(isOpened, {\n disabled: () => !__props.isNav\n });\n watch(() => __props.open, (state) => setMenuState(state));\n function toggleMenu() {\n setMenuState(!isOpened.value);\n }\n async function setMenuState(state) {\n if (state === isOpened.value) {\n return;\n }\n isOpened.value = state;\n emit(\"update:open\", state);\n await nextTick();\n await (state ? addFocusTrap() : clearFocusTrap());\n emit(state ? \"opened\" : \"closed\");\n }\n function onFocusOut(event) {\n if (!__props.isNav) {\n return;\n }\n if (!(event.relatedTarget instanceof Node)) {\n return;\n }\n if (headerMenuElement.value?.contains(event.relatedTarget)) {\n setMenuState(false);\n }\n }\n async function addFocusTrap() {\n if (__props.isNav || focusTrap.value) {\n return;\n }\n focusTrap.value = createFocusTrap(contentContainerElement.value, {\n allowOutsideClick: true,\n trapStack: getTrapStack(),\n fallbackFocus: triggerButtonInstance.value?.$el\n });\n focusTrap.value.activate();\n }\n function clearFocusTrap() {\n focusTrap.value?.deactivate();\n focusTrap.value = void 0;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(wrapperTag.value), {\n id: _ctx.id,\n ref: \"headerMenu\",\n \"aria-labelledby\": _ctx.isNav ? unref(triggerId) : null,\n class: normalizeClass([{ \"header-menu--opened\": isOpened.value }, \"header-menu\"]),\n onFocusout: onFocusOut\n }, {\n default: withCtx(() => [\n createVNode(unref(NcButton), {\n id: _ctx.isNav ? unref(triggerId) : null,\n ref: \"triggerButton\",\n \"aria-controls\": `header-menu-${_ctx.id}`,\n \"aria-expanded\": isOpened.value.toString(),\n \"aria-label\": _ctx.ariaLabel,\n class: \"header-menu__trigger\",\n size: \"large\",\n variant: \"tertiary-no-background\",\n onClick: withModifiers(toggleMenu, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trigger\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"id\", \"aria-controls\", \"aria-expanded\", \"aria-label\"]),\n _ctx.description ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: unref(descriptionId),\n class: \"header-menu__description hidden-visually\"\n }, toDisplayString(_ctx.description), 9, _hoisted_1)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_2, null, 512), [\n [vShow, isOpened.value]\n ]),\n withDirectives(createElementVNode(\"div\", {\n id: `header-menu-${_ctx.id}`,\n class: \"header-menu__wrapper\"\n }, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 512)\n ], 8, _hoisted_3), [\n [vShow, isOpened.value]\n ])\n ]),\n _: 3\n }, 40, [\"id\", \"aria-labelledby\", \"class\"]);\n };\n }\n});\nconst NcHeaderMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d45c5788\"]]);\nexport {\n NcHeaderMenu as N\n};\n//# sourceMappingURL=NcHeaderMenu-DfO7ghiM.mjs.map\n","import '../assets/NcUserBubble-ChgvvPPf.css';\nimport { createElementBlock, openBlock, renderSlot, defineComponent, mergeModels, useModel, computed, warn, watch, createBlock, resolveDynamicComponent, unref, withCtx, mergeProps, createVNode, createElementVNode, createCommentVNode, normalizeStyle, toDisplayString } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-BkmHv-oY.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nconst _sfc_main$1 = {};\nfunction _sfc_render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"div\", null, [\n renderSlot(_ctx.$slots, \"trigger\")\n ]);\n}\nconst NcUserBubbleDiv = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst _hoisted_1 = { class: \"user-bubble__name\" };\nconst _hoisted_2 = {\n key: 0,\n class: \"user-bubble__secondary\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserBubble\",\n props: /* @__PURE__ */ mergeModels({\n avatarImage: { default: void 0 },\n user: { default: void 0 },\n displayName: { default: void 0 },\n showUserStatus: { type: Boolean },\n url: { default: void 0 },\n to: { default: void 0 },\n primary: { type: Boolean },\n size: { default: 20 },\n margin: { default: 2 }\n }, {\n \"open\": { type: Boolean },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"click\"], [\"update:open\"]),\n setup(__props, { emit: __emit }) {\n const isOpen = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const isAvatarUrl = computed(() => {\n if (!props.avatarImage) {\n return false;\n }\n try {\n const url = new URL(props.avatarImage);\n return !!url;\n } catch {\n return false;\n }\n });\n const isCustomAvatar = computed(() => !!props.avatarImage);\n const avatarStyle = computed(() => ({\n marginInlineStart: `${props.margin}px`\n }));\n const hasUrl = computed(() => {\n if (!props.url || props.url.trim() === \"\") {\n return false;\n }\n try {\n const url = new URL(props.url, props.url?.startsWith?.(\"/\") ? window.location.href : void 0);\n return !!url;\n } catch {\n warn(\"[NcUserBubble] Invalid URL passed\", { url: props.url });\n return false;\n }\n });\n const href = computed(() => hasUrl.value ? props.url : void 0);\n const contentComponent = computed(() => {\n if (hasUrl.value) {\n return \"a\";\n } else if (props.to) {\n return RouterLink;\n } else {\n return \"div\";\n }\n });\n const contentStyle = computed(() => ({\n height: `${props.size}px`,\n lineHeight: `${props.size}px`,\n borderRadius: `${props.size / 2}px`\n }));\n watch([() => props.displayName, () => props.user], () => {\n if (!props.displayName && !props.user) {\n warn(\"[NcUserBubble] At least `displayName` or `user` property should be set.\");\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(!!_ctx.$slots.default ? unref(NcPopover) : NcUserBubbleDiv), {\n shown: isOpen.value,\n \"onUpdate:shown\": _cache[1] || (_cache[1] = ($event) => isOpen.value = $event),\n class: \"user-bubble__wrapper\",\n trigger: \"hover focus\"\n }, {\n trigger: withCtx(({ attrs }) => [\n (openBlock(), createBlock(resolveDynamicComponent(contentComponent.value), mergeProps({\n class: [\"user-bubble__content\", { \"user-bubble__content--primary\": _ctx.primary }],\n style: contentStyle.value,\n to: _ctx.to,\n href: href.value\n }, attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n createVNode(unref(NcAvatar), {\n url: isCustomAvatar.value && isAvatarUrl.value ? _ctx.avatarImage : void 0,\n \"icon-class\": isCustomAvatar.value && !isAvatarUrl.value ? _ctx.avatarImage : void 0,\n user: _ctx.user,\n \"display-name\": _ctx.displayName,\n size: _ctx.size - _ctx.margin * 2,\n style: normalizeStyle(avatarStyle.value),\n \"disable-tooltip\": true,\n \"disable-menu\": true,\n \"hide-status\": !_ctx.showUserStatus,\n class: \"user-bubble__avatar\"\n }, null, 8, [\"url\", \"icon-class\", \"user\", \"display-name\", \"size\", \"style\", \"hide-status\"]),\n createElementVNode(\"span\", _hoisted_1, toDisplayString(_ctx.displayName || _ctx.user), 1),\n !!_ctx.$slots.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"name\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1040, [\"class\", \"style\", \"to\", \"href\"]))\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 40, [\"shown\"]);\n };\n }\n});\nconst NcUserBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-37bde6b7\"]]);\nexport {\n NcUserBubble as N\n};\n//# sourceMappingURL=NcUserBubble-DfxVEEZg.mjs.map\n","\"use strict\";\nObject.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\nconst initialState = require(\"@nextcloud/initial-state\");\nfunction getCapabilities() {\n try {\n return initialState.loadState(\"core\", \"capabilities\");\n } catch (error) {\n console.debug(\"Could not find capabilities initial state fall back to _oc_capabilities\");\n if (!(\"_oc_capabilities\" in window)) {\n return {};\n }\n return window[\"_oc_capabilities\"];\n }\n}\nexports.getCapabilities = getCapabilities;\n//# sourceMappingURL=index.cjs.map\n","\"use strict\";\nObject.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\nconst major = require(\"semver/functions/major.js\");\nconst valid = require(\"semver/functions/valid.js\");\nconst _interopDefault = (e) => e && e.__esModule ? e : { default: e };\nconst major__default = /* @__PURE__ */ _interopDefault(major);\nconst valid__default = /* @__PURE__ */ _interopDefault(valid);\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__default.default(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major__default.default(bus2.getVersion()) !== major__default.default(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 subscribe(name, handler) {\n getBus().subscribe(name, handler);\n}\nfunction unsubscribe(name, handler) {\n getBus().unsubscribe(name, handler);\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\nexports.ProxyBus = ProxyBus;\nexports.SimpleBus = SimpleBus;\nexports.emit = emit;\nexports.subscribe = subscribe;\nexports.unsubscribe = unsubscribe;\n//# sourceMappingURL=index.cjs.map\n","\"use strict\";\nObject.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\nconst eventBus = require(\"@nextcloud/event-bus\");\nconst browserStorage$1 = require(\"@nextcloud/browser-storage\");\nlet token;\nconst observers = [];\nfunction getRequestToken() {\n if (token === void 0) {\n token = document.head.dataset.requesttoken ?? null;\n }\n return token;\n}\nfunction onRequestTokenUpdate(observer) {\n observers.push(observer);\n}\neventBus.subscribe(\"csrf-token-update\", (e) => {\n token = e.token;\n observers.forEach((observer) => {\n try {\n observer(token);\n } catch (error) {\n console.error(\"Error updating CSRF token observer\", error);\n }\n });\n});\nfunction getCSPNonce() {\n const meta = document?.querySelector('meta[name=\"csp-nonce\"]');\n if (!meta) {\n const token2 = getRequestToken();\n return token2 ? btoa(token2) : void 0;\n }\n return meta.nonce;\n}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nconst browserStorage = browserStorage$1.getBuilder(\"public\").persist().build();\nclass GuestUser {\n _displayName;\n uid;\n isAdmin;\n constructor() {\n if (!browserStorage.getItem(\"guestUid\")) {\n browserStorage.setItem(\"guestUid\", randomUUID());\n }\n this._displayName = browserStorage.getItem(\"guestNickname\") || \"\";\n this.uid = browserStorage.getItem(\"guestUid\") || randomUUID();\n this.isAdmin = false;\n eventBus.subscribe(\"user:info:changed\", (guest) => {\n this._displayName = guest.displayName;\n browserStorage.setItem(\"guestNickname\", guest.displayName || \"\");\n });\n }\n get displayName() {\n return this._displayName;\n }\n set displayName(displayName) {\n this._displayName = displayName;\n browserStorage.setItem(\"guestNickname\", displayName);\n eventBus.emit(\"user:info:changed\", this);\n }\n}\nlet currentUser$1;\nfunction getGuestUser() {\n if (!currentUser$1) {\n currentUser$1 = new GuestUser();\n }\n return currentUser$1;\n}\nfunction getGuestNickname() {\n return getGuestUser()?.displayName || null;\n}\nfunction setGuestNickname(nickname) {\n if (!nickname || nickname.trim().length === 0) {\n throw new Error(\"Nickname cannot be empty\");\n }\n getGuestUser().displayName = nickname;\n}\nfunction randomUUID() {\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID();\n }\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nlet currentUser;\nfunction getAttribute(el, attribute) {\n if (el) {\n return el.getAttribute(attribute);\n }\n return null;\n}\nfunction getCurrentUser() {\n if (currentUser !== void 0) {\n return currentUser;\n }\n const head = document?.getElementsByTagName(\"head\")[0];\n if (!head) {\n return null;\n }\n const uid = getAttribute(head, \"data-user\");\n if (uid === null) {\n currentUser = null;\n return currentUser;\n }\n currentUser = {\n uid,\n displayName: getAttribute(head, \"data-user-displayname\"),\n isAdmin: !!window._oc_isadmin\n };\n return currentUser;\n}\nexports.getCSPNonce = getCSPNonce;\nexports.getCurrentUser = getCurrentUser;\nexports.getGuestNickname = getGuestNickname;\nexports.getGuestUser = getGuestUser;\nexports.getRequestToken = getRequestToken;\nexports.onRequestTokenUpdate = onRequestTokenUpdate;\nexports.setGuestNickname = setGuestNickname;\n//# sourceMappingURL=index.cjs.map\n","/*! Axios v1.12.2 Copyright (c) 2025 Matt Zabriskie and contributors */\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction$1(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction$1 = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction$1(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction$1(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction$1(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction$1(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction$1(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction$1(thing[iterator]);\n\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction: isFunction$1,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils$1.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils$1.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv,\n navigator: _navigator,\n origin: origin\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data) ||\n utils$1.isReadableStream(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils$1.isObject(header) && utils$1.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils$1.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n};\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n};\n\nconst asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils$1.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nvar resolveConfig = (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders$1.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils$1.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils$1.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n };\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils$1.asap(unsubscribe);\n\n return signal;\n }\n};\n\nvar composeSignals$1 = composeSignals;\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n};\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils$1;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils$1.global);\n\nconst {\n ReadableStream: ReadableStream$1, TextEncoder\n} = utils$1.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n};\n\nconst factory = (env) => {\n env = utils$1.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream$1);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream$1(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils$1.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n });\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils$1.isBlob(body)) {\n return body.size;\n }\n\n if (utils$1.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils$1.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils$1.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils$1.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils$1.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders$1.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n};\n\nconst seedCache = new Map();\n\nconst getFetch = (config) => {\n let env = config ? config.env : {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\ngetFetch();\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: getFetch,\n }\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters, config) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst VERSION = \"1.12.2\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators$1.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","\"use strict\";\nObject.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\nconst w = (e, n) => u(e, \"\", n), U = (e) => \"/remote.php/\" + e, R = (e, n) => {\n var o;\n return ((o = n == null ? void 0 : n.baseURL) != null ? o : f()) + U(e);\n}, h = (e, n, o) => {\n var r;\n const c = Object.assign({\n ocsVersion: 2\n }, o || {}).ocsVersion === 1 ? 1 : 2;\n return ((r = o == null ? void 0 : o.baseURL) != null ? r : f()) + \"/ocs/v\" + c + \".php\" + g(e, n, o);\n}, g = (e, n, o) => {\n const r = Object.assign({\n escape: !0\n }, o || {}), s = function(c, i) {\n return i = i || {}, c.replace(\n /{([^{}]*)}/g,\n function(l, t) {\n const a = i[t];\n return r.escape ? encodeURIComponent(typeof a == \"string\" || typeof a == \"number\" ? a.toString() : l) : typeof a == \"string\" || typeof a == \"number\" ? a.toString() : l;\n }\n );\n };\n return e.charAt(0) !== \"/\" && (e = \"/\" + e), s(e, n || {});\n}, v = (e, n, o) => {\n var r, s, c;\n const i = Object.assign({\n noRewrite: !1\n }, o || {}), l = (r = o == null ? void 0 : o.baseURL) != null ? r : d();\n return ((c = (s = window == null ? void 0 : window.OC) == null ? void 0 : s.config) == null ? void 0 : c.modRewriteWorking) === !0 && !i.noRewrite ? l + g(e, n, o) : l + \"/index.php\" + g(e, n, o);\n}, _ = (e, n) => n.includes(\".\") ? u(e, \"img\", n) : u(e, \"img\", \"\".concat(n, \".svg\")), u = (e, n, o) => {\n var r, s, c;\n const i = (c = (s = (r = window == null ? void 0 : window.OC) == null ? void 0 : r.coreApps) == null ? void 0 : s.includes(e)) != null ? c : !1, l = o.slice(-3) === \"php\";\n let t = d();\n return l && !i ? (t += \"/index.php/apps/\".concat(e), n && (t += \"/\".concat(encodeURI(n))), o !== \"index.php\" && (t += \"/\".concat(o))) : !l && !i ? (t = b(e), n && (t += \"/\".concat(n, \"/\")), t.at(-1) !== \"/\" && (t += \"/\"), t += o) : ((e === \"settings\" || e === \"core\" || e === \"search\") && n === \"ajax\" && (t += \"/index.php\"), e && (t += \"/\".concat(e)), n && (t += \"/\".concat(n)), t += \"/\".concat(o)), t;\n}, f = () => window.location.protocol + \"//\" + window.location.host + d();\nfunction d() {\n let e = window._oc_webroot;\n if (typeof e > \"u\") {\n e = location.pathname;\n const n = e.indexOf(\"/index.php/\");\n if (n !== -1)\n e = e.slice(0, n);\n else {\n const o = e.indexOf(\"/\", 1);\n e = e.slice(0, o > 0 ? o : void 0);\n }\n }\n return e;\n}\nfunction b(e) {\n var n, o;\n return (o = ((n = window._oc_appswebroots) != null ? n : {})[e]) != null ? o : \"\";\n}\nexports.generateFilePath = u;\nexports.generateOcsUrl = h;\nexports.generateRemoteUrl = R;\nexports.generateUrl = v;\nexports.getAppRootUrl = b;\nexports.getBaseUrl = f;\nexports.getRootUrl = d;\nexports.imagePath = _;\nexports.linkTo = w;\n","\"use strict\";\nObject.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: \"Module\" } });\nconst auth = require(\"@nextcloud/auth\");\nconst Axios = require(\"axios\");\nconst router = require(\"@nextcloud/router\");\nconst _interopDefault = (e) => e && e.__esModule ? e : { default: e };\nconst Axios__default = /* @__PURE__ */ _interopDefault(Axios);\n/*!\n * SPDX-License-Identifier: GPL-3.0-or-later\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n */\nconst client = Axios__default.default.create({\n headers: {\n requesttoken: auth.getRequestToken() ?? \"\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n }\n});\nauth.onRequestTokenUpdate((token) => {\n client.defaults.headers.requesttoken = token;\n});\nconst cancelableClient = Object.assign(client, {\n CancelToken: Axios__default.default.CancelToken,\n isCancel: Axios__default.default.isCancel\n});\nconst RETRY_KEY = Symbol(\"csrf-retry\");\nfunction onCsrfTokenError(axios) {\n return async (error) => {\n if (!Axios.isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n if (config && !config[RETRY_KEY] && response?.status === 412 && response?.data?.message === \"CSRF check failed\") {\n console.warn(`Request to ${responseURL} failed because of a CSRF mismatch. Fetching a new token`);\n const { data: { token } } = await axios.get(router.generateUrl(\"/csrftoken\"));\n console.debug(`New request token ${token} fetched`);\n axios.defaults.headers.requesttoken = token;\n return axios({\n ...config,\n headers: {\n ...config.headers,\n requesttoken: token\n },\n [RETRY_KEY]: true\n });\n }\n throw error;\n };\n}\nconst RETRY_DELAY_KEY = Symbol(\"retryDelay\");\nfunction onMaintenanceModeError(axios) {\n return async (error) => {\n if (!Axios.isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n const headers = response?.headers;\n let retryDelay = typeof config?.[RETRY_DELAY_KEY] === \"number\" ? config?.[RETRY_DELAY_KEY] : 1;\n if (status === 503 && headers?.[\"x-nextcloud-maintenance-mode\"] === \"1\" && config?.retryIfMaintenanceMode) {\n retryDelay *= 2;\n if (retryDelay > 32) {\n console.error(\"Retry delay exceeded one minute, giving up.\", { responseURL });\n throw error;\n }\n console.warn(`Request to ${responseURL} failed because of maintenance mode. Retrying in ${retryDelay}s`);\n await new Promise((resolve) => {\n setTimeout(resolve, retryDelay * 1e3);\n });\n return axios({\n ...config,\n [RETRY_DELAY_KEY]: retryDelay\n });\n }\n throw error;\n };\n}\nasync function onNotLoggedInError(error) {\n if (Axios.isAxiosError(error)) {\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n if (status === 401 && response?.data?.message === \"Current user is not logged in\" && config?.reloadExpiredSession && window?.location) {\n console.error(`Request to ${responseURL} failed because the user session expired. Reloading the page …`);\n window.location.reload();\n }\n }\n throw error;\n}\ncancelableClient.interceptors.response.use((r) => r, onCsrfTokenError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onMaintenanceModeError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onNotLoggedInError);\nObject.defineProperty(exports, \"isAxiosError\", {\n enumerable: true,\n get: () => Axios.isAxiosError\n});\nObject.defineProperty(exports, \"isCancel\", {\n enumerable: true,\n get: () => Axios.isCancel\n});\nexports.default = cancelableClient;\n//# sourceMappingURL=index.cjs.map\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSupportedTypes = getSupportedTypes;\nexports.listen = listen;\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst capabilities_1 = require(\"@nextcloud/capabilities\");\nconst axios_1 = __importDefault(require(\"@nextcloud/axios\"));\nconst event_bus_1 = require(\"@nextcloud/event-bus\");\n/**\n * Get the list of supported notification types as reported by the server\n *\n * @return string[]\n */\nfunction getSupportedTypes() {\n const capabilities = (0, capabilities_1.getCapabilities)();\n if (capabilities.notify_push) {\n return capabilities.notify_push.type;\n }\n else {\n return [];\n }\n}\n/**\n * Register a listener for notify_push events\n *\n * @param name name of the event\n * @param handler callback invoked for every matching event pushed\n * @param [options]\n * @param [options.credentials] optional credentials used instead of the pre_auth request\n * @param [options.credentials.username] username\n * @param [options.credentials.password] app password\n * @return boolean whether push is set up correctly\n */\nfunction listen(name, handler, options = {}) {\n setupGlobals(options);\n if (!window._notify_push_listeners[name]) {\n window._notify_push_listeners[name] = [];\n }\n window._notify_push_listeners[name].push(handler);\n if (window._notify_push_ws !== null && typeof window._notify_push_ws === \"object\" && window._notify_push_ready) {\n window._notify_push_ws.send('listen ' + name);\n }\n else {\n setupSocket(options);\n }\n return window._notify_push_available;\n}\nfunction setupGlobals(options = {}) {\n if (typeof window._notify_push_listeners === \"undefined\") {\n window._notify_push_listeners = {};\n window._notify_push_ws = null;\n window._notify_push_online = true;\n window._notify_push_available = false;\n window._notify_push_error_count = 0;\n window._notify_push_ready = false;\n (0, event_bus_1.subscribe)('networkOffline', () => {\n window._notify_push_online = false;\n window._notify_push_ws = null;\n window._notify_push_ready = false;\n });\n (0, event_bus_1.subscribe)('networkOnline', () => {\n window._notify_push_error_count = 0;\n window._notify_push_online = true;\n setupSocket(options);\n });\n }\n}\nasync function setupSocket(options = {}) {\n if (window._notify_push_ws) {\n return true;\n }\n window._notify_push_ws = true;\n const capabilities = (0, capabilities_1.getCapabilities)();\n if (!capabilities.notify_push) {\n window._notify_push_available = false;\n window._notify_push_ws = null;\n return false;\n }\n window._notify_push_available = true;\n let preAuth;\n if (!options.credentials) {\n const response = await axios_1.default.post(capabilities.notify_push.endpoints.pre_auth);\n preAuth = response.data;\n }\n window._notify_push_ws = new WebSocket(capabilities.notify_push.endpoints.websocket);\n window._notify_push_ws.onopen = () => {\n if (typeof window._notify_push_ws === \"object\" && window._notify_push_ws) {\n if (preAuth) {\n window._notify_push_ws.send('');\n window._notify_push_ws.send(preAuth);\n }\n else if (options.credentials) {\n window._notify_push_ws.send(options.credentials.username);\n window._notify_push_ws.send(options.credentials.password);\n }\n window._notify_push_ready = true;\n for (let name in window._notify_push_listeners) {\n window._notify_push_ws.send('listen ' + name);\n }\n }\n };\n window._notify_push_ws.onmessage = message => {\n if (message.data === \"authenticated\") {\n window._notify_push_error_count = 0;\n }\n else {\n const i = message.data.indexOf(' ');\n let [event, body] = i > 0 ? [message.data.slice(0, i), message.data.slice(i + 1)] : [message.data, null];\n if (body) {\n body = JSON.parse(body);\n }\n if (window._notify_push_listeners[event]) {\n for (let cb of window._notify_push_listeners[event]) {\n cb(event, body);\n }\n }\n }\n };\n window._notify_push_ws.onerror = window._notify_push_ws.onclose = () => {\n window._notify_push_ws = null;\n window._notify_push_error_count += 1;\n window._notify_push_ready = false;\n setTimeout(() => {\n if (window._notify_push_online) {\n setupSocket(options);\n }\n }, 1000 * window._notify_push_error_count);\n };\n return true;\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\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 axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport BrowserStorage from './BrowserStorage.js'\n\n/**\n * @param {string|null} tabId unique id for browser tab\n * @param {string} lastETag last ETag\n * @param {boolean} forceRefresh whether to refresh data forcefully\n * @param {boolean} hasNotifyPush whether has notify_push enabled\n */\nasync function getNotificationsData(tabId, lastETag, forceRefresh, hasNotifyPush) {\n\tconst lastUpdated = parseInt(BrowserStorage.getItem('lastUpdated'), 10)\n\tconst lastTab = BrowserStorage.getItem('tabId')\n\tconst now = Math.floor(Date.now() / 1000)\n\n\tif (forceRefresh\n\t\t// Allow the same tab to refresh with less than the timeout,\n\t\t|| (lastTab === tabId && lastUpdated + 25 < now)\n\t\t// Allow the same tab to refresh with notify push,\n\t\t|| (lastTab === tabId && hasNotifyPush)\n\t\t// and at the same time give it some more time against other tabs.\n\t\t|| lastUpdated + 35 < now) {\n\t\tBrowserStorage.setItem('tabId', tabId)\n\t\tBrowserStorage.setItem('lastUpdated', now.toString())\n\t\t// console.debug('Refetching data in ' + tabId + ' (prev: ' + lastTab + ' age: ' + (now - lastUpdated) + ')')\n\t\tawait refreshData(lastETag)\n\t// } else {\n\t// console.debug('Reusing data in ' + tabId + ' (prev: ' + lastTab + ' age: ' + (now - lastUpdated) + ')')\n\t}\n\n\treturn {\n\t\tstatus: parseInt(BrowserStorage.getItem('status'), 10),\n\t\theaders: JSON.parse(BrowserStorage.getItem('headers') || '[]'),\n\t\tdata: JSON.parse(BrowserStorage.getItem('data') || '[]'),\n\t\ttabId: BrowserStorage.getItem('tabId'),\n\t\tlastUpdated: parseInt(BrowserStorage.getItem('lastUpdated'), 10),\n\t}\n}\n\n/**\n * @param {string|null} tabId unique id for browser tab\n */\nasync function setCurrentTabAsActive(tabId) {\n\tconst lastTab = BrowserStorage.getItem('tabId')\n\tif (lastTab !== tabId) {\n\t\t// Refresh the data when changing the tab\n\t\tawait getNotificationsData(tabId, '', true, false)\n\t\t// Enforce this tab one the raise-condition if there was one\n\t\tBrowserStorage.setItem('tabId', tabId)\n\t}\n}\n\n/**\n * @param {object} notification notification object\n */\nfunction remapAttributes(notification) {\n\tnotification.notificationId = notification.notification_id\n\tnotification.objectId = notification.object_id\n\tnotification.objectType = notification.object_type\n\n\tdelete notification.notification_id\n\tdelete notification.object_id\n\tdelete notification.object_type\n\n\treturn notification\n}\n\n/**\n * @param {string} lastETag last ETag\n */\nasync function refreshData(lastETag) {\n\tlet requestConfig = {}\n\tif (lastETag) {\n\t\trequestConfig = {\n\t\t\theaders: {\n\t\t\t\t'If-None-Match': lastETag,\n\t\t\t},\n\t\t}\n\t}\n\n\ttry {\n\t\tconst response = await axios.get(generateOcsUrl('apps/notifications/api/v2/notifications'), requestConfig)\n\n\t\tBrowserStorage.setItem('status', '' + response.status)\n\t\tif (response.status !== 204) {\n\t\t\tBrowserStorage.setItem('headers', JSON.stringify(response.headers))\n\t\t\tBrowserStorage.setItem('data', JSON.stringify(response.data.ocs.data.map(remapAttributes)))\n\t\t}\n\t} catch (error) {\n\t\tif (error?.response?.status) {\n\t\t\tBrowserStorage.setItem('status', '' + error.response.status)\n\t\t} else {\n\t\t\t// Setting to 500 in case no request was made so it's retried on the next attempt\n\t\t\tBrowserStorage.setItem('status', '500')\n\t\t}\n\t}\n}\n\nexport {\n\tgetNotificationsData,\n\tsetCurrentTabAsActive,\n}\n","/*!\n * howler.js v2.2.4\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/(\\d+)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (!node.bufferSource) {\n return self;\n }\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.4\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i console.debug('Audio output successfully redirected to secondary speaker'))\n\t\t\t\t\t.catch((error) => console.error('Failed to redirect audio output:', error))\n\t\t\t\tsoundDuped.play()\n\t\t\t}\n\t\t}\n\t} else if (loadState('notifications', 'sound_notification')) {\n\t\tconst sound = new Howl({\n\t\t\tsrc: [generateFilePath('notifications', 'img', 'notification.ogg')],\n\t\t\tvolume: 0.5,\n\t\t})\n\n\t\tsound.play()\n\t}\n}\n\nexport {\n\tcreateWebNotification,\n}\n","\n\n\n\n\n\n"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_main","defineComponent","__props","_ctx","_cache","openBlock","createElementBlock","renderSlot","createCommentVNode","toDisplayString","createTextVNode","NcEmptyContent","_export_sfc","props","timeOptions","computed","relativeTimeOptions","title","useFormatTime","toRef","relativeTime","useFormatRelativeTime","formattedTime","unref","__emit","emit","descriptionId","createElementId","triggerId","focusTrap","ref","isOpened","wrapperTag","contentContainerElement","useTemplateRef","headerMenuElement","triggerButtonInstance","ignore","onClickOutside","setMenuState","useHotKey","useTrapStackControl","watch","state","toggleMenu","nextTick","addFocusTrap","clearFocusTrap","onFocusOut","event","createFocusTrap","getTrapStack","createBlock","resolveDynamicComponent","normalizeClass","withCtx","createVNode","NcButton","withModifiers","withDirectives","createElementVNode","vShow","NcHeaderMenu","_sfc_main$1","_sfc_render","NcUserBubbleDiv","mergeModels","isOpen","useModel","isAvatarUrl","e","isCustomAvatar","avatarStyle","hasUrl","warn","href","contentComponent","RouterLink","contentStyle","NcPopover","$event","attrs","mergeProps","NcAvatar","normalizeStyle","NcUserBubble","exports","initialState","require$$0","getCapabilities","major","valid","require$$1","_interopDefault","major__default","valid__default","ProxyBus","bus2","__publicField","name","handler","SimpleBus","h","bus","getBus","_a","subscribe","unsubscribe","eventBus","browserStorage$1","token","observers","getRequestToken","onRequestTokenUpdate","observer","error","getCSPNonce","meta","token2","browserStorage","GuestUser","randomUUID","guest","displayName","currentUser$1","getGuestUser","getGuestNickname","setGuestNickname","nickname","c","r","currentUser","getAttribute","el","attribute","getCurrentUser","head","uid","bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction$1","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","i","l","keys","len","key","findKey","_key","_global","global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","stripBOM","content","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","m","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","ret","freezeMethods","value","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","callbacks","data","cb","asap","process","utils$1","AxiosError","message","code","config","request","response","prototype$1","customProps","axiosError","msg","errCode","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","options","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","Buffer","index","exposedHelpers","build","encode$1","charMap","match","AxiosURLSearchParams","params","encoder","_encode","encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","utils","platform","__spreadValues","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","args","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","formHeaders","allowedHeaders","xsrfValue","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","timeoutErrorMessage","cancel","protocol","composeSignals$1","signals","timeout","length","controller","aborted","onabort","reason","signal","streamChunk","chunk","chunkSize","pos","end","readBytes","iterable","__asyncGenerator","iter","__forAwait","readStream","more","temp","__await","__yieldStar","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","isFunction","globalFetchAPI","Request","Response","ReadableStream$1","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","body","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","__spreadProps","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","renderReason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","s","throwIfCancellationRequested","dispatchRequest","VERSION","validators$1","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","correctSpelling","assertOptions","schema","allowUnknown","validators","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","CancelToken$1","spread","callback","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","instance","axios","promises","axios_1","n","u","U","R","o","f","g","t","v","d","_","router","require$$2","Axios__default","client","cancelableClient","RETRY_KEY","onCsrfTokenError","responseURL","RETRY_DELAY_KEY","onMaintenanceModeError","retryDelay","onNotLoggedInError","__importDefault","this","mod","dist","getSupportedTypes","listen","capabilities_1","event_bus_1","capabilities","setupGlobals","setupSocket","preAuth","_createElementBlock","_mergeProps","$props","_createElementVNode","_openBlock","theming","hexRegex","hexToHSL","hexColor","max","hue","sat","lum","isRedThemed","isOrangeThemed","_createBlock","IconBell","isWebLink","onClickActionButton","action","_unref","_createTextVNode","_toDisplayString","$options","lastSlashPosition","firstSlashPosition","_component_NcUserBubble","ActionButton","NcDateTime","IconClose","IconMessageOutline","NcRichText","parametersHaveLink","p","parameters","richParameters","UserParameter","FileParameter","DefaultParameter","executeEvent","showError","generateOcsUrl","_hoisted_6","_component_NcDateTime","_component_NcButton","_createVNode","_component_IconClose","_hoisted_8","_component_NcRichText","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_14","_normalizeClass","_hoisted_15","_hoisted_16","_hoisted_17","_Fragment","_component_ActionButton","_hoisted_18","_component_IconMessageOutline","getNotificationsData","tabId","lastETag","forceRefresh","hasNotifyPush","lastUpdated","BrowserStorage","lastTab","refreshData","setCurrentTabAsActive","remapAttributes","notification","requestConfig","HowlerGlobal","Howler","vol","setupAudioContext","ids","j","sound","muted","ext","audioTest","mpegTest","ua","checkOpera","isOldOpera","checkSafari","safariVersion","isOldSafari","unlock","audioNode","testPlay","audio","handleSuspension","Howl","Sound","loadBuffer","sprite","internal","num","soundId","seek","duration","start","stop","setParams","node","playWebAudio","playHtml5","play","loadedNoReadyState","from","to","currentTime","isGroup","diff","steps","stepLen","lastTick","tick","loop","playing","seekAndEmit","emitSeek","realTime","rateSeek","sounds","remCache","once","events","isId","task","limit","cnt","isIOS","checkIE","howl","parent","volume","loadSound","dataView","decodeAudioData","xhr","safeXhrSend","arraybuffer","success","buffer","iOS","appVersion","safari","pan","x","y","z","xUp","yUp","zUp","or","_super","pannerType","setupPanner","pa","panner","createWebNotification","getLanguage","playNotificationSound","loadState","howlPayload","generateFilePath","primaryDeviceId","secondarySpeakerEnabled","secondaryDeviceId","_c","_b","soundDuped","sessionKeepAlive","hasThrottledPushNotifications","fairUsePolicyNotification","imagePath","IconBellOutline","IconNotification","NotificationItem","notifications","pollInterval","temporary","permissions","$data","_component_NcHeaderMenu","_component_IconNotification","$setup","_Transition","_TransitionGroup","_component_NotificationItem","_renderList","_component_NcEmptyContent","_component_IconBellOutline"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,22]} \ No newline at end of file +{"version":3,"file":"NotificationsApp-Dl4t5GxQ.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcEmptyContent-BdOezubv.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHeaderMenu-DfO7ghiM.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserBubble-DfxVEEZg.mjs","../node_modules/@nextcloud/capabilities/dist/index.cjs","../node_modules/@nextcloud/event-bus/dist/index.cjs","../node_modules/@nextcloud/auth/dist/index.cjs","../node_modules/axios/dist/browser/axios.cjs","../node_modules/@nextcloud/router/dist/index.cjs","../node_modules/@nextcloud/axios/dist/index.cjs","../node_modules/@nextcloud/notify_push/dist/index.js","../node_modules/vue-material-design-icons/BellOutline.vue","../node_modules/vue-material-design-icons/Close.vue","../node_modules/vue-material-design-icons/MessageOutline.vue","../node_modules/vue-material-design-icons/Bell.vue","../src/Components/IconNotification.vue","../src/Components/ActionButton.vue","../src/Components/Parameters/DefaultParameter.vue","../src/Components/Parameters/FileParameter.vue","../src/Components/Parameters/UserParameter.vue","../src/Components/NotificationItem.vue","../src/services/notificationsService.js","../node_modules/howler/dist/howler.js","../src/services/webNotificationsService.js","../src/NotificationsApp.vue"],"sourcesContent":["import '../assets/NcEmptyContent-q-geAf0w.css';\nimport { defineComponent, createElementBlock, openBlock, createCommentVNode, renderSlot, toDisplayString, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = {\n class: \"empty-content\",\n role: \"note\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"empty-content__icon\",\n \"aria-hidden\": \"true\"\n};\nconst _hoisted_3 = {\n key: 0,\n class: \"empty-content__name\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"empty-content__description\"\n};\nconst _hoisted_5 = {\n key: 2,\n class: \"empty-content__action\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcEmptyContent\",\n props: {\n description: { default: \"\" },\n name: { default: \"\" }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n _ctx.$slots.icon ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n _ctx.name !== \"\" ? (openBlock(), createElementBlock(\"span\", _hoisted_3, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true)\n ], true),\n _ctx.description !== \"\" || _ctx.$slots.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(_ctx.description), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n _ctx.$slots.action ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"action\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\nconst NcEmptyContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-697cfd8f\"]]);\nexport {\n NcEmptyContent as N\n};\n//# sourceMappingURL=NcEmptyContent-BdOezubv.mjs.map\n","import { defineComponent, computed, toRef, createElementBlock, openBlock, toDisplayString, unref } from \"vue\";\nimport { useFormatTime, useFormatRelativeTime } from \"../composables/useFormatDateTime/index.mjs\";\nconst _hoisted_1 = [\"data-timestamp\", \"title\", \"textContent\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTime\",\n props: {\n timestamp: {},\n format: { default: () => ({ timeStyle: \"medium\", dateStyle: \"short\" }) },\n relativeTime: { type: [Boolean, String], default: \"long\" },\n ignoreSeconds: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const timeOptions = computed(() => ({ format: props.format }));\n const relativeTimeOptions = computed(() => ({\n ignoreSeconds: props.ignoreSeconds,\n relativeTime: props.relativeTime || \"long\",\n update: props.relativeTime !== false\n }));\n const title = useFormatTime(toRef(() => props.timestamp), timeOptions);\n const relativeTime = useFormatRelativeTime(toRef(() => props.timestamp), relativeTimeOptions);\n const formattedTime = computed(() => props.relativeTime ? relativeTime.value : title.value);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: \"nc-datetime\",\n dir: \"auto\",\n \"data-timestamp\": _ctx.timestamp,\n title: unref(title),\n textContent: toDisplayString(formattedTime.value)\n }, null, 8, _hoisted_1);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs.map\n","import '../assets/NcHeaderMenu-Hy0UKyUu.css';\nimport { defineComponent, ref, computed, useTemplateRef, watch, nextTick, createBlock, openBlock, resolveDynamicComponent, normalizeClass, unref, withCtx, createVNode, createElementBlock, createCommentVNode, withDirectives, withModifiers, renderSlot, toDisplayString, createElementVNode, vShow } from \"vue\";\nimport { onClickOutside } from \"@vueuse/core\";\nimport { createFocusTrap } from \"focus-trap\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport { useHotKey } from \"../composables/useHotKey/index.mjs\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-B6cEicto.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { N as NcButton } from \"./NcButton-DkC5k3Lb.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = { class: \"header-menu__caret\" };\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = {\n ref: \"contentContainer\",\n class: \"header-menu__content\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcHeaderMenu\",\n props: {\n id: {},\n ariaLabel: { default: () => void 0 },\n open: { type: Boolean, default: false },\n isNav: { type: Boolean, default: false },\n description: { default: () => void 0 },\n excludeClickOutsideSelectors: { default: () => [] }\n },\n emits: [\"closed\", \"opened\", \"update:open\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const descriptionId = createElementId();\n const triggerId = createElementId();\n const focusTrap = ref();\n const isOpened = ref(__props.open);\n const wrapperTag = computed(() => __props.isNav ? \"nav\" : \"div\");\n const contentContainerElement = useTemplateRef(\"contentContainer\");\n const headerMenuElement = useTemplateRef(\"headerMenu\");\n const triggerButtonInstance = useTemplateRef(\"triggerButton\");\n const ignore = computed(() => Array.isArray(__props.excludeClickOutsideSelectors) ? __props.excludeClickOutsideSelectors : __props.excludeClickOutsideSelectors.split(\" \"));\n onClickOutside(headerMenuElement, () => setMenuState(false), { ignore });\n useHotKey(\"Escape\", () => setMenuState(false), { prevent: true });\n useTrapStackControl(isOpened, {\n disabled: () => !__props.isNav\n });\n watch(() => __props.open, (state) => setMenuState(state));\n function toggleMenu() {\n setMenuState(!isOpened.value);\n }\n async function setMenuState(state) {\n if (state === isOpened.value) {\n return;\n }\n isOpened.value = state;\n emit(\"update:open\", state);\n await nextTick();\n await (state ? addFocusTrap() : clearFocusTrap());\n emit(state ? \"opened\" : \"closed\");\n }\n function onFocusOut(event) {\n if (!__props.isNav) {\n return;\n }\n if (!(event.relatedTarget instanceof Node)) {\n return;\n }\n if (headerMenuElement.value?.contains(event.relatedTarget)) {\n setMenuState(false);\n }\n }\n async function addFocusTrap() {\n if (__props.isNav || focusTrap.value) {\n return;\n }\n focusTrap.value = createFocusTrap(contentContainerElement.value, {\n allowOutsideClick: true,\n trapStack: getTrapStack(),\n fallbackFocus: triggerButtonInstance.value?.$el\n });\n focusTrap.value.activate();\n }\n function clearFocusTrap() {\n focusTrap.value?.deactivate();\n focusTrap.value = void 0;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(wrapperTag.value), {\n id: _ctx.id,\n ref: \"headerMenu\",\n \"aria-labelledby\": _ctx.isNav ? unref(triggerId) : null,\n class: normalizeClass([{ \"header-menu--opened\": isOpened.value }, \"header-menu\"]),\n onFocusout: onFocusOut\n }, {\n default: withCtx(() => [\n createVNode(unref(NcButton), {\n id: _ctx.isNav ? unref(triggerId) : null,\n ref: \"triggerButton\",\n \"aria-controls\": `header-menu-${_ctx.id}`,\n \"aria-expanded\": isOpened.value.toString(),\n \"aria-label\": _ctx.ariaLabel,\n class: \"header-menu__trigger\",\n size: \"large\",\n variant: \"tertiary-no-background\",\n onClick: withModifiers(toggleMenu, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trigger\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"id\", \"aria-controls\", \"aria-expanded\", \"aria-label\"]),\n _ctx.description ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: unref(descriptionId),\n class: \"header-menu__description hidden-visually\"\n }, toDisplayString(_ctx.description), 9, _hoisted_1)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_2, null, 512), [\n [vShow, isOpened.value]\n ]),\n withDirectives(createElementVNode(\"div\", {\n id: `header-menu-${_ctx.id}`,\n class: \"header-menu__wrapper\"\n }, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 512)\n ], 8, _hoisted_3), [\n [vShow, isOpened.value]\n ])\n ]),\n _: 3\n }, 40, [\"id\", \"aria-labelledby\", \"class\"]);\n };\n }\n});\nconst NcHeaderMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d45c5788\"]]);\nexport {\n NcHeaderMenu as N\n};\n//# sourceMappingURL=NcHeaderMenu-DfO7ghiM.mjs.map\n","import '../assets/NcUserBubble-ChgvvPPf.css';\nimport { createElementBlock, openBlock, renderSlot, defineComponent, mergeModels, useModel, computed, warn, watch, createBlock, resolveDynamicComponent, unref, withCtx, mergeProps, createVNode, createElementVNode, createCommentVNode, normalizeStyle, toDisplayString } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-BkmHv-oY.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nconst _sfc_main$1 = {};\nfunction _sfc_render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"div\", null, [\n renderSlot(_ctx.$slots, \"trigger\")\n ]);\n}\nconst NcUserBubbleDiv = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst _hoisted_1 = { class: \"user-bubble__name\" };\nconst _hoisted_2 = {\n key: 0,\n class: \"user-bubble__secondary\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserBubble\",\n props: /* @__PURE__ */ mergeModels({\n avatarImage: { default: void 0 },\n user: { default: void 0 },\n displayName: { default: void 0 },\n showUserStatus: { type: Boolean },\n url: { default: void 0 },\n to: { default: void 0 },\n primary: { type: Boolean },\n size: { default: 20 },\n margin: { default: 2 }\n }, {\n \"open\": { type: Boolean },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"click\"], [\"update:open\"]),\n setup(__props, { emit: __emit }) {\n const isOpen = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const isAvatarUrl = computed(() => {\n if (!props.avatarImage) {\n return false;\n }\n try {\n const url = new URL(props.avatarImage);\n return !!url;\n } catch {\n return false;\n }\n });\n const isCustomAvatar = computed(() => !!props.avatarImage);\n const avatarStyle = computed(() => ({\n marginInlineStart: `${props.margin}px`\n }));\n const hasUrl = computed(() => {\n if (!props.url || props.url.trim() === \"\") {\n return false;\n }\n try {\n const url = new URL(props.url, props.url?.startsWith?.(\"/\") ? window.location.href : void 0);\n return !!url;\n } catch {\n warn(\"[NcUserBubble] Invalid URL passed\", { url: props.url });\n return false;\n }\n });\n const href = computed(() => hasUrl.value ? props.url : void 0);\n const contentComponent = computed(() => {\n if (hasUrl.value) {\n return \"a\";\n } else if (props.to) {\n return RouterLink;\n } else {\n return \"div\";\n }\n });\n const contentStyle = computed(() => ({\n height: `${props.size}px`,\n lineHeight: `${props.size}px`,\n borderRadius: `${props.size / 2}px`\n }));\n watch([() => props.displayName, () => props.user], () => {\n if (!props.displayName && !props.user) {\n warn(\"[NcUserBubble] At least `displayName` or `user` property should be set.\");\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(!!_ctx.$slots.default ? unref(NcPopover) : NcUserBubbleDiv), {\n shown: isOpen.value,\n \"onUpdate:shown\": _cache[1] || (_cache[1] = ($event) => isOpen.value = $event),\n class: \"user-bubble__wrapper\",\n trigger: \"hover focus\"\n }, {\n trigger: withCtx(({ attrs }) => [\n (openBlock(), createBlock(resolveDynamicComponent(contentComponent.value), mergeProps({\n class: [\"user-bubble__content\", { \"user-bubble__content--primary\": _ctx.primary }],\n style: contentStyle.value,\n to: _ctx.to,\n href: href.value\n }, attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n createVNode(unref(NcAvatar), {\n url: isCustomAvatar.value && isAvatarUrl.value ? _ctx.avatarImage : void 0,\n \"icon-class\": isCustomAvatar.value && !isAvatarUrl.value ? _ctx.avatarImage : void 0,\n user: _ctx.user,\n \"display-name\": _ctx.displayName,\n size: _ctx.size - _ctx.margin * 2,\n style: normalizeStyle(avatarStyle.value),\n \"disable-tooltip\": true,\n \"disable-menu\": true,\n \"hide-status\": !_ctx.showUserStatus,\n class: \"user-bubble__avatar\"\n }, null, 8, [\"url\", \"icon-class\", \"user\", \"display-name\", \"size\", \"style\", \"hide-status\"]),\n createElementVNode(\"span\", _hoisted_1, toDisplayString(_ctx.displayName || _ctx.user), 1),\n !!_ctx.$slots.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"name\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1040, [\"class\", \"style\", \"to\", \"href\"]))\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 40, [\"shown\"]);\n };\n }\n});\nconst NcUserBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-37bde6b7\"]]);\nexport {\n NcUserBubble as N\n};\n//# sourceMappingURL=NcUserBubble-DfxVEEZg.mjs.map\n","\"use strict\";\nObject.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\nconst initialState = require(\"@nextcloud/initial-state\");\nfunction getCapabilities() {\n try {\n return initialState.loadState(\"core\", \"capabilities\");\n } catch (error) {\n console.debug(\"Could not find capabilities initial state fall back to _oc_capabilities\");\n if (!(\"_oc_capabilities\" in window)) {\n return {};\n }\n return window[\"_oc_capabilities\"];\n }\n}\nexports.getCapabilities = getCapabilities;\n//# sourceMappingURL=index.cjs.map\n","\"use strict\";\nObject.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\nconst major = require(\"semver/functions/major.js\");\nconst valid = require(\"semver/functions/valid.js\");\nconst _interopDefault = (e) => e && e.__esModule ? e : { default: e };\nconst major__default = /* @__PURE__ */ _interopDefault(major);\nconst valid__default = /* @__PURE__ */ _interopDefault(valid);\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__default.default(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major__default.default(bus2.getVersion()) !== major__default.default(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 subscribe(name, handler) {\n getBus().subscribe(name, handler);\n}\nfunction unsubscribe(name, handler) {\n getBus().unsubscribe(name, handler);\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\nexports.ProxyBus = ProxyBus;\nexports.SimpleBus = SimpleBus;\nexports.emit = emit;\nexports.subscribe = subscribe;\nexports.unsubscribe = unsubscribe;\n//# sourceMappingURL=index.cjs.map\n","\"use strict\";\nObject.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\nconst eventBus = require(\"@nextcloud/event-bus\");\nconst browserStorage$1 = require(\"@nextcloud/browser-storage\");\nlet token;\nconst observers = [];\nfunction getRequestToken() {\n if (token === void 0) {\n token = document.head.dataset.requesttoken ?? null;\n }\n return token;\n}\nfunction onRequestTokenUpdate(observer) {\n observers.push(observer);\n}\neventBus.subscribe(\"csrf-token-update\", (e) => {\n token = e.token;\n observers.forEach((observer) => {\n try {\n observer(token);\n } catch (error) {\n console.error(\"Error updating CSRF token observer\", error);\n }\n });\n});\nfunction getCSPNonce() {\n const meta = document?.querySelector('meta[name=\"csp-nonce\"]');\n if (!meta) {\n const token2 = getRequestToken();\n return token2 ? btoa(token2) : void 0;\n }\n return meta.nonce;\n}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nconst browserStorage = browserStorage$1.getBuilder(\"public\").persist().build();\nclass GuestUser {\n _displayName;\n uid;\n isAdmin;\n constructor() {\n if (!browserStorage.getItem(\"guestUid\")) {\n browserStorage.setItem(\"guestUid\", randomUUID());\n }\n this._displayName = browserStorage.getItem(\"guestNickname\") || \"\";\n this.uid = browserStorage.getItem(\"guestUid\") || randomUUID();\n this.isAdmin = false;\n eventBus.subscribe(\"user:info:changed\", (guest) => {\n this._displayName = guest.displayName;\n browserStorage.setItem(\"guestNickname\", guest.displayName || \"\");\n });\n }\n get displayName() {\n return this._displayName;\n }\n set displayName(displayName) {\n this._displayName = displayName;\n browserStorage.setItem(\"guestNickname\", displayName);\n eventBus.emit(\"user:info:changed\", this);\n }\n}\nlet currentUser$1;\nfunction getGuestUser() {\n if (!currentUser$1) {\n currentUser$1 = new GuestUser();\n }\n return currentUser$1;\n}\nfunction getGuestNickname() {\n return getGuestUser()?.displayName || null;\n}\nfunction setGuestNickname(nickname) {\n if (!nickname || nickname.trim().length === 0) {\n throw new Error(\"Nickname cannot be empty\");\n }\n getGuestUser().displayName = nickname;\n}\nfunction randomUUID() {\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID();\n }\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nlet currentUser;\nfunction getAttribute(el, attribute) {\n if (el) {\n return el.getAttribute(attribute);\n }\n return null;\n}\nfunction getCurrentUser() {\n if (currentUser !== void 0) {\n return currentUser;\n }\n const head = document?.getElementsByTagName(\"head\")[0];\n if (!head) {\n return null;\n }\n const uid = getAttribute(head, \"data-user\");\n if (uid === null) {\n currentUser = null;\n return currentUser;\n }\n currentUser = {\n uid,\n displayName: getAttribute(head, \"data-user-displayname\"),\n isAdmin: !!window._oc_isadmin\n };\n return currentUser;\n}\nexports.getCSPNonce = getCSPNonce;\nexports.getCurrentUser = getCurrentUser;\nexports.getGuestNickname = getGuestNickname;\nexports.getGuestUser = getGuestUser;\nexports.getRequestToken = getRequestToken;\nexports.onRequestTokenUpdate = onRequestTokenUpdate;\nexports.setGuestNickname = setGuestNickname;\n//# sourceMappingURL=index.cjs.map\n","/*! Axios v1.12.2 Copyright (c) 2025 Matt Zabriskie and contributors */\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction$1(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction$1 = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction$1(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction$1(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction$1(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction$1(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction$1(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction$1(thing[iterator]);\n\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction: isFunction$1,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils$1.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils$1.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv,\n navigator: _navigator,\n origin: origin\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data) ||\n utils$1.isReadableStream(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils$1.isObject(header) && utils$1.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils$1.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n};\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n};\n\nconst asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils$1.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nvar resolveConfig = (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders$1.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils$1.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils$1.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n };\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils$1.asap(unsubscribe);\n\n return signal;\n }\n};\n\nvar composeSignals$1 = composeSignals;\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n};\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils$1;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils$1.global);\n\nconst {\n ReadableStream: ReadableStream$1, TextEncoder\n} = utils$1.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n};\n\nconst factory = (env) => {\n env = utils$1.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream$1);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream$1(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils$1.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n });\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils$1.isBlob(body)) {\n return body.size;\n }\n\n if (utils$1.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils$1.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils$1.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils$1.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils$1.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders$1.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n};\n\nconst seedCache = new Map();\n\nconst getFetch = (config) => {\n let env = config ? config.env : {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\ngetFetch();\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: getFetch,\n }\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters, config) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst VERSION = \"1.12.2\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators$1.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","\"use strict\";\nObject.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\nconst w = (e, n) => u(e, \"\", n), U = (e) => \"/remote.php/\" + e, R = (e, n) => {\n var o;\n return ((o = n == null ? void 0 : n.baseURL) != null ? o : f()) + U(e);\n}, h = (e, n, o) => {\n var r;\n const c = Object.assign({\n ocsVersion: 2\n }, o || {}).ocsVersion === 1 ? 1 : 2;\n return ((r = o == null ? void 0 : o.baseURL) != null ? r : f()) + \"/ocs/v\" + c + \".php\" + g(e, n, o);\n}, g = (e, n, o) => {\n const r = Object.assign({\n escape: !0\n }, o || {}), s = function(c, i) {\n return i = i || {}, c.replace(\n /{([^{}]*)}/g,\n function(l, t) {\n const a = i[t];\n return r.escape ? encodeURIComponent(typeof a == \"string\" || typeof a == \"number\" ? a.toString() : l) : typeof a == \"string\" || typeof a == \"number\" ? a.toString() : l;\n }\n );\n };\n return e.charAt(0) !== \"/\" && (e = \"/\" + e), s(e, n || {});\n}, v = (e, n, o) => {\n var r, s, c;\n const i = Object.assign({\n noRewrite: !1\n }, o || {}), l = (r = o == null ? void 0 : o.baseURL) != null ? r : d();\n return ((c = (s = window == null ? void 0 : window.OC) == null ? void 0 : s.config) == null ? void 0 : c.modRewriteWorking) === !0 && !i.noRewrite ? l + g(e, n, o) : l + \"/index.php\" + g(e, n, o);\n}, _ = (e, n) => n.includes(\".\") ? u(e, \"img\", n) : u(e, \"img\", \"\".concat(n, \".svg\")), u = (e, n, o) => {\n var r, s, c;\n const i = (c = (s = (r = window == null ? void 0 : window.OC) == null ? void 0 : r.coreApps) == null ? void 0 : s.includes(e)) != null ? c : !1, l = o.slice(-3) === \"php\";\n let t = d();\n return l && !i ? (t += \"/index.php/apps/\".concat(e), n && (t += \"/\".concat(encodeURI(n))), o !== \"index.php\" && (t += \"/\".concat(o))) : !l && !i ? (t = b(e), n && (t += \"/\".concat(n, \"/\")), t.at(-1) !== \"/\" && (t += \"/\"), t += o) : ((e === \"settings\" || e === \"core\" || e === \"search\") && n === \"ajax\" && (t += \"/index.php\"), e && (t += \"/\".concat(e)), n && (t += \"/\".concat(n)), t += \"/\".concat(o)), t;\n}, f = () => window.location.protocol + \"//\" + window.location.host + d();\nfunction d() {\n let e = window._oc_webroot;\n if (typeof e > \"u\") {\n e = location.pathname;\n const n = e.indexOf(\"/index.php/\");\n if (n !== -1)\n e = e.slice(0, n);\n else {\n const o = e.indexOf(\"/\", 1);\n e = e.slice(0, o > 0 ? o : void 0);\n }\n }\n return e;\n}\nfunction b(e) {\n var n, o;\n return (o = ((n = window._oc_appswebroots) != null ? n : {})[e]) != null ? o : \"\";\n}\nexports.generateFilePath = u;\nexports.generateOcsUrl = h;\nexports.generateRemoteUrl = R;\nexports.generateUrl = v;\nexports.getAppRootUrl = b;\nexports.getBaseUrl = f;\nexports.getRootUrl = d;\nexports.imagePath = _;\nexports.linkTo = w;\n","\"use strict\";\nObject.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: \"Module\" } });\nconst auth = require(\"@nextcloud/auth\");\nconst Axios = require(\"axios\");\nconst router = require(\"@nextcloud/router\");\nconst _interopDefault = (e) => e && e.__esModule ? e : { default: e };\nconst Axios__default = /* @__PURE__ */ _interopDefault(Axios);\n/*!\n * SPDX-License-Identifier: GPL-3.0-or-later\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n */\nconst client = Axios__default.default.create({\n headers: {\n requesttoken: auth.getRequestToken() ?? \"\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n }\n});\nauth.onRequestTokenUpdate((token) => {\n client.defaults.headers.requesttoken = token;\n});\nconst cancelableClient = Object.assign(client, {\n CancelToken: Axios__default.default.CancelToken,\n isCancel: Axios__default.default.isCancel\n});\nconst RETRY_KEY = Symbol(\"csrf-retry\");\nfunction onCsrfTokenError(axios) {\n return async (error) => {\n if (!Axios.isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n if (config && !config[RETRY_KEY] && response?.status === 412 && response?.data?.message === \"CSRF check failed\") {\n console.warn(`Request to ${responseURL} failed because of a CSRF mismatch. Fetching a new token`);\n const { data: { token } } = await axios.get(router.generateUrl(\"/csrftoken\"));\n console.debug(`New request token ${token} fetched`);\n axios.defaults.headers.requesttoken = token;\n return axios({\n ...config,\n headers: {\n ...config.headers,\n requesttoken: token\n },\n [RETRY_KEY]: true\n });\n }\n throw error;\n };\n}\nconst RETRY_DELAY_KEY = Symbol(\"retryDelay\");\nfunction onMaintenanceModeError(axios) {\n return async (error) => {\n if (!Axios.isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n const headers = response?.headers;\n let retryDelay = typeof config?.[RETRY_DELAY_KEY] === \"number\" ? config?.[RETRY_DELAY_KEY] : 1;\n if (status === 503 && headers?.[\"x-nextcloud-maintenance-mode\"] === \"1\" && config?.retryIfMaintenanceMode) {\n retryDelay *= 2;\n if (retryDelay > 32) {\n console.error(\"Retry delay exceeded one minute, giving up.\", { responseURL });\n throw error;\n }\n console.warn(`Request to ${responseURL} failed because of maintenance mode. Retrying in ${retryDelay}s`);\n await new Promise((resolve) => {\n setTimeout(resolve, retryDelay * 1e3);\n });\n return axios({\n ...config,\n [RETRY_DELAY_KEY]: retryDelay\n });\n }\n throw error;\n };\n}\nasync function onNotLoggedInError(error) {\n if (Axios.isAxiosError(error)) {\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n if (status === 401 && response?.data?.message === \"Current user is not logged in\" && config?.reloadExpiredSession && window?.location) {\n console.error(`Request to ${responseURL} failed because the user session expired. Reloading the page …`);\n window.location.reload();\n }\n }\n throw error;\n}\ncancelableClient.interceptors.response.use((r) => r, onCsrfTokenError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onMaintenanceModeError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onNotLoggedInError);\nObject.defineProperty(exports, \"isAxiosError\", {\n enumerable: true,\n get: () => Axios.isAxiosError\n});\nObject.defineProperty(exports, \"isCancel\", {\n enumerable: true,\n get: () => Axios.isCancel\n});\nexports.default = cancelableClient;\n//# sourceMappingURL=index.cjs.map\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSupportedTypes = getSupportedTypes;\nexports.listen = listen;\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst capabilities_1 = require(\"@nextcloud/capabilities\");\nconst axios_1 = __importDefault(require(\"@nextcloud/axios\"));\nconst event_bus_1 = require(\"@nextcloud/event-bus\");\n/**\n * Get the list of supported notification types as reported by the server\n *\n * @return string[]\n */\nfunction getSupportedTypes() {\n const capabilities = (0, capabilities_1.getCapabilities)();\n if (capabilities.notify_push) {\n return capabilities.notify_push.type;\n }\n else {\n return [];\n }\n}\n/**\n * Register a listener for notify_push events\n *\n * @param name name of the event\n * @param handler callback invoked for every matching event pushed\n * @param [options]\n * @param [options.credentials] optional credentials used instead of the pre_auth request\n * @param [options.credentials.username] username\n * @param [options.credentials.password] app password\n * @return boolean whether push is set up correctly\n */\nfunction listen(name, handler, options = {}) {\n setupGlobals(options);\n if (!window._notify_push_listeners[name]) {\n window._notify_push_listeners[name] = [];\n }\n window._notify_push_listeners[name].push(handler);\n if (window._notify_push_ws !== null && typeof window._notify_push_ws === \"object\" && window._notify_push_ready) {\n window._notify_push_ws.send('listen ' + name);\n }\n else {\n setupSocket(options);\n }\n return window._notify_push_available;\n}\nfunction setupGlobals(options = {}) {\n if (typeof window._notify_push_listeners === \"undefined\") {\n window._notify_push_listeners = {};\n window._notify_push_ws = null;\n window._notify_push_online = true;\n window._notify_push_available = false;\n window._notify_push_error_count = 0;\n window._notify_push_ready = false;\n (0, event_bus_1.subscribe)('networkOffline', () => {\n window._notify_push_online = false;\n window._notify_push_ws = null;\n window._notify_push_ready = false;\n });\n (0, event_bus_1.subscribe)('networkOnline', () => {\n window._notify_push_error_count = 0;\n window._notify_push_online = true;\n setupSocket(options);\n });\n }\n}\nasync function setupSocket(options = {}) {\n if (window._notify_push_ws) {\n return true;\n }\n window._notify_push_ws = true;\n const capabilities = (0, capabilities_1.getCapabilities)();\n if (!capabilities.notify_push) {\n window._notify_push_available = false;\n window._notify_push_ws = null;\n return false;\n }\n window._notify_push_available = true;\n let preAuth;\n if (!options.credentials) {\n const response = await axios_1.default.post(capabilities.notify_push.endpoints.pre_auth);\n preAuth = response.data;\n }\n window._notify_push_ws = new WebSocket(capabilities.notify_push.endpoints.websocket);\n window._notify_push_ws.onopen = () => {\n if (typeof window._notify_push_ws === \"object\" && window._notify_push_ws) {\n if (preAuth) {\n window._notify_push_ws.send('');\n window._notify_push_ws.send(preAuth);\n }\n else if (options.credentials) {\n window._notify_push_ws.send(options.credentials.username);\n window._notify_push_ws.send(options.credentials.password);\n }\n window._notify_push_ready = true;\n for (let name in window._notify_push_listeners) {\n window._notify_push_ws.send('listen ' + name);\n }\n }\n };\n window._notify_push_ws.onmessage = message => {\n if (message.data === \"authenticated\") {\n window._notify_push_error_count = 0;\n }\n else {\n const i = message.data.indexOf(' ');\n let [event, body] = i > 0 ? [message.data.slice(0, i), message.data.slice(i + 1)] : [message.data, null];\n if (body) {\n body = JSON.parse(body);\n }\n if (window._notify_push_listeners[event]) {\n for (let cb of window._notify_push_listeners[event]) {\n cb(event, body);\n }\n }\n }\n };\n window._notify_push_ws.onerror = window._notify_push_ws.onclose = () => {\n window._notify_push_ws = null;\n window._notify_push_error_count += 1;\n window._notify_push_ready = false;\n setTimeout(() => {\n if (window._notify_push_online) {\n setupSocket(options);\n }\n }, 1000 * window._notify_push_error_count);\n };\n return true;\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\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 axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport BrowserStorage from './BrowserStorage.js'\n\n/**\n * @param {string|null} tabId unique id for browser tab\n * @param {string} lastETag last ETag\n * @param {boolean} forceRefresh whether to refresh data forcefully\n * @param {boolean} hasNotifyPush whether has notify_push enabled\n */\nasync function getNotificationsData(tabId, lastETag, forceRefresh, hasNotifyPush) {\n\tconst lastUpdated = parseInt(BrowserStorage.getItem('lastUpdated'), 10)\n\tconst lastTab = BrowserStorage.getItem('tabId')\n\tconst now = Math.floor(Date.now() / 1000)\n\n\tif (forceRefresh\n\t\t// Allow the same tab to refresh with less than the timeout,\n\t\t|| (lastTab === tabId && lastUpdated + 25 < now)\n\t\t// Allow the same tab to refresh with notify push,\n\t\t|| (lastTab === tabId && hasNotifyPush)\n\t\t// and at the same time give it some more time against other tabs.\n\t\t|| lastUpdated + 35 < now) {\n\t\tBrowserStorage.setItem('tabId', tabId)\n\t\tBrowserStorage.setItem('lastUpdated', now.toString())\n\t\t// console.debug('Refetching data in ' + tabId + ' (prev: ' + lastTab + ' age: ' + (now - lastUpdated) + ')')\n\t\tawait refreshData(lastETag)\n\t// } else {\n\t// console.debug('Reusing data in ' + tabId + ' (prev: ' + lastTab + ' age: ' + (now - lastUpdated) + ')')\n\t}\n\n\treturn {\n\t\tstatus: parseInt(BrowserStorage.getItem('status'), 10),\n\t\theaders: JSON.parse(BrowserStorage.getItem('headers') || '[]'),\n\t\tdata: JSON.parse(BrowserStorage.getItem('data') || '[]'),\n\t\ttabId: BrowserStorage.getItem('tabId'),\n\t\tlastUpdated: parseInt(BrowserStorage.getItem('lastUpdated'), 10),\n\t}\n}\n\n/**\n * @param {string|null} tabId unique id for browser tab\n */\nasync function setCurrentTabAsActive(tabId) {\n\tconst lastTab = BrowserStorage.getItem('tabId')\n\tif (lastTab !== tabId) {\n\t\t// Refresh the data when changing the tab\n\t\tawait getNotificationsData(tabId, '', true, false)\n\t\t// Enforce this tab one the raise-condition if there was one\n\t\tBrowserStorage.setItem('tabId', tabId)\n\t}\n}\n\n/**\n * @param {object} notification notification object\n */\nfunction remapAttributes(notification) {\n\tnotification.notificationId = notification.notification_id\n\tnotification.objectId = notification.object_id\n\tnotification.objectType = notification.object_type\n\n\tdelete notification.notification_id\n\tdelete notification.object_id\n\tdelete notification.object_type\n\n\treturn notification\n}\n\n/**\n * @param {string} lastETag last ETag\n */\nasync function refreshData(lastETag) {\n\tlet requestConfig = {}\n\tif (lastETag) {\n\t\trequestConfig = {\n\t\t\theaders: {\n\t\t\t\t'If-None-Match': lastETag,\n\t\t\t},\n\t\t}\n\t}\n\n\ttry {\n\t\tconst response = await axios.get(generateOcsUrl('apps/notifications/api/v2/notifications'), requestConfig)\n\n\t\tBrowserStorage.setItem('status', '' + response.status)\n\t\tif (response.status !== 204) {\n\t\t\tBrowserStorage.setItem('headers', JSON.stringify(response.headers))\n\t\t\tBrowserStorage.setItem('data', JSON.stringify(response.data.ocs.data.map(remapAttributes)))\n\t\t}\n\t} catch (error) {\n\t\tif (error?.response?.status) {\n\t\t\tBrowserStorage.setItem('status', '' + error.response.status)\n\t\t} else {\n\t\t\t// Setting to 500 in case no request was made so it's retried on the next attempt\n\t\t\tBrowserStorage.setItem('status', '500')\n\t\t}\n\t}\n}\n\nexport {\n\tgetNotificationsData,\n\tsetCurrentTabAsActive,\n}\n","/*!\n * howler.js v2.2.4\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/(\\d+)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (!node.bufferSource) {\n return self;\n }\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.4\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i console.debug('Audio output successfully redirected to secondary speaker'))\n\t\t\t\t\t.catch((error) => console.error('Failed to redirect audio output:', error))\n\t\t\t\tsoundDuped.play()\n\t\t\t}\n\t\t}\n\t} else if (loadState('notifications', 'sound_notification')) {\n\t\tconst sound = new Howl({\n\t\t\tsrc: [generateFilePath('notifications', 'img', 'notification.ogg')],\n\t\t\tvolume: 0.5,\n\t\t})\n\n\t\tsound.play()\n\t}\n}\n\nexport {\n\tcreateWebNotification,\n}\n","\n\n\n\n\n\n"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_main","defineComponent","__props","_ctx","_cache","openBlock","createElementBlock","renderSlot","createCommentVNode","toDisplayString","createTextVNode","NcEmptyContent","_export_sfc","props","timeOptions","computed","relativeTimeOptions","title","useFormatTime","toRef","relativeTime","useFormatRelativeTime","formattedTime","unref","__emit","emit","descriptionId","createElementId","triggerId","focusTrap","ref","isOpened","wrapperTag","contentContainerElement","useTemplateRef","headerMenuElement","triggerButtonInstance","ignore","onClickOutside","setMenuState","useHotKey","useTrapStackControl","watch","state","toggleMenu","nextTick","addFocusTrap","clearFocusTrap","onFocusOut","event","createFocusTrap","getTrapStack","createBlock","resolveDynamicComponent","normalizeClass","withCtx","createVNode","NcButton","withModifiers","withDirectives","createElementVNode","vShow","NcHeaderMenu","_sfc_main$1","_sfc_render","NcUserBubbleDiv","mergeModels","isOpen","useModel","isAvatarUrl","e","isCustomAvatar","avatarStyle","hasUrl","warn","href","contentComponent","RouterLink","contentStyle","NcPopover","$event","attrs","mergeProps","NcAvatar","normalizeStyle","NcUserBubble","exports","initialState","require$$0","getCapabilities","major","valid","require$$1","_interopDefault","major__default","valid__default","ProxyBus","bus2","__publicField","name","handler","SimpleBus","h","bus","getBus","_a","subscribe","unsubscribe","eventBus","browserStorage$1","token","observers","getRequestToken","onRequestTokenUpdate","observer","error","getCSPNonce","meta","token2","browserStorage","GuestUser","randomUUID","guest","displayName","currentUser$1","getGuestUser","getGuestNickname","setGuestNickname","nickname","c","r","currentUser","getAttribute","el","attribute","getCurrentUser","head","uid","bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction$1","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","i","l","keys","len","key","findKey","_key","_global","global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","stripBOM","content","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","m","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","ret","freezeMethods","value","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","callbacks","data","cb","asap","process","utils$1","AxiosError","message","code","config","request","response","prototype$1","customProps","axiosError","msg","errCode","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","options","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","Buffer","index","exposedHelpers","build","encode$1","charMap","match","AxiosURLSearchParams","params","encoder","_encode","encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","utils","platform","__spreadValues","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","args","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","formHeaders","allowedHeaders","xsrfValue","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","timeoutErrorMessage","cancel","protocol","composeSignals$1","signals","timeout","length","controller","aborted","onabort","reason","signal","streamChunk","chunk","chunkSize","pos","end","readBytes","iterable","__asyncGenerator","iter","__forAwait","readStream","more","temp","__await","__yieldStar","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","isFunction","globalFetchAPI","Request","Response","ReadableStream$1","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","body","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","__spreadProps","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","renderReason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","s","throwIfCancellationRequested","dispatchRequest","VERSION","validators$1","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","correctSpelling","assertOptions","schema","allowUnknown","validators","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","CancelToken$1","spread","callback","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","instance","axios","promises","axios_1","n","u","U","R","o","f","g","t","v","d","_","router","require$$2","Axios__default","client","cancelableClient","RETRY_KEY","onCsrfTokenError","responseURL","RETRY_DELAY_KEY","onMaintenanceModeError","retryDelay","onNotLoggedInError","__importDefault","this","mod","dist","getSupportedTypes","listen","capabilities_1","event_bus_1","capabilities","setupGlobals","setupSocket","preAuth","_createElementBlock","_mergeProps","$props","_createElementVNode","_openBlock","theming","hexRegex","hexToHSL","hexColor","max","hue","sat","lum","isRedThemed","isOrangeThemed","_createBlock","IconBell","isWebLink","onClickActionButton","action","_unref","_createTextVNode","_toDisplayString","$options","lastSlashPosition","firstSlashPosition","_component_NcUserBubble","ActionButton","NcDateTime","IconClose","IconMessageOutline","NcRichText","parametersHaveLink","p","parameters","richParameters","UserParameter","FileParameter","DefaultParameter","executeEvent","showError","generateOcsUrl","_hoisted_6","_component_NcDateTime","_component_NcButton","_createVNode","_component_IconClose","_hoisted_8","_component_NcRichText","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_14","_normalizeClass","_hoisted_15","_hoisted_16","_hoisted_17","_Fragment","_component_ActionButton","_hoisted_18","_component_IconMessageOutline","getNotificationsData","tabId","lastETag","forceRefresh","hasNotifyPush","lastUpdated","BrowserStorage","lastTab","refreshData","setCurrentTabAsActive","remapAttributes","notification","requestConfig","HowlerGlobal","Howler","vol","setupAudioContext","ids","j","sound","muted","ext","audioTest","mpegTest","ua","checkOpera","isOldOpera","checkSafari","safariVersion","isOldSafari","unlock","audioNode","testPlay","audio","handleSuspension","Howl","Sound","loadBuffer","sprite","internal","num","soundId","seek","duration","start","stop","setParams","node","playWebAudio","playHtml5","play","loadedNoReadyState","from","to","currentTime","isGroup","diff","steps","stepLen","lastTick","tick","loop","playing","seekAndEmit","emitSeek","realTime","rateSeek","sounds","remCache","once","events","isId","task","limit","cnt","isIOS","checkIE","howl","parent","volume","loadSound","dataView","decodeAudioData","xhr","safeXhrSend","arraybuffer","success","buffer","iOS","appVersion","safari","pan","x","y","z","xUp","yUp","zUp","or","_super","pannerType","setupPanner","pa","panner","createWebNotification","getLanguage","playNotificationSound","loadState","howlPayload","generateFilePath","primaryDeviceId","secondarySpeakerEnabled","secondaryDeviceId","_c","_b","soundDuped","sessionKeepAlive","hasThrottledPushNotifications","fairUsePolicyNotification","imagePath","IconBellOutline","IconNotification","NotificationItem","notifications","pollInterval","temporary","permissions","$data","_component_NcHeaderMenu","_component_IconNotification","$setup","_Transition","_TransitionGroup","_component_NotificationItem","_renderList","_component_NcEmptyContent","_component_IconBellOutline"],"mappings":"+1EAGA,MAAMA,GAAa,CACjB,MAAO,gBACP,KAAM,MACR,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,sBACP,cAAe,MACjB,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,qBACT,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,4BACT,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,uBACT,EACMC,GAA4BC,GAAgB,CAChD,OAAQ,iBACR,MAAO,CACL,YAAa,CAAE,QAAS,EAAI,EAC5B,KAAM,CAAE,QAAS,EAAE,CACpB,EACD,MAAMC,EAAS,CACb,MAAO,CAACC,EAAMC,KACLC,EAAW,EAAEC,EAAmB,MAAOX,GAAY,CACxDQ,EAAK,OAAO,MAAQE,EAAW,EAAEC,EAAmB,MAAOV,GAAY,CACrEW,GAAWJ,EAAK,OAAQ,OAAQ,CAAE,EAAE,OAAQ,EAAI,CAC1D,CAAS,GAAKK,EAAmB,GAAI,EAAI,EACjCD,GAAWJ,EAAK,OAAQ,OAAQ,CAAE,EAAE,IAAM,CACxCA,EAAK,OAAS,IAAME,EAAS,EAAIC,EAAmB,OAAQT,GAAYY,EAAgBN,EAAK,IAAI,EAAG,CAAC,GAAKK,EAAmB,GAAI,EAAI,CACtI,EAAE,EAAI,EACPL,EAAK,cAAgB,IAAMA,EAAK,OAAO,aAAeE,IAAaC,EAAmB,IAAKR,GAAY,CACrGS,GAAWJ,EAAK,OAAQ,cAAe,CAAE,EAAE,IAAM,CAC/CO,GAAgBD,EAAgBN,EAAK,WAAW,EAAG,CAAC,CAChE,EAAa,EAAI,CACjB,CAAS,GAAKK,EAAmB,GAAI,EAAI,EACjCL,EAAK,OAAO,QAAUE,EAAW,EAAEC,EAAmB,MAAOP,GAAY,CACvEQ,GAAWJ,EAAK,OAAQ,SAAU,CAAE,EAAE,OAAQ,EAAI,CAC5D,CAAS,GAAKK,EAAmB,GAAI,EAAI,CACzC,CAAO,EAEP,CACA,CAAC,EACKG,GAAiCC,GAAYZ,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECjD1FL,GAAa,CAAC,iBAAkB,QAAS,aAAa,EACtDK,GAA4BC,GAAgB,CAChD,OAAQ,aACR,MAAO,CACL,UAAW,CAAE,EACb,OAAQ,CAAE,QAAS,KAAO,CAAE,UAAW,SAAU,UAAW,OAAO,EAAK,EACxE,aAAc,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,MAAQ,EAC1D,cAAe,CAAE,KAAM,OAAO,CAC/B,EACD,MAAMC,EAAS,CACb,MAAMW,EAAQX,EACRY,EAAcC,GAAS,KAAO,CAAE,OAAQF,EAAM,MAAM,EAAG,EACvDG,EAAsBD,GAAS,KAAO,CAC1C,cAAeF,EAAM,cACrB,aAAcA,EAAM,cAAgB,OACpC,OAAQA,EAAM,eAAiB,EACrC,EAAM,EACII,EAAQC,GAAcC,GAAM,IAAMN,EAAM,SAAS,EAAGC,CAAW,EAC/DM,EAAeC,GAAsBF,GAAM,IAAMN,EAAM,SAAS,EAAGG,CAAmB,EACtFM,EAAgBP,GAAS,IAAMF,EAAM,aAAeO,EAAa,MAAQH,EAAM,KAAK,EAC1F,MAAO,CAACd,EAAMC,KACLC,EAAS,EAAIC,EAAmB,OAAQ,CAC7C,MAAO,cACP,IAAK,OACL,iBAAkBH,EAAK,UACvB,MAAOoB,GAAMN,CAAK,EAClB,YAAaR,EAAgBa,EAAc,KAAK,CACxD,EAAS,KAAM,EAAG3B,EAAU,EAE5B,CACA,CAAC,EClBKA,GAAa,CAAC,IAAI,EAClBC,GAAa,CAAE,MAAO,oBAAsB,EAC5CC,GAAa,CAAC,IAAI,EAClBC,GAAa,CACjB,IAAK,mBACL,MAAO,sBACT,EACME,GAA4BC,GAAgB,CAChD,OAAQ,eACR,MAAO,CACL,GAAI,CAAE,EACN,UAAW,CAAE,QAAS,IAAA,CAAc,CAAA,EACpC,KAAM,CAAE,KAAM,QAAS,QAAS,EAAO,EACvC,MAAO,CAAE,KAAM,QAAS,QAAS,EAAO,EACxC,YAAa,CAAE,QAAS,IAAA,CAAA,CAAc,EACtC,6BAA8B,CAAE,QAAS,IAAM,CAAE,CAAA,CAClD,EACD,MAAO,CAAC,SAAU,SAAU,aAAa,EACzC,MAAMC,EAAS,CAAE,KAAMsB,CAAM,EAAI,CAC/B,MAAMC,EAAOD,EACPE,EAAgBC,GAAiB,EACjCC,EAAYD,GAAiB,EAC7BE,EAAYC,GAAK,EACjBC,EAAWD,GAAI5B,EAAQ,IAAI,EAC3B8B,EAAajB,GAAS,IAAMb,EAAQ,MAAQ,MAAQ,KAAK,EACzD+B,EAA0BC,GAAe,kBAAkB,EAC3DC,EAAoBD,GAAe,YAAY,EAC/CE,EAAwBF,GAAe,eAAe,EACtDG,EAAStB,GAAS,IAAM,MAAM,QAAQb,EAAQ,4BAA4B,EAAIA,EAAQ,6BAA+BA,EAAQ,6BAA6B,MAAM,GAAG,CAAC,EAC1KoC,GAAeH,EAAmB,IAAMI,EAAa,EAAK,EAAG,CAAE,OAAAF,EAAQ,EACvEG,GAAU,SAAU,IAAMD,EAAa,EAAK,EAAG,CAAE,QAAS,GAAM,EAChEE,GAAoBV,EAAU,CAC5B,SAAU,IAAM,CAAC7B,EAAQ,KAC/B,CAAK,EACDwC,GAAM,IAAMxC,EAAQ,KAAOyC,GAAUJ,EAAaI,CAAK,CAAC,EACxD,SAASC,GAAa,CACpBL,EAAa,CAACR,EAAS,KAAK,CAClC,CACI,eAAeQ,EAAaI,EAAO,CAC7BA,IAAUZ,EAAS,QAGvBA,EAAS,MAAQY,EACjBlB,EAAK,cAAekB,CAAK,EACzB,MAAME,GAAU,EAChB,MAAOF,EAAQG,IAAiBC,KAChCtB,EAAKkB,EAAQ,SAAW,QAAQ,EACtC,CACI,SAASK,EAAWC,EAAO,OACpB/C,EAAQ,OAGP+C,EAAM,yBAAyB,QAGjCd,EAAAA,EAAkB,QAAlBA,MAAAA,EAAyB,SAASc,EAAM,iBAC1CV,EAAa,EAAK,CAE1B,CACI,eAAeO,GAAe,OACxB5C,EAAQ,OAAS2B,EAAU,QAG/BA,EAAU,MAAQqB,GAAgBjB,EAAwB,MAAO,CAC/D,kBAAmB,GACnB,UAAWkB,GAAc,EACzB,eAAef,EAAAA,EAAsB,QAAtBA,YAAAA,EAA6B,GACpD,CAAO,EACDP,EAAU,MAAM,SAAU,EAChC,CACI,SAASkB,GAAiB,QACxBlB,EAAAA,EAAU,QAAVA,MAAAA,EAAiB,aACjBA,EAAU,MAAQ,MACxB,CACI,MAAO,CAAC1B,EAAMC,KACLC,EAAW,EAAE+C,EAAYC,GAAwBrB,EAAW,KAAK,EAAG,CACzE,GAAI7B,EAAK,GACT,IAAK,aACL,kBAAmBA,EAAK,MAAQoB,GAAMK,CAAS,EAAI,KACnD,MAAO0B,GAAe,CAAC,CAAE,sBAAuBvB,EAAS,KAAK,EAAI,aAAa,CAAC,EAChF,WAAYiB,CACpB,EAAS,CACD,QAASO,EAAQ,IAAM,CACrBC,GAAYjC,GAAMkC,EAAQ,EAAG,CAC3B,GAAItD,EAAK,MAAQoB,GAAMK,CAAS,EAAI,KACpC,IAAK,gBACL,gBAAiB,eAAezB,OAAAA,EAAK,IACrC,gBAAiB4B,EAAS,MAAM,SAAU,EAC1C,aAAc5B,EAAK,UACnB,MAAO,uBACP,KAAM,QACN,QAAS,yBACT,QAASuD,GAAcd,EAAY,CAAC,SAAS,CAAC,CAC1D,EAAa,CACD,KAAMW,EAAQ,IAAM,CAClBhD,GAAWJ,EAAK,OAAQ,UAAW,CAAE,EAAE,OAAQ,EAAI,CACjE,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,KAAM,gBAAiB,gBAAiB,YAAY,CAAC,EAC5DA,EAAK,aAAeE,IAAaC,EAAmB,OAAQ,CAC1D,IAAK,EACL,GAAIiB,GAAMG,CAAa,EACvB,MAAO,0CACnB,EAAajB,EAAgBN,EAAK,WAAW,EAAG,EAAGR,EAAU,GAAKa,EAAmB,GAAI,EAAI,EACnFmD,GAAeC,EAAmB,MAAOhE,GAAY,KAAM,GAAG,EAAG,CAC/D,CAACiE,GAAO9B,EAAS,KAAK,CAClC,CAAW,EACD4B,GAAeC,EAAmB,MAAO,CACvC,GAAI,eAAezD,OAAAA,EAAK,IACxB,MAAO,sBACnB,EAAa,CACDyD,EAAmB,MAAO9D,GAAY,CACpCS,GAAWJ,EAAK,OAAQ,UAAW,CAAE,EAAE,OAAQ,EAAI,CACjE,EAAe,GAAG,CAClB,EAAa,EAAGN,EAAU,EAAG,CACjB,CAACgE,GAAO9B,EAAS,KAAK,CACvB,CAAA,CACX,CAAS,EACD,EAAG,CACJ,EAAE,GAAI,CAAC,KAAM,kBAAmB,OAAO,CAAC,EAE/C,CACA,CAAC,EACK+B,GAA+BlD,GAAYZ,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECnIxF+D,GAAc,CAAE,EACtB,SAASC,GAAY7D,EAAMC,EAAQ,CACjC,OAAOC,EAAW,EAAEC,EAAmB,MAAO,KAAM,CAClDC,GAAWJ,EAAK,OAAQ,SAAS,CACrC,CAAG,CACH,CACA,MAAM8D,GAAkCrD,GAAYmD,GAAa,CAAC,CAAC,SAAUC,EAAW,CAAC,CAAC,EACpFrE,GAAa,CAAE,MAAO,mBAAqB,EAC3CC,GAAa,CACjB,IAAK,EACL,MAAO,wBACT,EACMI,GAA4BC,GAAgB,CAChD,OAAQ,eACR,MAAuBiE,GAAY,CACjC,YAAa,CAAE,QAAS,MAAQ,EAChC,KAAM,CAAE,QAAS,MAAQ,EACzB,YAAa,CAAE,QAAS,MAAQ,EAChC,eAAgB,CAAE,KAAM,OAAS,EACjC,IAAK,CAAE,QAAS,MAAQ,EACxB,GAAI,CAAE,QAAS,MAAQ,EACvB,QAAS,CAAE,KAAM,OAAS,EAC1B,KAAM,CAAE,QAAS,EAAI,EACrB,OAAQ,CAAE,QAAS,CAAC,CACxB,EAAK,CACD,KAAQ,CAAE,KAAM,OAAS,EACzB,cAAiB,CAAA,CACrB,CAAG,EACD,MAAuBA,GAAY,CAAC,OAAO,EAAG,CAAC,aAAa,CAAC,EAC7D,MAAMhE,EAAS,CAAE,KAAMsB,CAAM,EAAI,CAC/B,MAAM2C,EAASC,GAASlE,EAAS,MAAM,EACjCW,EAAQX,EACRuB,EAAOD,EACP6C,EAActD,GAAS,IAAM,CACjC,GAAI,CAACF,EAAM,YACT,MAAO,GAET,GAAI,CAEF,MAAO,CAAC,CADI,IAAI,IAAIA,EAAM,WAAW,CAE7C,OAAcyD,EAAA,CACN,MAAO,EACf,CACA,CAAK,EACKC,EAAiBxD,GAAS,IAAM,CAAC,CAACF,EAAM,WAAW,EACnD2D,EAAczD,GAAS,KAAO,CAClC,kBAAmB,GAAGF,OAAAA,EAAM,OAAM,KACxC,EAAM,EACI4D,EAAS1D,GAAS,IAAM,SAC5B,GAAI,CAACF,EAAM,KAAOA,EAAM,IAAI,KAAM,IAAK,GACrC,MAAO,GAET,GAAI,CAEF,MAAO,CAAC,CADI,IAAI,IAAIA,EAAM,KAAKA,GAAAA,EAAAA,EAAM,MAANA,YAAAA,EAAW,aAAXA,MAAAA,EAAAA,KAAAA,EAAwB,KAAO,OAAO,SAAS,KAAO,MAAM,CAEnG,OAAcyD,EAAA,CACN,OAAAI,GAAK,oCAAqC,CAAE,IAAK7D,EAAM,GAAG,CAAE,EACrD,EACf,CACA,CAAK,EACK8D,EAAO5D,GAAS,IAAM0D,EAAO,MAAQ5D,EAAM,IAAM,MAAM,EACvD+D,EAAmB7D,GAAS,IAC5B0D,EAAO,MACF,IACE5D,EAAM,GACRgE,GAEA,KAEV,EACKC,EAAe/D,GAAS,KAAO,CACnC,OAAQ,GAAGF,OAAAA,EAAM,KAAI,MACrB,WAAY,GAAGA,OAAAA,EAAM,KAAI,MACzB,aAAc,GAAGA,OAAAA,EAAM,KAAO,EAAC,KACrC,EAAM,EACF,OAAA6B,GAAM,CAAC,IAAM7B,EAAM,YAAa,IAAMA,EAAM,IAAI,EAAG,IAAM,CACnD,CAACA,EAAM,aAAgBA,EAAM,IAGvC,CAAK,EACM,CAACV,EAAMC,KACLC,EAAW,EAAE+C,EAAYC,GAA0BlD,EAAK,OAAO,QAAUoB,GAAMwD,EAAS,EAAId,EAAe,EAAG,CACnH,MAAOE,EAAO,MACd,iBAAkB/D,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAK4E,GAAWb,EAAO,MAAQa,GACvE,MAAO,uBACP,QAAS,aACjB,EAAS,CACD,QAASzB,EAAQ,CAAC,CAAE,MAAA0B,KAAY,EAC7B5E,EAAS,EAAI+C,EAAYC,GAAwBuB,EAAiB,KAAK,EAAGM,GAAW,CACpF,MAAO,CAAC,uBAAwB,CAAE,gCAAiC/E,EAAK,OAAO,CAAE,EACjF,MAAO2E,EAAa,MACpB,GAAI3E,EAAK,GACT,KAAMwE,EAAK,KACZ,EAAEM,EAAO,CACR,QAAS7E,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAK4E,GAAWvD,EAAK,QAASuD,CAAM,EAC/E,CAAW,EAAG,CACF,QAASzB,EAAQ,IAAM,CACrBC,GAAYjC,GAAM4D,EAAQ,EAAG,CAC3B,IAAKZ,EAAe,OAASF,EAAY,MAAQlE,EAAK,YAAc,OACpE,aAAcoE,EAAe,OAAS,CAACF,EAAY,MAAQlE,EAAK,YAAc,OAC9E,KAAMA,EAAK,KACX,eAAgBA,EAAK,YACrB,KAAMA,EAAK,KAAOA,EAAK,OAAS,EAChC,MAAOiF,GAAeZ,EAAY,KAAK,EACvC,kBAAmB,GACnB,eAAgB,GAChB,cAAe,CAACrE,EAAK,eACrB,MAAO,qBACR,EAAE,KAAM,EAAG,CAAC,MAAO,aAAc,OAAQ,eAAgB,OAAQ,QAAS,aAAa,CAAC,EACzFyD,EAAmB,OAAQjE,GAAYc,EAAgBN,EAAK,aAAeA,EAAK,IAAI,EAAG,CAAC,EACtFA,EAAK,OAAO,MAAQE,EAAS,EAAIC,EAAmB,OAAQV,GAAY,CACxEW,GAAWJ,EAAK,OAAQ,OAAQ,CAAE,EAAE,OAAQ,EAAI,CAChE,CAAe,GAAKK,EAAmB,GAAI,EAAI,CAC/C,CAAa,EACD,EAAG,CACf,EAAa,KAAM,CAAC,QAAS,QAAS,KAAM,MAAM,CAAC,EACnD,CAAS,EACD,QAAS+C,EAAQ,IAAM,CACrBhD,GAAWJ,EAAK,OAAQ,UAAW,CAAE,EAAE,OAAQ,EAAI,CAC7D,CAAS,EACD,EAAG,CACX,EAAS,GAAI,CAAC,OAAO,CAAC,EAEtB,CACA,CAAC,EACKkF,GAA+BzE,GAAYZ,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,oFClI9F,OAAO,eAAesF,EAAS,OAAO,YAAa,CAAE,MAAO,SAAU,EACtE,MAAMC,EAAeC,GACrB,SAASC,GAAkB,CACzB,GAAI,CACF,OAAOF,EAAa,UAAU,OAAQ,cAAc,CACrD,OAAejB,EAAA,CAEd,OADA,QAAQ,MAAM,yEAAyE,EACjF,qBAAsB,OAGrB,OAAO,iBAFL,CAAE,CAGf,CACA,CACAgB,EAAA,gBAA0BG,+ECb1B,OAAO,eAAeH,EAAS,OAAO,YAAa,CAAE,MAAO,SAAU,EACtE,MAAMI,EAAQF,GAAoC,EAC5CG,EAAQC,GAAoC,EAC5CC,EAAmBvB,GAAMA,GAAKA,EAAE,WAAaA,EAAI,CAAE,QAASA,CAAG,EAC/DwB,EAAiCD,EAAgBH,CAAK,EACtDK,EAAiCF,EAAgBF,CAAK,EAK5D,MAAMK,CAAS,CAEb,YAAYC,EAAM,CADlBC,GAAA,YAEM,OAAOD,EAAK,YAAe,YAAc,CAACF,EAAe,QAAQE,EAAK,WAAU,CAAE,EACpF,QAAQ,KAAK,0DAA0D,EAC9DH,EAAe,QAAQG,EAAK,WAAU,CAAE,IAAMH,EAAe,QAAQ,KAAK,WAAY,CAAA,GAC/F,QAAQ,KACN,oCAAsCG,EAAK,WAAY,EAAG,SAAW,KAAK,WAAU,CACrF,EAEH,KAAK,IAAMA,CACf,CACE,YAAa,CACX,MAAO,OACX,CACE,UAAUE,EAAMC,EAAS,CACvB,KAAK,IAAI,UAAUD,EAAMC,CAAO,CACpC,CACE,YAAYD,EAAMC,EAAS,CACzB,KAAK,IAAI,YAAYD,EAAMC,CAAO,CACtC,CACE,KAAKD,KAASlD,EAAO,CACnB,KAAK,IAAI,KAAKkD,EAAM,GAAGlD,CAAK,CAChC,CACA,CAKA,MAAMoD,CAAU,CAAhB,cACEH,GAAA,gBAA2B,IAAI,KAC/B,YAAa,CACX,MAAO,OACX,CACE,UAAUC,EAAMC,EAAS,CACvB,KAAK,SAAS,IACZD,GACC,KAAK,SAAS,IAAIA,CAAI,GAAK,CAAE,GAAE,OAC9BC,CACR,CACK,CACL,CACE,YAAYD,EAAMC,EAAS,CACzB,KAAK,SAAS,IACZD,GACC,KAAK,SAAS,IAAIA,CAAI,GAAK,CAAE,GAAE,OAAQG,GAAMA,IAAMF,CAAO,CAC5D,CACL,CACE,KAAKD,KAASlD,EAAO,EACF,KAAK,SAAS,IAAIkD,CAAI,GAAK,CAAE,GACrC,QAASG,GAAM,CACtB,GAAI,CAEFA,EAAErD,EAAM,CAAC,CAAC,CACX,OAAQqB,EAAG,CACV,QAAQ,MAAM,kCAAmCA,CAAC,CAC1D,CACA,CAAK,CACL,CACA,CAKA,IAAIiC,EAAM,KACV,SAASC,GAAS,OAChB,OAAID,IAAQ,KACHA,EAEL,OAAO,OAAW,IACb,IAAI,MAAM,GAAI,CACnB,IAAK,IACI,IAAM,QAAQ,MACnB,wDACD,CAET,CAAK,IAECE,EAAA,OAAO,KAAP,MAAAA,EAAW,WAAa,OAAO,OAAO,cAAkB,MAC1D,QAAQ,KACN,oEACD,EACD,OAAO,cAAgB,OAAO,GAAG,WAE/B,OAAO,2BAAQ,eAAkB,IACnCF,EAAM,IAAIP,EAAS,OAAO,aAAa,EAEvCO,EAAM,OAAO,cAAgB,IAAIF,EAE5BE,EACT,CACA,SAASG,EAAUP,EAAMC,EAAS,CAChCI,IAAS,UAAUL,EAAMC,CAAO,CAClC,CACA,SAASO,EAAYR,EAAMC,EAAS,CAClCI,IAAS,YAAYL,EAAMC,CAAO,CACpC,CACA,SAAS3E,EAAK0E,KAASlD,EAAO,CAC5BuD,IAAS,KAAKL,EAAM,GAAGlD,CAAK,CAC9B,CACAqC,EAAA,SAAmBU,EACnBV,EAAA,UAAoBe,EACpBf,EAAA,KAAe7D,EACf6D,EAAA,UAAoBoB,EACpBpB,EAAA,YAAsBqB,6EClHtB,OAAO,eAAerB,EAAS,OAAO,YAAa,CAAE,MAAO,SAAU,EACtE,MAAMsB,EAAWpB,GAA+B,EAC1CqB,EAAmBjB,GACzB,IAAIkB,EACJ,MAAMC,EAAY,CAAE,EACpB,SAASC,GAAkB,OACzB,OAAIF,IAAU,SACZA,GAAQL,EAAA,SAAS,KAAK,QAAQ,eAAtB,KAAAA,EAAsC,MAEzCK,CACT,CACA,SAASG,EAAqBC,EAAU,CACtCH,EAAU,KAAKG,CAAQ,CACzB,CACAN,EAAS,UAAU,oBAAsBtC,GAAM,CAC7CwC,EAAQxC,EAAE,MACVyC,EAAU,QAASG,GAAa,CAC9B,GAAI,CACFA,EAASJ,CAAK,CACf,OAAQK,EAAO,CACd,QAAQ,MAAM,qCAAsCA,CAAK,CAC/D,CACA,CAAG,CACH,CAAC,EACD,SAASC,GAAc,CACrB,MAAMC,EAAO,+BAAU,cAAc,0BACrC,GAAI,CAACA,EAAM,CACT,MAAMC,EAASN,EAAiB,EAChC,OAAOM,EAAS,KAAKA,CAAM,EAAI,MACnC,CACE,OAAOD,EAAK,KACd,CAKA,MAAME,EAAiBV,EAAiB,WAAW,QAAQ,EAAE,QAAS,EAAC,MAAO,EAC9E,MAAMW,CAAU,CAId,aAAc,CAHdtB,GAAA,qBACAA,GAAA,YACAA,GAAA,gBAEOqB,EAAe,QAAQ,UAAU,GACpCA,EAAe,QAAQ,WAAYE,GAAY,EAEjD,KAAK,aAAeF,EAAe,QAAQ,eAAe,GAAK,GAC/D,KAAK,IAAMA,EAAe,QAAQ,UAAU,GAAKE,EAAY,EAC7D,KAAK,QAAU,GACfb,EAAS,UAAU,oBAAsBc,GAAU,CACjD,KAAK,aAAeA,EAAM,YAC1BH,EAAe,QAAQ,gBAAiBG,EAAM,aAAe,EAAE,CACrE,CAAK,CACL,CACE,IAAI,aAAc,CAChB,OAAO,KAAK,YAChB,CACE,IAAI,YAAYC,EAAa,CAC3B,KAAK,aAAeA,EACpBJ,EAAe,QAAQ,gBAAiBI,CAAW,EACnDf,EAAS,KAAK,oBAAqB,IAAI,CAC3C,CACA,CACA,IAAIgB,EACJ,SAASC,GAAe,CACtB,OAAKD,IACHA,EAAgB,IAAIJ,GAEfI,CACT,CACA,SAASE,GAAmB,OAC1B,QAAOD,EAAAA,EAAY,IAAZA,YAAAA,EAAgB,cAAe,IACxC,CACA,SAASE,EAAiBC,EAAU,CAClC,GAAI,CAACA,GAAYA,EAAS,KAAI,EAAG,SAAW,EAC1C,MAAM,IAAI,MAAM,0BAA0B,EAE5CH,EAAY,EAAG,YAAcG,CAC/B,CACA,SAASP,GAAa,OACpB,OAAIhB,EAAA,WAAW,SAAX,MAAAA,EAAmB,WACd,WAAW,OAAO,WAAY,EAEhC,uCAAuC,QAAQ,QAAUwB,GAAM,CACpE,MAAMC,EAAI,KAAK,OAAQ,EAAG,GAAK,EAE/B,OADUD,IAAM,IAAMC,EAAIA,EAAI,EAAI,GACzB,SAAS,EAAE,CACxB,CAAG,CACH,CACA,IAAIC,EACJ,SAASC,EAAaC,EAAIC,EAAW,CACnC,OAAID,EACKA,EAAG,aAAaC,CAAS,EAE3B,IACT,CACA,SAASC,GAAiB,CACxB,GAAIJ,IAAgB,OAClB,OAAOA,EAET,MAAMK,EAAO,+BAAU,qBAAqB,QAAQ,GACpD,GAAI,CAACA,EACH,OAAO,KAET,MAAMC,EAAML,EAAaI,EAAM,WAAW,EAC1C,OAAIC,IAAQ,MACVN,EAAc,KACPA,IAETA,EAAc,CACZ,IAAAM,EACA,YAAaL,EAAaI,EAAM,uBAAuB,EACvD,QAAS,CAAC,CAAC,OAAO,WACnB,EACML,EACT,CACA7C,EAAA,YAAsB8B,EACtB9B,EAAA,eAAyBiD,EACzBjD,EAAA,iBAA2BwC,EAC3BxC,EAAA,aAAuBuC,EACvBvC,EAAA,gBAA0B0B,EAC1B1B,EAAA,qBAA+B2B,EAC/B3B,EAAA,iBAA2ByC,wDCvH3B,SAASW,EAAKC,EAAIC,EAAS,CACzB,OAAO,UAAgB,CACrB,OAAOD,EAAG,MAAMC,EAAS,SAAS,CACnC,CACH,CAIA,KAAM,CAAC,SAAAC,CAAQ,EAAI,OAAO,UACpB,CAAC,eAAAC,CAAc,EAAI,OACnB,CAAC,SAAAC,EAAU,YAAAC,CAAW,EAAI,OAE1BC,GAAUC,GAASC,GAAS,CAC9B,MAAMC,EAAMP,EAAS,KAAKM,CAAK,EAC/B,OAAOD,EAAME,CAAG,IAAMF,EAAME,CAAG,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAE,YAAW,EACnE,GAAG,OAAO,OAAO,IAAI,CAAC,EAEhBC,EAAcC,IAClBA,EAAOA,EAAK,YAAa,EACjBH,GAAUF,EAAOE,CAAK,IAAMG,GAGhCC,EAAaD,GAAQH,GAAS,OAAOA,IAAUG,EAS/C,CAAC,QAAAE,CAAO,EAAI,MASZC,EAAcF,EAAW,WAAW,EAS1C,SAASG,EAASC,EAAK,CACrB,OAAOA,IAAQ,MAAQ,CAACF,EAAYE,CAAG,GAAKA,EAAI,cAAgB,MAAQ,CAACF,EAAYE,EAAI,WAAW,GAC/FC,EAAaD,EAAI,YAAY,QAAQ,GAAKA,EAAI,YAAY,SAASA,CAAG,CAC7E,CASA,MAAME,EAAgBR,EAAW,aAAa,EAU9C,SAASS,EAAkBH,EAAK,CAC9B,IAAII,EACJ,OAAK,OAAO,YAAgB,KAAiB,YAAY,OACvDA,EAAS,YAAY,OAAOJ,CAAG,EAE/BI,EAAUJ,GAASA,EAAI,QAAYE,EAAcF,EAAI,MAAM,EAEtDI,CACT,CASA,MAAMC,EAAWT,EAAW,QAAQ,EAQ9BK,EAAeL,EAAW,UAAU,EASpCU,EAAWV,EAAW,QAAQ,EAS9BW,EAAYf,GAAUA,IAAU,MAAQ,OAAOA,GAAU,SAQzDgB,EAAYhB,GAASA,IAAU,IAAQA,IAAU,GASjDiB,EAAiBT,GAAQ,CAC7B,GAAIV,EAAOU,CAAG,IAAM,SAClB,MAAO,GAGT,MAAMU,EAAYvB,EAAea,CAAG,EACpC,OAAQU,IAAc,MAAQA,IAAc,OAAO,WAAa,OAAO,eAAeA,CAAS,IAAM,OAAS,EAAErB,KAAeW,IAAQ,EAAEZ,KAAYY,EACtJ,EASKW,EAAiBX,GAAQ,CAE7B,GAAI,CAACO,EAASP,CAAG,GAAKD,EAASC,CAAG,EAChC,MAAO,GAGT,GAAI,CACF,OAAO,OAAO,KAAKA,CAAG,EAAE,SAAW,GAAK,OAAO,eAAeA,CAAG,IAAM,OAAO,SAC/E,OAAWrF,EAAA,CAEV,MAAO,EACX,CACC,EASKiG,EAASlB,EAAW,MAAM,EAS1BmB,EAASnB,EAAW,MAAM,EAS1BoB,GAASpB,EAAW,MAAM,EAS1BqB,GAAarB,EAAW,UAAU,EASlCsB,GAAYhB,GAAQO,EAASP,CAAG,GAAKC,EAAaD,EAAI,IAAI,EAS1DiB,EAAczB,GAAU,CAC5B,IAAI0B,EACJ,OAAO1B,IACJ,OAAO,UAAa,YAAcA,aAAiB,UAClDS,EAAaT,EAAM,MAAM,KACtB0B,EAAO5B,EAAOE,CAAK,KAAO,YAE1B0B,IAAS,UAAYjB,EAAaT,EAAM,QAAQ,GAAKA,EAAM,SAAQ,IAAO,qBAIlF,EASK2B,GAAoBzB,EAAW,iBAAiB,EAEhD,CAAC0B,GAAkBC,GAAWC,GAAYC,EAAS,EAAI,CAAC,iBAAkB,UAAW,WAAY,SAAS,EAAE,IAAI7B,CAAU,EAS1H8B,GAAQ/B,GAAQA,EAAI,KACxBA,EAAI,KAAI,EAAKA,EAAI,QAAQ,qCAAsC,EAAE,EAiBnE,SAASgC,GAAQC,EAAK1C,EAAI,CAAC,WAAA2C,EAAa,EAAK,EAAI,GAAI,CAEnD,GAAID,IAAQ,MAAQ,OAAOA,EAAQ,IACjC,OAGF,IAAIE,EACAC,EAQJ,GALI,OAAOH,GAAQ,WAEjBA,EAAM,CAACA,CAAG,GAGR7B,EAAQ6B,CAAG,EAEb,IAAKE,EAAI,EAAGC,EAAIH,EAAI,OAAQE,EAAIC,EAAGD,IACjC5C,EAAG,KAAK,KAAM0C,EAAIE,CAAC,EAAGA,EAAGF,CAAG,MAEzB,CAEL,GAAI3B,EAAS2B,CAAG,EACd,OAIF,MAAMI,EAAOH,EAAa,OAAO,oBAAoBD,CAAG,EAAI,OAAO,KAAKA,CAAG,EACrEK,EAAMD,EAAK,OACjB,IAAIE,EAEJ,IAAKJ,EAAI,EAAGA,EAAIG,EAAKH,IACnBI,EAAMF,EAAKF,CAAC,EACZ5C,EAAG,KAAK,KAAM0C,EAAIM,CAAG,EAAGA,EAAKN,CAAG,CAEtC,CACA,CAEA,SAASO,GAAQP,EAAKM,EAAK,CACzB,GAAIjC,EAAS2B,CAAG,EACd,OAAO,KAGTM,EAAMA,EAAI,YAAa,EACvB,MAAMF,EAAO,OAAO,KAAKJ,CAAG,EAC5B,IAAIE,EAAIE,EAAK,OACTI,EACJ,KAAON,KAAM,GAEX,GADAM,EAAOJ,EAAKF,CAAC,EACTI,IAAQE,EAAK,cACf,OAAOA,EAGX,OAAO,IACT,CAEA,MAAMC,GAEA,OAAO,WAAe,IAAoB,WACvC,OAAO,KAAS,IAAc,KAAQ,OAAO,OAAW,IAAc,OAASC,GAGlFC,GAAoBC,GAAY,CAACxC,EAAYwC,CAAO,GAAKA,IAAYH,GAoB3E,SAASI,IAAmC,CAC1C,KAAM,CAAC,SAAAC,EAAU,cAAAC,CAAa,EAAIJ,GAAiB,IAAI,GAAK,MAAQ,CAAE,EAChEjC,EAAS,CAAE,EACXsC,EAAc,CAAC1C,EAAKgC,IAAQ,CAChC,MAAMW,EAAYH,GAAYP,GAAQ7B,EAAQ4B,CAAG,GAAKA,EAClDvB,EAAcL,EAAOuC,CAAS,CAAC,GAAKlC,EAAcT,CAAG,EACvDI,EAAOuC,CAAS,EAAIJ,GAAMnC,EAAOuC,CAAS,EAAG3C,CAAG,EACvCS,EAAcT,CAAG,EAC1BI,EAAOuC,CAAS,EAAIJ,GAAM,CAAA,EAAIvC,CAAG,EACxBH,EAAQG,CAAG,EACpBI,EAAOuC,CAAS,EAAI3C,EAAI,MAAO,GACtB,CAACyC,GAAiB,CAAC3C,EAAYE,CAAG,KAC3CI,EAAOuC,CAAS,EAAI3C,EAEvB,EAED,QAAS4B,EAAI,EAAGC,EAAI,UAAU,OAAQD,EAAIC,EAAGD,IAC3C,UAAUA,CAAC,GAAKH,GAAQ,UAAUG,CAAC,EAAGc,CAAW,EAEnD,OAAOtC,CACT,CAYA,MAAMwC,GAAS,CAACC,EAAGC,EAAG7D,EAAS,CAAC,WAAA0C,CAAU,EAAG,MAC3CF,GAAQqB,EAAG,CAAC9C,EAAKgC,IAAQ,CACnB/C,GAAWgB,EAAaD,CAAG,EAC7B6C,EAAEb,CAAG,EAAIjD,EAAKiB,EAAKf,CAAO,EAE1B4D,EAAEb,CAAG,EAAIhC,CAEf,EAAK,CAAC,WAAA2B,CAAU,CAAC,EACRkB,GAUHE,GAAYC,IACZA,EAAQ,WAAW,CAAC,IAAM,QAC5BA,EAAUA,EAAQ,MAAM,CAAC,GAEpBA,GAYHC,GAAW,CAACC,EAAaC,EAAkBjM,EAAOkM,IAAgB,CACtEF,EAAY,UAAY,OAAO,OAAOC,EAAiB,UAAWC,CAAW,EAC7EF,EAAY,UAAU,YAAcA,EACpC,OAAO,eAAeA,EAAa,QAAS,CAC1C,MAAOC,EAAiB,SAC5B,CAAG,EACDjM,GAAS,OAAO,OAAOgM,EAAY,UAAWhM,CAAK,CACpD,EAWKmM,GAAe,CAACC,EAAWC,EAASC,EAAQC,IAAe,CAC/D,IAAIvM,EACA0K,EACA8B,EACJ,MAAMC,EAAS,CAAE,EAIjB,GAFAJ,EAAUA,GAAW,CAAE,EAEnBD,GAAa,KAAM,OAAOC,EAE9B,EAAG,CAGD,IAFArM,EAAQ,OAAO,oBAAoBoM,CAAS,EAC5C1B,EAAI1K,EAAM,OACH0K,KAAM,GACX8B,EAAOxM,EAAM0K,CAAC,GACT,CAAC6B,GAAcA,EAAWC,EAAMJ,EAAWC,CAAO,IAAM,CAACI,EAAOD,CAAI,IACvEH,EAAQG,CAAI,EAAIJ,EAAUI,CAAI,EAC9BC,EAAOD,CAAI,EAAI,IAGnBJ,EAAYE,IAAW,IAASrE,EAAemE,CAAS,CAC5D,OAAWA,IAAc,CAACE,GAAUA,EAAOF,EAAWC,CAAO,IAAMD,IAAc,OAAO,WAEtF,OAAOC,CACR,EAWKK,GAAW,CAACnE,EAAKoE,EAAcC,IAAa,CAChDrE,EAAM,OAAOA,CAAG,GACZqE,IAAa,QAAaA,EAAWrE,EAAI,UAC3CqE,EAAWrE,EAAI,QAEjBqE,GAAYD,EAAa,OACzB,MAAME,EAAYtE,EAAI,QAAQoE,EAAcC,CAAQ,EACpD,OAAOC,IAAc,IAAMA,IAAcD,CAC1C,EAUKE,GAAWxE,GAAU,CACzB,GAAI,CAACA,EAAO,OAAO,KACnB,GAAIK,EAAQL,CAAK,EAAG,OAAOA,EAC3B,IAAI,EAAIA,EAAM,OACd,GAAI,CAACc,EAAS,CAAC,EAAG,OAAO,KACzB,MAAM2D,EAAM,IAAI,MAAM,CAAC,EACvB,KAAO,KAAM,GACXA,EAAI,CAAC,EAAIzE,EAAM,CAAC,EAElB,OAAOyE,CACR,EAWKC,IAAgBC,GAEb3E,GACE2E,GAAc3E,aAAiB2E,GAEvC,OAAO,WAAe,KAAehF,EAAe,UAAU,CAAC,EAU5DiF,GAAe,CAAC1C,EAAK1C,IAAO,CAGhC,MAAMqF,GAFY3C,GAAOA,EAAItC,CAAQ,GAET,KAAKsC,CAAG,EAEpC,IAAItB,EAEJ,MAAQA,EAASiE,EAAU,KAAI,IAAO,CAACjE,EAAO,MAAM,CAClD,MAAMkE,EAAOlE,EAAO,MACpBpB,EAAG,KAAK0C,EAAK4C,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,CACjC,CACC,EAUKC,GAAW,CAACC,EAAQ/E,IAAQ,CAChC,IAAIgF,EACJ,MAAMR,EAAM,CAAE,EAEd,MAAQQ,EAAUD,EAAO,KAAK/E,CAAG,KAAO,MACtCwE,EAAI,KAAKQ,CAAO,EAGlB,OAAOR,CACR,EAGKS,GAAahF,EAAW,iBAAiB,EAEzCiF,GAAclF,GACXA,EAAI,cAAc,QAAQ,wBAC/B,SAAkBmF,EAAGC,EAAIC,EAAI,CAC3B,OAAOD,EAAG,YAAW,EAAKC,CAChC,CACG,EAIGC,IAAkB,CAAC,CAAC,eAAAA,CAAc,IAAM,CAACrD,EAAKgC,IAASqB,EAAe,KAAKrD,EAAKgC,CAAI,GAAG,OAAO,SAAS,EASvGsB,GAAWtF,EAAW,QAAQ,EAE9BuF,GAAoB,CAACvD,EAAKwD,IAAY,CAC1C,MAAM9B,EAAc,OAAO,0BAA0B1B,CAAG,EAClDyD,EAAqB,CAAE,EAE7B1D,GAAQ2B,EAAa,CAACgC,EAAY5I,IAAS,CACzC,IAAI6I,GACCA,EAAMH,EAAQE,EAAY5I,EAAMkF,CAAG,KAAO,KAC7CyD,EAAmB3I,CAAI,EAAI6I,GAAOD,EAExC,CAAG,EAED,OAAO,iBAAiB1D,EAAKyD,CAAkB,CAChD,EAOKG,GAAiB5D,GAAQ,CAC7BuD,GAAkBvD,EAAK,CAAC0D,EAAY5I,IAAS,CAE3C,GAAIyD,EAAayB,CAAG,GAAK,CAAC,YAAa,SAAU,QAAQ,EAAE,QAAQlF,CAAI,IAAM,GAC3E,MAAO,GAGT,MAAM+I,EAAQ7D,EAAIlF,CAAI,EAEtB,GAAKyD,EAAasF,CAAK,EAIvB,CAAA,GAFAH,EAAW,WAAa,GAEpB,aAAcA,EAAY,CAC5BA,EAAW,SAAW,GACtB,MACN,CAESA,EAAW,MACdA,EAAW,IAAM,IAAM,CACrB,MAAM,MAAM,qCAAwC5I,EAAO,GAAI,CAChE,EAAA,CAEP,CAAG,CACF,EAEKgJ,GAAc,CAACC,EAAeC,IAAc,CAChD,MAAMhE,EAAM,CAAE,EAERiE,EAAU1B,GAAQ,CACtBA,EAAI,QAAQsB,GAAS,CACnB7D,EAAI6D,CAAK,EAAI,EACnB,CAAK,CACF,EAED,OAAA1F,EAAQ4F,CAAa,EAAIE,EAAOF,CAAa,EAAIE,EAAO,OAAOF,CAAa,EAAE,MAAMC,CAAS,CAAC,EAEvFhE,CACR,EAEKkE,GAAO,IAAM,CAAE,EAEfC,GAAiB,CAACN,EAAOO,IACtBP,GAAS,MAAQ,OAAO,SAASA,EAAQ,CAACA,CAAK,EAAIA,EAAQO,EAYpE,SAASC,GAAoBvG,EAAO,CAClC,MAAO,CAAC,EAAEA,GAASS,EAAaT,EAAM,MAAM,GAAKA,EAAMH,CAAW,IAAM,YAAcG,EAAMJ,CAAQ,EACtG,CAEA,MAAM4G,GAAgBtE,GAAQ,CAC5B,MAAMuE,EAAQ,IAAI,MAAM,EAAE,EAEpBC,EAAQ,CAACC,EAAQvE,IAAM,CAE3B,GAAIrB,EAAS4F,CAAM,EAAG,CACpB,GAAIF,EAAM,QAAQE,CAAM,GAAK,EAC3B,OAIF,GAAIpG,EAASoG,CAAM,EACjB,OAAOA,EAGT,GAAG,EAAE,WAAYA,GAAS,CACxBF,EAAMrE,CAAC,EAAIuE,EACX,MAAMC,EAASvG,EAAQsG,CAAM,EAAI,CAAE,EAAG,CAAE,EAExC,OAAA1E,GAAQ0E,EAAQ,CAACZ,EAAOvD,IAAQ,CAC9B,MAAMqE,EAAeH,EAAMX,EAAO3D,EAAI,CAAC,EACvC,CAAC9B,EAAYuG,CAAY,IAAMD,EAAOpE,CAAG,EAAIqE,EACvD,CAAS,EAEDJ,EAAMrE,CAAC,EAAI,OAEJwE,CACf,CACA,CAEI,OAAOD,CACR,EAED,OAAOD,EAAMxE,EAAK,CAAC,CACpB,EAEK4E,GAAY5G,EAAW,eAAe,EAEtC6G,GAAc/G,GAClBA,IAAUe,EAASf,CAAK,GAAKS,EAAaT,CAAK,IAAMS,EAAaT,EAAM,IAAI,GAAKS,EAAaT,EAAM,KAAK,EAKrGgH,IAAiB,CAACC,EAAuBC,IACzCD,EACK,aAGFC,GAAwB,CAACvJ,EAAOwJ,KACrCxE,GAAQ,iBAAiB,UAAW,CAAC,CAAC,OAAAgE,EAAQ,KAAAS,CAAI,IAAM,CAClDT,IAAWhE,IAAWyE,IAASzJ,GACjCwJ,EAAU,QAAUA,EAAU,QAAS,CAE1C,EAAE,EAAK,EAEAE,GAAO,CACbF,EAAU,KAAKE,CAAE,EACjB1E,GAAQ,YAAYhF,EAAO,GAAG,CACpC,IACK,SAAS,YAAK,UAAY,CAAE,CAAA,EAAK0J,GAAO,WAAWA,CAAE,GAExD,OAAO,cAAiB,WACxB5G,EAAakC,GAAQ,WAAW,CACjC,EAEK2E,GAAO,OAAO,eAAmB,IACrC,eAAe,KAAK3E,EAAO,EAAM,OAAO4E,GAAY,KAAeA,GAAQ,UAAYP,GAQzF,IAAIQ,EAAU,CACZ,QAAAnH,EACA,cAAAK,EACA,SAAAH,EACA,WAAAkB,EACA,kBAAAd,EACA,SAAAE,EACA,SAAAC,EACA,UAAAE,EACA,SAAAD,EACA,cAAAE,EACA,cAAAE,EACA,iBAAAS,GACA,UAAAC,GACA,WAAAC,GACA,UAAAC,GACA,YAAAzB,EACA,OAAAc,EACA,OAAAC,EACA,OAAAC,GACA,SAAAkE,GACA,WAAY/E,EACZ,SAAAe,GACA,kBAAAG,GACA,aAAA+C,GACA,WAAAnD,GACA,QAAAU,GACA,MAAAc,GACA,OAAAK,GACA,KAAApB,GACA,SAAAuB,GACA,SAAAE,GACA,aAAAI,GACA,OAAA/D,EACA,WAAAI,EACA,SAAAkE,GACA,QAAAI,GACA,aAAAI,GACA,SAAAG,GACA,WAAAG,GACA,eAAAK,GACA,WAAYA,GACZ,kBAAAE,GACA,cAAAK,GACA,YAAAE,GACA,YAAAb,GACA,KAAAiB,GACA,eAAAC,GACA,QAAA5D,GACA,OAAQE,GACR,iBAAAE,GACA,oBAAA0D,GACA,aAAAC,GACA,UAAAM,GACA,WAAAC,GACA,aAAcC,GACd,KAAAM,GACA,WA5DkBtH,GAAUA,GAAS,MAAQS,EAAaT,EAAMJ,CAAQ,CAAC,CA6D1E,EAaD,SAAS6H,EAAWC,EAASC,EAAMC,EAAQC,EAASC,EAAU,CAC5D,MAAM,KAAK,IAAI,EAEX,MAAM,kBACR,MAAM,kBAAkB,KAAM,KAAK,WAAW,EAE9C,KAAK,MAAS,IAAI,MAAO,EAAE,MAG7B,KAAK,QAAUJ,EACf,KAAK,KAAO,aACZC,IAAS,KAAK,KAAOA,GACrBC,IAAW,KAAK,OAASA,GACzBC,IAAY,KAAK,QAAUA,GACvBC,IACF,KAAK,SAAWA,EAChB,KAAK,OAASA,EAAS,OAASA,EAAS,OAAS,KAEtD,CAEAN,EAAQ,SAASC,EAAY,MAAO,CAClC,OAAQ,UAAkB,CACxB,MAAO,CAEL,QAAS,KAAK,QACd,KAAM,KAAK,KAEX,YAAa,KAAK,YAClB,OAAQ,KAAK,OAEb,SAAU,KAAK,SACf,WAAY,KAAK,WACjB,aAAc,KAAK,aACnB,MAAO,KAAK,MAEZ,OAAQD,EAAQ,aAAa,KAAK,MAAM,EACxC,KAAM,KAAK,KACX,OAAQ,KAAK,MACd,CACL,CACA,CAAC,EAED,MAAMO,GAAcN,EAAW,UACzB7D,GAAc,CAAE,EAEtB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,iBAEF,EAAE,QAAQ+D,GAAQ,CAChB/D,GAAY+D,CAAI,EAAI,CAAC,MAAOA,CAAI,CAClC,CAAC,EAED,OAAO,iBAAiBF,EAAY7D,EAAW,EAC/C,OAAO,eAAemE,GAAa,eAAgB,CAAC,MAAO,EAAI,CAAC,EAGhEN,EAAW,KAAO,CAACzJ,EAAO2J,EAAMC,EAAQC,EAASC,EAAUE,IAAgB,CACzE,MAAMC,EAAa,OAAO,OAAOF,EAAW,EAE5CP,EAAQ,aAAaxJ,EAAOiK,EAAY,SAAgB/F,EAAK,CAC3D,OAAOA,IAAQ,MAAM,SACtB,EAAEgC,GACMA,IAAS,cACjB,EAED,MAAMgE,EAAMlK,GAASA,EAAM,QAAUA,EAAM,QAAU,QAG/CmK,EAAUR,GAAQ,MAAQ3J,EAAQA,EAAM,KAAO2J,EACrD,OAAAF,EAAW,KAAKQ,EAAYC,EAAKC,EAASP,EAAQC,EAASC,CAAQ,EAG/D9J,GAASiK,EAAW,OAAS,MAC/B,OAAO,eAAeA,EAAY,QAAS,CAAE,MAAOjK,EAAO,aAAc,GAAM,EAGjFiK,EAAW,KAAQjK,GAASA,EAAM,MAAS,QAE3CgK,GAAe,OAAO,OAAOC,EAAYD,CAAW,EAE7CC,CACR,EAGD,IAAIG,GAAc,KASlB,SAASC,GAAYrI,EAAO,CAC1B,OAAOwH,EAAQ,cAAcxH,CAAK,GAAKwH,EAAQ,QAAQxH,CAAK,CAC9D,CASA,SAASsI,GAAe9F,EAAK,CAC3B,OAAOgF,EAAQ,SAAShF,EAAK,IAAI,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAIA,CAC1D,CAWA,SAAS+F,GAAUC,EAAMhG,EAAKiG,EAAM,CAClC,OAAKD,EACEA,EAAK,OAAOhG,CAAG,EAAE,IAAI,SAAc7E,EAAOyE,EAAG,CAElD,OAAAzE,EAAQ2K,GAAe3K,CAAK,EACrB,CAAC8K,GAAQrG,EAAI,IAAMzE,EAAQ,IAAMA,CACzC,CAAA,EAAE,KAAK8K,EAAO,IAAM,EAAE,EALLjG,CAMpB,CASA,SAASkG,GAAYjE,EAAK,CACxB,OAAO+C,EAAQ,QAAQ/C,CAAG,GAAK,CAACA,EAAI,KAAK4D,EAAW,CACtD,CAEA,MAAMM,GAAanB,EAAQ,aAAaA,EAAS,CAAA,EAAI,KAAM,SAAgBtD,EAAM,CAC/E,MAAO,WAAW,KAAKA,CAAI,CAC7B,CAAC,EAyBD,SAAS0E,GAAW1G,EAAK2G,EAAUC,EAAS,CAC1C,GAAI,CAACtB,EAAQ,SAAStF,CAAG,EACvB,MAAM,IAAI,UAAU,0BAA0B,EAIhD2G,EAAWA,GAAY,IAAK,SAG5BC,EAAUtB,EAAQ,aAAasB,EAAS,CACtC,WAAY,GACZ,KAAM,GACN,QAAS,EACV,EAAE,GAAO,SAAiBC,EAAQpC,EAAQ,CAEzC,MAAO,CAACa,EAAQ,YAAYb,EAAOoC,CAAM,CAAC,CAC9C,CAAG,EAED,MAAMC,EAAaF,EAAQ,WAErBG,EAAUH,EAAQ,SAAWI,EAC7BT,EAAOK,EAAQ,KACfK,EAAUL,EAAQ,QAElBM,GADQN,EAAQ,MAAQ,OAAO,KAAS,KAAe,OACpCtB,EAAQ,oBAAoBqB,CAAQ,EAE7D,GAAI,CAACrB,EAAQ,WAAWyB,CAAO,EAC7B,MAAM,IAAI,UAAU,4BAA4B,EAGlD,SAASI,EAAatD,EAAO,CAC3B,GAAIA,IAAU,KAAM,MAAO,GAE3B,GAAIyB,EAAQ,OAAOzB,CAAK,EACtB,OAAOA,EAAM,YAAa,EAG5B,GAAIyB,EAAQ,UAAUzB,CAAK,EACzB,OAAOA,EAAM,SAAU,EAGzB,GAAI,CAACqD,GAAW5B,EAAQ,OAAOzB,CAAK,EAClC,MAAM,IAAI0B,EAAW,8CAA8C,EAGrE,OAAID,EAAQ,cAAczB,CAAK,GAAKyB,EAAQ,aAAazB,CAAK,EACrDqD,GAAW,OAAO,MAAS,WAAa,IAAI,KAAK,CAACrD,CAAK,CAAC,EAAIuD,GAAO,KAAKvD,CAAK,EAG/EA,CACX,CAYE,SAASmD,EAAenD,EAAOvD,EAAKgG,EAAM,CACxC,IAAI/D,EAAMsB,EAEV,GAAIA,GAAS,CAACyC,GAAQ,OAAOzC,GAAU,UACrC,GAAIyB,EAAQ,SAAShF,EAAK,IAAI,EAE5BA,EAAMwG,EAAaxG,EAAMA,EAAI,MAAM,EAAG,EAAE,EAExCuD,EAAQ,KAAK,UAAUA,CAAK,UAE3ByB,EAAQ,QAAQzB,CAAK,GAAK2C,GAAY3C,CAAK,IAC1CyB,EAAQ,WAAWzB,CAAK,GAAKyB,EAAQ,SAAShF,EAAK,IAAI,KAAOiC,EAAM+C,EAAQ,QAAQzB,CAAK,GAG3F,OAAAvD,EAAM8F,GAAe9F,CAAG,EAExBiC,EAAI,QAAQ,SAAcvF,EAAIqK,EAAO,CACnC,EAAE/B,EAAQ,YAAYtI,CAAE,GAAKA,IAAO,OAAS2J,EAAS,OAEpDM,IAAY,GAAOZ,GAAU,CAAC/F,CAAG,EAAG+G,EAAOd,CAAI,EAAKU,IAAY,KAAO3G,EAAMA,EAAM,KACnF6G,EAAanK,CAAE,CAChB,CACX,CAAS,EACM,GAIX,OAAImJ,GAAYtC,CAAK,EACZ,IAGT8C,EAAS,OAAON,GAAUC,EAAMhG,EAAKiG,CAAI,EAAGY,EAAatD,CAAK,CAAC,EAExD,GACX,CAEE,MAAMU,EAAQ,CAAE,EAEV+C,EAAiB,OAAO,OAAOb,GAAY,CAC/C,eAAAO,EACA,aAAAG,EACA,YAAAhB,EACJ,CAAG,EAED,SAASoB,EAAM1D,EAAOyC,EAAM,CAC1B,GAAI,CAAAhB,EAAQ,YAAYzB,CAAK,EAE7B,CAAA,GAAIU,EAAM,QAAQV,CAAK,IAAM,GAC3B,MAAM,MAAM,kCAAoCyC,EAAK,KAAK,GAAG,CAAC,EAGhE/B,EAAM,KAAKV,CAAK,EAEhByB,EAAQ,QAAQzB,EAAO,SAAc7G,EAAIsD,EAAK,EAC7B,EAAEgF,EAAQ,YAAYtI,CAAE,GAAKA,IAAO,OAAS+J,EAAQ,KAClEJ,EAAU3J,EAAIsI,EAAQ,SAAShF,CAAG,EAAIA,EAAI,KAAI,EAAKA,EAAKgG,EAAMgB,CAC/D,KAEc,IACbC,EAAMvK,EAAIsJ,EAAOA,EAAK,OAAOhG,CAAG,EAAI,CAACA,CAAG,CAAC,CAEjD,CAAK,EAEDiE,EAAM,IAAK,CAAA,CACf,CAEE,GAAI,CAACe,EAAQ,SAAStF,CAAG,EACvB,MAAM,IAAI,UAAU,wBAAwB,EAG9C,OAAAuH,EAAMvH,CAAG,EAEF2G,CACT,CAUA,SAASa,GAASzJ,EAAK,CACrB,MAAM0J,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,IACR,EACD,OAAO,mBAAmB1J,CAAG,EAAE,QAAQ,mBAAoB,SAAkB2J,EAAO,CAClF,OAAOD,EAAQC,CAAK,CACxB,CAAG,CACH,CAUA,SAASC,GAAqBC,EAAQhB,EAAS,CAC7C,KAAK,OAAS,CAAE,EAEhBgB,GAAUlB,GAAWkB,EAAQ,KAAMhB,CAAO,CAC5C,CAEA,MAAM5H,GAAY2I,GAAqB,UAEvC3I,GAAU,OAAS,SAAgBlE,EAAM+I,EAAO,CAC9C,KAAK,OAAO,KAAK,CAAC/I,EAAM+I,CAAK,CAAC,CAC/B,EAED7E,GAAU,SAAW,SAAkB6I,EAAS,CAC9C,MAAMC,EAAUD,EAAU,SAAShE,EAAO,CACxC,OAAOgE,EAAQ,KAAK,KAAMhE,EAAO2D,EAAQ,CAC7C,EAAMA,GAEJ,OAAO,KAAK,OAAO,IAAI,SAAc5E,EAAM,CACzC,OAAOkF,EAAQlF,EAAK,CAAC,CAAC,EAAI,IAAMkF,EAAQlF,EAAK,CAAC,CAAC,CACnD,EAAK,EAAE,EAAE,KAAK,GAAG,CAChB,EAUD,SAASmF,GAAOzJ,EAAK,CACnB,OAAO,mBAAmBA,CAAG,EAC3B,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,EACnB,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,CACvB,CAWA,SAAS0J,GAASC,EAAKL,EAAQhB,EAAS,CAEtC,GAAI,CAACgB,EACH,OAAOK,EAGT,MAAMH,EAAUlB,GAAWA,EAAQ,QAAUmB,GAEzCzC,EAAQ,WAAWsB,CAAO,IAC5BA,EAAU,CACR,UAAWA,CACZ,GAGH,MAAMsB,EAActB,GAAWA,EAAQ,UAEvC,IAAIuB,EAUJ,GARID,EACFC,EAAmBD,EAAYN,EAAQhB,CAAO,EAE9CuB,EAAmB7C,EAAQ,kBAAkBsC,CAAM,EACjDA,EAAO,SAAU,EACjB,IAAID,GAAqBC,EAAQhB,CAAO,EAAE,SAASkB,CAAO,EAG1DK,EAAkB,CACpB,MAAMC,EAAgBH,EAAI,QAAQ,GAAG,EAEjCG,IAAkB,KACpBH,EAAMA,EAAI,MAAM,EAAGG,CAAa,GAElCH,IAAQA,EAAI,QAAQ,GAAG,IAAM,GAAK,IAAM,KAAOE,CACnD,CAEE,OAAOF,CACT,CAEA,MAAMI,EAAmB,CACvB,aAAc,CACZ,KAAK,SAAW,CAAE,CACtB,CAUE,IAAIC,EAAWC,EAAU3B,EAAS,CAChC,YAAK,SAAS,KAAK,CACjB,UAAA0B,EACA,SAAAC,EACA,YAAa3B,EAAUA,EAAQ,YAAc,GAC7C,QAASA,EAAUA,EAAQ,QAAU,IAC3C,CAAK,EACM,KAAK,SAAS,OAAS,CAClC,CASE,MAAM4B,EAAI,CACJ,KAAK,SAASA,CAAE,IAClB,KAAK,SAASA,CAAE,EAAI,KAE1B,CAOE,OAAQ,CACF,KAAK,WACP,KAAK,SAAW,CAAE,EAExB,CAYE,QAAQlL,EAAI,CACVgI,EAAQ,QAAQ,KAAK,SAAU,SAAwBrK,EAAG,CACpDA,IAAM,MACRqC,EAAGrC,CAAC,CAEZ,CAAK,CACL,CACA,CAEA,IAAIwN,GAAuBJ,GAEvBK,GAAuB,CACzB,kBAAmB,GACnB,kBAAmB,GACnB,oBAAqB,EACtB,EAEGC,GAAoB,OAAO,gBAAoB,IAAc,gBAAkBhB,GAE/EiB,GAAa,OAAO,SAAa,IAAc,SAAW,KAE1DC,GAAS,OAAO,KAAS,IAAc,KAAO,KAE9CC,GAAa,CACf,UAAW,GACX,QAAS,CACP,gBAAiBH,GACjB,SAAUC,GACV,KAAMC,EACP,EACD,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,MAAM,CAC3D,EAED,MAAME,GAAgB,OAAO,OAAW,KAAe,OAAO,SAAa,IAErEC,GAAa,OAAO,WAAc,UAAY,WAAa,OAmB3DC,GAAwBF,KAC3B,CAACC,IAAc,CAAC,cAAe,eAAgB,IAAI,EAAE,QAAQA,GAAW,OAAO,EAAI,GAWhFE,GAEF,OAAO,kBAAsB,KAE7B,gBAAgB,mBAChB,OAAO,KAAK,eAAkB,WAI5BC,GAASJ,IAAiB,OAAO,SAAS,MAAQ,mBAExD,IAAIK,GAAqB,OAAO,OAAO,CACrC,UAAW,KACX,cAAeL,GACf,+BAAgCG,GAChC,sBAAuBD,GACvB,UAAWD,GACX,OAAQG,EACV,CAAC,EAEGE,EAAWC,MAAA,GACVF,IACAN,IAGL,SAASS,GAAiBrE,EAAM0B,EAAS,CACvC,OAAOF,GAAWxB,EAAM,IAAImE,EAAS,QAAQ,gBAAmBC,GAAA,CAC9D,QAAS,SAASzF,EAAOvD,EAAKgG,EAAMkD,EAAS,CAC3C,OAAIH,EAAS,QAAU/D,EAAQ,SAASzB,CAAK,GAC3C,KAAK,OAAOvD,EAAKuD,EAAM,SAAS,QAAQ,CAAC,EAClC,IAGF2F,EAAQ,eAAe,MAAM,KAAM,SAAS,CACpD,GACE5C,EACJ,CACH,CASA,SAAS6C,GAAc3O,EAAM,CAK3B,OAAOwK,EAAQ,SAAS,gBAAiBxK,CAAI,EAAE,IAAI4M,GAC1CA,EAAM,CAAC,IAAM,KAAO,GAAKA,EAAM,CAAC,GAAKA,EAAM,CAAC,CACpD,CACH,CASA,SAASgC,GAAcnH,EAAK,CAC1B,MAAMvC,EAAM,CAAE,EACRI,EAAO,OAAO,KAAKmC,CAAG,EAC5B,IAAIrC,EACJ,MAAMG,EAAMD,EAAK,OACjB,IAAIE,EACJ,IAAKJ,EAAI,EAAGA,EAAIG,EAAKH,IACnBI,EAAMF,EAAKF,CAAC,EACZF,EAAIM,CAAG,EAAIiC,EAAIjC,CAAG,EAEpB,OAAON,CACT,CASA,SAAS2J,GAAehD,EAAU,CAChC,SAASiD,EAAUtD,EAAMzC,EAAOa,EAAQ2C,EAAO,CAC7C,IAAIvM,EAAOwL,EAAKe,GAAO,EAEvB,GAAIvM,IAAS,YAAa,MAAO,GAEjC,MAAM+O,EAAe,OAAO,SAAS,CAAC/O,CAAI,EACpCgP,EAASzC,GAASf,EAAK,OAG7B,OAFAxL,EAAO,CAACA,GAAQwK,EAAQ,QAAQZ,CAAM,EAAIA,EAAO,OAAS5J,EAEtDgP,GACExE,EAAQ,WAAWZ,EAAQ5J,CAAI,EACjC4J,EAAO5J,CAAI,EAAI,CAAC4J,EAAO5J,CAAI,EAAG+I,CAAK,EAEnCa,EAAO5J,CAAI,EAAI+I,EAGV,CAACgG,KAGN,CAACnF,EAAO5J,CAAI,GAAK,CAACwK,EAAQ,SAASZ,EAAO5J,CAAI,CAAC,KACjD4J,EAAO5J,CAAI,EAAI,CAAE,GAGJ8O,EAAUtD,EAAMzC,EAAOa,EAAO5J,CAAI,EAAGuM,CAAK,GAE3C/B,EAAQ,QAAQZ,EAAO5J,CAAI,CAAC,IACxC4J,EAAO5J,CAAI,EAAI4O,GAAchF,EAAO5J,CAAI,CAAC,GAGpC,CAAC+O,EACZ,CAEE,GAAIvE,EAAQ,WAAWqB,CAAQ,GAAKrB,EAAQ,WAAWqB,EAAS,OAAO,EAAG,CACxE,MAAM3G,EAAM,CAAE,EAEd,OAAAsF,EAAQ,aAAaqB,EAAU,CAAC7L,EAAM+I,IAAU,CAC9C+F,EAAUH,GAAc3O,CAAI,EAAG+I,EAAO7D,EAAK,CAAC,CAClD,CAAK,EAEMA,CACX,CAEE,OAAO,IACT,CAYA,SAAS+J,GAAgBC,EAAUC,EAAQpC,EAAS,CAClD,GAAIvC,EAAQ,SAAS0E,CAAQ,EAC3B,GAAI,CACF,OAACC,GAAU,KAAK,OAAOD,CAAQ,EACxB1E,EAAQ,KAAK0E,CAAQ,CAC7B,OAAQ/Q,EAAG,CACV,GAAIA,EAAE,OAAS,cACb,MAAMA,CAEd,CAGE,OAAQ4O,GAAW,KAAK,WAAWmC,CAAQ,CAC7C,CAEA,MAAME,GAAW,CAEf,aAAcxB,GAEd,QAAS,CAAC,MAAO,OAAQ,OAAO,EAEhC,iBAAkB,CAAC,SAA0BxD,EAAMiF,EAAS,CAC1D,MAAMC,EAAcD,EAAQ,eAAc,GAAM,GAC1CE,EAAqBD,EAAY,QAAQ,kBAAkB,EAAI,GAC/DE,EAAkBhF,EAAQ,SAASJ,CAAI,EAQ7C,GANIoF,GAAmBhF,EAAQ,WAAWJ,CAAI,IAC5CA,EAAO,IAAI,SAASA,CAAI,GAGPI,EAAQ,WAAWJ,CAAI,EAGxC,OAAOmF,EAAqB,KAAK,UAAUV,GAAezE,CAAI,CAAC,EAAIA,EAGrE,GAAII,EAAQ,cAAcJ,CAAI,GAC5BI,EAAQ,SAASJ,CAAI,GACrBI,EAAQ,SAASJ,CAAI,GACrBI,EAAQ,OAAOJ,CAAI,GACnBI,EAAQ,OAAOJ,CAAI,GACnBI,EAAQ,iBAAiBJ,CAAI,EAE7B,OAAOA,EAET,GAAII,EAAQ,kBAAkBJ,CAAI,EAChC,OAAOA,EAAK,OAEd,GAAII,EAAQ,kBAAkBJ,CAAI,EAChC,OAAAiF,EAAQ,eAAe,kDAAmD,EAAK,EACxEjF,EAAK,SAAU,EAGxB,IAAI7F,EAEJ,GAAIiL,EAAiB,CACnB,GAAIF,EAAY,QAAQ,mCAAmC,EAAI,GAC7D,OAAOb,GAAiBrE,EAAM,KAAK,cAAc,EAAE,SAAU,EAG/D,IAAK7F,EAAaiG,EAAQ,WAAWJ,CAAI,IAAMkF,EAAY,QAAQ,qBAAqB,EAAI,GAAI,CAC9F,MAAMG,EAAY,KAAK,KAAO,KAAK,IAAI,SAEvC,OAAO7D,GACLrH,EAAa,CAAC,UAAW6F,CAAI,EAAIA,EACjCqF,GAAa,IAAIA,EACjB,KAAK,cACN,CACT,CACA,CAEI,OAAID,GAAmBD,GACrBF,EAAQ,eAAe,mBAAoB,EAAK,EACzCJ,GAAgB7E,CAAI,GAGtBA,CACX,CAAG,EAED,kBAAmB,CAAC,SAA2BA,EAAM,CACnD,MAAMsF,EAAe,KAAK,cAAgBN,GAAS,aAC7CO,EAAoBD,GAAgBA,EAAa,kBACjDE,EAAgB,KAAK,eAAiB,OAE5C,GAAIpF,EAAQ,WAAWJ,CAAI,GAAKI,EAAQ,iBAAiBJ,CAAI,EAC3D,OAAOA,EAGT,GAAIA,GAAQI,EAAQ,SAASJ,CAAI,IAAOuF,GAAqB,CAAC,KAAK,cAAiBC,GAAgB,CAElG,MAAMC,EAAoB,EADAH,GAAgBA,EAAa,oBACPE,EAEhD,GAAI,CACF,OAAO,KAAK,MAAMxF,EAAM,KAAK,YAAY,CAC1C,OAAQjM,EAAG,CACV,GAAI0R,EACF,MAAI1R,EAAE,OAAS,cACPsM,EAAW,KAAKtM,EAAGsM,EAAW,iBAAkB,KAAM,KAAM,KAAK,QAAQ,EAE3EtM,CAEhB,CACA,CAEI,OAAOiM,CACX,CAAG,EAMD,QAAS,EAET,eAAgB,aAChB,eAAgB,eAEhB,iBAAkB,GAClB,cAAe,GAEf,IAAK,CACH,SAAUmE,EAAS,QAAQ,SAC3B,KAAMA,EAAS,QAAQ,IACxB,EAED,eAAgB,SAAwBuB,EAAQ,CAC9C,OAAOA,GAAU,KAAOA,EAAS,GAClC,EAED,QAAS,CACP,OAAQ,CACN,OAAU,oCACV,eAAgB,MACtB,CACA,CACC,EAEDtF,EAAQ,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,OAAO,EAAIuF,GAAW,CAC7EX,GAAS,QAAQW,CAAM,EAAI,CAAE,CAC/B,CAAC,EAED,IAAIC,GAAaZ,GAIjB,MAAMa,GAAoBzF,EAAQ,YAAY,CAC5C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,YAC5B,CAAC,EAgBD,IAAI0F,GAAeC,GAAc,CAC/B,MAAMC,EAAS,CAAE,EACjB,IAAI5K,EACAhC,EACA4B,EAEJ,OAAA+K,GAAcA,EAAW,MAAM,IAAI,EAAE,QAAQ,SAAgBE,EAAM,CACjEjL,EAAIiL,EAAK,QAAQ,GAAG,EACpB7K,EAAM6K,EAAK,UAAU,EAAGjL,CAAC,EAAE,KAAM,EAAC,YAAa,EAC/C5B,EAAM6M,EAAK,UAAUjL,EAAI,CAAC,EAAE,KAAM,EAE9B,EAACI,CAAAA,GAAQ4K,EAAO5K,CAAG,GAAKyK,GAAkBzK,CAAG,KAI7CA,IAAQ,aACN4K,EAAO5K,CAAG,EACZ4K,EAAO5K,CAAG,EAAE,KAAKhC,CAAG,EAEpB4M,EAAO5K,CAAG,EAAI,CAAChC,CAAG,EAGpB4M,EAAO5K,CAAG,EAAI4K,EAAO5K,CAAG,EAAI4K,EAAO5K,CAAG,EAAI,KAAOhC,EAAMA,EAE7D,CAAG,EAEM4M,CACR,EAED,MAAME,GAAa,OAAO,WAAW,EAErC,SAASC,GAAgBC,EAAQ,CAC/B,OAAOA,GAAU,OAAOA,CAAM,EAAE,KAAI,EAAG,YAAa,CACtD,CAEA,SAASC,GAAe1H,EAAO,CAC7B,OAAIA,IAAU,IAASA,GAAS,KACvBA,EAGFyB,EAAQ,QAAQzB,CAAK,EAAIA,EAAM,IAAI0H,EAAc,EAAI,OAAO1H,CAAK,CAC1E,CAEA,SAAS2H,GAAYzN,EAAK,CACxB,MAAM0N,EAAS,OAAO,OAAO,IAAI,EAC3BC,EAAW,mCACjB,IAAIhE,EAEJ,KAAQA,EAAQgE,EAAS,KAAK3N,CAAG,GAC/B0N,EAAO/D,EAAM,CAAC,CAAC,EAAIA,EAAM,CAAC,EAG5B,OAAO+D,CACT,CAEA,MAAME,GAAqB5N,GAAQ,iCAAiC,KAAKA,EAAI,MAAM,EAEnF,SAAS6N,GAAiBhL,EAASiD,EAAOyH,EAAQxJ,EAAQ+J,EAAoB,CAC5E,GAAIvG,EAAQ,WAAWxD,CAAM,EAC3B,OAAOA,EAAO,KAAK,KAAM+B,EAAOyH,CAAM,EAOxC,GAJIO,IACFhI,EAAQyH,GAGN,CAAChG,CAAAA,EAAQ,SAASzB,CAAK,EAE3B,CAAA,GAAIyB,EAAQ,SAASxD,CAAM,EACzB,OAAO+B,EAAM,QAAQ/B,CAAM,IAAM,GAGnC,GAAIwD,EAAQ,SAASxD,CAAM,EACzB,OAAOA,EAAO,KAAK+B,CAAK,CAAA,CAE5B,CAEA,SAASiI,GAAaR,EAAQ,CAC5B,OAAOA,EAAO,KAAI,EACf,YAAW,EAAG,QAAQ,kBAAmB,CAACS,EAAGC,EAAMjO,IAC3CiO,EAAK,YAAW,EAAKjO,CAC7B,CACL,CAEA,SAASkO,GAAejM,EAAKsL,EAAQ,CACnC,MAAMY,EAAe5G,EAAQ,YAAY,IAAMgG,CAAM,EAErD,CAAC,MAAO,MAAO,KAAK,EAAE,QAAQa,GAAc,CAC1C,OAAO,eAAenM,EAAKmM,EAAaD,EAAc,CACpD,MAAO,SAASE,EAAMC,EAAMC,EAAM,CAChC,OAAO,KAAKH,CAAU,EAAE,KAAK,KAAMb,EAAQc,EAAMC,EAAMC,CAAI,CAC5D,EACD,aAAc,EACpB,CAAK,CACL,CAAG,CACH,CAEA,MAAMC,EAAa,CACjB,YAAYpC,EAAS,CACnBA,GAAW,KAAK,IAAIA,CAAO,CAC/B,CAEE,IAAImB,EAAQkB,EAAgBC,EAAS,CACnC,MAAMC,EAAO,KAEb,SAASC,EAAUC,EAAQC,EAASC,EAAU,CAC5C,MAAMC,EAAU1B,GAAgBwB,CAAO,EAEvC,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,wCAAwC,EAG1D,MAAMzM,EAAMgF,EAAQ,QAAQoH,EAAMK,CAAO,GAEtC,CAACzM,GAAOoM,EAAKpM,CAAG,IAAM,QAAawM,IAAa,IAASA,IAAa,QAAaJ,EAAKpM,CAAG,IAAM,MAClGoM,EAAKpM,GAAOuM,CAAO,EAAItB,GAAeqB,CAAM,EAEpD,CAEI,MAAMI,EAAa,CAAC7C,EAAS2C,IAC3BxH,EAAQ,QAAQ6E,EAAS,CAACyC,EAAQC,IAAYF,EAAUC,EAAQC,EAASC,CAAQ,CAAC,EAEpF,GAAIxH,EAAQ,cAAcgG,CAAM,GAAKA,aAAkB,KAAK,YAC1D0B,EAAW1B,EAAQkB,CAAc,UACzBlH,EAAQ,SAASgG,CAAM,IAAMA,EAASA,EAAO,SAAW,CAACK,GAAkBL,CAAM,EACzF0B,EAAWhC,GAAaM,CAAM,EAAGkB,CAAc,UACtClH,EAAQ,SAASgG,CAAM,GAAKhG,EAAQ,WAAWgG,CAAM,EAAG,CACjE,IAAItL,EAAM,GAAIiN,EAAM3M,EACpB,UAAW4M,KAAS5B,EAAQ,CAC1B,GAAI,CAAChG,EAAQ,QAAQ4H,CAAK,EACxB,MAAM,UAAU,8CAA8C,EAGhElN,EAAIM,EAAM4M,EAAM,CAAC,CAAC,GAAKD,EAAOjN,EAAIM,CAAG,GAClCgF,EAAQ,QAAQ2H,CAAI,EAAI,CAAC,GAAGA,EAAMC,EAAM,CAAC,CAAC,EAAI,CAACD,EAAMC,EAAM,CAAC,CAAC,EAAKA,EAAM,CAAC,CACpF,CAEMF,EAAWhN,EAAKwM,CAAc,CACpC,MACMlB,GAAU,MAAQqB,EAAUH,EAAgBlB,EAAQmB,CAAO,EAG7D,OAAO,IACX,CAEE,IAAInB,EAAQrB,EAAQ,CAGlB,GAFAqB,EAASD,GAAgBC,CAAM,EAE3BA,EAAQ,CACV,MAAMhL,EAAMgF,EAAQ,QAAQ,KAAMgG,CAAM,EAExC,GAAIhL,EAAK,CACP,MAAMuD,EAAQ,KAAKvD,CAAG,EAEtB,GAAI,CAAC2J,EACH,OAAOpG,EAGT,GAAIoG,IAAW,GACb,OAAOuB,GAAY3H,CAAK,EAG1B,GAAIyB,EAAQ,WAAW2E,CAAM,EAC3B,OAAOA,EAAO,KAAK,KAAMpG,EAAOvD,CAAG,EAGrC,GAAIgF,EAAQ,SAAS2E,CAAM,EACzB,OAAOA,EAAO,KAAKpG,CAAK,EAG1B,MAAM,IAAI,UAAU,wCAAwC,CACpE,CACA,CACA,CAEE,IAAIyH,EAAQ6B,EAAS,CAGnB,GAFA7B,EAASD,GAAgBC,CAAM,EAE3BA,EAAQ,CACV,MAAMhL,EAAMgF,EAAQ,QAAQ,KAAMgG,CAAM,EAExC,MAAO,CAAC,EAAEhL,GAAO,KAAKA,CAAG,IAAM,SAAc,CAAC6M,GAAWvB,GAAiB,KAAM,KAAKtL,CAAG,EAAGA,EAAK6M,CAAO,GAC7G,CAEI,MAAO,EACX,CAEE,OAAO7B,EAAQ6B,EAAS,CACtB,MAAMT,EAAO,KACb,IAAIU,EAAU,GAEd,SAASC,EAAaR,EAAS,CAG7B,GAFAA,EAAUxB,GAAgBwB,CAAO,EAE7BA,EAAS,CACX,MAAMvM,EAAMgF,EAAQ,QAAQoH,EAAMG,CAAO,EAErCvM,IAAQ,CAAC6M,GAAWvB,GAAiBc,EAAMA,EAAKpM,CAAG,EAAGA,EAAK6M,CAAO,KACpE,OAAOT,EAAKpM,CAAG,EAEf8M,EAAU,GAEpB,CACA,CAEI,OAAI9H,EAAQ,QAAQgG,CAAM,EACxBA,EAAO,QAAQ+B,CAAY,EAE3BA,EAAa/B,CAAM,EAGd8B,CACX,CAEE,MAAMD,EAAS,CACb,MAAM/M,EAAO,OAAO,KAAK,IAAI,EAC7B,IAAIF,EAAIE,EAAK,OACTgN,EAAU,GAEd,KAAOlN,KAAK,CACV,MAAMI,EAAMF,EAAKF,CAAC,GACf,CAACiN,GAAWvB,GAAiB,KAAM,KAAKtL,CAAG,EAAGA,EAAK6M,EAAS,EAAI,KACjE,OAAO,KAAK7M,CAAG,EACf8M,EAAU,GAElB,CAEI,OAAOA,CACX,CAEE,UAAUE,EAAQ,CAChB,MAAMZ,EAAO,KACPvC,EAAU,CAAE,EAElB,OAAA7E,EAAQ,QAAQ,KAAM,CAACzB,EAAOyH,IAAW,CACvC,MAAMhL,EAAMgF,EAAQ,QAAQ6E,EAASmB,CAAM,EAE3C,GAAIhL,EAAK,CACPoM,EAAKpM,CAAG,EAAIiL,GAAe1H,CAAK,EAChC,OAAO6I,EAAKpB,CAAM,EAClB,MACR,CAEM,MAAMiC,EAAaD,EAASxB,GAAaR,CAAM,EAAI,OAAOA,CAAM,EAAE,KAAM,EAEpEiC,IAAejC,GACjB,OAAOoB,EAAKpB,CAAM,EAGpBoB,EAAKa,CAAU,EAAIhC,GAAe1H,CAAK,EAEvCsG,EAAQoD,CAAU,EAAI,EAC5B,CAAK,EAEM,IACX,CAEE,UAAUC,EAAS,CACjB,OAAO,KAAK,YAAY,OAAO,KAAM,GAAGA,CAAO,CACnD,CAEE,OAAOC,EAAW,CAChB,MAAMzN,EAAM,OAAO,OAAO,IAAI,EAE9B,OAAAsF,EAAQ,QAAQ,KAAM,CAACzB,EAAOyH,IAAW,CACvCzH,GAAS,MAAQA,IAAU,KAAU7D,EAAIsL,CAAM,EAAImC,GAAanI,EAAQ,QAAQzB,CAAK,EAAIA,EAAM,KAAK,IAAI,EAAIA,EAClH,CAAK,EAEM7D,CACX,CAEE,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,OAAO,QAAQ,KAAK,OAAM,CAAE,EAAE,OAAO,QAAQ,EAAG,CAC3D,CAEE,UAAW,CACT,OAAO,OAAO,QAAQ,KAAK,OAAQ,CAAA,EAAE,IAAI,CAAC,CAACsL,EAAQzH,CAAK,IAAMyH,EAAS,KAAOzH,CAAK,EAAE,KAAK,IAAI,CAClG,CAEE,cAAe,CACb,OAAO,KAAK,IAAI,YAAY,GAAK,CAAE,CACvC,CAEE,IAAK,OAAO,WAAW,GAAI,CACzB,MAAO,cACX,CAEE,OAAO,KAAK/F,EAAO,CACjB,OAAOA,aAAiB,KAAOA,EAAQ,IAAI,KAAKA,CAAK,CACzD,CAEE,OAAO,OAAO4P,KAAUF,EAAS,CAC/B,MAAM9X,EAAW,IAAI,KAAKgY,CAAK,EAE/B,OAAAF,EAAQ,QAAS9I,GAAWhP,EAAS,IAAIgP,CAAM,CAAC,EAEzChP,CACX,CAEE,OAAO,SAAS4V,EAAQ,CAKtB,MAAMqC,GAJY,KAAKvC,EAAU,EAAK,KAAKA,EAAU,EAAI,CACvD,UAAW,CAAA,CACjB,GAEgC,UACtBpM,EAAY,KAAK,UAEvB,SAAS4O,EAAef,EAAS,CAC/B,MAAME,EAAU1B,GAAgBwB,CAAO,EAElCc,EAAUZ,CAAO,IACpBd,GAAejN,EAAW6N,CAAO,EACjCc,EAAUZ,CAAO,EAAI,GAE7B,CAEI,OAAAzH,EAAQ,QAAQgG,CAAM,EAAIA,EAAO,QAAQsC,CAAc,EAAIA,EAAetC,CAAM,EAEzE,IACX,CACA,CAEAiB,GAAa,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,eAAe,CAAC,EAGpHjH,EAAQ,kBAAkBiH,GAAa,UAAW,CAAC,CAAC,MAAA1I,CAAK,EAAGvD,IAAQ,CAClE,IAAIuN,EAASvN,EAAI,CAAC,EAAE,YAAW,EAAKA,EAAI,MAAM,CAAC,EAC/C,MAAO,CACL,IAAK,IAAMuD,EACX,IAAIiK,EAAa,CACf,KAAKD,CAAM,EAAIC,CACrB,CACA,CACA,CAAC,EAEDxI,EAAQ,cAAciH,EAAY,EAElC,IAAIwB,GAAiBxB,GAUrB,SAASyB,GAAcC,EAAKrI,EAAU,CACpC,MAAMF,EAAS,MAAQoF,GACjBlK,EAAUgF,GAAYF,EACtByE,EAAU4D,GAAe,KAAKnN,EAAQ,OAAO,EACnD,IAAIsE,EAAOtE,EAAQ,KAEnB,OAAA0E,EAAQ,QAAQ2I,EAAK,SAAmB3Q,EAAI,CAC1C4H,EAAO5H,EAAG,KAAKoI,EAAQR,EAAMiF,EAAQ,UAAS,EAAIvE,EAAWA,EAAS,OAAS,MAAS,CAC5F,CAAG,EAEDuE,EAAQ,UAAW,EAEZjF,CACT,CAEA,SAASgJ,GAASrK,EAAO,CACvB,MAAO,CAAC,EAAEA,GAASA,EAAM,WAC3B,CAWA,SAASsK,GAAc3I,EAASE,EAAQC,EAAS,CAE/CJ,EAAW,KAAK,KAAMC,GAAAA,KAAAA,EAAkB,WAAsBD,EAAW,aAAcG,EAAQC,CAAO,EACtG,KAAK,KAAO,eACd,CAEAL,EAAQ,SAAS6I,GAAe5I,EAAY,CAC1C,WAAY,EACd,CAAC,EAWD,SAAS6I,GAAOC,EAASC,EAAQ1I,EAAU,CACzC,MAAM2I,EAAiB3I,EAAS,OAAO,eACnC,CAACA,EAAS,QAAU,CAAC2I,GAAkBA,EAAe3I,EAAS,MAAM,EACvEyI,EAAQzI,CAAQ,EAEhB0I,EAAO,IAAI/I,EACT,mCAAqCK,EAAS,OAC9C,CAACL,EAAW,gBAAiBA,EAAW,gBAAgB,EAAE,KAAK,MAAMK,EAAS,OAAS,GAAG,EAAI,CAAC,EAC/FA,EAAS,OACTA,EAAS,QACTA,CACN,CAAK,CAEL,CAEA,SAAS4I,GAAcvG,EAAK,CAC1B,MAAMP,EAAQ,4BAA4B,KAAKO,CAAG,EAClD,OAAOP,GAASA,EAAM,CAAC,GAAK,EAC9B,CAQA,SAAS+G,GAAYC,EAAcC,EAAK,CACtCD,EAAeA,GAAgB,GAC/B,MAAME,EAAQ,IAAI,MAAMF,CAAY,EAC9BG,EAAa,IAAI,MAAMH,CAAY,EACzC,IAAIvR,EAAO,EACP2R,EAAO,EACPC,EAEJ,OAAAJ,EAAMA,IAAQ,OAAYA,EAAM,IAEzB,SAAcK,EAAa,CAChC,MAAMC,EAAM,KAAK,IAAK,EAEhBC,EAAYL,EAAWC,CAAI,EAE5BC,IACHA,EAAgBE,GAGlBL,EAAMzR,CAAI,EAAI6R,EACdH,EAAW1R,CAAI,EAAI8R,EAEnB,IAAI/O,EAAI4O,EACJK,EAAa,EAEjB,KAAOjP,IAAM/C,GACXgS,GAAcP,EAAM1O,GAAG,EACvBA,EAAIA,EAAIwO,EASV,GANAvR,GAAQA,EAAO,GAAKuR,EAEhBvR,IAAS2R,IACXA,GAAQA,EAAO,GAAKJ,GAGlBO,EAAMF,EAAgBJ,EACxB,OAGF,MAAMS,EAASF,GAAaD,EAAMC,EAElC,OAAOE,EAAS,KAAK,MAAMD,EAAa,IAAOC,CAAM,EAAI,MAC1D,CACH,CAQA,SAASC,GAAS/R,EAAIgS,EAAM,CAC1B,IAAIC,EAAY,EACZC,EAAY,IAAOF,EACnBG,EACAC,EAEJ,MAAMC,EAAS,CAACC,EAAMX,EAAM,KAAK,IAAG,IAAO,CACzCM,EAAYN,EACZQ,EAAW,KACPC,IACF,aAAaA,CAAK,EAClBA,EAAQ,MAEVpS,EAAG,GAAGsS,CAAI,CACX,EAoBD,MAAO,CAlBW,IAAIA,IAAS,CAC7B,MAAMX,EAAM,KAAK,IAAK,EAChBG,EAASH,EAAMM,EAChBH,GAAUI,EACbG,EAAOC,EAAMX,CAAG,GAEhBQ,EAAWG,EACNF,IACHA,EAAQ,WAAW,IAAM,CACvBA,EAAQ,KACRC,EAAOF,CAAQ,CACzB,EAAWD,EAAYJ,CAAM,GAG1B,EAEa,IAAMK,GAAYE,EAAOF,CAAQ,CAEvB,CAC1B,CAEA,MAAMI,GAAuB,CAACC,EAAUC,EAAkBT,EAAO,IAAM,CACrE,IAAIU,EAAgB,EACpB,MAAMC,EAAexB,GAAY,GAAI,GAAG,EAExC,OAAOY,GAASpW,GAAK,CACnB,MAAMiX,EAASjX,EAAE,OACXkX,EAAQlX,EAAE,iBAAmBA,EAAE,MAAQ,OACvCmX,EAAgBF,EAASF,EACzBK,EAAOJ,EAAaG,CAAa,EACjCE,EAAUJ,GAAUC,EAE1BH,EAAgBE,EAEhB,MAAMhL,EAAO,CACX,OAAAgL,EACA,MAAAC,EACA,SAAUA,EAASD,EAASC,EAAS,OACrC,MAAOC,EACP,KAAMC,GAAc,OACpB,UAAWA,GAAQF,GAASG,GAAWH,EAAQD,GAAUG,EAAO,OAChE,MAAOpX,EACP,iBAAkBkX,GAAS,KAC3B,CAACJ,EAAmB,WAAa,QAAQ,EAAG,EAC7C,EAEDD,EAAS5K,CAAI,CACd,EAAEoK,CAAI,CACR,EAEKiB,GAAyB,CAACJ,EAAOK,IAAc,CACnD,MAAMC,EAAmBN,GAAS,KAElC,MAAO,CAAED,GAAWM,EAAU,CAAC,EAAE,CAC/B,iBAAAC,EACA,MAAAN,EACA,OAAAD,CACJ,CAAG,EAAGM,EAAU,CAAC,CAAC,CACjB,EAEKE,GAAkBpT,GAAO,IAAIsS,IAAStK,EAAQ,KAAK,IAAMhI,EAAG,GAAGsS,CAAI,CAAC,EAE1E,IAAIe,GAAkBtH,EAAS,uBAAyB,CAACF,EAAQyH,IAAY3I,IAC3EA,EAAM,IAAI,IAAIA,EAAKoB,EAAS,MAAM,EAGhCF,EAAO,WAAalB,EAAI,UACxBkB,EAAO,OAASlB,EAAI,OACnB2I,GAAUzH,EAAO,OAASlB,EAAI,QAGjC,IAAI,IAAIoB,EAAS,MAAM,EACvBA,EAAS,WAAa,kBAAkB,KAAKA,EAAS,UAAU,SAAS,CAC1E,EAAG,IAAM,GAENwH,GAAUxH,EAAS,sBAGrB,CACE,MAAMvO,EAAM+I,EAAOiN,EAASxK,EAAMyK,EAAQC,EAAQ,CAChD,MAAMC,EAAS,CAACnW,EAAO,IAAM,mBAAmB+I,CAAK,CAAC,EAEtDyB,EAAQ,SAASwL,CAAO,GAAKG,EAAO,KAAK,WAAa,IAAI,KAAKH,CAAO,EAAE,YAAW,CAAE,EAErFxL,EAAQ,SAASgB,CAAI,GAAK2K,EAAO,KAAK,QAAU3K,CAAI,EAEpDhB,EAAQ,SAASyL,CAAM,GAAKE,EAAO,KAAK,UAAYF,CAAM,EAE1DC,IAAW,IAAQC,EAAO,KAAK,QAAQ,EAEvC,SAAS,OAASA,EAAO,KAAK,IAAI,CACnC,EAED,KAAKnW,EAAM,CACT,MAAM4M,EAAQ,SAAS,OAAO,MAAM,IAAI,OAAO,aAAe5M,EAAO,WAAW,CAAC,EACjF,OAAQ4M,EAAQ,mBAAmBA,EAAM,CAAC,CAAC,EAAI,IAChD,EAED,OAAO5M,EAAM,CACX,KAAK,MAAMA,EAAM,GAAI,KAAK,IAAK,EAAG,KAAQ,CAChD,CACA,EAKE,CACE,OAAQ,CAAE,EACV,MAAO,CACL,OAAO,IACR,EACD,QAAS,CAAA,CACV,EASH,SAASoW,GAAcjJ,EAAK,CAI1B,MAAO,8BAA8B,KAAKA,CAAG,CAC/C,CAUA,SAASkJ,GAAYC,EAASC,EAAa,CACzC,OAAOA,EACHD,EAAQ,QAAQ,SAAU,EAAE,EAAI,IAAMC,EAAY,QAAQ,OAAQ,EAAE,EACpED,CACN,CAYA,SAASE,GAAcF,EAASG,EAAcC,EAAmB,CAC/D,IAAIC,EAAgB,CAACP,GAAcK,CAAY,EAC/C,OAAIH,IAAYK,GAAiBD,GAAqB,IAC7CL,GAAYC,EAASG,CAAY,EAEnCA,CACT,CAEA,MAAMG,GAAmB5T,GAAUA,aAAiBiQ,GAAiBzE,GAAA,GAAKxL,GAAUA,EAWpF,SAAS6T,GAAYC,EAASC,EAAS,CAErCA,EAAUA,GAAW,CAAE,EACvB,MAAMnM,EAAS,CAAE,EAEjB,SAASoM,EAAepN,EAAQD,EAAQzC,EAAMlB,EAAU,CACtD,OAAIwE,EAAQ,cAAcZ,CAAM,GAAKY,EAAQ,cAAcb,CAAM,EACxDa,EAAQ,MAAM,KAAK,CAAC,SAAAxE,CAAQ,EAAG4D,EAAQD,CAAM,EAC3Ca,EAAQ,cAAcb,CAAM,EAC9Ba,EAAQ,MAAM,CAAE,EAAEb,CAAM,EACtBa,EAAQ,QAAQb,CAAM,EACxBA,EAAO,MAAO,EAEhBA,CACX,CAGE,SAASsN,EAAoB5Q,EAAGC,EAAGY,EAAOlB,EAAU,CAClD,GAAKwE,EAAQ,YAAYlE,CAAC,GAEnB,GAAI,CAACkE,EAAQ,YAAYnE,CAAC,EAC/B,OAAO2Q,EAAe,OAAW3Q,EAAGa,EAAOlB,CAAQ,MAFnD,QAAOgR,EAAe3Q,EAAGC,EAAGY,EAAOlB,CAAQ,CAIjD,CAGE,SAASkR,EAAiB7Q,EAAGC,EAAG,CAC9B,GAAI,CAACkE,EAAQ,YAAYlE,CAAC,EACxB,OAAO0Q,EAAe,OAAW1Q,CAAC,CAExC,CAGE,SAAS6Q,EAAiB9Q,EAAGC,EAAG,CAC9B,GAAKkE,EAAQ,YAAYlE,CAAC,GAEnB,GAAI,CAACkE,EAAQ,YAAYnE,CAAC,EAC/B,OAAO2Q,EAAe,OAAW3Q,CAAC,MAF3B2Q,QAAAA,EAAe,OAAW1Q,CAAC,CAIxC,CAGE,SAAS8Q,EAAgB/Q,EAAGC,EAAGY,EAAM,CACnC,GAAIA,KAAQ6P,EACV,OAAOC,EAAe3Q,EAAGC,CAAC,EACrB,GAAIY,KAAQ4P,EACjB,OAAOE,EAAe,OAAW3Q,CAAC,CAExC,CAEE,MAAMgR,EAAW,CACf,IAAKH,EACL,OAAQA,EACR,KAAMA,EACN,QAASC,EACT,iBAAkBA,EAClB,kBAAmBA,EACnB,iBAAkBA,EAClB,QAASA,EACT,eAAgBA,EAChB,gBAAiBA,EACjB,cAAeA,EACf,QAASA,EACT,aAAcA,EACd,eAAgBA,EAChB,eAAgBA,EAChB,iBAAkBA,EAClB,mBAAoBA,EACpB,WAAYA,EACZ,iBAAkBA,EAClB,cAAeA,EACf,eAAgBA,EAChB,UAAWA,EACX,UAAWA,EACX,WAAYA,EACZ,YAAaA,EACb,WAAYA,EACZ,iBAAkBA,EAClB,eAAgBC,EAChB,QAAS,CAAC/Q,EAAGC,EAAIY,IAAS+P,EAAoBL,GAAgBvQ,CAAC,EAAGuQ,GAAgBtQ,CAAC,EAAEY,EAAM,EAAI,CAChG,EAED,OAAAsD,EAAQ,QAAQ,OAAO,KAAKgE,MAAA,GAAIsI,GAAYC,EAAQ,EAAG,SAA4B7P,EAAM,CACvF,MAAMnB,EAAQsR,EAASnQ,CAAI,GAAK+P,EAC1BK,EAAcvR,EAAM+Q,EAAQ5P,CAAI,EAAG6P,EAAQ7P,CAAI,EAAGA,CAAI,EAC3DsD,EAAQ,YAAY8M,CAAW,GAAKvR,IAAUqR,IAAqBxM,EAAO1D,CAAI,EAAIoQ,EACvF,CAAG,EAEM1M,CACT,CAEA,IAAI2M,GAAiB3M,GAAW,CAC9B,MAAM4M,EAAYX,GAAY,CAAE,EAAEjM,CAAM,EAExC,GAAI,CAAE,KAAAR,EAAM,cAAAqN,EAAe,eAAAC,EAAgB,eAAAC,EAAgB,QAAAtI,EAAS,KAAAuI,CAAI,EAAKJ,EAa7E,GAXAA,EAAU,QAAUnI,EAAU4D,GAAe,KAAK5D,CAAO,EAEzDmI,EAAU,IAAMtK,GAASsJ,GAAcgB,EAAU,QAASA,EAAU,IAAKA,EAAU,iBAAiB,EAAG5M,EAAO,OAAQA,EAAO,gBAAgB,EAGzIgN,GACFvI,EAAQ,IAAI,gBAAiB,SAC3B,MAAMuI,EAAK,UAAY,IAAM,KAAOA,EAAK,SAAW,SAAS,mBAAmBA,EAAK,QAAQ,CAAC,EAAI,GAAG,CACtG,EAGCpN,EAAQ,WAAWJ,CAAI,GACzB,GAAImE,EAAS,uBAAyBA,EAAS,+BAC7Cc,EAAQ,eAAe,MAAS,UACvB7E,EAAQ,WAAWJ,EAAK,UAAU,EAAG,CAE9C,MAAMyN,EAAczN,EAAK,WAAY,EAE/B0N,EAAiB,CAAC,eAAgB,gBAAgB,EACxD,OAAO,QAAQD,CAAW,EAAE,QAAQ,CAAC,CAACrS,EAAKhC,CAAG,IAAM,CAC9CsU,EAAe,SAAStS,EAAI,YAAa,CAAA,GAC3C6J,EAAQ,IAAI7J,EAAKhC,CAAG,CAE9B,CAAO,CACP,EAOE,GAAI+K,EAAS,wBACXkJ,GAAiBjN,EAAQ,WAAWiN,CAAa,IAAMA,EAAgBA,EAAcD,CAAS,GAE1FC,GAAkBA,IAAkB,IAAS5B,GAAgB2B,EAAU,GAAG,GAAI,CAEhF,MAAMO,EAAYL,GAAkBC,GAAkB5B,GAAQ,KAAK4B,CAAc,EAE7EI,GACF1I,EAAQ,IAAIqI,EAAgBK,CAAS,CAE7C,CAGE,OAAOP,CACR,EAIGQ,GAF0B,OAAO,eAAmB,KAEd,SAAUpN,EAAQ,CAC1D,OAAO,IAAI,QAAQ,SAA4B2I,EAASC,EAAQ,CAC9D,MAAMyE,EAAUV,GAAc3M,CAAM,EACpC,IAAIsN,EAAcD,EAAQ,KAC1B,MAAME,EAAiBlF,GAAe,KAAKgF,EAAQ,OAAO,EAAE,UAAW,EACvE,GAAI,CAAC,aAAAG,EAAc,iBAAAC,EAAkB,mBAAAC,CAAkB,EAAIL,EACvDM,EACAC,EAAiBC,EACjBC,EAAaC,EAEjB,SAASC,GAAO,CACdF,GAAeA,EAAW,EAC1BC,GAAiBA,EAAa,EAE9BV,EAAQ,aAAeA,EAAQ,YAAY,YAAYM,CAAU,EAEjEN,EAAQ,QAAUA,EAAQ,OAAO,oBAAoB,QAASM,CAAU,CAC9E,CAEI,IAAI1N,EAAU,IAAI,eAElBA,EAAQ,KAAKoN,EAAQ,OAAO,YAAW,EAAIA,EAAQ,IAAK,EAAI,EAG5DpN,EAAQ,QAAUoN,EAAQ,QAE1B,SAASY,GAAY,CACnB,GAAI,CAAChO,EACH,OAGF,MAAMiO,EAAkB7F,GAAe,KACrC,0BAA2BpI,GAAWA,EAAQ,sBAAqB,CACpE,EAGKC,GAAW,CACf,KAHmB,CAACsN,GAAgBA,IAAiB,QAAUA,IAAiB,OAChFvN,EAAQ,aAAeA,EAAQ,SAG/B,OAAQA,EAAQ,OAChB,WAAYA,EAAQ,WACpB,QAASiO,EACT,OAAAlO,EACA,QAAAC,CACD,EAEDyI,GAAO,SAAkBvK,GAAO,CAC9BwK,EAAQxK,EAAK,EACb6P,EAAM,CACd,EAAS,SAAiBG,GAAK,CACvBvF,EAAOuF,EAAG,EACVH,EAAM,CACP,EAAE9N,EAAQ,EAGXD,EAAU,IAChB,CAEQ,cAAeA,EAEjBA,EAAQ,UAAYgO,EAGpBhO,EAAQ,mBAAqB,UAAsB,CAC7C,CAACA,GAAWA,EAAQ,aAAe,GAQnCA,EAAQ,SAAW,GAAK,EAAEA,EAAQ,aAAeA,EAAQ,YAAY,QAAQ,OAAO,IAAM,IAK9F,WAAWgO,CAAS,CACrB,EAIHhO,EAAQ,QAAU,UAAuB,CAClCA,IAIL2I,EAAO,IAAI/I,EAAW,kBAAmBA,EAAW,aAAcG,EAAQC,CAAO,CAAC,EAGlFA,EAAU,KACX,EAGHA,EAAQ,QAAU,SAAqB/N,EAAO,CAIzC,MAAMoO,GAAMpO,GAASA,EAAM,QAAUA,EAAM,QAAU,gBAC/Cic,GAAM,IAAItO,EAAWS,GAAKT,EAAW,YAAaG,EAAQC,CAAO,EAEvEkO,GAAI,MAAQjc,GAAS,KACrB0W,EAAOuF,EAAG,EACVlO,EAAU,IACZ,EAGDA,EAAQ,UAAY,UAAyB,CAC3C,IAAImO,EAAsBf,EAAQ,QAAU,cAAgBA,EAAQ,QAAU,cAAgB,mBAC9F,MAAMvI,GAAeuI,EAAQ,cAAgBrK,GACzCqK,EAAQ,sBACVe,EAAsBf,EAAQ,qBAEhCzE,EAAO,IAAI/I,EACTuO,EACAtJ,GAAa,oBAAsBjF,EAAW,UAAYA,EAAW,aACrEG,EACAC,CAAO,CAAC,EAGVA,EAAU,IACX,EAGDqN,IAAgB,QAAaC,EAAe,eAAe,IAAI,EAG3D,qBAAsBtN,GACxBL,EAAQ,QAAQ2N,EAAe,OAAQ,EAAE,SAA0B3U,EAAKgC,GAAK,CAC3EqF,EAAQ,iBAAiBrF,GAAKhC,CAAG,CACzC,CAAO,EAIEgH,EAAQ,YAAYyN,EAAQ,eAAe,IAC9CpN,EAAQ,gBAAkB,CAAC,CAACoN,EAAQ,iBAIlCG,GAAgBA,IAAiB,SACnCvN,EAAQ,aAAeoN,EAAQ,cAI7BK,IACD,CAACG,EAAmBE,CAAa,EAAI5D,GAAqBuD,EAAoB,EAAI,EACnFzN,EAAQ,iBAAiB,WAAY4N,CAAiB,GAIpDJ,GAAoBxN,EAAQ,SAC7B,CAAC2N,EAAiBE,CAAW,EAAI3D,GAAqBsD,CAAgB,EAEvExN,EAAQ,OAAO,iBAAiB,WAAY2N,CAAe,EAE3D3N,EAAQ,OAAO,iBAAiB,UAAW6N,CAAW,IAGpDT,EAAQ,aAAeA,EAAQ,UAGjCM,EAAaU,GAAU,CAChBpO,IAGL2I,EAAO,CAACyF,GAAUA,EAAO,KAAO,IAAI5F,GAAc,KAAMzI,EAAQC,CAAO,EAAIoO,CAAM,EACjFpO,EAAQ,MAAO,EACfA,EAAU,KACX,EAEDoN,EAAQ,aAAeA,EAAQ,YAAY,UAAUM,CAAU,EAC3DN,EAAQ,SACVA,EAAQ,OAAO,QAAUM,EAAY,EAAGN,EAAQ,OAAO,iBAAiB,QAASM,CAAU,IAI/F,MAAMW,EAAWxF,GAAcuE,EAAQ,GAAG,EAE1C,GAAIiB,GAAY3K,EAAS,UAAU,QAAQ2K,CAAQ,IAAM,GAAI,CAC3D1F,EAAO,IAAI/I,EAAW,wBAA0ByO,EAAW,IAAKzO,EAAW,gBAAiBG,CAAM,CAAC,EACnG,MACN,CAIIC,EAAQ,KAAKqN,GAAe,IAAI,CACpC,CAAG,CACF,EA6CGiB,GA3CmB,CAACC,EAASC,IAAY,CAC3C,KAAM,CAAC,OAAAC,CAAM,EAAKF,EAAUA,EAAUA,EAAQ,OAAO,OAAO,EAAI,GAEhE,GAAIC,GAAWC,EAAQ,CACrB,IAAIC,EAAa,IAAI,gBAEjBC,EAEJ,MAAMC,EAAU,SAAUC,EAAQ,CAChC,GAAI,CAACF,EAAS,CACZA,EAAU,GACVhZ,EAAa,EACb,MAAMuY,EAAMW,aAAkB,MAAQA,EAAS,KAAK,OACpDH,EAAW,MAAMR,aAAetO,EAAasO,EAAM,IAAI1F,GAAc0F,aAAe,MAAQA,EAAI,QAAUA,CAAG,CAAC,CACtH,CACK,EAED,IAAInE,EAAQyE,GAAW,WAAW,IAAM,CACtCzE,EAAQ,KACR6E,EAAQ,IAAIhP,EAAW,WAAW4O,SAAO,mBAAmB5O,EAAW,SAAS,CAAC,CAClF,EAAE4O,CAAO,EAEV,MAAM7Y,EAAc,IAAM,CACpB4Y,IACFxE,GAAS,aAAaA,CAAK,EAC3BA,EAAQ,KACRwE,EAAQ,QAAQO,GAAU,CACxBA,EAAO,YAAcA,EAAO,YAAYF,CAAO,EAAIE,EAAO,oBAAoB,QAASF,CAAO,CACxG,CAAS,EACDL,EAAU,KAEb,EAEDA,EAAQ,QAASO,GAAWA,EAAO,iBAAiB,QAASF,CAAO,CAAC,EAErE,KAAM,CAAC,OAAAE,CAAM,EAAIJ,EAEjB,OAAAI,EAAO,YAAc,IAAMnP,EAAQ,KAAKhK,CAAW,EAE5CmZ,CACX,CACC,EAID,MAAMC,GAAc,UAAWC,EAAOC,EAAW,CAC/C,IAAIvU,EAAMsU,EAAM,WAEhB,GAAkBtU,EAAMuU,EAAW,CACjC,MAAMD,EACN,MACJ,CAEE,IAAIE,EAAM,EACNC,EAEJ,KAAOD,EAAMxU,GACXyU,EAAMD,EAAMD,EACZ,MAAMD,EAAM,MAAME,EAAKC,CAAG,EAC1BD,EAAMC,CAET,EAEKC,GAAY,SAAiBC,EAAUJ,EAAW,QAAAK,GAAA,sBACtD,YAAAC,EAAAC,GAA0BC,GAAWJ,CAAQ,GAA7CK,EAAAC,EAAAxZ,EAAAuZ,EAAA,EAAAC,EAAA,UAAAC,GAAAL,EAAA,cAAAG,EAAA,GACE,CADeV,MAAAA,EAAjBW,EAAA,MACE,MAAAE,GAAOd,GAAYC,EAAOC,CAAS,UADrCU,GAAAxZ,EAAA,CAAAwZ,UAAA,KAAAD,IAAAC,EAAAJ,EAAA,oBAAAK,GAAAD,EAAA,KAAAJ,YAAA,IAAApZ,EAAA,MAAAA,EAAA,IAGD,IAEKsZ,GAAa,SAAiBK,EAAQ,QAAAR,GAAA,sBAC1C,GAAIQ,EAAO,OAAO,aAAa,EAAG,CAChC,MAAAD,GAAOC,GACP,MACJ,CAEE,MAAMC,EAASD,EAAO,UAAW,EACjC,GAAI,CACF,OAAS,CACP,KAAM,CAAC,KAAA/B,EAAM,MAAA7P,CAAK,EAAI,UAAA0R,GAAMG,EAAO,KAAM,GACzC,GAAIhC,EACF,MAEF,MAAM7P,CACZ,CACA,QAAY,CACR,UAAA0R,GAAMG,EAAO,OAAQ,EACzB,CACC,IAEKC,GAAc,CAACF,EAAQb,EAAWgB,EAAYC,IAAa,CAC/D,MAAMnY,EAAWqX,GAAUU,EAAQb,CAAS,EAE5C,IAAIhG,EAAQ,EACR8E,EACAoC,EAAa7c,GAAM,CAChBya,IACHA,EAAO,GACPmC,GAAYA,EAAS5c,CAAC,EAEzB,EAED,OAAO,IAAI,eAAe,CACxB,MAAM,KAAKob,EAAY,CACrB,GAAI,CACF,KAAM,CAAC,KAAAX,EAAM,MAAA7P,CAAK,EAAI,MAAMnG,EAAS,KAAM,EAE3C,GAAIgW,EAAM,CACToC,EAAW,EACVzB,EAAW,MAAO,EAClB,MACV,CAEQ,IAAIhU,EAAMwD,EAAM,WAChB,GAAI+R,EAAY,CACd,IAAIG,EAAcnH,GAASvO,EAC3BuV,EAAWG,CAAW,CAChC,CACQ1B,EAAW,QAAQ,IAAI,WAAWxQ,CAAK,CAAC,CACzC,OAAQgQ,EAAK,CACZ,MAAAiC,EAAUjC,CAAG,EACPA,CACd,CACK,EACD,OAAOW,EAAQ,CACb,OAAAsB,EAAUtB,CAAM,EACT9W,EAAS,OAAQ,CAC9B,CACA,EAAK,CACD,cAAe,CAChB,CAAA,CACF,EAEKsY,GAAqB,GAAK,KAE1B,CAAC,WAAAC,EAAU,EAAI3Q,EAEf4Q,IAAkB,CAAC,CAAC,QAAAC,EAAS,SAAAC,CAAQ,KAAO,CAChD,QAAAD,EAAS,SAAAC,CACX,IAAI9Q,EAAQ,MAAM,EAEZ,CACJ,eAAgB+Q,GAAkB,YAAAC,EACnC,EAAGhR,EAAQ,OAGNiR,GAAO,CAACjZ,KAAOsS,IAAS,CAC5B,GAAI,CACF,MAAO,CAAC,CAACtS,EAAG,GAAGsS,CAAI,CACpB,OAAW3W,EAAA,CACV,MAAO,EACX,CACC,EAEKud,GAAWC,GAAQ,CACvBA,EAAMnR,EAAQ,MAAM,KAAK,CACvB,cAAe,EACnB,EAAK4Q,GAAgBO,CAAG,EAEtB,KAAM,CAAC,MAAOC,EAAU,QAAAP,EAAS,SAAAC,CAAQ,EAAIK,EACvCE,EAAmBD,EAAWT,GAAWS,CAAQ,EAAI,OAAO,OAAU,WACtEE,EAAqBX,GAAWE,CAAO,EACvCU,EAAsBZ,GAAWG,CAAQ,EAE/C,GAAI,CAACO,EACH,MAAO,GAGT,MAAMG,EAA4BH,GAAoBV,GAAWI,EAAgB,EAE3EU,EAAaJ,IAAqB,OAAOL,IAAgB,YACzDzO,GAAa9J,GAAQ8J,EAAQ,OAAO9J,CAAG,GAAG,IAAIuY,EAAa,EAC7D,MAAOvY,GAAQ,IAAI,WAAW,MAAM,IAAIoY,EAAQpY,CAAG,EAAE,YAAa,CAAA,GAGhEiZ,EAAwBJ,GAAsBE,GAA6BP,GAAK,IAAM,CAC1F,IAAIU,EAAiB,GAErB,MAAMC,EAAiB,IAAIf,EAAQ9M,EAAS,OAAQ,CAClD,KAAM,IAAIgN,GACV,OAAQ,OACR,IAAI,QAAS,CACX,OAAAY,EAAiB,GACV,MACR,CACP,CAAK,EAAE,QAAQ,IAAI,cAAc,EAE7B,OAAOA,GAAkB,CAACC,CAC9B,CAAG,EAEKC,EAAyBN,GAAuBC,GACpDP,GAAK,IAAMjR,EAAQ,iBAAiB,IAAI8Q,EAAS,EAAE,EAAE,IAAI,CAAC,EAEtDgB,EAAY,CAChB,OAAQD,IAA4BE,GAAQA,EAAI,KACjD,EAEDV,GACE,CAAC,OAAQ,cAAe,OAAQ,WAAY,QAAQ,EAAE,QAAQ1Y,GAAQ,CACpE,CAACmZ,EAAUnZ,CAAI,IAAMmZ,EAAUnZ,CAAI,EAAI,CAACoZ,EAAK3R,IAAW,CACtD,IAAImF,EAASwM,GAAOA,EAAIpZ,CAAI,EAE5B,GAAI4M,EACF,OAAOA,EAAO,KAAKwM,CAAG,EAGxB,MAAM,IAAI9R,EAAW,kBAAkBtH,OAAAA,EAAI,sBAAsBsH,EAAW,gBAAiBG,CAAM,CAC3G,EACA,CAAK,EAGH,MAAM4R,EAAgB,MAAOC,GAAS,CACpC,GAAIA,GAAQ,KACV,MAGF,GAAA,GAAIjS,EAAQ,OAAOiS,CAAI,EACrB,OAAOA,EAAK,KAGd,GAAIjS,EAAQ,oBAAoBiS,CAAI,EAKlC,OAAQ,MAJS,IAAIpB,EAAQ9M,EAAS,OAAQ,CAC5C,OAAQ,OACR,KAAAkO,CACR,CAAO,EACsB,YAAW,GAAI,WAGxC,GAAIjS,EAAQ,kBAAkBiS,CAAI,GAAKjS,EAAQ,cAAciS,CAAI,EAC/D,OAAOA,EAAK,WAOd,GAJIjS,EAAQ,kBAAkBiS,CAAI,IAChCA,EAAOA,EAAO,IAGZjS,EAAQ,SAASiS,CAAI,EACvB,OAAQ,MAAMR,EAAWQ,CAAI,GAAG,UAEnC,EAEKC,EAAoB,MAAOrN,EAASoN,IAAS,CACjD,MAAMnD,EAAS9O,EAAQ,eAAe6E,EAAQ,iBAAgB,CAAE,EAEhE,OAAOiK,GAAAA,KAAAA,EAAiBkD,EAAcC,CAAI,CAC3C,EAED,MAAc7R,OAAAA,GAAW,CACvB,GAAI,CACF,IAAAuC,EACA,OAAA4C,EACA,KAAA3F,EACA,OAAAuP,EACA,YAAAgD,GACA,QAAAtD,GACA,mBAAAf,GACA,iBAAAD,GACA,aAAAD,GACA,QAAA/I,GACA,gBAAAuN,GAAkB,cAClB,aAAAC,EACN,EAAQtF,GAAc3M,CAAM,EAEpBkS,GAASlB,GAAY,MAEzBxD,GAAeA,IAAgBA,GAAe,IAAI,YAAa,EAAG,OAElE,IAAI2E,GAAiB5D,GAAiB,CAACQ,EAAQgD,IAAeA,GAAY,eAAe,EAAGtD,EAAO,EAE/FxO,GAAU,KAEd,MAAMrK,GAAcuc,IAAkBA,GAAe,cAAgB,IAAM,CACzEA,GAAe,YAAa,CAClC,GAEI,IAAIC,GAEJ,GAAI,CACF,GACE3E,IAAoB6D,GAAyBnM,IAAW,OAASA,IAAW,SAC3EiN,GAAuB,MAAMN,EAAkBrN,GAASjF,CAAI,KAAO,EACpE,CACA,IAAI6S,GAAW,IAAI5B,EAAQlO,EAAK,CAC9B,OAAQ,OACR,KAAM/C,EACN,OAAQ,MAClB,CAAS,EAEG8S,GAMJ,GAJI1S,EAAQ,WAAWJ,CAAI,IAAM8S,GAAoBD,GAAS,QAAQ,IAAI,cAAc,IACtF5N,GAAQ,eAAe6N,EAAiB,EAGtCD,GAAS,KAAM,CACjB,KAAM,CAACnC,GAAYqC,EAAK,EAAI1H,GAC1BuH,GACAjI,GAAqBa,GAAeyC,EAAgB,CAAC,CACtD,EAEDjO,EAAOyQ,GAAYoC,GAAS,KAAM/B,GAAoBJ,GAAYqC,EAAK,CACjF,CACA,CAEW3S,EAAQ,SAASoS,EAAe,IACnCA,GAAkBA,GAAkB,UAAY,QAKlD,MAAMQ,GAAyBtB,GAAsB,gBAAiBT,EAAQ,UAExEgC,GAAkBC,GAAA9O,GAAA,GACnBqO,IADmB,CAEtB,OAAQE,GACR,OAAQhN,EAAO,YAAa,EAC5B,QAASV,GAAQ,UAAW,EAAC,OAAQ,EACrC,KAAMjF,EACN,OAAQ,OACR,YAAagT,GAAyBR,GAAkB,MACzD,GAED/R,GAAUiR,GAAsB,IAAIT,EAAQlO,EAAKkQ,EAAe,EAEhE,IAAIvS,GAAW,MAAOgR,EAAqBgB,GAAOjS,GAASgS,EAAY,EAAIC,GAAO3P,EAAKkQ,EAAe,GAEtG,MAAME,GAAmBlB,IAA2BjE,KAAiB,UAAYA,KAAiB,YAElG,GAAIiE,IAA2B/D,IAAuBiF,IAAoB/c,IAAe,CACvF,MAAMsL,GAAU,CAAE,EAElB,CAAC,SAAU,aAAc,SAAS,EAAE,QAAQ5E,IAAQ,CAClD4E,GAAQ5E,EAAI,EAAI4D,GAAS5D,EAAI,CACvC,CAAS,EAED,MAAMsW,GAAwBhT,EAAQ,eAAeM,GAAS,QAAQ,IAAI,gBAAgB,CAAC,EAErF,CAACgQ,GAAYqC,EAAK,EAAI7E,IAAsB7C,GAChD+H,GACAzI,GAAqBa,GAAe0C,EAAkB,EAAG,EAAI,CACvE,GAAa,CAAE,EAEPxN,GAAW,IAAIwQ,EACbT,GAAY/P,GAAS,KAAMoQ,GAAoBJ,GAAY,IAAM,CAC/DqC,IAASA,GAAO,EAChB3c,IAAeA,GAAa,CACxC,CAAW,EACDsL,EACD,CACT,CAEMsM,GAAeA,IAAgB,OAE/B,IAAIqF,GAAe,MAAMnB,EAAU9R,EAAQ,QAAQ8R,EAAWlE,EAAY,GAAK,MAAM,EAAEtN,GAAUF,CAAM,EAEvG,MAAA,CAAC2S,IAAoB/c,IAAeA,GAAa,EAE1C,MAAM,IAAI,QAAQ,CAAC+S,GAASC,KAAW,CAC5CF,GAAOC,GAASC,GAAQ,CACtB,KAAMiK,GACN,QAASxK,GAAe,KAAKnI,GAAS,OAAO,EAC7C,OAAQA,GAAS,OACjB,WAAYA,GAAS,WACrB,OAAAF,EACA,QAAAC,EACV,CAAS,CACF,CAAA,CACF,OAAQkO,GAAK,CAGZ,MAFAvY,IAAeA,GAAa,EAExBuY,IAAOA,GAAI,OAAS,aAAe,qBAAqB,KAAKA,GAAI,OAAO,EACpE,OAAO,OACX,IAAItO,EAAW,gBAAiBA,EAAW,YAAaG,EAAQC,EAAO,EACvE,CACE,MAAOkO,GAAI,OAASA,EAChC,CACA,EAGYtO,EAAW,KAAKsO,GAAKA,IAAOA,GAAI,KAAMnO,EAAQC,EAAO,CACjE,CACA,CACC,EAEK6S,GAAY,IAAI,IAEhBC,GAAY/S,GAAW,CAC3B,IAAI+Q,EAAM/Q,EAASA,EAAO,IAAM,CAAE,EAClC,KAAM,CAAC,MAAAgT,EAAO,QAAAvC,EAAS,SAAAC,CAAQ,EAAIK,EAC7BkC,EAAQ,CACZxC,EAASC,EAAUsC,CACpB,EAED,IAAIrY,EAAMsY,EAAM,OAAQzY,EAAIG,EAC1BuY,EAAMlU,EAAQmU,EAAML,GAEtB,KAAOtY,KACL0Y,EAAOD,EAAMzY,CAAC,EACdwE,EAASmU,EAAI,IAAID,CAAI,EAErBlU,IAAW,QAAamU,EAAI,IAAID,EAAMlU,EAAUxE,EAAI,IAAI,IAAQsW,GAAQC,CAAG,CAAE,EAE7EoC,EAAMnU,EAGR,OAAOA,CACR,EAED+T,GAAU,EAEV,MAAMK,GAAgB,CACpB,KAAM5S,GACN,IAAK4M,GACL,MAAO,CACL,IAAK2F,EACT,CACC,EAEDnT,EAAQ,QAAQwT,GAAe,CAACxb,EAAIuG,IAAU,CAC5C,GAAIvG,EAAI,CACN,GAAI,CACF,OAAO,eAAeA,EAAI,OAAQ,CAAC,MAAAuG,CAAK,CAAC,CAC1C,OAAW5K,EAAA,CAEhB,CACI,OAAO,eAAeqE,EAAI,cAAe,CAAC,MAAAuG,CAAK,CAAC,CACpD,CACA,CAAC,EAED,MAAMkV,GAAgBvE,GAAW,KAAKA,OAAAA,GAEhCwE,GAAoBC,GAAY3T,EAAQ,WAAW2T,CAAO,GAAKA,IAAY,MAAQA,IAAY,GAErG,IAAIC,GAAW,CACb,WAAY,CAACA,EAAUxT,IAAW,CAChCwT,EAAW5T,EAAQ,QAAQ4T,CAAQ,EAAIA,EAAW,CAACA,CAAQ,EAE3D,KAAM,CAAC,OAAA9E,CAAM,EAAI8E,EACjB,IAAIC,EACAF,EAEJ,MAAMG,EAAkB,CAAE,EAE1B,QAASlZ,EAAI,EAAGA,EAAIkU,EAAQlU,IAAK,CAC/BiZ,EAAgBD,EAAShZ,CAAC,EAC1B,IAAIsI,EAIJ,GAFAyQ,EAAUE,EAEN,CAACH,GAAiBG,CAAa,IACjCF,EAAUH,IAAetQ,EAAK,OAAO2Q,CAAa,GAAG,aAAa,EAE9DF,IAAY,QACd,MAAM,IAAI1T,EAAW,oBAAoBiD,OAAAA,EAAE,IAAG,EAIlD,GAAIyQ,IAAY3T,EAAQ,WAAW2T,CAAO,IAAMA,EAAUA,EAAQ,IAAIvT,CAAM,IAC1E,MAGF0T,EAAgB5Q,GAAM,IAAMtI,CAAC,EAAI+Y,CACvC,CAEI,GAAI,CAACA,EAAS,CAEZ,MAAMI,EAAU,OAAO,QAAQD,CAAe,EAC3C,IAAI,CAAC,CAAC5Q,EAAIlR,CAAK,IAAM,WAAWkR,OAAAA,EAAE,MAChClR,IAAU,GAAQ,sCAAwC,gCAC5D,EAEH,IAAIgiB,EAAIlF,EACLiF,EAAQ,OAAS,EAAI,YAAcA,EAAQ,IAAIN,EAAY,EAAE,KAAK,IAAI,EAAI,IAAMA,GAAaM,EAAQ,CAAC,CAAC,EACxG,0BAEF,MAAM,IAAI9T,EACR,wDAA0D+T,EAC1D,iBACD,CACP,CAEI,OAAOL,CACR,EACD,SAAUH,EACX,EASD,SAASS,GAA6B7T,EAAQ,CAK5C,GAJIA,EAAO,aACTA,EAAO,YAAY,iBAAkB,EAGnCA,EAAO,QAAUA,EAAO,OAAO,QACjC,MAAM,IAAIyI,GAAc,KAAMzI,CAAM,CAExC,CASA,SAAS8T,GAAgB9T,EAAQ,CAC/B,OAAA6T,GAA6B7T,CAAM,EAEnCA,EAAO,QAAUqI,GAAe,KAAKrI,EAAO,OAAO,EAGnDA,EAAO,KAAOsI,GAAc,KAC1BtI,EACAA,EAAO,gBACR,EAEG,CAAC,OAAQ,MAAO,OAAO,EAAE,QAAQA,EAAO,MAAM,IAAM,IACtDA,EAAO,QAAQ,eAAe,oCAAqC,EAAK,EAG1DwT,GAAS,WAAWxT,EAAO,SAAWoF,GAAW,QAASpF,CAAM,EAEjEA,CAAM,EAAE,KAAK,SAA6BE,EAAU,CACjE,OAAA2T,GAA6B7T,CAAM,EAGnCE,EAAS,KAAOoI,GAAc,KAC5BtI,EACAA,EAAO,kBACPE,CACD,EAEDA,EAAS,QAAUmI,GAAe,KAAKnI,EAAS,OAAO,EAEhDA,CACX,EAAK,SAA4B4O,EAAQ,CACrC,OAAKtG,GAASsG,CAAM,IAClB+E,GAA6B7T,CAAM,EAG/B8O,GAAUA,EAAO,WACnBA,EAAO,SAAS,KAAOxG,GAAc,KACnCtI,EACAA,EAAO,kBACP8O,EAAO,QACR,EACDA,EAAO,SAAS,QAAUzG,GAAe,KAAKyG,EAAO,SAAS,OAAO,IAIlE,QAAQ,OAAOA,CAAM,CAChC,CAAG,CACH,CAEA,MAAMiF,GAAU,SAEVC,GAAe,CAAE,EAGvB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,QAAQ,EAAE,QAAQ,CAACzb,EAAM,IAAM,CACnFyb,GAAazb,CAAI,EAAI,SAAmBH,EAAO,CAC7C,OAAO,OAAOA,IAAUG,GAAQ,KAAO,EAAI,EAAI,KAAO,KAAOA,CAC9D,CACH,CAAC,EAED,MAAM0b,GAAqB,CAAE,EAW7BD,GAAa,aAAe,SAAsBE,EAAWC,EAASrU,EAAS,CAC7E,SAASsU,EAAcC,EAAKC,EAAM,CAChC,MAAO,WAAaP,GAAU,0BAA6BM,EAAM,IAAOC,GAAQxU,EAAU,KAAOA,EAAU,GAC/G,CAGE,MAAO,CAAC3B,EAAOkW,EAAKE,IAAS,CAC3B,GAAIL,IAAc,GAChB,MAAM,IAAIrU,EACRuU,EAAcC,EAAK,qBAAuBF,EAAU,OAASA,EAAU,GAAG,EAC1EtU,EAAW,cACZ,EAGH,OAAIsU,GAAW,CAACF,GAAmBI,CAAG,IACpCJ,GAAmBI,CAAG,EAAI,GAE1B,QAAQ,KACND,EACEC,EACA,+BAAiCF,EAAU,yCACrD,CACO,GAGID,EAAYA,EAAU/V,EAAOkW,EAAKE,CAAI,EAAI,EAClD,CACF,EAEDP,GAAa,SAAW,SAAkBQ,EAAiB,CACzD,MAAO,CAACrW,EAAOkW,KAEb,QAAQ,KAAK,GAAGA,OAAAA,EAAG,gCAA+BG,OAAAA,EAAiB,EAC5D,GAEV,EAYD,SAASC,GAAcvT,EAASwT,EAAQC,EAAc,CACpD,GAAI,OAAOzT,GAAY,SACrB,MAAM,IAAIrB,EAAW,4BAA6BA,EAAW,oBAAoB,EAEnF,MAAMnF,EAAO,OAAO,KAAKwG,CAAO,EAChC,IAAI1G,EAAIE,EAAK,OACb,KAAOF,KAAM,GAAG,CACd,MAAM6Z,EAAM3Z,EAAKF,CAAC,EACZ0Z,EAAYQ,EAAOL,CAAG,EAC5B,GAAIH,EAAW,CACb,MAAM/V,EAAQ+C,EAAQmT,CAAG,EACnBrb,EAASmF,IAAU,QAAa+V,EAAU/V,EAAOkW,EAAKnT,CAAO,EACnE,GAAIlI,IAAW,GACb,MAAM,IAAI6G,EAAW,UAAYwU,EAAM,YAAcrb,EAAQ6G,EAAW,oBAAoB,EAE9F,QACN,CACI,GAAI8U,IAAiB,GACnB,MAAM,IAAI9U,EAAW,kBAAoBwU,EAAKxU,EAAW,cAAc,CAE7E,CACA,CAEA,IAAIqU,GAAY,CACd,cAAAO,GACA,WAAYT,EACb,EAED,MAAMY,GAAaV,GAAU,WAS7B,MAAMW,EAAM,CACV,YAAYC,EAAgB,CAC1B,KAAK,SAAWA,GAAkB,CAAE,EACpC,KAAK,aAAe,CAClB,QAAS,IAAI/R,GACb,SAAU,IAAIA,EACf,CACL,CAUE,MAAM,QAAQgS,EAAa/U,EAAQ,CACjC,GAAI,CACF,OAAO,MAAM,KAAK,SAAS+U,EAAa/U,CAAM,CAC/C,OAAQmO,EAAK,CACZ,GAAIA,aAAe,MAAO,CACxB,IAAI6G,EAAQ,CAAE,EAEd,MAAM,kBAAoB,MAAM,kBAAkBA,CAAK,EAAKA,EAAQ,IAAI,MAGxE,MAAMnW,EAAQmW,EAAM,MAAQA,EAAM,MAAM,QAAQ,QAAS,EAAE,EAAI,GAC/D,GAAI,CACG7G,EAAI,MAGEtP,GAAS,CAAC,OAAOsP,EAAI,KAAK,EAAE,SAAStP,EAAM,QAAQ,YAAa,EAAE,CAAC,IAC5EsP,EAAI,OAAS,KAAOtP,GAHpBsP,EAAI,MAAQtP,CAKf,OAAWtL,EAAA,CAEpB,CACA,CAEM,MAAM4a,CACZ,CACA,CAEE,SAAS4G,EAAa/U,EAAQ,CAGxB,OAAO+U,GAAgB,UACzB/U,EAASA,GAAU,CAAE,EACrBA,EAAO,IAAM+U,GAEb/U,EAAS+U,GAAe,CAAE,EAG5B/U,EAASiM,GAAY,KAAK,SAAUjM,CAAM,EAE1C,KAAM,CAAC,aAAA8E,EAAc,iBAAAmQ,EAAkB,QAAAxQ,CAAO,EAAIzE,EAE9C8E,IAAiB,QACnBoP,GAAU,cAAcpP,EAAc,CACpC,kBAAmB8P,GAAW,aAAaA,GAAW,OAAO,EAC7D,kBAAmBA,GAAW,aAAaA,GAAW,OAAO,EAC7D,oBAAqBA,GAAW,aAAaA,GAAW,OAAO,CAChE,EAAE,EAAK,EAGNK,GAAoB,OAClBrV,EAAQ,WAAWqV,CAAgB,EACrCjV,EAAO,iBAAmB,CACxB,UAAWiV,CACZ,EAEDf,GAAU,cAAce,EAAkB,CACxC,OAAQL,GAAW,SACnB,UAAWA,GAAW,QACvB,EAAE,EAAI,GAKP5U,EAAO,oBAAsB,SAAsB,KAAK,SAAS,oBAAsB,OACzFA,EAAO,kBAAoB,KAAK,SAAS,kBAEzCA,EAAO,kBAAoB,IAG7BkU,GAAU,cAAclU,EAAQ,CAC9B,QAAS4U,GAAW,SAAS,SAAS,EACtC,cAAeA,GAAW,SAAS,eAAe,CACnD,EAAE,EAAI,EAGP5U,EAAO,QAAUA,EAAO,QAAU,KAAK,SAAS,QAAU,OAAO,YAAa,EAG9E,IAAIkV,EAAiBzQ,GAAW7E,EAAQ,MACtC6E,EAAQ,OACRA,EAAQzE,EAAO,MAAM,CACtB,EAEDyE,GAAW7E,EAAQ,QACjB,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,QAAQ,EACzDuF,GAAW,CACV,OAAOV,EAAQU,CAAM,CAC7B,CACK,EAEDnF,EAAO,QAAUqI,GAAe,OAAO6M,EAAgBzQ,CAAO,EAG9D,MAAM0Q,EAA0B,CAAE,EAClC,IAAIC,EAAiC,GACrC,KAAK,aAAa,QAAQ,QAAQ,SAAoCC,EAAa,CAC7E,OAAOA,EAAY,SAAY,YAAcA,EAAY,QAAQrV,CAAM,IAAM,KAIjFoV,EAAiCA,GAAkCC,EAAY,YAE/EF,EAAwB,QAAQE,EAAY,UAAWA,EAAY,QAAQ,EACjF,CAAK,EAED,MAAMC,EAA2B,CAAE,EACnC,KAAK,aAAa,SAAS,QAAQ,SAAkCD,EAAa,CAChFC,EAAyB,KAAKD,EAAY,UAAWA,EAAY,QAAQ,CAC/E,CAAK,EAED,IAAIE,EACA/a,EAAI,EACJG,EAEJ,GAAI,CAACya,EAAgC,CACnC,MAAMI,EAAQ,CAAC1B,GAAgB,KAAK,IAAI,EAAG,MAAS,EAOpD,IANA0B,EAAM,QAAQ,GAAGL,CAAuB,EACxCK,EAAM,KAAK,GAAGF,CAAwB,EACtC3a,EAAM6a,EAAM,OAEZD,EAAU,QAAQ,QAAQvV,CAAM,EAEzBxF,EAAIG,GACT4a,EAAUA,EAAQ,KAAKC,EAAMhb,GAAG,EAAGgb,EAAMhb,GAAG,CAAC,EAG/C,OAAO+a,CACb,CAEI5a,EAAMwa,EAAwB,OAE9B,IAAIvI,EAAY5M,EAEhB,KAAOxF,EAAIG,GAAK,CACd,MAAM8a,EAAcN,EAAwB3a,GAAG,EACzCkb,EAAaP,EAAwB3a,GAAG,EAC9C,GAAI,CACFoS,EAAY6I,EAAY7I,CAAS,CAClC,OAAQxW,EAAO,CACdsf,EAAW,KAAK,KAAMtf,CAAK,EAC3B,KACR,CACA,CAEI,GAAI,CACFmf,EAAUzB,GAAgB,KAAK,KAAMlH,CAAS,CAC/C,OAAQxW,EAAO,CACd,OAAO,QAAQ,OAAOA,CAAK,CACjC,CAKI,IAHAoE,EAAI,EACJG,EAAM2a,EAAyB,OAExB9a,EAAIG,GACT4a,EAAUA,EAAQ,KAAKD,EAAyB9a,GAAG,EAAG8a,EAAyB9a,GAAG,CAAC,EAGrF,OAAO+a,CACX,CAEE,OAAOvV,EAAQ,CACbA,EAASiM,GAAY,KAAK,SAAUjM,CAAM,EAC1C,MAAM2V,EAAW/J,GAAc5L,EAAO,QAASA,EAAO,IAAKA,EAAO,iBAAiB,EACnF,OAAOsC,GAASqT,EAAU3V,EAAO,OAAQA,EAAO,gBAAgB,CACpE,CACA,CAGAJ,EAAQ,QAAQ,CAAC,SAAU,MAAO,OAAQ,SAAS,EAAG,SAA6BuF,EAAQ,CAEzF0P,GAAM,UAAU1P,CAAM,EAAI,SAAS5C,EAAKvC,EAAQ,CAC9C,OAAO,KAAK,QAAQiM,GAAYjM,GAAU,CAAA,EAAI,CAC5C,OAAAmF,EACA,IAAA5C,EACA,MAAOvC,GAAU,IAAI,IAC3B,CAAK,CAAC,CACH,CACH,CAAC,EAEDJ,EAAQ,QAAQ,CAAC,OAAQ,MAAO,OAAO,EAAG,SAA+BuF,EAAQ,CAG/E,SAASyQ,EAAmBC,EAAQ,CAClC,OAAO,SAAoBtT,EAAK/C,EAAMQ,EAAQ,CAC5C,OAAO,KAAK,QAAQiM,GAAYjM,GAAU,CAAA,EAAI,CAC5C,OAAAmF,EACA,QAAS0Q,EAAS,CAChB,eAAgB,qBAC1B,EAAY,CAAE,EACN,IAAAtT,EACA,KAAA/C,CACR,CAAO,CAAC,CACH,CACL,CAEEqV,GAAM,UAAU1P,CAAM,EAAIyQ,EAAoB,EAE9Cf,GAAM,UAAU1P,EAAS,MAAM,EAAIyQ,EAAmB,EAAI,CAC5D,CAAC,EAED,IAAIE,GAAUjB,GASd,MAAMkB,EAAY,CAChB,YAAYC,EAAU,CACpB,GAAI,OAAOA,GAAa,WACtB,MAAM,IAAI,UAAU,8BAA8B,EAGpD,IAAIC,EAEJ,KAAK,QAAU,IAAI,QAAQ,SAAyBtN,EAAS,CAC3DsN,EAAiBtN,CACvB,CAAK,EAED,MAAM5S,EAAQ,KAGd,KAAK,QAAQ,KAAKsY,GAAU,CAC1B,GAAI,CAACtY,EAAM,WAAY,OAEvB,IAAIyE,EAAIzE,EAAM,WAAW,OAEzB,KAAOyE,KAAM,GACXzE,EAAM,WAAWyE,CAAC,EAAE6T,CAAM,EAE5BtY,EAAM,WAAa,IACzB,CAAK,EAGD,KAAK,QAAQ,KAAOmgB,GAAe,CACjC,IAAIC,EAEJ,MAAMZ,EAAU,IAAI,QAAQ5M,GAAW,CACrC5S,EAAM,UAAU4S,CAAO,EACvBwN,EAAWxN,CACnB,CAAO,EAAE,KAAKuN,CAAW,EAEnB,OAAAX,EAAQ,OAAS,UAAkB,CACjCxf,EAAM,YAAYogB,CAAQ,CAC3B,EAEMZ,CACR,EAEDS,EAAS,SAAgBlW,EAASE,EAAQC,EAAS,CAC7ClK,EAAM,SAKVA,EAAM,OAAS,IAAI0S,GAAc3I,EAASE,EAAQC,CAAO,EACzDgW,EAAelgB,EAAM,MAAM,EACjC,CAAK,CACL,CAKE,kBAAmB,CACjB,GAAI,KAAK,OACP,MAAM,KAAK,MAEjB,CAME,UAAUqU,EAAU,CAClB,GAAI,KAAK,OAAQ,CACfA,EAAS,KAAK,MAAM,EACpB,MACN,CAEQ,KAAK,WACP,KAAK,WAAW,KAAKA,CAAQ,EAE7B,KAAK,WAAa,CAACA,CAAQ,CAEjC,CAME,YAAYA,EAAU,CACpB,GAAI,CAAC,KAAK,WACR,OAEF,MAAMzI,EAAQ,KAAK,WAAW,QAAQyI,CAAQ,EAC1CzI,IAAU,IACZ,KAAK,WAAW,OAAOA,EAAO,CAAC,CAErC,CAEE,eAAgB,CACd,MAAMgN,EAAa,IAAI,gBAEjByH,EAASjI,GAAQ,CACrBQ,EAAW,MAAMR,CAAG,CACrB,EAED,OAAA,KAAK,UAAUiI,CAAK,EAEpBzH,EAAW,OAAO,YAAc,IAAM,KAAK,YAAYyH,CAAK,EAErDzH,EAAW,MACtB,CAME,OAAO,QAAS,CACd,IAAIN,EAIJ,MAAO,CACL,MAJY,IAAI0H,GAAY,SAAkB7e,EAAG,CACjDmX,EAASnX,CACf,CAAK,EAGC,OAAAmX,CACD,CACL,CACA,CAEA,IAAIgI,GAAgBN,GAuBpB,SAASO,GAAOC,EAAU,CACxB,OAAO,SAAc1Z,EAAK,CACxB,OAAO0Z,EAAS,MAAM,KAAM1Z,CAAG,CAChC,CACH,CASA,SAAS2Z,GAAaC,EAAS,CAC7B,OAAO7W,EAAQ,SAAS6W,CAAO,GAAMA,EAAQ,eAAiB,EAChE,CAEA,MAAMC,GAAiB,CACrB,SAAU,IACV,mBAAoB,IACpB,WAAY,IACZ,WAAY,IACZ,GAAI,IACJ,QAAS,IACT,SAAU,IACV,4BAA6B,IAC7B,UAAW,IACX,aAAc,IACd,eAAgB,IAChB,YAAa,IACb,gBAAiB,IACjB,OAAQ,IACR,gBAAiB,IACjB,iBAAkB,IAClB,MAAO,IACP,SAAU,IACV,YAAa,IACb,SAAU,IACV,OAAQ,IACR,kBAAmB,IACnB,kBAAmB,IACnB,WAAY,IACZ,aAAc,IACd,gBAAiB,IACjB,UAAW,IACX,SAAU,IACV,iBAAkB,IAClB,cAAe,IACf,4BAA6B,IAC7B,eAAgB,IAChB,SAAU,IACV,KAAM,IACN,eAAgB,IAChB,mBAAoB,IACpB,gBAAiB,IACjB,WAAY,IACZ,qBAAsB,IACtB,oBAAqB,IACrB,kBAAmB,IACnB,UAAW,IACX,mBAAoB,IACpB,oBAAqB,IACrB,OAAQ,IACR,iBAAkB,IAClB,SAAU,IACV,gBAAiB,IACjB,qBAAsB,IACtB,gBAAiB,IACjB,4BAA6B,IAC7B,2BAA4B,IAC5B,oBAAqB,IACrB,eAAgB,IAChB,WAAY,IACZ,mBAAoB,IACpB,eAAgB,IAChB,wBAAyB,IACzB,sBAAuB,IACvB,oBAAqB,IACrB,aAAc,IACd,YAAa,IACb,8BAA+B,GAChC,EAED,OAAO,QAAQA,EAAc,EAAE,QAAQ,CAAC,CAAC9b,EAAKuD,CAAK,IAAM,CACvDuY,GAAevY,CAAK,EAAIvD,CAC1B,CAAC,EAED,IAAI+b,GAAmBD,GASvB,SAASE,GAAeC,EAAe,CACrC,MAAM3b,EAAU,IAAI4a,GAAQe,CAAa,EACnCC,EAAWnf,EAAKme,GAAQ,UAAU,QAAS5a,CAAO,EAGxD,OAAA0E,EAAQ,OAAOkX,EAAUhB,GAAQ,UAAW5a,EAAS,CAAC,WAAY,EAAI,CAAC,EAGvE0E,EAAQ,OAAOkX,EAAU5b,EAAS,KAAM,CAAC,WAAY,EAAI,CAAC,EAG1D4b,EAAS,OAAS,SAAgBhC,EAAgB,CAChD,OAAO8B,GAAe3K,GAAY4K,EAAe/B,CAAc,CAAC,CACjE,EAEMgC,CACT,CAGA,MAAMC,EAAQH,GAAexR,EAAU,EAGvC,OAAA2R,EAAM,MAAQjB,GAGdiB,EAAM,cAAgBtO,GACtBsO,EAAM,YAAcV,GACpBU,EAAM,SAAWvO,GACjBuO,EAAM,QAAUhD,GAChBgD,EAAM,WAAa/V,GAGnB+V,EAAM,WAAalX,EAGnBkX,EAAM,OAASA,EAAM,cAGrBA,EAAM,IAAM,SAAaC,EAAU,CACjC,OAAO,QAAQ,IAAIA,CAAQ,CAC5B,EAEDD,EAAM,OAAST,GAGfS,EAAM,aAAeP,GAGrBO,EAAM,YAAc9K,GAEpB8K,EAAM,aAAe1O,GAErB0O,EAAM,WAAa3e,GAAS6L,GAAerE,EAAQ,WAAWxH,CAAK,EAAI,IAAI,SAASA,CAAK,EAAIA,CAAK,EAElG2e,EAAM,WAAavD,GAAS,WAE5BuD,EAAM,eAAiBJ,GAEvBI,EAAM,QAAUA,EAEhBE,GAAiBF,6DC7vHjB,OAAO,eAAexiB,EAAS,OAAO,YAAa,CAAE,MAAO,SAAU,EACtE,MAAM8R,EAAI,CAAC9S,EAAG2jB,IAAMC,EAAE5jB,EAAG,GAAI2jB,CAAC,EAAGE,EAAK7jB,GAAM,eAAiBA,EAAG8jB,EAAI,CAAC9jB,EAAG2jB,IAAM,CAC5E,IAAII,EACJ,QAASA,EAAyBJ,GAAAA,YAAAA,EAAE,UAAY,KAAOI,EAAIC,EAAC,GAAMH,EAAE7jB,CAAC,CACtE,EAAEgC,EAAI,CAAChC,EAAG2jB,EAAGI,IAAM,CAClB,IAAIngB,EACJ,MAAMD,EAAI,OAAO,OAAO,CACtB,WAAY,CAChB,EAAKogB,GAAK,CAAA,CAAE,EAAE,aAAe,EAAI,EAAI,EACnC,QAASngB,EAAyBmgB,GAAAA,YAAAA,EAAE,UAAY,KAAOngB,EAAIogB,EAAG,GAAI,SAAWrgB,EAAI,OAASsgB,EAAEjkB,EAAG2jB,EAAGI,CAAC,CACpG,EAAEE,EAAI,CAACjkB,EAAG2jB,EAAGI,IAAM,CAClB,MAAMngB,EAAI,OAAO,OAAO,CACtB,OAAQ,EACZ,EAAKmgB,GAAK,CAAA,CAAE,EAAG1D,EAAI,SAAS1c,EAAGsD,EAAG,CAC9B,OAAOA,EAAIA,GAAK,CAAE,EAAEtD,EAAE,QACpB,cACA,SAASuD,EAAGgd,EAAG,CACb,MAAMhc,EAAIjB,EAAEid,CAAC,EACb,OAAOtgB,EAAE,OAAS,mBAAmB,OAAOsE,GAAK,UAAY,OAAOA,GAAK,SAAWA,EAAE,SAAU,EAAGhB,CAAC,EAAI,OAAOgB,GAAK,UAAY,OAAOA,GAAK,SAAWA,EAAE,SAAQ,EAAKhB,CAC9K,CACK,CACF,EACD,OAAOlH,EAAE,OAAO,CAAC,IAAM,MAAQA,EAAI,IAAMA,GAAIqgB,EAAErgB,EAAG2jB,GAAK,CAAA,CAAE,CAC1D,EAAEQ,EAAI,CAACnkB,EAAG2jB,EAAGI,IAAM,CAClB,IAAIngB,EAAGyc,EAAG1c,EACV,MAAMsD,EAAI,OAAO,OAAO,CACtB,UAAW,EACZ,EAAE8c,GAAK,CAAE,CAAA,EAAG7c,GAAKtD,EAAyBmgB,GAAAA,YAAAA,EAAE,UAAY,KAAOngB,EAAIwgB,EAAG,EACvE,QAASzgB,GAAK0c,EAA8B,2BAAO,KAAO,KAAO,OAASA,EAAE,SAAW,KAAO,OAAS1c,EAAE,qBAAuB,IAAM,CAACsD,EAAE,UAAYC,EAAI+c,EAAEjkB,EAAG2jB,EAAGI,CAAC,EAAI7c,EAAI,aAAe+c,EAAEjkB,EAAG2jB,EAAGI,CAAC,CACnM,EAAEM,EAAI,CAACrkB,EAAG2jB,IAAMA,EAAE,SAAS,GAAG,EAAIC,EAAE5jB,EAAG,MAAO2jB,CAAC,EAAIC,EAAE5jB,EAAG,MAAO,GAAG,OAAO2jB,EAAG,MAAM,CAAC,EAAGC,EAAI,CAAC5jB,EAAG2jB,EAAGI,IAAM,CACtG,IAAIngB,EAAGyc,EAAG1c,EACV,MAAMsD,GAAKtD,GAAK0c,GAAKzc,EAA8B,2BAAO,KAAO,KAAO,OAASA,EAAE,WAAa,KAAO,OAASyc,EAAE,SAASrgB,CAAC,IAAM,KAAO2D,EAAI,GAAIuD,EAAI6c,EAAE,MAAM,EAAE,IAAM,MACrK,IAAIG,EAAIE,EAAG,EACX,OAAOld,GAAK,CAACD,GAAKid,GAAK,mBAAmB,OAAOlkB,CAAC,EAAG2jB,IAAMO,GAAK,IAAI,OAAO,UAAUP,CAAC,CAAC,GAAII,IAAM,cAAgBG,GAAK,IAAI,OAAOH,CAAC,IAAM,CAAC7c,GAAK,CAACD,GAAKid,EAAI/b,EAAEnI,CAAC,EAAG2jB,IAAMO,GAAK,IAAI,OAAOP,EAAG,GAAG,GAAIO,EAAE,GAAG,EAAE,IAAM,MAAQA,GAAK,KAAMA,GAAKH,KAAO/jB,IAAM,YAAcA,IAAM,QAAUA,IAAM,WAAa2jB,IAAM,SAAWO,GAAK,cAAelkB,IAAMkkB,GAAK,IAAI,OAAOlkB,CAAC,GAAI2jB,IAAMO,GAAK,IAAI,OAAOP,CAAC,GAAIO,GAAK,IAAI,OAAOH,CAAC,GAAIG,CACnZ,EAAGF,EAAI,IAAM,OAAO,SAAS,SAAW,KAAO,OAAO,SAAS,KAAOI,EAAG,EACzE,SAASA,GAAI,CACX,IAAIpkB,EAAI,OAAO,YACf,GAAI,OAAOA,EAAI,IAAK,CAClBA,EAAI,SAAS,SACb,MAAM2jB,EAAI3jB,EAAE,QAAQ,aAAa,EACjC,GAAI2jB,IAAM,GACR3jB,EAAIA,EAAE,MAAM,EAAG2jB,CAAC,MACb,CACH,MAAMI,EAAI/jB,EAAE,QAAQ,IAAK,CAAC,EAC1BA,EAAIA,EAAE,MAAM,EAAG+jB,EAAI,EAAIA,EAAI,MAAM,CACvC,CACA,CACE,OAAO/jB,CACT,CACA,SAASmI,EAAEnI,EAAG,CACZ,IAAI2jB,EAAGI,EACP,OAAQA,IAAMJ,EAAI,OAAO,mBAAqB,KAAOA,EAAI,CAAA,GAAI3jB,CAAC,IAAM,KAAO+jB,EAAI,EACjF,CACA/iB,EAAA,iBAA2B4iB,EAC3B5iB,EAAA,eAAyBgB,EACzBhB,EAAA,kBAA4B8iB,EAC5B9iB,EAAA,YAAsBmjB,EACtBnjB,EAAA,cAAwBmH,EACxBnH,EAAA,WAAqBgjB,EACrBhjB,EAAA,WAAqBojB,EACrBpjB,EAAA,UAAoBqjB,EACpBrjB,EAAA,OAAiB8R,mEC7DjB,OAAO,iBAAiB9R,EAAS,CAAE,WAAY,CAAE,MAAO,IAAQ,CAAC,OAAO,WAAW,EAAG,CAAE,MAAO,QAAU,CAAA,CAAE,EAC3G,MAAMyY,EAAOvY,GAA0B,EACjCogB,EAAwBhgB,GAAA,EACxBgjB,EAASC,GAA4B,EAErCC,GADmBxkB,GAAMA,GAAKA,EAAE,WAAaA,EAAI,CAAE,QAASA,CAAG,GACdshB,CAAK,EAKtDmD,EAASD,EAAe,QAAQ,OAAO,CAC3C,QAAS,CACP,cAAc/K,EAAAA,EAAK,gBAAe,IAApBA,KAAAA,EAA0B,GACxC,mBAAoB,gBACxB,CACA,CAAC,EACDA,EAAK,qBAAsBjX,GAAU,CACnCiiB,EAAO,SAAS,QAAQ,aAAejiB,CACzC,CAAC,EACD,MAAMkiB,EAAmB,OAAO,OAAOD,EAAQ,CAC7C,YAAaD,EAAe,QAAQ,YACpC,SAAUA,EAAe,QAAQ,QACnC,CAAC,EACKG,EAAY,OAAO,YAAY,EACrC,SAASC,EAAiBpB,EAAO,CAC/B,MAAc3gB,OAAAA,GAAU,OACtB,GAAI,CAACye,EAAM,aAAaze,CAAK,EAC3B,MAAMA,EAER,KAAM,CAAE,OAAA4J,EAAQ,SAAAE,EAAU,QAAAD,CAAS,EAAG7J,EAChCgiB,EAAcnY,GAAAA,YAAAA,EAAS,YAC7B,GAAID,GAAU,CAACA,EAAOkY,CAAS,IAAKhY,iBAAU,UAAW,OAAOA,EAAAA,iBAAU,OAAVA,YAAAA,EAAgB,WAAY,oBAAqB,CAC/G,QAAQ,KAAK,cAAckY,OAAAA,EAAW,2DAA0D,EAChG,KAAM,CAAE,KAAM,CAAE,MAAAriB,CAAK,GAAO,MAAMghB,EAAM,IAAIc,EAAO,YAAY,YAAY,CAAC,EAC5E,OAAA,QAAQ,MAAM,qBAAqB9hB,OAAAA,EAAK,WAAU,EAClDghB,EAAM,SAAS,QAAQ,aAAehhB,EAC/BghB,EAAMrE,GAAA9O,GAAA,GACR5D,GADQ,CAEX,QAAS0S,GAAA9O,GAAA,GACJ5D,EAAO,SADH,CAEP,aAAcjK,CACf,GACD,CAACmiB,CAAS,EAAG,EACrB,EAAO,CACP,CACI,MAAM9hB,CACP,CACH,CACA,MAAMiiB,EAAkB,OAAO,YAAY,EAC3C,SAASC,EAAuBvB,EAAO,CACrC,MAAc3gB,OAAAA,GAAU,CACtB,GAAI,CAACye,EAAM,aAAaze,CAAK,EAC3B,MAAMA,EAER,KAAM,CAAE,OAAA4J,EAAQ,SAAAE,EAAU,QAAAD,CAAS,EAAG7J,EAChCgiB,EAAcnY,GAAAA,YAAAA,EAAS,YACvBiF,EAAShF,iBAAU,OACnBuE,EAAUvE,iBAAU,QAC1B,IAAIqY,EAAa,OAAOvY,iBAASqY,KAAqB,SAAWrY,iBAASqY,GAAmB,EAC7F,GAAInT,IAAW,MAAOT,GAAAA,YAAAA,EAAU,mCAAoC,MAAOzE,WAAQ,wBAAwB,CAEzG,GADAuY,GAAc,EACVA,EAAa,GACf,MAAA,QAAQ,MAAM,8CAA+C,CAAE,YAAAH,CAAW,CAAE,EACtEhiB,EAER,OAAA,QAAQ,KAAK,cAAcgiB,OAAAA,EAAW,qDAAoDG,OAAAA,EAAU,IAAG,EACvG,MAAM,IAAI,QAAS5P,IAAY,CAC7B,WAAWA,GAAS4P,EAAa,GAAG,CAC5C,CAAO,EACMxB,EAAMrE,GAAA9O,GAAA,GACR5D,GADQ,CAEX,CAACqY,CAAe,EAAGE,CAC3B,EAAO,CACP,CACI,MAAMniB,CACP,CACH,CACA,eAAeoiB,EAAmBpiB,EAAO,OACvC,GAAIye,EAAM,aAAaze,CAAK,EAAG,CAC7B,KAAM,CAAE,OAAA4J,EAAQ,SAAAE,EAAU,QAAAD,CAAS,EAAG7J,EAChCgiB,EAAcnY,GAAAA,YAAAA,EAAS,aACdC,GAAAA,YAAAA,EAAU,UACV,OAAOA,EAAAA,GAAAA,YAAAA,EAAU,OAAVA,YAAAA,EAAgB,WAAY,kCAAmCF,GAAAA,MAAAA,EAAQ,wBAAwB,qBAAQ,YAC3H,QAAQ,MAAM,cAAcoY,OAAAA,EAAW,iEAAgE,EACvG,OAAO,SAAS,OAAQ,EAE9B,CACE,MAAMhiB,CACR,CACA6hB,EAAiB,aAAa,SAAS,IAAK9gB,GAAMA,EAAGghB,EAAiBF,CAAgB,CAAC,EACvFA,EAAiB,aAAa,SAAS,IAAK9gB,GAAMA,EAAGmhB,EAAuBL,CAAgB,CAAC,EAC7FA,EAAiB,aAAa,SAAS,IAAK9gB,GAAMA,EAAGqhB,CAAkB,EACvE,OAAO,eAAejkB,EAAS,eAAgB,CAC7C,WAAY,GACZ,IAAK,IAAMsgB,EAAM,YACnB,CAAC,EACD,OAAO,eAAetgB,EAAS,WAAY,CACzC,WAAY,GACZ,IAAK,IAAMsgB,EAAM,QACnB,CAAC,EACDtgB,EAAA,QAAkB0jB,qDCpGlB,IAAIQ,EAAmBC,IAAQA,GAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAK,CAC5D,EACD,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,GAAA,kBAA4BC,EAC5BD,GAAA,OAAiBE,EAKjB,MAAMC,EAAiBtkB,GAAkC,EACnDwiB,EAAUwB,EAAgB5jB,IAA2B,EACrDmkB,EAAclB,GAA+B,EAMnD,SAASe,GAAoB,CACzB,MAAMI,KAAmBF,EAAe,iBAAkB,EAC1D,OAAIE,EAAa,YACNA,EAAa,YAAY,KAGzB,CAAE,CAEjB,CAYA,SAASH,EAAO1jB,EAAMC,EAAS6L,EAAU,CAAA,EAAI,CACzC,OAAAgY,EAAahY,CAAO,EACf,OAAO,uBAAuB9L,CAAI,IACnC,OAAO,uBAAuBA,CAAI,EAAI,CAAE,GAE5C,OAAO,uBAAuBA,CAAI,EAAE,KAAKC,CAAO,EAC5C,OAAO,kBAAoB,MAAQ,OAAO,OAAO,iBAAoB,UAAY,OAAO,mBACxF,OAAO,gBAAgB,KAAK,UAAYD,CAAI,EAG5C+jB,EAAYjY,CAAO,EAEhB,OAAO,sBAClB,CACA,SAASgY,EAAahY,EAAU,GAAI,CAC5B,OAAO,OAAO,uBAA2B,MACzC,OAAO,uBAAyB,CAAE,EAClC,OAAO,gBAAkB,KACzB,OAAO,oBAAsB,GAC7B,OAAO,uBAAyB,GAChC,OAAO,yBAA2B,EAClC,OAAO,mBAAqB,MACxB8X,EAAY,WAAW,iBAAkB,IAAM,CAC/C,OAAO,oBAAsB,GAC7B,OAAO,gBAAkB,KACzB,OAAO,mBAAqB,EACxC,CAAS,KACGA,EAAY,WAAW,gBAAiB,IAAM,CAC9C,OAAO,yBAA2B,EAClC,OAAO,oBAAsB,GAC7BG,EAAYjY,CAAO,CAC/B,CAAS,EAET,CACA,eAAeiY,EAAYjY,EAAU,GAAI,CACrC,GAAI,OAAO,gBACP,MAAO,GAEX,OAAO,gBAAkB,GACzB,MAAM+X,KAAmBF,EAAe,iBAAkB,EAC1D,GAAI,CAACE,EAAa,YACd,OAAO,OAAA,uBAAyB,GAChC,OAAO,gBAAkB,KAClB,GAEX,OAAO,uBAAyB,GAChC,IAAIG,EACJ,OAAKlY,EAAQ,cAETkY,GADiB,MAAMnC,EAAQ,QAAQ,KAAKgC,EAAa,YAAY,UAAU,QAAQ,GACpE,MAEvB,OAAO,gBAAkB,IAAI,UAAUA,EAAa,YAAY,UAAU,SAAS,EACnF,OAAO,gBAAgB,OAAS,IAAM,CAClC,GAAI,OAAO,OAAO,iBAAoB,UAAY,OAAO,gBAAiB,CAClEG,GACA,OAAO,gBAAgB,KAAK,EAAE,EAC9B,OAAO,gBAAgB,KAAKA,CAAO,GAE9BlY,EAAQ,cACb,OAAO,gBAAgB,KAAKA,EAAQ,YAAY,QAAQ,EACxD,OAAO,gBAAgB,KAAKA,EAAQ,YAAY,QAAQ,GAE5D,OAAO,mBAAqB,GAC5B,QAAS9L,KAAQ,OAAO,uBACpB,OAAO,gBAAgB,KAAK,UAAYA,CAAI,CAE5D,CACK,EACD,OAAO,gBAAgB,UAAY0K,GAAW,CAC1C,GAAIA,EAAQ,OAAS,gBACjB,OAAO,yBAA2B,MAEjC,CACD,MAAMtF,EAAIsF,EAAQ,KAAK,QAAQ,GAAG,EAClC,GAAI,CAAC5N,EAAO2f,CAAI,EAAIrX,EAAI,EAAI,CAACsF,EAAQ,KAAK,MAAM,EAAGtF,CAAC,EAAGsF,EAAQ,KAAK,MAAMtF,EAAI,CAAC,CAAC,EAAI,CAACsF,EAAQ,KAAM,IAAI,EAIvG,GAHI+R,IACAA,EAAO,KAAK,MAAMA,CAAI,GAEtB,OAAO,uBAAuB3f,CAAK,EACnC,QAASuN,KAAM,OAAO,uBAAuBvN,CAAK,EAC9CuN,EAAGvN,EAAO2f,CAAI,CAGlC,CACK,EACD,OAAO,gBAAgB,QAAU,OAAO,gBAAgB,QAAU,IAAM,CACpE,OAAO,gBAAkB,KACzB,OAAO,0BAA4B,EACnC,OAAO,mBAAqB,GAC5B,WAAW,IAAM,CACT,OAAO,qBACPsH,EAAYjY,CAAO,CAEnC,EAAW,IAAO,OAAO,wBAAwB,CAC5C,EACM,EACX,uBCnHA,MAAKjS,GAAU,CACb,KAAM,kBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACP,EACD,UAAW,CACT,KAAM,OACN,QAAS,cACV,EACD,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYH,GAAA,CAAA,EAAE,wMAAwM,iDAXpNuqB,EAeO,OAfPC,GAAclqB,EAAM,OAAA,CACb,cAAamqB,EAAK,MAAA,KAAA,OAClB,aAAYA,EAAK,MAClB,MAAM,yCACN,KAAK,MACJ,QAAKlqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA4E,GAAE7E,EAAK,MAAA,QAAU6E,CAAM,WACjColB,EAQM,MAAA,CARA,KAAME,EAAS,UAChB,MAAM,4BACL,MAAOA,EAAI,KACX,OAAQA,EAAI,KACb,QAAQ,cACXC,EAEO,OAFP1qB,GAEO,CADQyqB,EAAK,OAAlBE,EAAA,EAAAJ,EAAuC,aAAhBE,EAAK,KAAA,EAAA,CAAA,8DCO/BtqB,GAAU,CACb,KAAM,YACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACP,EACD,UAAW,CACT,KAAM,OACN,QAAS,cACV,EACD,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYH,GAAA,CAAA,EAAE,+GAA+G,iDAX3HuqB,EAeO,OAfPC,GAAclqB,EAAM,OAAA,CACb,cAAamqB,EAAK,MAAA,KAAA,OAClB,aAAYA,EAAK,MAClB,MAAM,kCACN,KAAK,MACJ,QAAKlqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA4E,GAAE7E,EAAK,MAAA,QAAU6E,CAAM,WACjColB,EAQM,MAAA,CARA,KAAME,EAAS,UAChB,MAAM,4BACL,MAAOA,EAAI,KACX,OAAQA,EAAI,KACb,QAAQ,cACXC,EAEO,OAFP1qB,GAEO,CADQyqB,EAAK,OAAlBE,EAAA,EAAAJ,EAAuC,aAAhBE,EAAK,KAAA,EAAA,CAAA,8DCO/BtqB,GAAU,CACb,KAAM,qBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACP,EACD,UAAW,CACT,KAAM,OACN,QAAS,cACV,EACD,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYH,GAAA,CAAA,EAAE,yGAAyG,iDAXrHuqB,EAeO,OAfPC,GAAclqB,EAAM,OAAA,CACb,cAAamqB,EAAK,MAAA,KAAA,OAClB,aAAYA,EAAK,MAClB,MAAM,4CACN,KAAK,MACJ,QAAKlqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA4E,GAAE7E,EAAK,MAAA,QAAU6E,CAAM,WACjColB,EAQM,MAAA,CARA,KAAME,EAAS,UAChB,MAAM,4BACL,MAAOA,EAAI,KACX,OAAQA,EAAI,KACb,QAAQ,cACXC,EAEO,OAFP1qB,GAEO,CADQyqB,EAAK,OAAlBE,EAAA,EAAAJ,EAAuC,aAAhBE,EAAK,KAAA,EAAA,CAAA,8DCO/BtqB,GAAU,CACb,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACP,EACD,UAAW,CACT,KAAM,OACN,QAAS,cACV,EACD,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYH,GAAA,CAAA,EAAE,gMAAgM,iDAX5MuqB,EAeO,OAfPC,GAAclqB,EAAM,OAAA,CACb,cAAamqB,EAAK,MAAA,KAAA,OAClB,aAAYA,EAAK,MAClB,MAAM,iCACN,KAAK,MACJ,QAAKlqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA4E,GAAE7E,EAAK,MAAA,QAAU6E,CAAM,WACjColB,EAQM,MAAA,CARA,KAAME,EAAS,UAChB,MAAM,4BACL,MAAOA,EAAI,KACX,OAAQA,EAAI,KACb,QAAQ,cACXC,EAEO,OAFP1qB,GAEO,CADQyqB,EAAK,OAAlBE,EAAA,EAAAJ,EAAuC,aAAhBE,EAAK,KAAA,EAAA,CAAA,6RCoCpC,MAAMG,GAAUhlB,EAAAA,GAAe,IAAfA,YAAAA,EAAmB,QAE7BilB,EAAW,uCAKjB,SAASC,EAASC,EAAU,CAC3B,MAAM1iB,EAAI,SAAS0iB,EAAS,UAAU,EAAG,CAAC,EAAG,EAAE,EAAI,IAC7CrC,EAAI,SAASqC,EAAS,UAAU,EAAG,CAAC,EAAG,EAAE,EAAI,IAC7Cne,EAAI,SAASme,EAAS,UAAU,EAAG,CAAC,EAAG,EAAE,EAAI,IAE7CC,EAAM,KAAK,IAAI3iB,EAAGqgB,EAAG9b,CAAC,EACtBuN,EAAM,KAAK,IAAI9R,EAAGqgB,EAAG9b,CAAC,EAC5B,IAAIqe,EAAM,EACNC,EAAM,EACV,MAAMC,GAAOH,EAAM7Q,GAAO,EAE1B,GAAI6Q,IAAQ7Q,EAAK,CAChB,MAAM0O,EAAImC,EAAM7Q,EAEhB,OADA+Q,EAAMC,EAAM,GAAMtC,GAAK,EAAImC,EAAM7Q,GAAO0O,GAAKmC,EAAM7Q,GAC3C6Q,EAAG,CACV,KAAK3iB,EACJ4iB,GAAOvC,EAAI9b,GAAKic,GAAKH,EAAI9b,EAAI,EAAI,GACjC,MACD,KAAK8b,EACJuC,GAAOre,EAAIvE,GAAKwgB,EAAI,EACpB,MACD,KAAKjc,EACJqe,GAAO5iB,EAAIqgB,GAAKG,EAAI,EACpB,KACJ,CACEoC,GAAO,EACT,CAEC,MAAO,CAACA,EAAKC,EAAKC,CAAG,CACtB,CAEA,MAAMC,EAAclqB,GAAS,IAAM,CAClC,GAAI,EAAC0pB,GAAAA,MAAAA,EAAS,QAAS,CAACC,EAAS,KAAKD,GAAAA,YAAAA,EAAS,KAAK,EACnD,MAAO,GAER,KAAM,CAACK,EAAKC,EAAKC,CAAG,EAAIL,EAASF,EAAQ,KAAK,EAC9C,OAAQK,GAAO,KAAOA,GAAO,KAAOC,EAAM,KAAQC,EAAM,IAAOA,EAAM,GACtE,CAAC,EAEKE,EAAiBnqB,GAAS,IAAM,CACrC,GAAI,EAAC0pB,GAAAA,MAAAA,EAAS,QAAS,CAACC,EAAS,KAAKD,GAAAA,YAAAA,EAAS,KAAK,EACnD,MAAO,GAER,KAAM,CAACK,EAAKC,EAAKC,CAAG,EAAIL,EAASF,EAAQ,KAAK,EAC9C,OAAQK,GAAO,KAAOA,GAAO,KAAOC,EAAM,KAAQC,EAAM,IAAOA,EAAM,GACtE,CAAC,eA/FY9qB,EAAA,SAAWA,EAAW,aAAlCsqB,IAAAJ,EAmBO,OAnBPzqB,GAmBO,MAjBNyqB,EAgBM,MAAA,CAfL,MAAM,6BACN,cAAY,+BACZ,QAAQ,MACP,MAAOlqB,EAAI,KACX,OAAQA,EAAI,KACb,QAAQ,YACR,KAAK,6BACLqqB,EAAgR,OAAA,CAA1Q,EAAE,qQAAqQ,EAAA,KAAA,EAAA,GAC7QA,EAMiH,OAAA,CALhH,UAAM,oBAAmB,CACoB,6BAAArqB,EAAA,cAAgBgrB,EAAc,iCAAmCD,EAAW,OAAK/qB,EAAW,aAAIgrB,EAAc,SAI3J,EAAE,qIAGLC,EAAmEC,GAAA,OAAlD,MAAM,6BAA8B,KAAMlrB,EAAI,+HCThE,MAAMW,EAAQX,EAQRuB,EAAOD,EAEP6pB,EAAYtqB,GAAS,IAAMF,EAAM,OAAO,OAAS,KAAK,EAO5D,SAASyqB,EAAoBroB,EAAO,CACnC,MAAMsoB,EAAS,CACd,IAAK1qB,EAAM,OAAO,KAClB,KAAMA,EAAM,OAAO,MAAQ,KAC7B,EACCY,EAAK,QAAS,CAAE,MAAAwB,EAAO,OAAAsoB,CAAQ,CAAA,CAChC,mBAICJ,EAMWK,GAAA/nB,EAAA,EAAA,CALT,QAAU4nB,EAAA,OAAanrB,EAAA,OAAO,QAAO,UAAA,YACrC,KAAMmrB,EAAS,MAAGnrB,SAAO,KAAO,OACjC,MAAM,2BACL,QAAOorB,cACR,IAAkB,CAAfG,GAAAC,EAAAxrB,EAAA,OAAO,KAAK,EAAA,CAAA,kCC1BZF,GAAU,CACd,KAAM,mBACN,MAAO,CACN,KAAM,CACL,KAAM,OACN,SAAU,EACV,EAGD,GAAI,CACH,KAAM,CAAC,OAAQ,MAAM,EACrB,SAAU,EACV,EAED,KAAM,CACL,KAAM,OACN,SAAU,EACV,EAED,KAAM,CACL,KAAM,OACN,QAAS,EACT,CACD,EAED,SAAU,CACT,iBAAkB,CACjB,OAAO,KAAK,OACX,KAAK,OAAS,cACX,KAAK,OAAS,YAElB,CACD,CACF,qEAjDQ2rB,EAAe,qBADtBvB,EAII,IAAA,OAFF,KAAME,EAAI,OACXC,EAA2B,gBAAhBD,EAAI,IAAA,EAAA,CAAA,UAGJA,EAAI,UADhBF,EAOI,IAAA,OALF,KAAME,EAAI,KACX,MAAM,WACN,OAAO,SACP,IAAI,wBACJC,EAA2B,gBAAhBD,EAAI,IAAA,EAAA,CAAA,WAEhBE,EAAA,EAAAJ,EAAkC,cAAhBE,EAAI,IAAA,EAAA,CAAA,mECJlBtqB,GAAU,CACd,KAAM,gBAEN,MAAO,CAEN,KAAM,CACL,KAAM,OACN,SAAU,EACV,EAGD,GAAI,CACH,KAAM,CAAC,OAAQ,MAAM,EACrB,SAAU,EACV,EAED,KAAM,CACL,KAAM,OACN,SAAU,EACV,EAED,KAAM,CACL,KAAM,OACN,QAAS,EACT,EAED,KAAM,CACL,KAAM,OACN,QAAS,EACT,CACD,EAED,SAAU,CACT,OAAQ,CACP,MAAM4rB,EAAoB,KAAK,KAAK,YAAY,GAAG,EAC7CC,EAAqB,KAAK,KAAK,QAAQ,GAAG,EAC1Cla,EAAO,KAAK,KAAK,UAAUka,IAAuB,EAAI,EAAI,EAAGD,CAAiB,EAEpF,OAAIja,EAAK,SAAW,EACZ,GAGD6W,GAAE,gBAAiB,YAAa,CACtC,KAAA7W,CACA,CAAA,CACD,CACD,CACF,0DAxDCyY,EAG4B,IAAA,CAF1B,MAAOuB,EAAK,MACb,MAAM,WACL,KAAMrB,EAAI,QAAKA,EAAI,IAAA,EAAA,EAAA3qB,EAAA,kCCcjBK,GAAU,CACd,KAAM,gBAEN,WAAY,CACX,aAAAqF,EACA,EAED,MAAO,CAEN,KAAM,CACL,KAAM,OACN,SAAU,EACV,EAED,GAAI,CACH,KAAM,OACN,SAAU,EACV,EAED,KAAM,CACL,KAAM,OACN,SAAU,EACV,EAED,OAAQ,CACP,KAAM,OACN,QAAS,EACT,CACD,EAED,SAAU,CACT,SAAU,CACT,OAAO,KAAK,OAAU,KAAK,GAAK,IAAM,KAAK,OAAU,EACrD,CACD,CACF,EApDM1F,GAAA,CAAA,MAAM,SAAS,mEAApB,OAAA6qB,EAAA,EAAAJ,EAUM,MAVNzqB,GAUM,CARGgsB,EAAO,aAGfvB,EAIS,SAAA,OAFP,MAAOuB,EAAO,WACZrB,EAAI,IAAA,EAAA,EAAA1qB,EAAA,QAPRurB,EAGcW,EAAA,OADZ,eAAcxB,EAAI,KAClB,KAAMA,EAAE,uGC8HPtqB,GAAU,CACd,KAAM,mBAEN,WAAY,cACX+rB,GACA,SAAAtoB,cACAuoB,GACA,UAAAC,GACA,mBAAAC,GACA,WAAAC,EACA,EAED,MAAO,CACN,aAAc,CAEb,KAAM,OACN,SAAU,EACV,CACD,EAED,MAAO,CAAC,QAAQ,EAEhB,MAAO,CACN,MAAO,CACN,gBAAiB,EAClB,CACA,EAED,SAAU,CACT,WAAY,CACX,OAAI,KAAK,aAAa,WAAa,UAC3B,EAEA,IAAI,KAAK,KAAK,aAAa,QAAQ,EAAG,QAAO,CACrD,EAED,SAAU,CACT,GAAI,CAAC,KAAK,aAAa,KACtB,MAAO,GAGR,IAAIC,EAAqB,GACzB,OAAA,OAAO,KAAK,OAAO,KAAK,aAAa,qBAAqB,CAAC,EAAE,QAASC,GAAM,CACvE,OAAO,KAAK,aAAa,qBAAqB,EAAEA,CAAC,EAAE,OACtDD,EAAqB,GAEtB,CAAA,EACM,CAACA,CACR,EAED,2BAA4B,CAC3B,OAAO,KAAK,kBAAkB,KAAK,aAAa,qBAAqB,CACrE,EAED,2BAA4B,CAC3B,OAAO,KAAK,kBAAkB,KAAK,aAAa,qBAAqB,CACrE,EAED,oBAAqB,CACpB,OAAO,KAAK,aAAa,QAAQ,OAAS,KAAO,CAAC,KAAK,eACvD,CACD,EAED,QAAS,GACR5D,GAEA,kBAAkB8D,EAAa,GAAI,CAClC,MAAMC,EAAiB,CAAA,EACvB,OAAA,OAAO,KAAKD,CAAU,EAAE,QAASD,GAAM,CACtC,MAAM/iB,EAAOgjB,EAAWD,CAAC,EAAE,KACvB/iB,IAAS,OACZijB,EAAeF,CAAC,EAAI,CACnB,UAAWG,GACX,MAAOF,EAAWD,CAAC,CACpB,EACU/iB,IAAS,OACnBijB,EAAeF,CAAC,EAAI,CACnB,UAAWI,GACX,MAAOH,EAAWD,CAAC,CACpB,EAEAE,EAAeF,CAAC,EAAI,CACnB,UAAWK,GACX,MAAOJ,EAAWD,CAAC,CACpB,CAED,CAAA,EACME,CACP,EAED,eAAejoB,EAAG,CACbA,EAAE,OAAO,QAAQ,qBAAqB,EAEzC,KAAK,gBAAkB,CAAC,KAAK,gBACnB,CAAC,KAAK,aAAa,aAAiB,KAAK,aAAa,UAEhE,KAAK,gBAAkB,CAAC,KAAK,gBAE9B,EAED,MAAM,cAAc,CAAE,MAAArB,EAAO,OAAAsoB,GAAU,CACtC,GAAI,CACH,MAAMoB,EAAe,CACpB,aAAc,GACd,aAAc,KAAK,aACnB,OAAApB,CACD,EAGA,GAFA,MAAM9pB,GAAK,+BAAgCkrB,CAAY,EAEnDpB,EAAO,OAAS,MAAO,CACtBoB,EAAa,cAChB1pB,EAAM,eAAc,EAErB,MACD,CAEA,GAAI0pB,EAAa,aAChB,OAID,MAAM7E,GAAM,CACX,OAAQyD,EAAO,KACf,IAAKA,EAAO,GACZ,CAAA,EAGD,KAAK,MAAM,QAAQ,EAEnB9pB,GAAK,gCAAiCwB,CAAK,CAC1C,OAAOkE,EAAO,CACf,QAAQ,MAAM,2BAA4BA,CAAK,EAC/CylB,GAAUpE,GAAE,gBAAiB,0BAA0B,CAAC,CACzD,CACA,EAED,uBAAwB,CACvBV,GACE,OAAO+E,GAAe,+CAAgD,CAAE,GAAI,KAAK,aAAa,eAAgB,CAAC,EAC/G,KAAK,IAAM,CACX,KAAK,MAAM,QAAQ,CACnB,CAAA,EACA,MAAM,IAAM,CACZD,GAAUpE,GAAE,gBAAiB,gCAAgC,CAAC,CAC9D,CAAA,CACF,CACD,CACF,gEAhRO5oB,GAAA,CAAA,MAAM,sBAAsB,wBAyBD,MAAM,oBAC/BktB,GAAA,CAAA,MAAM,SAAS,wBAGU,MAAM,8BAKxB,MAAM,qBAER,MAAM,kCACc,MAAM,8BAKxB,MAAM,gCAYY,MAAM,mCAGE,MAAM,kCAQH,MAAM,2LAvElD1C,EAoFK,KAAA,CAnFJ,MAAM,eACL,UAASE,EAAY,aAAC,eACtB,iBAAgBqB,EAAS,UACzB,mBAAkBrB,EAAY,aAAC,WAC/B,WAAUA,EAAY,aAAC,MACxBC,EAiBM,MAjBN3qB,GAiBM,CAfE+rB,EAAS,eADhBR,EAK0B4B,EAAA,OAHzB,MAAM,oBACN,iBAAA,GACC,OAAQ,CAAyC,UAAA,QAAA,UAAA,MAAA,EACjD,UAAWpB,EAAS,2CAEfA,EAAS,eADhBR,EASW6B,EAAA,OAPV,MAAM,8BACN,QAAQ,WACP,aAAYrB,EAAC,EAAA,gBAAA,SAAA,EACb,QAAOA,EAAqB,wBAClB,OACV,IAAwB,CAAxBsB,GAAwBC,EAAA,CAAZ,KAAM,EAAE,CAAA,iDAMhB5C,EAAA,aAAa,kBADpBF,EAQI,IAAA,OANF,KAAME,EAAY,aAAC,aACpB,MAAM,kDACN,OAAO,SACP,IAAI,wBACQA,EAAA,aAAa,MAAzBE,IAAAJ,EAAmH,OAAnHtqB,GAAmH,CAAtEyqB,EAA+D,MAAA,CAAzD,IAAKD,EAAY,aAAC,KAAM,MAAM,oBAAoB,IAAI,2BACzGC,EAAyD,OAAzDuC,GAAyDpB,EAAhCpB,eAAa,OAAO,EAAG,KAAE,CAAA,UAErCqB,EAAO,aAArBvB,EAOI,IAAA,OAPoB,KAAME,EAAY,aAAC,KAAM,MAAM,2CAC1CA,EAAA,aAAa,MAAzBE,IAAAJ,EAAmH,OAAnH+C,GAAmH,CAAtE5C,EAA+D,MAAA,CAAzD,IAAKD,EAAY,aAAC,KAAM,MAAM,oBAAoB,IAAI,2BAElGA,EAAA,aAAa,iBADpBa,EAG0CiC,EAAA,OADxC,KAAM9C,EAAY,aAAC,YACnB,UAAWqB,EAAyB,0DACtCnB,EAAA,EAAAJ,EAA8D,OAA9DiD,GAAgC3B,EAAApB,EAAA,aAAa,OAAO,EAAA,CAAA,YAErDE,IAAAJ,EAOM,MAPNkD,GAOM,CANOhD,EAAA,aAAa,MAAzBE,IAAAJ,EAAmH,OAAnHmD,GAAmH,CAAtEhD,EAA+D,MAAA,CAAzD,IAAKD,EAAY,aAAC,KAAM,MAAM,oBAAoB,IAAI,2BAElGA,EAAA,aAAa,iBADpBa,EAG0CiC,EAAA,OADxC,KAAM9C,EAAY,aAAC,YACnB,UAAWqB,EAAyB,0DACtCnB,EAAA,EAAAJ,EAA8D,OAA9DoD,GAAgC9B,EAAApB,EAAA,aAAa,OAAO,EAAA,CAAA,MAG1CA,EAAA,aAAa,aAAxBF,EAUM,MAAA,OAV2B,MAAM,uBAAwB,4BAAOuB,EAAc,gBAAAA,EAAA,eAAA,GAAA1Q,CAAA,KACnFsP,EAOM,MAAA,CAPD,MAAKkD,GAAA,CAAC,oBAAmB,CAAA,UAAsB9B,EAAkB,mBAAA,CAAA,IAE9DrB,EAAA,aAAa,iBADpBa,EAIoBiC,EAAA,OAFlB,KAAM9C,EAAY,aAAC,YACnB,UAAWqB,EAAyB,0BACpC,SAAU,uCACZvB,EAA8C,OAAAsD,GAAAhC,EAA9BpB,EAAY,aAAC,OAAO,EAAA,CAAA,OAE1BqB,EAAkB,oBAA7BnB,IAAAJ,EAA+D,MAA/DuD,EAA+D,wBAGrDrD,EAAY,aAAC,QAAQ,QAAhCE,IAAAJ,EAOM,MAPNwD,GAOM,EANLpD,EAAA,EAAA,EAAAJ,EAK6ByD,WAJNvD,EAAY,aAAC,QAA3B,CAAAiB,EAAQhgB,SADjB4f,EAK6B2C,EAAA,CAH3B,IAAKviB,EACL,OAAQggB,EACR,QAAOI,EAAa,cACpB,wBAAQxrB,EAAK,MAAA,QAAA,4CAEAmqB,EAAA,aAAa,cAA7BE,IAAAJ,EAYM,MAZN2D,GAYM,CAXLd,GAUWD,EAAA,CATV,QAAQ,UACR,KAAK,sCACL,MAAM,2BACN,OAAO,SACP,IAAI,wBACO,OACV,IAAiC,CAAjCC,GAAiCe,EAAA,CAAZ,KAAM,EAAE,CAAA,cACnB,IACX,IADW,IACXtC,EAAGC,EAAC,EAAA,gBAAA,wBAAA,CAAA,EAA8C,MACnD,CAAA,6FCxEH,eAAesC,GAAqBC,EAAOC,EAAUC,EAAcC,EAAe,CACjF,MAAMC,EAAc,SAASC,EAAe,QAAQ,aAAa,EAAG,EAAE,EAChEC,EAAUD,EAAe,QAAQ,OAAO,EACxCjU,EAAM,KAAK,MAAM,KAAK,IAAK,EAAG,GAAI,EAExC,OAAI8T,GAECI,IAAYN,GAASI,EAAc,GAAKhU,GAExCkU,IAAYN,GAASG,GAEtBC,EAAc,GAAKhU,KACtBiU,EAAe,QAAQ,QAASL,CAAK,EACrCK,EAAe,QAAQ,cAAejU,EAAI,SAAU,CAAA,EAEpD,MAAMmU,GAAYN,CAAQ,GAKpB,CACN,OAAQ,SAASI,EAAe,QAAQ,QAAQ,EAAG,EAAE,EACrD,QAAS,KAAK,MAAMA,EAAe,QAAQ,SAAS,GAAK,IAAI,EAC7D,KAAM,KAAK,MAAMA,EAAe,QAAQ,MAAM,GAAK,IAAI,EACvD,MAAOA,EAAe,QAAQ,OAAO,EACrC,YAAa,SAASA,EAAe,QAAQ,aAAa,EAAG,EAAE,CACjE,CACA,CAKA,eAAeG,GAAsBR,EAAO,CAC3BK,EAAe,QAAQ,OAAO,IAC9BL,IAEf,MAAMD,GAAqBC,EAAO,GAAI,GAAM,EAAK,EAEjDK,EAAe,QAAQ,QAASL,CAAK,EAEvC,CAKA,SAASS,GAAgBC,EAAc,CACtC,OAAAA,EAAa,eAAiBA,EAAa,gBAC3CA,EAAa,SAAWA,EAAa,UACrCA,EAAa,WAAaA,EAAa,YAEvC,OAAOA,EAAa,gBACpB,OAAOA,EAAa,UACpB,OAAOA,EAAa,YAEbA,CACR,CAKA,eAAeH,GAAYN,EAAU,OACpC,IAAIU,EAAgB,CAAA,EAChBV,IACHU,EAAgB,CACf,QAAS,CACR,gBAAiBV,CACjB,CACJ,GAGC,GAAI,CACH,MAAMld,EAAW,MAAM6W,GAAM,IAAI+E,GAAe,yCAAyC,EAAGgC,CAAa,EAEzGN,EAAe,QAAQ,SAAU,GAAKtd,EAAS,MAAM,EACjDA,EAAS,SAAW,MACvBsd,EAAe,QAAQ,UAAW,KAAK,UAAUtd,EAAS,OAAO,CAAC,EAClEsd,EAAe,QAAQ,OAAQ,KAAK,UAAUtd,EAAS,KAAK,IAAI,KAAK,IAAI0d,EAAe,CAAC,CAAC,EAE3F,OAAQxnB,EAAO,EACXA,EAAAA,GAAAA,YAAAA,EAAO,WAAPA,MAAAA,EAAiB,OACpBonB,EAAe,QAAQ,SAAU,GAAKpnB,EAAM,SAAS,MAAM,EAG3DonB,EAAe,QAAQ,SAAU,KAAK,CAEzC,CACA,0DC3FC,UAAW,CAWV,IAAIO,EAAe,UAAW,CAC5B,KAAK,KAAM,CACZ,EACDA,EAAa,UAAY,CAKvB,KAAM,UAAW,CACf,IAAI/W,EAAO,MAAQgX,EAGnB,OAAAhX,EAAK,SAAW,IAGhBA,EAAK,gBAAkB,CAAE,EACzBA,EAAK,cAAgB,GAGrBA,EAAK,QAAU,CAAE,EACjBA,EAAK,OAAS,CAAE,EAChBA,EAAK,OAAS,GACdA,EAAK,QAAU,EACfA,EAAK,cAAgB,iBACrBA,EAAK,WAAc,OAAO,OAAW,KAAe,OAAO,UAAa,OAAO,UAAY,KAG3FA,EAAK,WAAa,KAClBA,EAAK,QAAU,GACfA,EAAK,cAAgB,GACrBA,EAAK,YAAc,GACnBA,EAAK,IAAM,KAGXA,EAAK,WAAa,GAGlBA,EAAK,OAAQ,EAENA,CACR,EAOD,OAAQ,SAASiX,EAAK,CACpB,IAAIjX,EAAO,MAAQgX,EAQnB,GAPAC,EAAM,WAAWA,CAAG,EAGfjX,EAAK,KACRkX,EAAmB,EAGjB,OAAOD,EAAQ,KAAeA,GAAO,GAAKA,GAAO,EAAG,CAItD,GAHAjX,EAAK,QAAUiX,EAGXjX,EAAK,OACP,OAAOA,EAILA,EAAK,eACPA,EAAK,WAAW,KAAK,eAAeiX,EAAKD,EAAO,IAAI,WAAW,EAIjE,QAASxjB,EAAE,EAAGA,EAAEwM,EAAK,OAAO,OAAQxM,IAClC,GAAI,CAACwM,EAAK,OAAOxM,CAAC,EAAE,UAKlB,QAHI2jB,EAAMnX,EAAK,OAAOxM,CAAC,EAAE,aAAc,EAG9B4jB,EAAE,EAAGA,EAAED,EAAI,OAAQC,IAAK,CAC/B,IAAIC,EAAQrX,EAAK,OAAOxM,CAAC,EAAE,WAAW2jB,EAAIC,CAAC,CAAC,EAExCC,GAASA,EAAM,QACjBA,EAAM,MAAM,OAASA,EAAM,QAAUJ,EAErD,CAIQ,OAAOjX,CACf,CAEM,OAAOA,EAAK,OACb,EAMD,KAAM,SAASsX,EAAO,CACpB,IAAItX,EAAO,MAAQgX,EAGdhX,EAAK,KACRkX,EAAmB,EAGrBlX,EAAK,OAASsX,EAGVtX,EAAK,eACPA,EAAK,WAAW,KAAK,eAAesX,EAAQ,EAAItX,EAAK,QAASgX,EAAO,IAAI,WAAW,EAItF,QAASxjB,EAAE,EAAGA,EAAEwM,EAAK,OAAO,OAAQxM,IAClC,GAAI,CAACwM,EAAK,OAAOxM,CAAC,EAAE,UAKlB,QAHI2jB,EAAMnX,EAAK,OAAOxM,CAAC,EAAE,aAAc,EAG9B4jB,EAAE,EAAGA,EAAED,EAAI,OAAQC,IAAK,CAC/B,IAAIC,EAAQrX,EAAK,OAAOxM,CAAC,EAAE,WAAW2jB,EAAIC,CAAC,CAAC,EAExCC,GAASA,EAAM,QACjBA,EAAM,MAAM,MAASC,EAAS,GAAOD,EAAM,OAEzD,CAIM,OAAOrX,CACR,EAKD,KAAM,UAAW,CAIf,QAHIA,EAAO,MAAQgX,EAGVxjB,EAAE,EAAGA,EAAEwM,EAAK,OAAO,OAAQxM,IAClCwM,EAAK,OAAOxM,CAAC,EAAE,KAAM,EAGvB,OAAOwM,CACR,EAMD,OAAQ,UAAW,CAGjB,QAFIA,EAAO,MAAQgX,EAEVxjB,EAAEwM,EAAK,OAAO,OAAO,EAAGxM,GAAG,EAAGA,IACrCwM,EAAK,OAAOxM,CAAC,EAAE,OAAQ,EAIzB,OAAIwM,EAAK,eAAiBA,EAAK,KAAO,OAAOA,EAAK,IAAI,MAAU,MAC9DA,EAAK,IAAI,MAAO,EAChBA,EAAK,IAAM,KACXkX,EAAmB,GAGdlX,CACR,EAOD,OAAQ,SAASuX,EAAK,CACpB,OAAQ,MAAQP,GAAQ,QAAQO,EAAI,QAAQ,MAAO,EAAE,CAAC,CACvD,EAMD,OAAQ,UAAW,CACjB,IAAIvX,EAAO,MAAQgX,EASnB,GANAhX,EAAK,MAAQA,EAAK,KAAMA,EAAK,IAAI,OAAS,YAG1CA,EAAK,aAAc,EAGf,CAACA,EAAK,cAER,GAAI,OAAO,MAAU,IACnB,GAAI,CACF,IAAI6J,EAAO,IAAI,MAGX,OAAOA,EAAK,iBAAqB,MACnC7J,EAAK,cAAgB,UAExB,OAAUzT,EAAA,CACTyT,EAAK,QAAU,EAC3B,MAEUA,EAAK,QAAU,GAKnB,GAAI,CACF,IAAI6J,EAAO,IAAI,MACXA,EAAK,QACP7J,EAAK,QAAU,GAElB,OAAWzT,EAAA,CAAA,CAGZ,OAAKyT,EAAK,SACRA,EAAK,aAAc,EAGdA,CACR,EAMD,aAAc,UAAW,CACvB,IAAIA,EAAO,MAAQgX,EACfQ,EAAY,KAGhB,GAAI,CACFA,EAAa,OAAO,MAAU,IAAe,IAAI,MAAU,IAC5D,OAAajrB,EAAA,CACZ,OAAOyT,CACf,CAEM,GAAI,CAACwX,GAAa,OAAOA,EAAU,aAAgB,WACjD,OAAOxX,EAGT,IAAIyX,EAAWD,EAAU,YAAY,aAAa,EAAE,QAAQ,OAAQ,EAAE,EAGlEE,EAAK1X,EAAK,WAAaA,EAAK,WAAW,UAAY,GACnD2X,EAAaD,EAAG,MAAM,aAAa,EACnCE,EAAcD,GAAc,SAASA,EAAW,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAAG,EAAE,EAAI,GACxEE,EAAcH,EAAG,QAAQ,QAAQ,IAAM,IAAMA,EAAG,QAAQ,QAAQ,IAAM,GACtEI,EAAgBJ,EAAG,MAAM,iBAAiB,EAC1CK,EAAeF,GAAeC,GAAiB,SAASA,EAAc,CAAC,EAAG,EAAE,EAAI,GAEpF,OAAA9X,EAAK,QAAU,CACb,IAAK,CAAC,EAAE,CAAC4X,IAAeH,GAAYD,EAAU,YAAY,YAAY,EAAE,QAAQ,OAAQ,EAAE,IAC1F,KAAM,CAAC,CAACC,EACR,KAAM,CAAC,CAACD,EAAU,YAAY,0BAA0B,EAAE,QAAQ,OAAQ,EAAE,EAC5E,IAAK,CAAC,CAACA,EAAU,YAAY,4BAA4B,EAAE,QAAQ,OAAQ,EAAE,EAC7E,IAAK,CAAC,CAACA,EAAU,YAAY,4BAA4B,EAAE,QAAQ,OAAQ,EAAE,EAC7E,IAAK,CAAC,EAAEA,EAAU,YAAY,uBAAuB,GAAKA,EAAU,YAAY,WAAW,GAAG,QAAQ,OAAQ,EAAE,EAChH,IAAK,CAAC,CAACA,EAAU,YAAY,YAAY,EAAE,QAAQ,OAAQ,EAAE,EAC7D,IAAK,CAAC,CAACA,EAAU,YAAY,cAAc,EAAE,QAAQ,OAAQ,EAAE,EAC/D,IAAK,CAAC,EAAEA,EAAU,YAAY,cAAc,GAAKA,EAAU,YAAY,YAAY,GAAKA,EAAU,YAAY,YAAY,GAAG,QAAQ,OAAQ,EAAE,EAC/I,IAAK,CAAC,EAAEA,EAAU,YAAY,cAAc,GAAKA,EAAU,YAAY,YAAY,GAAKA,EAAU,YAAY,YAAY,GAAG,QAAQ,OAAQ,EAAE,EAC/I,IAAK,CAAC,EAAEA,EAAU,YAAY,cAAc,GAAKA,EAAU,YAAY,YAAY,GAAKA,EAAU,YAAY,YAAY,GAAG,QAAQ,OAAQ,EAAE,EAC/I,KAAM,CAAC,EAAE,CAACO,GAAeP,EAAU,YAAY,6BAA6B,EAAE,QAAQ,OAAQ,EAAE,GAChG,KAAM,CAAC,EAAE,CAACO,GAAeP,EAAU,YAAY,6BAA6B,EAAE,QAAQ,OAAQ,EAAE,GAChG,MAAO,CAAC,CAACA,EAAU,YAAY,0BAA0B,EAAE,QAAQ,OAAQ,EAAE,EAC7E,KAAM,CAAC,EAAEA,EAAU,YAAY,eAAe,GAAKA,EAAU,YAAY,aAAa,GAAG,QAAQ,OAAQ,EAAE,CAC5G,EAEMxX,CACR,EAQD,aAAc,UAAW,CACvB,IAAIA,EAAO,MAAQgX,EAGnB,GAAI,EAAAhX,EAAK,gBAAkB,CAACA,EAAK,KAIjC,CAAAA,EAAK,eAAiB,GACtBA,EAAK,WAAa,GAKd,CAACA,EAAK,iBAAmBA,EAAK,IAAI,aAAe,QACnDA,EAAK,gBAAkB,GACvBA,EAAK,OAAQ,GAKfA,EAAK,eAAiBA,EAAK,IAAI,aAAa,EAAG,EAAG,KAAK,EAKvD,IAAIgY,EAAS,SAASzrB,EAAG,CAOvB,KAAOyT,EAAK,gBAAgB,OAASA,EAAK,eACxC,GAAI,CACF,IAAIiY,EAAY,IAAI,MAIpBA,EAAU,UAAY,GAGtBjY,EAAK,mBAAmBiY,CAAS,CAClC,OAAW1rB,EAAA,CACVyT,EAAK,QAAU,GACf,KACZ,CAIQ,QAASxM,EAAE,EAAGA,EAAEwM,EAAK,OAAO,OAAQxM,IAClC,GAAI,CAACwM,EAAK,OAAOxM,CAAC,EAAE,UAKlB,QAHI2jB,EAAMnX,EAAK,OAAOxM,CAAC,EAAE,aAAc,EAG9B4jB,EAAE,EAAGA,EAAED,EAAI,OAAQC,IAAK,CAC/B,IAAIC,EAAQrX,EAAK,OAAOxM,CAAC,EAAE,WAAW2jB,EAAIC,CAAC,CAAC,EAExCC,GAASA,EAAM,OAAS,CAACA,EAAM,MAAM,YACvCA,EAAM,MAAM,UAAY,GACxBA,EAAM,MAAM,KAAM,EAElC,CAKQrX,EAAK,YAAa,EAGlB,IAAIjI,EAASiI,EAAK,IAAI,mBAAoB,EAC1CjI,EAAO,OAASiI,EAAK,eACrBjI,EAAO,QAAQiI,EAAK,IAAI,WAAW,EAG/B,OAAOjI,EAAO,MAAU,IAC1BA,EAAO,OAAO,CAAC,EAEfA,EAAO,MAAM,CAAC,EAIZ,OAAOiI,EAAK,IAAI,QAAW,YAC7BA,EAAK,IAAI,OAAQ,EAInBjI,EAAO,QAAU,UAAW,CAC1BA,EAAO,WAAW,CAAC,EAGnBiI,EAAK,eAAiB,GAGtB,SAAS,oBAAoB,aAAcgY,EAAQ,EAAI,EACvD,SAAS,oBAAoB,WAAYA,EAAQ,EAAI,EACrD,SAAS,oBAAoB,QAASA,EAAQ,EAAI,EAClD,SAAS,oBAAoB,UAAWA,EAAQ,EAAI,EAGpD,QAASxkB,EAAE,EAAGA,EAAEwM,EAAK,OAAO,OAAQxM,IAClCwM,EAAK,OAAOxM,CAAC,EAAE,MAAM,QAAQ,CAEhC,CACF,EAGD,OAAS,SAAA,iBAAiB,aAAcwkB,EAAQ,EAAI,EACpD,SAAS,iBAAiB,WAAYA,EAAQ,EAAI,EAClD,SAAS,iBAAiB,QAASA,EAAQ,EAAI,EAC/C,SAAS,iBAAiB,UAAWA,EAAQ,EAAI,EAE1ChY,CACR,CAAA,EAOD,kBAAmB,UAAW,CAC5B,IAAIA,EAAO,MAAQgX,EAGnB,GAAIhX,EAAK,gBAAgB,OACvB,OAAOA,EAAK,gBAAgB,IAAK,EAInC,IAAIkY,EAAW,IAAI,MAAO,EAAC,KAAM,EACjC,OAAIA,GAAY,OAAO,QAAY,MAAgBA,aAAoB,SAAW,OAAOA,EAAS,MAAS,aACzGA,EAAS,MAAM,UAAW,CACxB,QAAQ,KAAK,wEAAwE,CAC/F,CAAS,EAGI,IAAI,KACZ,EAMD,mBAAoB,SAASC,EAAO,CAClC,IAAInY,EAAO,MAAQgX,EAGnB,OAAImB,EAAM,WACRnY,EAAK,gBAAgB,KAAKmY,CAAK,EAG1BnY,CACR,EAOD,aAAc,UAAW,CACvB,IAAIA,EAAO,KAEX,GAAI,EAACA,CAAAA,EAAK,aAAe,CAACA,EAAK,KAAO,OAAOA,EAAK,IAAI,QAAY,KAAe,CAACgX,EAAO,eAKzF,CAASxjB,QAAAA,EAAE,EAAGA,EAAEwM,EAAK,OAAO,OAAQxM,IAClC,GAAIwM,EAAK,OAAOxM,CAAC,EAAE,WACjB,QAAS4jB,EAAE,EAAGA,EAAEpX,EAAK,OAAOxM,CAAC,EAAE,QAAQ,OAAQ4jB,IAC7C,GAAI,CAACpX,EAAK,OAAOxM,CAAC,EAAE,QAAQ4jB,CAAC,EAAE,QAC7B,OAAOpX,EAMf,OAAIA,EAAK,eACP,aAAaA,EAAK,aAAa,EAIjCA,EAAK,cAAgB,WAAW,UAAW,CACzC,GAAKA,EAAK,YAIV,CAAAA,EAAK,cAAgB,KACrBA,EAAK,MAAQ,aAGb,IAAIoY,EAAmB,UAAW,CAChCpY,EAAK,MAAQ,YAETA,EAAK,sBACP,OAAOA,EAAK,oBACZA,EAAK,YAAa,EAErB,EAIDA,EAAK,IAAI,QAAO,EAAG,KAAKoY,EAAkBA,CAAgB,EAC3D,EAAE,GAAK,EAEDpY,CAAAA,CACR,EAMD,YAAa,UAAW,CACtB,IAAIA,EAAO,KAEX,GAAI,EAAA,CAACA,EAAK,KAAO,OAAOA,EAAK,IAAI,OAAW,KAAe,CAACgX,EAAO,eAInE,OAAIhX,EAAK,QAAU,WAAaA,EAAK,IAAI,QAAU,eAAiBA,EAAK,eACvE,aAAaA,EAAK,aAAa,EAC/BA,EAAK,cAAgB,MACZA,EAAK,QAAU,aAAeA,EAAK,QAAU,WAAaA,EAAK,IAAI,QAAU,eACtFA,EAAK,IAAI,OAAQ,EAAC,KAAK,UAAW,CAChCA,EAAK,MAAQ,UAGb,QAASxM,EAAE,EAAGA,EAAEwM,EAAK,OAAO,OAAQxM,IAClCwM,EAAK,OAAOxM,CAAC,EAAE,MAAM,QAAQ,CAEzC,CAAS,EAEGwM,EAAK,gBACP,aAAaA,EAAK,aAAa,EAC/BA,EAAK,cAAgB,OAEdA,EAAK,QAAU,eACxBA,EAAK,oBAAsB,IAGtBA,CACb,CACG,EAGD,IAAIgX,EAAS,IAAID,EASbsB,EAAO,SAAS/H,EAAG,CACrB,IAAItQ,EAAO,KAGX,GAAI,CAACsQ,EAAE,KAAOA,EAAE,IAAI,SAAW,EAAG,CAChC,QAAQ,MAAM,4DAA4D,EAC1E,MACN,CAEItQ,EAAK,KAAKsQ,CAAC,CACZ,EACD+H,EAAK,UAAY,CAMf,KAAM,SAAS/H,EAAG,CAChB,IAAItQ,EAAO,KAGX,OAAKgX,EAAO,KACVE,EAAmB,EAIrBlX,EAAK,UAAYsQ,EAAE,UAAY,GAC/BtQ,EAAK,QAAW,OAAOsQ,EAAE,QAAW,SAAYA,EAAE,OAAS,CAACA,EAAE,MAAM,EACpEtQ,EAAK,OAASsQ,EAAE,OAAS,GACzBtQ,EAAK,OAASsQ,EAAE,MAAQ,GACxBtQ,EAAK,MAAQsQ,EAAE,MAAQ,GACvBtQ,EAAK,MAAQsQ,EAAE,MAAQ,EACvBtQ,EAAK,SAAY,OAAOsQ,EAAE,SAAY,WAAaA,EAAE,UAAY,WAAcA,EAAE,QAAU,GAC3FtQ,EAAK,MAAQsQ,EAAE,MAAQ,EACvBtQ,EAAK,QAAUsQ,EAAE,QAAU,CAAE,EAC7BtQ,EAAK,KAAQ,OAAOsQ,EAAE,KAAQ,SAAYA,EAAE,IAAM,CAACA,EAAE,GAAG,EACxDtQ,EAAK,QAAUsQ,EAAE,SAAW,OAAYA,EAAE,OAAS,EACnDtQ,EAAK,KAAO,CACV,OAAQsQ,EAAE,KAAOA,EAAE,IAAI,OAASA,EAAE,IAAI,OAAS,MAC/C,QAASA,EAAE,KAAOA,EAAE,IAAI,QAAUA,EAAE,IAAI,QAAU,KAClD,gBAAiBA,EAAE,KAAOA,EAAE,IAAI,gBAAkBA,EAAE,IAAI,gBAAkB,EAC3E,EAGDtQ,EAAK,UAAY,EACjBA,EAAK,OAAS,WACdA,EAAK,QAAU,CAAE,EACjBA,EAAK,WAAa,CAAE,EACpBA,EAAK,OAAS,CAAE,EAChBA,EAAK,UAAY,GAGjBA,EAAK,OAASsQ,EAAE,MAAQ,CAAC,CAAC,GAAIA,EAAE,KAAK,CAAC,EAAI,CAAE,EAC5CtQ,EAAK,QAAUsQ,EAAE,OAAS,CAAC,CAAC,GAAIA,EAAE,MAAM,CAAC,EAAI,CAAE,EAC/CtQ,EAAK,QAAUsQ,EAAE,OAAS,CAAC,CAAC,GAAIA,EAAE,MAAM,CAAC,EAAI,CAAE,EAC/CtQ,EAAK,aAAesQ,EAAE,YAAc,CAAC,CAAC,GAAIA,EAAE,WAAW,CAAC,EAAI,CAAE,EAC9DtQ,EAAK,aAAesQ,EAAE,YAAc,CAAC,CAAC,GAAIA,EAAE,WAAW,CAAC,EAAI,CAAE,EAC9DtQ,EAAK,SAAWsQ,EAAE,QAAU,CAAC,CAAC,GAAIA,EAAE,OAAO,CAAC,EAAI,CAAE,EAClDtQ,EAAK,QAAUsQ,EAAE,OAAS,CAAC,CAAC,GAAIA,EAAE,MAAM,CAAC,EAAI,CAAE,EAC/CtQ,EAAK,QAAUsQ,EAAE,OAAS,CAAC,CAAC,GAAIA,EAAE,MAAM,CAAC,EAAI,CAAE,EAC/CtQ,EAAK,QAAUsQ,EAAE,OAAS,CAAC,CAAC,GAAIA,EAAE,MAAM,CAAC,EAAI,CAAE,EAC/CtQ,EAAK,UAAYsQ,EAAE,SAAW,CAAC,CAAC,GAAIA,EAAE,QAAQ,CAAC,EAAI,CAAE,EACrDtQ,EAAK,QAAUsQ,EAAE,OAAS,CAAC,CAAC,GAAIA,EAAE,MAAM,CAAC,EAAI,CAAE,EAC/CtQ,EAAK,QAAUsQ,EAAE,OAAS,CAAC,CAAC,GAAIA,EAAE,MAAM,CAAC,EAAI,CAAE,EAC/CtQ,EAAK,UAAYsQ,EAAE,SAAW,CAAC,CAAC,GAAIA,EAAE,QAAQ,CAAC,EAAI,CAAE,EACrDtQ,EAAK,UAAY,CAAE,EAGnBA,EAAK,UAAYgX,EAAO,eAAiB,CAAChX,EAAK,OAG3C,OAAOgX,EAAO,IAAQ,KAAeA,EAAO,KAAOA,EAAO,YAC5DA,EAAO,aAAc,EAIvBA,EAAO,OAAO,KAAKhX,CAAI,EAGnBA,EAAK,WACPA,EAAK,OAAO,KAAK,CACf,MAAO,OACP,OAAQ,UAAW,CACjBA,EAAK,KAAM,CACvB,CACA,CAAS,EAICA,EAAK,UAAYA,EAAK,WAAa,QACrCA,EAAK,KAAM,EAGNA,CACR,EAMD,KAAM,UAAW,CACf,IAAIA,EAAO,KACPzE,EAAM,KAGV,GAAIyb,EAAO,QAAS,CAClBhX,EAAK,MAAM,YAAa,KAAM,mBAAmB,EACjD,MACR,CAGU,OAAOA,EAAK,MAAS,WACvBA,EAAK,KAAO,CAACA,EAAK,IAAI,GAIxB,QAASxM,EAAE,EAAGA,EAAEwM,EAAK,KAAK,OAAQxM,IAAK,CACrC,IAAI+jB,EAAKlmB,EAET,GAAI2O,EAAK,SAAWA,EAAK,QAAQxM,CAAC,EAEhC+jB,EAAMvX,EAAK,QAAQxM,CAAC,MACf,CAGL,GADAnC,EAAM2O,EAAK,KAAKxM,CAAC,EACb,OAAOnC,GAAQ,SAAU,CAC3B2O,EAAK,MAAM,YAAa,KAAM,wDAAwD,EACtF,QACZ,CAGUuX,EAAM,0BAA0B,KAAKlmB,CAAG,EACnCkmB,IACHA,EAAM,aAAa,KAAKlmB,EAAI,MAAM,IAAK,CAAC,EAAE,CAAC,CAAC,GAG1CkmB,IACFA,EAAMA,EAAI,CAAC,EAAE,YAAa,EAEtC,CAQQ,GALKA,GACH,QAAQ,KAAK,4FAA4F,EAIvGA,GAAOP,EAAO,OAAOO,CAAG,EAAG,CAC7Bhc,EAAMyE,EAAK,KAAKxM,CAAC,EACjB,KACV,CACA,CAEM,GAAI,CAAC+H,EAAK,CACRyE,EAAK,MAAM,YAAa,KAAM,8CAA8C,EAC5E,MACR,CAEM,OAAAA,EAAK,KAAOzE,EACZyE,EAAK,OAAS,UAIV,OAAO,SAAS,WAAa,UAAYzE,EAAI,MAAM,EAAG,CAAC,IAAM,UAC/DyE,EAAK,OAAS,GACdA,EAAK,UAAY,IAInB,IAAIsY,EAAMtY,CAAI,EAGVA,EAAK,WACPuY,EAAWvY,CAAI,EAGVA,CACR,EAQD,KAAM,SAASwY,EAAQC,EAAU,CAC/B,IAAIzY,EAAO,KACPlE,EAAK,KAGT,GAAI,OAAO0c,GAAW,SACpB1c,EAAK0c,EACLA,EAAS,SACJ,CAAI,GAAA,OAAOA,GAAW,UAAYxY,EAAK,SAAW,UAAY,CAACA,EAAK,QAAQwY,CAAM,EAEvF,OAAO,KACF,GAAI,OAAOA,EAAW,MAE3BA,EAAS,YAIL,CAACxY,EAAK,WAAW,CAEnB,QADI0Y,EAAM,EACDllB,EAAE,EAAGA,EAAEwM,EAAK,QAAQ,OAAQxM,IAC/BwM,EAAK,QAAQxM,CAAC,EAAE,SAAW,CAACwM,EAAK,QAAQxM,CAAC,EAAE,SAC9CklB,IACA5c,EAAKkE,EAAK,QAAQxM,CAAC,EAAE,KAIrBklB,IAAQ,EACVF,EAAS,KAET1c,EAAK,IAEjB,CAAA,CAIM,IAAIub,EAAQvb,EAAKkE,EAAK,WAAWlE,CAAE,EAAIkE,EAAK,eAAgB,EAG5D,GAAI,CAACqX,EACH,OAAO,KAWT,GAPIvb,GAAM,CAAC0c,IACTA,EAASnB,EAAM,SAAW,aAMxBrX,EAAK,SAAW,SAAU,CAE5BqX,EAAM,QAAUmB,EAGhBnB,EAAM,OAAS,GAGf,IAAIsB,EAAUtB,EAAM,IACpB,OAAArX,EAAK,OAAO,KAAK,CACf,MAAO,OACP,OAAQ,UAAW,CACjBA,EAAK,KAAK2Y,CAAO,CAC7B,CACA,CAAS,EAEMA,CACf,CAGM,GAAI7c,GAAM,CAACub,EAAM,QAEf,OAAKoB,GACHzY,EAAK,WAAW,MAAM,EAGjBqX,EAAM,IAIXrX,EAAK,WACPgX,EAAO,YAAa,EAItB,IAAI4B,EAAO,KAAK,IAAI,EAAGvB,EAAM,MAAQ,EAAIA,EAAM,MAAQrX,EAAK,QAAQwY,CAAM,EAAE,CAAC,EAAI,GAAI,EACjFK,EAAW,KAAK,IAAI,GAAK7Y,EAAK,QAAQwY,CAAM,EAAE,CAAC,EAAIxY,EAAK,QAAQwY,CAAM,EAAE,CAAC,GAAK,IAAQI,CAAI,EAC1FnR,EAAWoR,EAAW,IAAQ,KAAK,IAAIxB,EAAM,KAAK,EAClDyB,GAAQ9Y,EAAK,QAAQwY,CAAM,EAAE,CAAC,EAAI,IAClCO,IAAQ/Y,EAAK,QAAQwY,CAAM,EAAE,CAAC,EAAIxY,EAAK,QAAQwY,CAAM,EAAE,CAAC,GAAK,IACjEnB,EAAM,QAAUmB,EAIhBnB,EAAM,OAAS,GAGf,IAAI2B,GAAY,UAAW,CACzB3B,EAAM,QAAU,GAChBA,EAAM,MAAQuB,EACdvB,EAAM,OAASyB,GACfzB,EAAM,MAAQ0B,GACd1B,EAAM,MAAQ,CAAC,EAAEA,EAAM,OAASrX,EAAK,QAAQwY,CAAM,EAAE,CAAC,EACvD,EAGD,GAAII,GAAQG,GAAM,CAChB/Y,EAAK,OAAOqX,CAAK,EACjB,MACR,CAGM,IAAI4B,EAAO5B,EAAM,MACjB,GAAIrX,EAAK,UAAW,CAElB,IAAIkZ,GAAe,UAAW,CAC5BlZ,EAAK,UAAY,GACjBgZ,GAAW,EACXhZ,EAAK,eAAeqX,CAAK,EAGzB,IAAIJ,GAAOI,EAAM,QAAUrX,EAAK,OAAU,EAAIqX,EAAM,QACpD4B,EAAK,KAAK,eAAehC,GAAKD,EAAO,IAAI,WAAW,EACpDK,EAAM,WAAaL,EAAO,IAAI,YAG1B,OAAOiC,EAAK,aAAa,MAAU,IACrC5B,EAAM,MAAQ4B,EAAK,aAAa,YAAY,EAAGL,EAAM,KAAK,EAAIK,EAAK,aAAa,YAAY,EAAGL,EAAMC,CAAQ,EAE7GxB,EAAM,MAAQ4B,EAAK,aAAa,MAAM,EAAGL,EAAM,KAAK,EAAIK,EAAK,aAAa,MAAM,EAAGL,EAAMC,CAAQ,EAI/FpR,IAAY,MACdzH,EAAK,WAAWqX,EAAM,GAAG,EAAI,WAAWrX,EAAK,OAAO,KAAKA,EAAMqX,CAAK,EAAG5P,CAAO,GAG3EgR,GACH,WAAW,UAAW,CACpBzY,EAAK,MAAM,OAAQqX,EAAM,GAAG,EAC5BrX,EAAK,WAAY,CAClB,EAAE,CAAC,CAEP,EAEGgX,EAAO,QAAU,WAAaA,EAAO,IAAI,QAAU,cACrDkC,GAAc,GAEdlZ,EAAK,UAAY,GAGjBA,EAAK,KAAK,SAAUkZ,EAAY,EAGhClZ,EAAK,YAAYqX,EAAM,GAAG,EAEpC,KAAa,CAEL,IAAI8B,GAAY,UAAW,CACzBF,EAAK,YAAcL,EACnBK,EAAK,MAAQ5B,EAAM,QAAUrX,EAAK,QAAUgX,EAAO,QAAUiC,EAAK,MAClEA,EAAK,OAAS5B,EAAM,QAAUL,EAAO,OAAQ,EAC7CiC,EAAK,aAAe5B,EAAM,MAG1B,GAAI,CACF,IAAI+B,GAAOH,EAAK,KAAM,EAwCtB,GArCIG,IAAQ,OAAO,QAAY,MAAgBA,cAAgB,SAAW,OAAOA,GAAK,MAAS,aAE7FpZ,EAAK,UAAY,GAGjBgZ,GAAW,EAGXI,GACG,KAAK,UAAW,CACfpZ,EAAK,UAAY,GACjBiZ,EAAK,UAAY,GACZR,EAGHzY,EAAK,WAAY,EAFjBA,EAAK,MAAM,OAAQqX,EAAM,GAAG,CAI/B,CAAA,EACA,MAAM,UAAW,CAChBrX,EAAK,UAAY,GACjBA,EAAK,MAAM,YAAaqX,EAAM,IAAK,6IAC+C,EAGlFA,EAAM,OAAS,GACfA,EAAM,QAAU,EAClC,CAAiB,GACOoB,IACVzY,EAAK,UAAY,GACjBgZ,GAAW,EACXhZ,EAAK,MAAM,OAAQqX,EAAM,GAAG,GAI9B4B,EAAK,aAAe5B,EAAM,MAGtB4B,EAAK,OAAQ,CACfjZ,EAAK,MAAM,YAAaqX,EAAM,IAAK,6IAC+C,EAClF,MACd,CAGgBmB,IAAW,aAAenB,EAAM,MAClCrX,EAAK,WAAWqX,EAAM,GAAG,EAAI,WAAWrX,EAAK,OAAO,KAAKA,EAAMqX,CAAK,EAAG5P,CAAO,GAE9EzH,EAAK,WAAWqX,EAAM,GAAG,EAAI,UAAW,CAEtCrX,EAAK,OAAOqX,CAAK,EAGjB4B,EAAK,oBAAoB,QAASjZ,EAAK,WAAWqX,EAAM,GAAG,EAAG,EAAK,CACpE,EACD4B,EAAK,iBAAiB,QAASjZ,EAAK,WAAWqX,EAAM,GAAG,EAAG,EAAK,EAEnE,OAAQlQ,GAAK,CACZnH,EAAK,MAAM,YAAaqX,EAAM,IAAKlQ,EAAG,CAClD,CACS,EAGG8R,EAAK,MAAQ,2FACfA,EAAK,IAAMjZ,EAAK,KAChBiZ,EAAK,KAAM,GAIb,IAAII,GAAsB,QAAU,OAAO,QAAY,CAACJ,EAAK,YAAcjC,EAAO,WAAW,WAC7F,GAAIiC,EAAK,YAAc,GAAKI,GAC1BF,GAAW,MACN,CACLnZ,EAAK,UAAY,GACjBA,EAAK,OAAS,UAEd,IAAIoD,GAAW,UAAW,CACxBpD,EAAK,OAAS,SAGdmZ,GAAW,EAGXF,EAAK,oBAAoBjC,EAAO,cAAe5T,GAAU,EAAK,CAC/D,EACD6V,EAAK,iBAAiBjC,EAAO,cAAe5T,GAAU,EAAK,EAG3DpD,EAAK,YAAYqX,EAAM,GAAG,CACpC,CACA,CAEM,OAAOA,EAAM,GACd,EAOD,MAAO,SAASvb,EAAI,CAClB,IAAIkE,EAAO,KAGX,GAAIA,EAAK,SAAW,UAAYA,EAAK,UACnC,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,QACP,OAAQ,UAAW,CACjBA,EAAK,MAAMlE,CAAE,CACzB,CACA,CAAS,EAEMkE,EAMT,QAFImX,EAAMnX,EAAK,aAAalE,CAAE,EAErBtI,EAAE,EAAGA,EAAE2jB,EAAI,OAAQ3jB,IAAK,CAE/BwM,EAAK,YAAYmX,EAAI3jB,CAAC,CAAC,EAGvB,IAAI6jB,EAAQrX,EAAK,WAAWmX,EAAI3jB,CAAC,CAAC,EAElC,GAAI6jB,GAAS,CAACA,EAAM,UAElBA,EAAM,MAAQrX,EAAK,KAAKmX,EAAI3jB,CAAC,CAAC,EAC9B6jB,EAAM,UAAY,EAClBA,EAAM,QAAU,GAGhBrX,EAAK,UAAUmX,EAAI3jB,CAAC,CAAC,EAEjB6jB,EAAM,OACR,GAAIrX,EAAK,UAAW,CAElB,GAAI,CAACqX,EAAM,MAAM,aACf,SAGE,OAAOA,EAAM,MAAM,aAAa,KAAS,IAC3CA,EAAM,MAAM,aAAa,QAAQ,CAAC,EAElCA,EAAM,MAAM,aAAa,KAAK,CAAC,EAIjCrX,EAAK,aAAaqX,EAAM,KAAK,CAC3C,MAAuB,CAAC,MAAMA,EAAM,MAAM,QAAQ,GAAKA,EAAM,MAAM,WAAa,MAClEA,EAAM,MAAM,MAAO,EAMpB,UAAU,CAAC,GACdrX,EAAK,MAAM,QAASqX,EAAQA,EAAM,IAAM,IAAI,CAEtD,CAEM,OAAOrX,CACR,EAQD,KAAM,SAASlE,EAAI2c,EAAU,CAC3B,IAAIzY,EAAO,KAGX,GAAIA,EAAK,SAAW,UAAYA,EAAK,UACnC,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,OACP,OAAQ,UAAW,CACjBA,EAAK,KAAKlE,CAAE,CACxB,CACA,CAAS,EAEMkE,EAMT,QAFImX,EAAMnX,EAAK,aAAalE,CAAE,EAErBtI,EAAE,EAAGA,EAAE2jB,EAAI,OAAQ3jB,IAAK,CAE/BwM,EAAK,YAAYmX,EAAI3jB,CAAC,CAAC,EAGvB,IAAI6jB,EAAQrX,EAAK,WAAWmX,EAAI3jB,CAAC,CAAC,EAE9B6jB,IAEFA,EAAM,MAAQA,EAAM,QAAU,EAC9BA,EAAM,UAAY,EAClBA,EAAM,QAAU,GAChBA,EAAM,OAAS,GAGfrX,EAAK,UAAUmX,EAAI3jB,CAAC,CAAC,EAEjB6jB,EAAM,QACJrX,EAAK,UAEHqX,EAAM,MAAM,eACV,OAAOA,EAAM,MAAM,aAAa,KAAS,IAC3CA,EAAM,MAAM,aAAa,QAAQ,CAAC,EAElCA,EAAM,MAAM,aAAa,KAAK,CAAC,EAIjCrX,EAAK,aAAaqX,EAAM,KAAK,IAEtB,CAAC,MAAMA,EAAM,MAAM,QAAQ,GAAKA,EAAM,MAAM,WAAa,OAClEA,EAAM,MAAM,YAAcA,EAAM,QAAU,EAC1CA,EAAM,MAAM,MAAO,EAGfA,EAAM,MAAM,WAAa,KAC3BrX,EAAK,YAAYqX,EAAM,KAAK,IAK7BoB,GACHzY,EAAK,MAAM,OAAQqX,EAAM,GAAG,EAGxC,CAEM,OAAOrX,CACR,EAQD,KAAM,SAASsX,EAAOxb,EAAI,CACxB,IAAIkE,EAAO,KAGX,GAAIA,EAAK,SAAW,UAAWA,EAAK,UAClC,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,OACP,OAAQ,UAAW,CACjBA,EAAK,KAAKsX,EAAOxb,CAAE,CAC/B,CACA,CAAS,EAEMkE,EAIT,GAAI,OAAOlE,EAAO,IAChB,GAAI,OAAOwb,GAAU,UACnBtX,EAAK,OAASsX,MAEd,QAAOtX,EAAK,OAOhB,QAFImX,EAAMnX,EAAK,aAAalE,CAAE,EAErBtI,EAAE,EAAGA,EAAE2jB,EAAI,OAAQ3jB,IAAK,CAE/B,IAAI6jB,EAAQrX,EAAK,WAAWmX,EAAI3jB,CAAC,CAAC,EAE9B6jB,IACFA,EAAM,OAASC,EAGXD,EAAM,WACRrX,EAAK,UAAUqX,EAAM,GAAG,EAGtBrX,EAAK,WAAaqX,EAAM,MAC1BA,EAAM,MAAM,KAAK,eAAeC,EAAQ,EAAID,EAAM,QAASL,EAAO,IAAI,WAAW,EACxEK,EAAM,QACfA,EAAM,MAAM,MAAQL,EAAO,OAAS,GAAOM,GAG7CtX,EAAK,MAAM,OAAQqX,EAAM,GAAG,EAEtC,CAEM,OAAOrX,CACR,EAUD,OAAQ,UAAW,CACjB,IAAIA,EAAO,KACPkD,EAAO,UACP+T,EAAKnb,EAGT,GAAIoH,EAAK,SAAW,EAElB,OAAOlD,EAAK,QACP,GAAIkD,EAAK,SAAW,GAAKA,EAAK,SAAW,GAAK,OAAOA,EAAK,CAAC,EAAM,IAAa,CAEnF,IAAIiU,EAAMnX,EAAK,aAAc,EACzBrF,EAAQwc,EAAI,QAAQjU,EAAK,CAAC,CAAC,EAC3BvI,GAAS,EACXmB,EAAK,SAASoH,EAAK,CAAC,EAAG,EAAE,EAEzB+T,EAAM,WAAW/T,EAAK,CAAC,CAAC,CAElC,MAAiBA,EAAK,QAAU,IACxB+T,EAAM,WAAW/T,EAAK,CAAC,CAAC,EACxBpH,EAAK,SAASoH,EAAK,CAAC,EAAG,EAAE,GAI3B,IAAImU,EACJ,GAAI,OAAOJ,EAAQ,KAAeA,GAAO,GAAKA,GAAO,EAAG,CAEtD,GAAIjX,EAAK,SAAW,UAAWA,EAAK,UAClC,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,SACP,OAAQ,UAAW,CACjBA,EAAK,OAAO,MAAMA,EAAMkD,CAAI,CAC1C,CACA,CAAW,EAEMlD,EAIL,OAAOlE,EAAO,MAChBkE,EAAK,QAAUiX,GAIjBnb,EAAKkE,EAAK,aAAalE,CAAE,EACzB,QAAStI,EAAE,EAAGA,EAAEsI,EAAG,OAAQtI,IAEzB6jB,EAAQrX,EAAK,WAAWlE,EAAGtI,CAAC,CAAC,EAEzB6jB,IACFA,EAAM,QAAUJ,EAGX/T,EAAK,CAAC,GACTlD,EAAK,UAAUlE,EAAGtI,CAAC,CAAC,EAGlBwM,EAAK,WAAaqX,EAAM,OAAS,CAACA,EAAM,OAC1CA,EAAM,MAAM,KAAK,eAAeJ,EAAKD,EAAO,IAAI,WAAW,EAClDK,EAAM,OAAS,CAACA,EAAM,SAC/BA,EAAM,MAAM,OAASJ,EAAMD,EAAO,OAAQ,GAG5ChX,EAAK,MAAM,SAAUqX,EAAM,GAAG,EAG1C,KACQA,QAAAA,EAAQvb,EAAKkE,EAAK,WAAWlE,CAAE,EAAIkE,EAAK,QAAQ,CAAC,EAC1CqX,EAAQA,EAAM,QAAU,EAGjC,OAAOrX,CACR,EAUD,KAAM,SAASsZ,EAAMC,EAAI5lB,EAAKmI,EAAI,CAChC,IAAIkE,EAAO,KAGX,GAAIA,EAAK,SAAW,UAAYA,EAAK,UACnC,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,OACP,OAAQ,UAAW,CACjBA,EAAK,KAAKsZ,EAAMC,EAAI5lB,EAAKmI,CAAE,CACvC,CACA,CAAS,EAEMkE,EAITsZ,EAAO,KAAK,IAAI,KAAK,IAAI,EAAG,WAAWA,CAAI,CAAC,EAAG,CAAC,EAChDC,EAAK,KAAK,IAAI,KAAK,IAAI,EAAG,WAAWA,CAAE,CAAC,EAAG,CAAC,EAC5C5lB,EAAM,WAAWA,CAAG,EAGpBqM,EAAK,OAAOsZ,EAAMxd,CAAE,EAIpB,QADIqb,EAAMnX,EAAK,aAAalE,CAAE,EACrBtI,EAAE,EAAGA,EAAE2jB,EAAI,OAAQ3jB,IAAK,CAE/B,IAAI6jB,EAAQrX,EAAK,WAAWmX,EAAI3jB,CAAC,CAAC,EAGlC,GAAI6jB,EAAO,CAOT,GALKvb,GACHkE,EAAK,UAAUmX,EAAI3jB,CAAC,CAAC,EAInBwM,EAAK,WAAa,CAACqX,EAAM,OAAQ,CACnC,IAAImC,EAAcxC,EAAO,IAAI,YACzB5O,EAAMoR,EAAe7lB,EAAM,IAC/B0jB,EAAM,QAAUiC,EAChBjC,EAAM,MAAM,KAAK,eAAeiC,EAAME,CAAW,EACjDnC,EAAM,MAAM,KAAK,wBAAwBkC,EAAInR,CAAG,CAC5D,CAEUpI,EAAK,mBAAmBqX,EAAOiC,EAAMC,EAAI5lB,EAAKwjB,EAAI3jB,CAAC,EAAG,OAAOsI,EAAO,GAAW,CACzF,CACA,CAEM,OAAOkE,CACR,EAWD,mBAAoB,SAASqX,EAAOiC,EAAMC,EAAI5lB,EAAKmI,EAAI2d,EAAS,CAC9D,IAAIzZ,EAAO,KACPiX,EAAMqC,EACNI,EAAOH,EAAKD,EACZK,EAAQ,KAAK,IAAID,EAAO,GAAI,EAC5BE,EAAU,KAAK,IAAI,EAAID,EAAQ,EAAKhmB,EAAMgmB,EAAQhmB,CAAG,EACrDkmB,GAAW,KAAK,IAAK,EAGzBxC,EAAM,QAAUkC,EAGhBlC,EAAM,UAAY,YAAY,UAAW,CAEvC,IAAIyC,IAAQ,KAAK,IAAK,EAAGD,IAAYlmB,EACrCkmB,GAAW,KAAK,IAAK,EACrB5C,GAAOyC,EAAOI,GAGd7C,EAAM,KAAK,MAAMA,EAAM,GAAG,EAAI,IAG1ByC,EAAO,EACTzC,EAAM,KAAK,IAAIsC,EAAItC,CAAG,EAEtBA,EAAM,KAAK,IAAIsC,EAAItC,CAAG,EAIpBjX,EAAK,UACPqX,EAAM,QAAUJ,EAEhBjX,EAAK,OAAOiX,EAAKI,EAAM,IAAK,EAAI,EAI9BoC,IACFzZ,EAAK,QAAUiX,IAIZsC,EAAKD,GAAQrC,GAAOsC,GAAQA,EAAKD,GAAQrC,GAAOsC,KACnD,cAAclC,EAAM,SAAS,EAC7BA,EAAM,UAAY,KAClBA,EAAM,QAAU,KAChBrX,EAAK,OAAOuZ,EAAIlC,EAAM,GAAG,EACzBrX,EAAK,MAAM,OAAQqX,EAAM,GAAG,EAE/B,EAAEuC,CAAO,CACX,EAQD,UAAW,SAAS9d,EAAI,CACtB,IAAIkE,EAAO,KACPqX,EAAQrX,EAAK,WAAWlE,CAAE,EAE9B,OAAIub,GAASA,EAAM,YACbrX,EAAK,WACPqX,EAAM,MAAM,KAAK,sBAAsBL,EAAO,IAAI,WAAW,EAG/D,cAAcK,EAAM,SAAS,EAC7BA,EAAM,UAAY,KAClBrX,EAAK,OAAOqX,EAAM,QAASvb,CAAE,EAC7Bub,EAAM,QAAU,KAChBrX,EAAK,MAAM,OAAQlE,CAAE,GAGhBkE,CACR,EAUD,KAAM,UAAW,CACf,IAAIA,EAAO,KACPkD,EAAO,UACP6W,EAAMje,EAAIub,EAGd,GAAInU,EAAK,SAAW,EAElB,OAAOlD,EAAK,MACP,GAAIkD,EAAK,SAAW,EACzB,GAAI,OAAOA,EAAK,CAAC,GAAM,UACrB6W,EAAO7W,EAAK,CAAC,EACblD,EAAK,MAAQ+Z,cAGb1C,EAAQrX,EAAK,WAAW,SAASkD,EAAK,CAAC,EAAG,EAAE,CAAC,EACtCmU,EAAQA,EAAM,MAAQ,QAEtBnU,EAAK,SAAW,IACzB6W,EAAO7W,EAAK,CAAC,EACbpH,EAAK,SAASoH,EAAK,CAAC,EAAG,EAAE,GAK3B,QADIiU,EAAMnX,EAAK,aAAalE,CAAE,EACrBtI,EAAE,EAAGA,EAAE2jB,EAAI,OAAQ3jB,IAC1B6jB,EAAQrX,EAAK,WAAWmX,EAAI3jB,CAAC,CAAC,EAE1B6jB,IACFA,EAAM,MAAQ0C,EACV/Z,EAAK,WAAaqX,EAAM,OAASA,EAAM,MAAM,eAC/CA,EAAM,MAAM,aAAa,KAAO0C,EAC5BA,IACF1C,EAAM,MAAM,aAAa,UAAYA,EAAM,QAAU,EACrDA,EAAM,MAAM,aAAa,QAAUA,EAAM,MAGrCrX,EAAK,QAAQmX,EAAI3jB,CAAC,CAAC,IACrBwM,EAAK,MAAMmX,EAAI3jB,CAAC,EAAG,EAAI,EACvBwM,EAAK,KAAKmX,EAAI3jB,CAAC,EAAG,EAAI,MAOhC,OAAOwM,CACR,EAUD,KAAM,UAAW,CACf,IAAIA,EAAO,KACPkD,EAAO,UACPS,EAAM7H,EAGV,GAAIoH,EAAK,SAAW,EAElBpH,EAAKkE,EAAK,QAAQ,CAAC,EAAE,YACZkD,EAAK,SAAW,EAAG,CAE5B,IAAIiU,EAAMnX,EAAK,aAAc,EACzBrF,EAAQwc,EAAI,QAAQjU,EAAK,CAAC,CAAC,EAC3BvI,GAAS,EACXmB,EAAK,SAASoH,EAAK,CAAC,EAAG,EAAE,EAEzBS,EAAO,WAAWT,EAAK,CAAC,CAAC,CAEnC,MAAiBA,EAAK,SAAW,IACzBS,EAAO,WAAWT,EAAK,CAAC,CAAC,EACzBpH,EAAK,SAASoH,EAAK,CAAC,EAAG,EAAE,GAI3B,IAAImU,EACJ,GAAI,OAAO1T,GAAS,SAAU,CAE5B,GAAI3D,EAAK,SAAW,UAAYA,EAAK,UACnC,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,OACP,OAAQ,UAAW,CACjBA,EAAK,KAAK,MAAMA,EAAMkD,CAAI,CACxC,CACA,CAAW,EAEMlD,EAIL,OAAOlE,EAAO,MAChBkE,EAAK,MAAQ2D,GAIf7H,EAAKkE,EAAK,aAAalE,CAAE,EACzB,QAAStI,EAAE,EAAGA,EAAEsI,EAAG,OAAQtI,IAIzB,GAFA6jB,EAAQrX,EAAK,WAAWlE,EAAGtI,CAAC,CAAC,EAEzB6jB,EAAO,CAGLrX,EAAK,QAAQlE,EAAGtI,CAAC,CAAC,IACpB6jB,EAAM,UAAYrX,EAAK,KAAKlE,EAAGtI,CAAC,CAAC,EACjC6jB,EAAM,WAAarX,EAAK,UAAYgX,EAAO,IAAI,YAAcK,EAAM,YAErEA,EAAM,MAAQ1T,EAGV3D,EAAK,WAAaqX,EAAM,OAASA,EAAM,MAAM,aAC/CA,EAAM,MAAM,aAAa,aAAa,eAAe1T,EAAMqT,EAAO,IAAI,WAAW,EACxEK,EAAM,QACfA,EAAM,MAAM,aAAe1T,GAI7B,IAAIiV,EAAO5Y,EAAK,KAAKlE,EAAGtI,CAAC,CAAC,EACtBqlB,GAAa7Y,EAAK,QAAQqX,EAAM,OAAO,EAAE,CAAC,EAAIrX,EAAK,QAAQqX,EAAM,OAAO,EAAE,CAAC,GAAK,IAAQuB,EACxFnR,EAAWoR,EAAW,IAAQ,KAAK,IAAIxB,EAAM,KAAK,GAGlDrX,EAAK,WAAWlE,EAAGtI,CAAC,CAAC,GAAK,CAAC6jB,EAAM,WACnCrX,EAAK,YAAYlE,EAAGtI,CAAC,CAAC,EACtBwM,EAAK,WAAWlE,EAAGtI,CAAC,CAAC,EAAI,WAAWwM,EAAK,OAAO,KAAKA,EAAMqX,CAAK,EAAG5P,CAAO,GAG5EzH,EAAK,MAAM,OAAQqX,EAAM,GAAG,CACxC,CAEA,KACQA,QAAAA,EAAQrX,EAAK,WAAWlE,CAAE,EACnBub,EAAQA,EAAM,MAAQrX,EAAK,MAGpC,OAAOA,CACR,EAUD,KAAM,UAAW,CACf,IAAIA,EAAO,KACPkD,EAAO,UACP0V,EAAM9c,EAGV,GAAIoH,EAAK,SAAW,EAEdlD,EAAK,QAAQ,SACflE,EAAKkE,EAAK,QAAQ,CAAC,EAAE,aAEdkD,EAAK,SAAW,EAAG,CAE5B,IAAIiU,EAAMnX,EAAK,aAAc,EACzBrF,EAAQwc,EAAI,QAAQjU,EAAK,CAAC,CAAC,EAC3BvI,GAAS,EACXmB,EAAK,SAASoH,EAAK,CAAC,EAAG,EAAE,EAChBlD,EAAK,QAAQ,SACtBlE,EAAKkE,EAAK,QAAQ,CAAC,EAAE,IACrB4Y,EAAO,WAAW1V,EAAK,CAAC,CAAC,EAEnC,MAAiBA,EAAK,SAAW,IACzB0V,EAAO,WAAW1V,EAAK,CAAC,CAAC,EACzBpH,EAAK,SAASoH,EAAK,CAAC,EAAG,EAAE,GAI3B,GAAI,OAAOpH,EAAO,IAChB,MAIF,GAAA,GAAI,OAAO8c,GAAS,WAAa5Y,EAAK,SAAW,UAAYA,EAAK,WAChE,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,OACP,OAAQ,UAAW,CACjBA,EAAK,KAAK,MAAMA,EAAMkD,CAAI,CACtC,CACA,CAAS,EAEMlD,EAIT,IAAIqX,EAAQrX,EAAK,WAAWlE,CAAE,EAE9B,GAAIub,EACF,GAAI,OAAOuB,GAAS,UAAYA,GAAQ,EAAG,CAEzC,IAAIoB,EAAUha,EAAK,QAAQlE,CAAE,EACzBke,GACFha,EAAK,MAAMlE,EAAI,EAAI,EAIrBub,EAAM,MAAQuB,EACdvB,EAAM,OAAS,GACfrX,EAAK,YAAYlE,CAAE,EAGf,CAACkE,EAAK,WAAaqX,EAAM,OAAS,CAAC,MAAMA,EAAM,MAAM,QAAQ,IAC/DA,EAAM,MAAM,YAAcuB,GAI5B,IAAIqB,EAAc,UAAW,CAEvBD,GACFha,EAAK,KAAKlE,EAAI,EAAI,EAGpBkE,EAAK,MAAM,OAAQlE,CAAE,CACtB,EAGD,GAAIke,GAAW,CAACha,EAAK,UAAW,CAC9B,IAAIka,EAAW,UAAW,CACnBla,EAAK,UAGR,WAAWka,EAAU,CAAC,EAFtBD,EAAa,CAIhB,EACD,WAAWC,EAAU,CAAC,CAClC,MACYD,EAAa,CAEzB,SACcja,EAAK,UAAW,CAClB,IAAIma,EAAWna,EAAK,QAAQlE,CAAE,EAAIkb,EAAO,IAAI,YAAcK,EAAM,WAAa,EAC1E+C,GAAW/C,EAAM,UAAYA,EAAM,UAAYA,EAAM,MAAQ,EACjE,OAAOA,EAAM,OAAS+C,GAAWD,EAAW,KAAK,IAAI9C,EAAM,KAAK,EAC5E,KACmBA,QAAAA,EAAM,MAAM,YAKzB,OAAOrX,CACR,EAOD,QAAS,SAASlE,EAAI,CACpB,IAAIkE,EAAO,KAGX,GAAI,OAAOlE,GAAO,SAAU,CAC1B,IAAIub,EAAQrX,EAAK,WAAWlE,CAAE,EAC9B,OAAOub,EAAQ,CAACA,EAAM,QAAU,EACxC,CAGM,QAAS7jB,EAAE,EAAGA,EAAEwM,EAAK,QAAQ,OAAQxM,IACnC,GAAI,CAACwM,EAAK,QAAQxM,CAAC,EAAE,QACnB,MAAO,GAIX,MAAO,EACR,EAOD,SAAU,SAASsI,EAAI,CACrB,IAAIkE,EAAO,KACP6Y,EAAW7Y,EAAK,UAGhBqX,EAAQrX,EAAK,WAAWlE,CAAE,EAC9B,OAAIub,IACFwB,EAAW7Y,EAAK,QAAQqX,EAAM,OAAO,EAAE,CAAC,EAAI,KAGvCwB,CACR,EAMD,MAAO,UAAW,CAChB,OAAO,KAAK,MACb,EAMD,OAAQ,UAAW,CAKjB,QAJI7Y,EAAO,KAGPqa,EAASra,EAAK,QACTxM,EAAE,EAAGA,EAAE6mB,EAAO,OAAQ7mB,IAExB6mB,EAAO7mB,CAAC,EAAE,SACbwM,EAAK,KAAKqa,EAAO7mB,CAAC,EAAE,GAAG,EAIpBwM,EAAK,YAERA,EAAK,YAAYqa,EAAO7mB,CAAC,EAAE,KAAK,EAGhC6mB,EAAO7mB,CAAC,EAAE,MAAM,oBAAoB,QAAS6mB,EAAO7mB,CAAC,EAAE,SAAU,EAAK,EACtE6mB,EAAO7mB,CAAC,EAAE,MAAM,oBAAoBwjB,EAAO,cAAeqD,EAAO7mB,CAAC,EAAE,QAAS,EAAK,EAClF6mB,EAAO7mB,CAAC,EAAE,MAAM,oBAAoB,QAAS6mB,EAAO7mB,CAAC,EAAE,OAAQ,EAAK,EAGpEwjB,EAAO,mBAAmBqD,EAAO7mB,CAAC,EAAE,KAAK,GAI3C,OAAO6mB,EAAO7mB,CAAC,EAAE,MAGjBwM,EAAK,YAAYqa,EAAO7mB,CAAC,EAAE,GAAG,EAIhC,IAAImH,EAAQqc,EAAO,OAAO,QAAQhX,CAAI,EAClCrF,GAAS,GACXqc,EAAO,OAAO,OAAOrc,EAAO,CAAC,EAI/B,IAAI2f,EAAW,GACf,IAAK9mB,EAAE,EAAGA,EAAEwjB,EAAO,OAAO,OAAQxjB,IAChC,GAAIwjB,EAAO,OAAOxjB,CAAC,EAAE,OAASwM,EAAK,MAAQA,EAAK,KAAK,QAAQgX,EAAO,OAAOxjB,CAAC,EAAE,IAAI,GAAK,EAAG,CACxF8mB,EAAW,GACX,KACV,CAGM,OAAInpB,GAASmpB,GACX,OAAOnpB,EAAM6O,EAAK,IAAI,EAIxBgX,EAAO,QAAU,GAGjBhX,EAAK,OAAS,WACdA,EAAK,QAAU,CAAE,EACjBA,EAAO,KAEA,IACR,EAUD,GAAI,SAAS9U,EAAO0F,EAAIkL,EAAIye,EAAM,CAChC,IAAIva,EAAO,KACPwa,EAASxa,EAAK,MAAQ9U,CAAK,EAE/B,OAAI,OAAO0F,GAAO,YAChB4pB,EAAO,KAAKD,EAAO,CAAC,GAAIze,EAAI,GAAIlL,EAAI,KAAM2pB,CAAI,EAAI,CAAC,GAAIze,EAAI,GAAIlL,CAAE,CAAC,EAG7DoP,CACR,EASD,IAAK,SAAS9U,EAAO0F,EAAIkL,EAAI,CAC3B,IAAIkE,EAAO,KACPwa,EAASxa,EAAK,MAAQ9U,CAAK,EAC3BsI,EAAI,EAQR,GALI,OAAO5C,GAAO,WAChBkL,EAAKlL,EACLA,EAAK,MAGHA,GAAMkL,EAER,IAAKtI,EAAE,EAAGA,EAAEgnB,EAAO,OAAQhnB,IAAK,CAC9B,IAAIinB,EAAQ3e,IAAO0e,EAAOhnB,CAAC,EAAE,GAC7B,GAAI5C,IAAO4pB,EAAOhnB,CAAC,EAAE,IAAMinB,GAAQ,CAAC7pB,GAAM6pB,EAAM,CAC9CD,EAAO,OAAOhnB,EAAG,CAAC,EAClB,KACZ,CACA,SACiBtI,EAET8U,EAAK,MAAQ9U,CAAK,EAAI,CAAE,MACnB,CAEL,IAAIwI,EAAO,OAAO,KAAKsM,CAAI,EAC3B,IAAKxM,EAAE,EAAGA,EAAEE,EAAK,OAAQF,IAClBE,EAAKF,CAAC,EAAE,QAAQ,KAAK,IAAM,GAAM,MAAM,QAAQwM,EAAKtM,EAAKF,CAAC,CAAC,CAAC,IAC/DwM,EAAKtM,EAAKF,CAAC,CAAC,EAAI,CAAE,EAG9B,CAEM,OAAOwM,CACR,EASD,KAAM,SAAS9U,EAAO0F,EAAIkL,EAAI,CAC5B,IAAIkE,EAAO,KAGX,OAAAA,EAAK,GAAG9U,EAAO0F,EAAIkL,EAAI,CAAC,EAEjBkE,CACR,EASD,MAAO,SAAS9U,EAAO4Q,EAAIxC,EAAK,CAK9B,QAJI0G,EAAO,KACPwa,EAASxa,EAAK,MAAQ9U,CAAK,EAGtBsI,EAAEgnB,EAAO,OAAO,EAAGhnB,GAAG,EAAGA,KAE5B,CAACgnB,EAAOhnB,CAAC,EAAE,IAAMgnB,EAAOhnB,CAAC,EAAE,KAAOsI,GAAM5Q,IAAU,UACpD,WAAW,SAAS0F,EAAI,CACtBA,EAAG,KAAK,KAAMkL,EAAIxC,CAAG,CACjC,EAAY,KAAK0G,EAAMwa,EAAOhnB,CAAC,EAAE,EAAE,EAAG,CAAC,EAGzBgnB,EAAOhnB,CAAC,EAAE,MACZwM,EAAK,IAAI9U,EAAOsvB,EAAOhnB,CAAC,EAAE,GAAIgnB,EAAOhnB,CAAC,EAAE,EAAE,GAMhD,OAAAwM,EAAK,WAAW9U,CAAK,EAEd8U,CACR,EAQD,WAAY,SAAS9U,EAAO,CAC1B,IAAI8U,EAAO,KAEX,GAAIA,EAAK,OAAO,OAAS,EAAG,CAC1B,IAAI0a,EAAO1a,EAAK,OAAO,CAAC,EAGpB0a,EAAK,QAAUxvB,IACjB8U,EAAK,OAAO,MAAO,EACnBA,EAAK,WAAY,GAId9U,GACHwvB,EAAK,OAAQ,CAEvB,CAEM,OAAO1a,CACR,EAOD,OAAQ,SAASqX,EAAO,CACtB,IAAIrX,EAAO,KACPwY,EAASnB,EAAM,QAKnB,GAAI,CAACrX,EAAK,WAAaqX,EAAM,OAAS,CAACA,EAAM,MAAM,QAAU,CAACA,EAAM,MAAM,OAASA,EAAM,MAAM,YAAcA,EAAM,MACjH,kBAAWrX,EAAK,OAAO,KAAKA,EAAMqX,CAAK,EAAG,GAAG,EACtCrX,EAIT,IAAI+Z,EAAO,CAAC,EAAE1C,EAAM,OAASrX,EAAK,QAAQwY,CAAM,EAAE,CAAC,GAWnD,GARAxY,EAAK,MAAM,MAAOqX,EAAM,GAAG,EAGvB,CAACrX,EAAK,WAAa+Z,GACrB/Z,EAAK,KAAKqX,EAAM,IAAK,EAAI,EAAE,KAAKA,EAAM,GAAG,EAIvCrX,EAAK,WAAa+Z,EAAM,CAC1B/Z,EAAK,MAAM,OAAQqX,EAAM,GAAG,EAC5BA,EAAM,MAAQA,EAAM,QAAU,EAC9BA,EAAM,UAAY,EAClBA,EAAM,WAAaL,EAAO,IAAI,YAE9B,IAAIvP,GAAY4P,EAAM,MAAQA,EAAM,QAAU,IAAQ,KAAK,IAAIA,EAAM,KAAK,EAC1ErX,EAAK,WAAWqX,EAAM,GAAG,EAAI,WAAWrX,EAAK,OAAO,KAAKA,EAAMqX,CAAK,EAAG5P,CAAO,CACtF,CAGM,OAAIzH,EAAK,WAAa,CAAC+Z,IACrB1C,EAAM,QAAU,GAChBA,EAAM,OAAS,GACfA,EAAM,MAAQA,EAAM,QAAU,EAC9BA,EAAM,UAAY,EAClBrX,EAAK,YAAYqX,EAAM,GAAG,EAG1BrX,EAAK,aAAaqX,EAAM,KAAK,EAG7BL,EAAO,aAAc,GAInB,CAAChX,EAAK,WAAa,CAAC+Z,GACtB/Z,EAAK,KAAKqX,EAAM,IAAK,EAAI,EAGpBrX,CACR,EAOD,YAAa,SAASlE,EAAI,CACxB,IAAIkE,EAAO,KAEX,GAAIA,EAAK,WAAWlE,CAAE,EAAG,CAEvB,GAAI,OAAOkE,EAAK,WAAWlE,CAAE,GAAM,WACjC,aAAakE,EAAK,WAAWlE,CAAE,CAAC,MAC3B,CACL,IAAIub,EAAQrX,EAAK,WAAWlE,CAAE,EAC1Bub,GAASA,EAAM,OACjBA,EAAM,MAAM,oBAAoB,QAASrX,EAAK,WAAWlE,CAAE,EAAG,EAAK,CAE/E,CAEQ,OAAOkE,EAAK,WAAWlE,CAAE,CACjC,CAEM,OAAOkE,CACR,EAOD,WAAY,SAASlE,EAAI,CAIvB,QAHIkE,EAAO,KAGFxM,EAAE,EAAGA,EAAEwM,EAAK,QAAQ,OAAQxM,IACnC,GAAIsI,IAAOkE,EAAK,QAAQxM,CAAC,EAAE,IACzB,OAAOwM,EAAK,QAAQxM,CAAC,EAIzB,OAAO,IACR,EAMD,eAAgB,UAAW,CACzB,IAAIwM,EAAO,KAEXA,EAAK,OAAQ,EAGb,QAASxM,EAAE,EAAGA,EAAEwM,EAAK,QAAQ,OAAQxM,IACnC,GAAIwM,EAAK,QAAQxM,CAAC,EAAE,OAClB,OAAOwM,EAAK,QAAQxM,CAAC,EAAE,MAAO,EAKlC,OAAO,IAAI8kB,EAAMtY,CAAI,CACtB,EAKD,OAAQ,UAAW,CACjB,IAAIA,EAAO,KACP2a,EAAQ3a,EAAK,MACb4a,EAAM,EACNpnB,EAAI,EAGR,GAAI,EAAAwM,EAAK,QAAQ,OAAS2a,GAK1B,CAAKnnB,IAAAA,EAAE,EAAGA,EAAEwM,EAAK,QAAQ,OAAQxM,IAC3BwM,EAAK,QAAQxM,CAAC,EAAE,QAClBonB,IAKJ,IAAKpnB,EAAEwM,EAAK,QAAQ,OAAS,EAAGxM,GAAG,EAAGA,IAAK,CACzC,GAAIonB,GAAOD,EACT,OAGE3a,EAAK,QAAQxM,CAAC,EAAE,SAEdwM,EAAK,WAAaA,EAAK,QAAQxM,CAAC,EAAE,OACpCwM,EAAK,QAAQxM,CAAC,EAAE,MAAM,WAAW,CAAC,EAIpCwM,EAAK,QAAQ,OAAOxM,EAAG,CAAC,EACxBonB,IAEV,CAAA,CACK,EAOD,aAAc,SAAS9e,EAAI,CACzB,IAAIkE,EAAO,KAEX,GAAI,OAAOlE,EAAO,IAAa,CAE7B,QADIqb,EAAM,CAAE,EACH3jB,EAAE,EAAGA,EAAEwM,EAAK,QAAQ,OAAQxM,IACnC2jB,EAAI,KAAKnX,EAAK,QAAQxM,CAAC,EAAE,GAAG,EAG9B,OAAO2jB,CACf,KACQ,OAAO,CAACrb,CAAE,CAEb,EAOD,eAAgB,SAASub,EAAO,CAC9B,IAAIrX,EAAO,KAGX,OAAAqX,EAAM,MAAM,aAAeL,EAAO,IAAI,mBAAoB,EAC1DK,EAAM,MAAM,aAAa,OAASlmB,EAAM6O,EAAK,IAAI,EAG7CqX,EAAM,QACRA,EAAM,MAAM,aAAa,QAAQA,EAAM,OAAO,EAE9CA,EAAM,MAAM,aAAa,QAAQA,EAAM,KAAK,EAI9CA,EAAM,MAAM,aAAa,KAAOA,EAAM,MAClCA,EAAM,QACRA,EAAM,MAAM,aAAa,UAAYA,EAAM,QAAU,EACrDA,EAAM,MAAM,aAAa,QAAUA,EAAM,OAAS,GAEpDA,EAAM,MAAM,aAAa,aAAa,eAAeA,EAAM,MAAOL,EAAO,IAAI,WAAW,EAEjFhX,CACR,EAOD,aAAc,SAASiZ,EAAM,CAC3B,IAAIjZ,EAAO,KACP6a,EAAQ7D,EAAO,YAAcA,EAAO,WAAW,OAAO,QAAQ,OAAO,GAAK,EAE9E,GAAI,CAACiC,EAAK,aACR,OAAOjZ,EAGT,GAAIgX,EAAO,gBAAkBiC,EAAK,eAChCA,EAAK,aAAa,QAAU,KAC5BA,EAAK,aAAa,WAAW,CAAC,EAC1B4B,GACF,GAAI,CAAE5B,EAAK,aAAa,OAASjC,EAAO,cAAe,OAAYzqB,EAAA,CAAA,CAGvE,OAAA0sB,EAAK,aAAe,KAEbjZ,CACR,EAMD,YAAa,SAASiZ,EAAM,CAC1B,IAAI6B,EAAU,kBAAkB,KAAK9D,EAAO,YAAcA,EAAO,WAAW,SAAS,EAChF8D,IACH7B,EAAK,IAAM,yFAEnB,CACG,EASD,IAAIX,EAAQ,SAASyC,EAAM,CACzB,KAAK,QAAUA,EACf,KAAK,KAAM,CACZ,EACDzC,EAAM,UAAY,CAKhB,KAAM,UAAW,CACf,IAAItY,EAAO,KACPgb,EAAShb,EAAK,QAGlB,OAAAA,EAAK,OAASgb,EAAO,OACrBhb,EAAK,MAAQgb,EAAO,MACpBhb,EAAK,QAAUgb,EAAO,QACtBhb,EAAK,MAAQgb,EAAO,MACpBhb,EAAK,MAAQ,EACbA,EAAK,QAAU,GACfA,EAAK,OAAS,GACdA,EAAK,QAAU,YAGfA,EAAK,IAAM,EAAEgX,EAAO,SAGpBgE,EAAO,QAAQ,KAAKhb,CAAI,EAGxBA,EAAK,OAAQ,EAENA,CACR,EAMD,OAAQ,UAAW,CACjB,IAAIA,EAAO,KACPgb,EAAShb,EAAK,QACdib,EAAUjE,EAAO,QAAUhX,EAAK,QAAUA,EAAK,QAAQ,OAAU,EAAIA,EAAK,QAE9E,OAAIgb,EAAO,WAEThb,EAAK,MAAS,OAAOgX,EAAO,IAAI,WAAe,IAAeA,EAAO,IAAI,eAAc,EAAKA,EAAO,IAAI,WAAY,EACnHhX,EAAK,MAAM,KAAK,eAAeib,EAAQjE,EAAO,IAAI,WAAW,EAC7DhX,EAAK,MAAM,OAAS,GACpBA,EAAK,MAAM,QAAQgX,EAAO,UAAU,GAC1BA,EAAO,UAEjBhX,EAAK,MAAQgX,EAAO,kBAAmB,EAGvChX,EAAK,SAAWA,EAAK,eAAe,KAAKA,CAAI,EAC7CA,EAAK,MAAM,iBAAiB,QAASA,EAAK,SAAU,EAAK,EAGzDA,EAAK,QAAUA,EAAK,cAAc,KAAKA,CAAI,EAC3CA,EAAK,MAAM,iBAAiBgX,EAAO,cAAehX,EAAK,QAAS,EAAK,EAIrEA,EAAK,OAASA,EAAK,aAAa,KAAKA,CAAI,EACzCA,EAAK,MAAM,iBAAiB,QAASA,EAAK,OAAQ,EAAK,EAGvDA,EAAK,MAAM,IAAMgb,EAAO,KACxBhb,EAAK,MAAM,QAAUgb,EAAO,WAAa,GAAO,OAASA,EAAO,SAChEhb,EAAK,MAAM,OAASib,EAASjE,EAAO,OAAQ,EAG5ChX,EAAK,MAAM,KAAM,GAGZA,CACR,EAMD,MAAO,UAAW,CAChB,IAAIA,EAAO,KACPgb,EAAShb,EAAK,QAGlB,OAAAA,EAAK,OAASgb,EAAO,OACrBhb,EAAK,MAAQgb,EAAO,MACpBhb,EAAK,QAAUgb,EAAO,QACtBhb,EAAK,MAAQgb,EAAO,MACpBhb,EAAK,MAAQ,EACbA,EAAK,UAAY,EACjBA,EAAK,QAAU,GACfA,EAAK,OAAS,GACdA,EAAK,QAAU,YAGfA,EAAK,IAAM,EAAEgX,EAAO,SAEbhX,CACR,EAKD,eAAgB,UAAW,CACzB,IAAIA,EAAO,KAGXA,EAAK,QAAQ,MAAM,YAAaA,EAAK,IAAKA,EAAK,MAAM,MAAQA,EAAK,MAAM,MAAM,KAAO,CAAC,EAGtFA,EAAK,MAAM,oBAAoB,QAASA,EAAK,SAAU,EAAK,CAC7D,EAKD,cAAe,UAAW,CACxB,IAAIA,EAAO,KACPgb,EAAShb,EAAK,QAGlBgb,EAAO,UAAY,KAAK,KAAKhb,EAAK,MAAM,SAAW,EAAE,EAAI,GAGrD,OAAO,KAAKgb,EAAO,OAAO,EAAE,SAAW,IACzCA,EAAO,QAAU,CAAC,UAAW,CAAC,EAAGA,EAAO,UAAY,GAAI,CAAC,GAGvDA,EAAO,SAAW,WACpBA,EAAO,OAAS,SAChBA,EAAO,MAAM,MAAM,EACnBA,EAAO,WAAY,GAIrBhb,EAAK,MAAM,oBAAoBgX,EAAO,cAAehX,EAAK,QAAS,EAAK,CACzE,EAKD,aAAc,UAAW,CACvB,IAAIA,EAAO,KACPgb,EAAShb,EAAK,QAGdgb,EAAO,YAAc,MAGvBA,EAAO,UAAY,KAAK,KAAKhb,EAAK,MAAM,SAAW,EAAE,EAAI,GAGrDgb,EAAO,QAAQ,UAAU,CAAC,IAAM,MAClCA,EAAO,QAAQ,UAAU,CAAC,EAAIA,EAAO,UAAY,KAInDA,EAAO,OAAOhb,CAAI,GAIpBA,EAAK,MAAM,oBAAoB,QAASA,EAAK,OAAQ,EAAK,CAChE,CACG,EAKD,IAAI7O,EAAQ,CAAE,EAMVonB,EAAa,SAASvY,EAAM,CAC9B,IAAIzE,EAAMyE,EAAK,KAGf,GAAI7O,EAAMoK,CAAG,EAAG,CAEdyE,EAAK,UAAY7O,EAAMoK,CAAG,EAAE,SAG5B2f,EAAUlb,CAAI,EAEd,MACN,CAEI,GAAI,sBAAsB,KAAKzE,CAAG,EAAG,CAInC,QAFI/C,EAAO,KAAK+C,EAAI,MAAM,GAAG,EAAE,CAAC,CAAC,EAC7B4f,EAAW,IAAI,WAAW3iB,EAAK,MAAM,EAChChF,EAAE,EAAGA,EAAEgF,EAAK,OAAQ,EAAEhF,EAC7B2nB,EAAS3nB,CAAC,EAAIgF,EAAK,WAAWhF,CAAC,EAGjC4nB,EAAgBD,EAAS,OAAQnb,CAAI,CAC3C,KAAW,CAEL,IAAIqb,EAAM,IAAI,eACdA,EAAI,KAAKrb,EAAK,KAAK,OAAQzE,EAAK,EAAI,EACpC8f,EAAI,gBAAkBrb,EAAK,KAAK,gBAChCqb,EAAI,aAAe,cAGfrb,EAAK,KAAK,SACZ,OAAO,KAAKA,EAAK,KAAK,OAAO,EAAE,QAAQ,SAASpM,EAAK,CACnDynB,EAAI,iBAAiBznB,EAAKoM,EAAK,KAAK,QAAQpM,CAAG,CAAC,CAC1D,CAAS,EAGHynB,EAAI,OAAS,UAAW,CAEtB,IAAItiB,GAAQsiB,EAAI,OAAS,IAAI,CAAC,EAC9B,GAAItiB,IAAS,KAAOA,IAAS,KAAOA,IAAS,IAAK,CAChDiH,EAAK,MAAM,YAAa,KAAM,0CAA4Cqb,EAAI,OAAS,GAAG,EAC1F,MACV,CAEQD,EAAgBC,EAAI,SAAUrb,CAAI,CACnC,EACDqb,EAAI,QAAU,UAAW,CAEnBrb,EAAK,YACPA,EAAK,OAAS,GACdA,EAAK,UAAY,GACjBA,EAAK,QAAU,CAAE,EACjB,OAAO7O,EAAMoK,CAAG,EAChByE,EAAK,KAAM,EAEd,EACDsb,EAAYD,CAAG,CACrB,CACG,EAMGC,EAAc,SAASD,EAAK,CAC9B,GAAI,CACFA,EAAI,KAAM,CACX,OAAW9uB,EAAA,CACV8uB,EAAI,QAAS,CACnB,CACG,EAOGD,EAAkB,SAASG,EAAavb,EAAM,CAEhD,IAAI5Q,EAAQ,UAAW,CACrB4Q,EAAK,MAAM,YAAa,KAAM,6BAA6B,CAC5D,EAGGwb,EAAU,SAASC,EAAQ,CACzBA,GAAUzb,EAAK,QAAQ,OAAS,GAClC7O,EAAM6O,EAAK,IAAI,EAAIyb,EACnBP,EAAUlb,EAAMyb,CAAM,GAEtBrsB,EAAO,CAEV,EAGG,OAAO,QAAY,KAAe4nB,EAAO,IAAI,gBAAgB,SAAW,EAC1EA,EAAO,IAAI,gBAAgBuE,CAAW,EAAE,KAAKC,CAAO,EAAE,MAAMpsB,CAAK,EAEjE4nB,EAAO,IAAI,gBAAgBuE,EAAaC,EAASpsB,CAAK,CAE5D,EAOM8rB,EAAY,SAASlb,EAAMyb,EAAQ,CAEjCA,GAAU,CAACzb,EAAK,YAClBA,EAAK,UAAYyb,EAAO,UAItB,OAAO,KAAKzb,EAAK,OAAO,EAAE,SAAW,IACvCA,EAAK,QAAU,CAAC,UAAW,CAAC,EAAGA,EAAK,UAAY,GAAI,CAAC,GAInDA,EAAK,SAAW,WAClBA,EAAK,OAAS,SACdA,EAAK,MAAM,MAAM,EACjBA,EAAK,WAAY,EAEpB,EAKGkX,EAAoB,UAAW,CAEjC,GAAKF,EAAO,cAKZ,CAAA,GAAI,CACE,OAAO,aAAiB,IAC1BA,EAAO,IAAM,IAAI,aACR,OAAO,mBAAuB,IACvCA,EAAO,IAAM,IAAI,mBAEjBA,EAAO,cAAgB,EAE1B,OAAUzqB,EAAA,CACTyqB,EAAO,cAAgB,EAC7B,CAGSA,EAAO,MACVA,EAAO,cAAgB,IAKzB,IAAI0E,EAAO,iBAAiB,KAAK1E,EAAO,YAAcA,EAAO,WAAW,QAAQ,EAC5E2E,EAAa3E,EAAO,YAAcA,EAAO,WAAW,WAAW,MAAM,wBAAwB,EAC7F7J,EAAUwO,EAAa,SAASA,EAAW,CAAC,EAAG,EAAE,EAAI,KACzD,GAAID,GAAOvO,GAAWA,EAAU,EAAG,CACjC,IAAIyO,EAAS,SAAS,KAAK5E,EAAO,YAAcA,EAAO,WAAW,UAAU,aAAa,EACrFA,EAAO,YAAc,CAAC4E,IACxB5E,EAAO,cAAgB,GAE/B,CAGQA,EAAO,gBACTA,EAAO,WAAc,OAAOA,EAAO,IAAI,WAAe,IAAeA,EAAO,IAAI,eAAc,EAAKA,EAAO,IAAI,WAAY,EAC1HA,EAAO,WAAW,KAAK,eAAeA,EAAO,OAAS,EAAIA,EAAO,QAASA,EAAO,IAAI,WAAW,EAChGA,EAAO,WAAW,QAAQA,EAAO,IAAI,WAAW,GAIlDA,EAAO,OAAQ,EAChB,EAcCzpB,SAAiBypB,EACjBzpB,OAAe8qB,EAIb,OAAOrkB,GAAW,KACpBA,GAAO,aAAe+iB,EACtB/iB,GAAO,OAASgjB,EAChBhjB,GAAO,KAAOqkB,EACdrkB,GAAO,MAAQskB,GACN,OAAO,OAAW,MAC3B,OAAO,aAAevB,EACtB,OAAO,OAASC,EAChB,OAAO,KAAOqB,EACd,OAAO,MAAQC,EAEnB,GAAI,EAeH,UAAW,CAKV,aAAa,UAAU,KAAO,CAAC,EAAG,EAAG,CAAC,EACtC,aAAa,UAAU,aAAe,CAAC,EAAG,EAAG,GAAI,EAAG,EAAG,CAAC,EAWxD,aAAa,UAAU,OAAS,SAASuD,EAAK,CAC5C,IAAI7b,EAAO,KAGX,GAAI,CAACA,EAAK,KAAO,CAACA,EAAK,IAAI,SACzB,OAAOA,EAIT,QAASxM,EAAEwM,EAAK,OAAO,OAAO,EAAGxM,GAAG,EAAGA,IACrCwM,EAAK,OAAOxM,CAAC,EAAE,OAAOqoB,CAAG,EAG3B,OAAO7b,CACR,EAUD,aAAa,UAAU,IAAM,SAAS8b,EAAGC,EAAGC,EAAG,CAC7C,IAAIhc,EAAO,KAGX,GAAI,CAACA,EAAK,KAAO,CAACA,EAAK,IAAI,SACzB,OAAOA,EAOT,GAHA+b,EAAK,OAAOA,GAAM,SAAY/b,EAAK,KAAK,CAAC,EAAI+b,EAC7CC,EAAK,OAAOA,GAAM,SAAYhc,EAAK,KAAK,CAAC,EAAIgc,EAEzC,OAAOF,GAAM,SACf9b,EAAK,KAAO,CAAC8b,EAAGC,EAAGC,CAAC,EAEhB,OAAOhc,EAAK,IAAI,SAAS,UAAc,KACzCA,EAAK,IAAI,SAAS,UAAU,gBAAgBA,EAAK,KAAK,CAAC,EAAG,OAAO,IAAI,YAAa,EAAG,EACrFA,EAAK,IAAI,SAAS,UAAU,gBAAgBA,EAAK,KAAK,CAAC,EAAG,OAAO,IAAI,YAAa,EAAG,EACrFA,EAAK,IAAI,SAAS,UAAU,gBAAgBA,EAAK,KAAK,CAAC,EAAG,OAAO,IAAI,YAAa,EAAG,GAErFA,EAAK,IAAI,SAAS,YAAYA,EAAK,KAAK,CAAC,EAAGA,EAAK,KAAK,CAAC,EAAGA,EAAK,KAAK,CAAC,CAAC,MAGjEA,QAAAA,EAAK,KAGd,OAAOA,CACR,EAgBD,aAAa,UAAU,YAAc,SAAS8b,EAAGC,EAAGC,EAAGC,EAAKC,EAAKC,EAAK,CACpE,IAAInc,EAAO,KAGX,GAAI,CAACA,EAAK,KAAO,CAACA,EAAK,IAAI,SACzB,OAAOA,EAIT,IAAIoc,EAAKpc,EAAK,aAOd,GANA+b,EAAK,OAAOA,GAAM,SAAYK,EAAG,CAAC,EAAIL,EACtCC,EAAK,OAAOA,GAAM,SAAYI,EAAG,CAAC,EAAIJ,EACtCC,EAAO,OAAOA,GAAQ,SAAYG,EAAG,CAAC,EAAIH,EAC1CC,EAAO,OAAOA,GAAQ,SAAYE,EAAG,CAAC,EAAIF,EAC1CC,EAAO,OAAOA,GAAQ,SAAYC,EAAG,CAAC,EAAID,EAEtC,OAAOL,GAAM,SACf9b,EAAK,aAAe,CAAC8b,EAAGC,EAAGC,EAAGC,EAAKC,EAAKC,CAAG,EAEvC,OAAOnc,EAAK,IAAI,SAAS,SAAa,KACxCA,EAAK,IAAI,SAAS,SAAS,gBAAgB8b,EAAG,OAAO,IAAI,YAAa,EAAG,EACzE9b,EAAK,IAAI,SAAS,SAAS,gBAAgB+b,EAAG,OAAO,IAAI,YAAa,EAAG,EACzE/b,EAAK,IAAI,SAAS,SAAS,gBAAgBgc,EAAG,OAAO,IAAI,YAAa,EAAG,EACzEhc,EAAK,IAAI,SAAS,IAAI,gBAAgBic,EAAK,OAAO,IAAI,YAAa,EAAG,EACtEjc,EAAK,IAAI,SAAS,IAAI,gBAAgBkc,EAAK,OAAO,IAAI,YAAa,EAAG,EACtElc,EAAK,IAAI,SAAS,IAAI,gBAAgBmc,EAAK,OAAO,IAAI,YAAa,EAAG,GAEtEnc,EAAK,IAAI,SAAS,eAAe8b,EAAGC,EAAGC,EAAGC,EAAKC,EAAKC,CAAG,MAGlDC,QAAAA,EAGT,OAAOpc,CACR,EAUD,KAAK,UAAU,KAAQ,SAASqc,EAAQ,CACtC,OAAO,SAAS/L,EAAG,CACjB,IAAItQ,EAAO,KAGX,OAAAA,EAAK,aAAesQ,EAAE,aAAe,CAAC,EAAG,EAAG,CAAC,EAC7CtQ,EAAK,QAAUsQ,EAAE,QAAU,KAC3BtQ,EAAK,KAAOsQ,EAAE,KAAO,KACrBtQ,EAAK,YAAc,CACjB,eAAgB,OAAOsQ,EAAE,eAAmB,IAAcA,EAAE,eAAiB,IAC7E,eAAgB,OAAOA,EAAE,eAAmB,IAAcA,EAAE,eAAiB,IAC7E,cAAe,OAAOA,EAAE,cAAkB,IAAcA,EAAE,cAAgB,EAC1E,cAAe,OAAOA,EAAE,cAAkB,IAAcA,EAAE,cAAgB,UAC1E,YAAa,OAAOA,EAAE,YAAgB,IAAcA,EAAE,YAAc,IACpE,aAAc,OAAOA,EAAE,aAAiB,IAAcA,EAAE,aAAe,OACvE,YAAa,OAAOA,EAAE,YAAgB,IAAcA,EAAE,YAAc,EACpE,cAAe,OAAOA,EAAE,cAAkB,IAAcA,EAAE,cAAgB,CAC3E,EAGDtQ,EAAK,UAAYsQ,EAAE,SAAW,CAAC,CAAC,GAAIA,EAAE,QAAQ,CAAC,EAAI,CAAE,EACrDtQ,EAAK,OAASsQ,EAAE,MAAQ,CAAC,CAAC,GAAIA,EAAE,KAAK,CAAC,EAAI,CAAE,EAC5CtQ,EAAK,eAAiBsQ,EAAE,cAAgB,CAAC,CAAC,GAAIA,EAAE,aAAa,CAAC,EAAI,CAAE,EAG7D+L,EAAO,KAAK,KAAM/L,CAAC,CAC3B,CACL,EAAK,KAAK,UAAU,IAAI,EAQtB,KAAK,UAAU,OAAS,SAASuL,EAAK/f,EAAI,CACxC,IAAIkE,EAAO,KAGX,GAAI,CAACA,EAAK,UACR,OAAOA,EAIT,GAAIA,EAAK,SAAW,SAClB,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,SACP,OAAQ,UAAW,CACjBA,EAAK,OAAO6b,EAAK/f,CAAE,CAC7B,CACA,CAAO,EAEMkE,EAIT,IAAIsc,EAAc,OAAO,OAAO,IAAI,mBAAuB,IAAe,UAAY,SAGtF,GAAI,OAAOxgB,EAAO,IAEhB,GAAI,OAAO+f,GAAQ,SACjB7b,EAAK,QAAU6b,EACf7b,EAAK,KAAO,CAAC6b,EAAK,EAAG,CAAC,MAEf7b,QAAAA,EAAK,QAMhB,QADImX,EAAMnX,EAAK,aAAalE,CAAE,EACrBtI,EAAE,EAAGA,EAAE2jB,EAAI,OAAQ3jB,IAAK,CAE/B,IAAI6jB,EAAQrX,EAAK,WAAWmX,EAAI3jB,CAAC,CAAC,EAElC,GAAI6jB,EACF,GAAI,OAAOwE,GAAQ,SACjBxE,EAAM,QAAUwE,EAChBxE,EAAM,KAAO,CAACwE,EAAK,EAAG,CAAC,EAEnBxE,EAAM,QAERA,EAAM,YAAY,aAAe,cAG7B,CAACA,EAAM,SAAW,CAACA,EAAM,QAAQ,MACnCkF,EAAYlF,EAAOiF,CAAU,EAG3BA,IAAe,UACb,OAAOjF,EAAM,QAAQ,UAAc,KACrCA,EAAM,QAAQ,UAAU,eAAewE,EAAK,OAAO,IAAI,WAAW,EAClExE,EAAM,QAAQ,UAAU,eAAe,EAAG,OAAO,IAAI,WAAW,EAChEA,EAAM,QAAQ,UAAU,eAAe,EAAG,OAAO,IAAI,WAAW,GAEhEA,EAAM,QAAQ,YAAYwE,EAAK,EAAG,CAAC,EAGrCxE,EAAM,QAAQ,IAAI,eAAewE,EAAK,OAAO,IAAI,WAAW,GAIhE7b,EAAK,MAAM,SAAUqX,EAAM,GAAG,MAEvBA,QAAAA,EAAM,OAGvB,CAEI,OAAOrX,CACR,EAUD,KAAK,UAAU,IAAM,SAAS8b,EAAGC,EAAGC,EAAGlgB,EAAI,CACzC,IAAIkE,EAAO,KAGX,GAAI,CAACA,EAAK,UACR,OAAOA,EAIT,GAAIA,EAAK,SAAW,SAClB,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,MACP,OAAQ,UAAW,CACjBA,EAAK,IAAI8b,EAAGC,EAAGC,EAAGlgB,CAAE,CAC9B,CACA,CAAO,EAEMkE,EAQT,GAJA+b,EAAK,OAAOA,GAAM,SAAY,EAAIA,EAClCC,EAAK,OAAOA,GAAM,SAAY,IAAOA,EAGjC,OAAOlgB,EAAO,IAEhB,GAAI,OAAOggB,GAAM,SACf9b,EAAK,KAAO,CAAC8b,EAAGC,EAAGC,CAAC,MAEpB,QAAOhc,EAAK,KAMhB,QADImX,EAAMnX,EAAK,aAAalE,CAAE,EACrBtI,EAAE,EAAGA,EAAE2jB,EAAI,OAAQ3jB,IAAK,CAE/B,IAAI6jB,EAAQrX,EAAK,WAAWmX,EAAI3jB,CAAC,CAAC,EAElC,GAAI6jB,EACF,GAAI,OAAOyE,GAAM,SACfzE,EAAM,KAAO,CAACyE,EAAGC,EAAGC,CAAC,EAEjB3E,EAAM,SAEJ,CAACA,EAAM,SAAWA,EAAM,QAAQ,MAClCkF,EAAYlF,EAAO,SAAS,EAG1B,OAAOA,EAAM,QAAQ,UAAc,KACrCA,EAAM,QAAQ,UAAU,eAAeyE,EAAG,OAAO,IAAI,WAAW,EAChEzE,EAAM,QAAQ,UAAU,eAAe0E,EAAG,OAAO,IAAI,WAAW,EAChE1E,EAAM,QAAQ,UAAU,eAAe2E,EAAG,OAAO,IAAI,WAAW,GAEhE3E,EAAM,QAAQ,YAAYyE,EAAGC,EAAGC,CAAC,GAIrChc,EAAK,MAAM,MAAOqX,EAAM,GAAG,MAE3B,QAAOA,EAAM,IAGvB,CAEI,OAAOrX,CACR,EAYD,KAAK,UAAU,YAAc,SAAS8b,EAAGC,EAAGC,EAAGlgB,EAAI,CACjD,IAAIkE,EAAO,KAGX,GAAI,CAACA,EAAK,UACR,OAAOA,EAIT,GAAIA,EAAK,SAAW,SAClB,OAAAA,EAAK,OAAO,KAAK,CACf,MAAO,cACP,OAAQ,UAAW,CACjBA,EAAK,YAAY8b,EAAGC,EAAGC,EAAGlgB,CAAE,CACtC,CACA,CAAO,EAEMkE,EAQT,GAJA+b,EAAK,OAAOA,GAAM,SAAY/b,EAAK,aAAa,CAAC,EAAI+b,EACrDC,EAAK,OAAOA,GAAM,SAAYhc,EAAK,aAAa,CAAC,EAAIgc,EAGjD,OAAOlgB,EAAO,IAEhB,GAAI,OAAOggB,GAAM,SACf9b,EAAK,aAAe,CAAC8b,EAAGC,EAAGC,CAAC,MAE5B,QAAOhc,EAAK,aAMhB,QADImX,EAAMnX,EAAK,aAAalE,CAAE,EACrBtI,EAAE,EAAGA,EAAE2jB,EAAI,OAAQ3jB,IAAK,CAE/B,IAAI6jB,EAAQrX,EAAK,WAAWmX,EAAI3jB,CAAC,CAAC,EAElC,GAAI6jB,EACF,GAAI,OAAOyE,GAAM,SACfzE,EAAM,aAAe,CAACyE,EAAGC,EAAGC,CAAC,EAEzB3E,EAAM,QAEHA,EAAM,UAEJA,EAAM,OACTA,EAAM,KAAOrX,EAAK,MAAQ,CAAC,EAAG,EAAG,GAAI,GAGvCuc,EAAYlF,EAAO,SAAS,GAG1B,OAAOA,EAAM,QAAQ,aAAiB,KACxCA,EAAM,QAAQ,aAAa,eAAeyE,EAAG,OAAO,IAAI,WAAW,EACnEzE,EAAM,QAAQ,aAAa,eAAe0E,EAAG,OAAO,IAAI,WAAW,EACnE1E,EAAM,QAAQ,aAAa,eAAe2E,EAAG,OAAO,IAAI,WAAW,GAEnE3E,EAAM,QAAQ,eAAeyE,EAAGC,EAAGC,CAAC,GAIxChc,EAAK,MAAM,cAAeqX,EAAM,GAAG,MAE5BA,QAAAA,EAAM,YAGvB,CAEI,OAAOrX,CACR,EAgCD,KAAK,UAAU,WAAa,UAAW,CACrC,IAAIA,EAAO,KACPkD,EAAO,UACPoN,EAAGxU,EAAIub,EAGX,GAAI,CAACrX,EAAK,UACR,OAAOA,EAIT,GAAIkD,EAAK,SAAW,EAElB,OAAOlD,EAAK,YACP,GAAIkD,EAAK,SAAW,EACzB,GAAI,OAAOA,EAAK,CAAC,GAAM,SACrBoN,EAAIpN,EAAK,CAAC,EAGN,OAAOpH,EAAO,MACXwU,EAAE,aACLA,EAAE,WAAa,CACb,eAAgBA,EAAE,eAClB,eAAgBA,EAAE,eAClB,cAAeA,EAAE,cACjB,cAAeA,EAAE,cACjB,YAAaA,EAAE,YACf,YAAaA,EAAE,YACf,cAAeA,EAAE,cACjB,aAAcA,EAAE,YACjB,GAGHtQ,EAAK,YAAc,CACjB,eAAgB,OAAOsQ,EAAE,WAAW,eAAmB,IAAcA,EAAE,WAAW,eAAiBtQ,EAAK,gBACxG,eAAgB,OAAOsQ,EAAE,WAAW,eAAmB,IAAcA,EAAE,WAAW,eAAiBtQ,EAAK,gBACxG,cAAe,OAAOsQ,EAAE,WAAW,cAAkB,IAAcA,EAAE,WAAW,cAAgBtQ,EAAK,eACrG,cAAe,OAAOsQ,EAAE,WAAW,cAAkB,IAAcA,EAAE,WAAW,cAAgBtQ,EAAK,eACrG,YAAa,OAAOsQ,EAAE,WAAW,YAAgB,IAAcA,EAAE,WAAW,YAActQ,EAAK,aAC/F,YAAa,OAAOsQ,EAAE,WAAW,YAAgB,IAAcA,EAAE,WAAW,YAActQ,EAAK,aAC/F,cAAe,OAAOsQ,EAAE,WAAW,cAAkB,IAAcA,EAAE,WAAW,cAAgBtQ,EAAK,eACrG,aAAc,OAAOsQ,EAAE,WAAW,aAAiB,IAAcA,EAAE,WAAW,aAAetQ,EAAK,aACnG,OAIHqX,QAAAA,EAAQrX,EAAK,WAAW,SAASkD,EAAK,CAAC,EAAG,EAAE,CAAC,EACtCmU,EAAQA,EAAM,YAAcrX,EAAK,iBAEjCkD,EAAK,SAAW,IACzBoN,EAAIpN,EAAK,CAAC,EACVpH,EAAK,SAASoH,EAAK,CAAC,EAAG,EAAE,GAK3B,QADIiU,EAAMnX,EAAK,aAAalE,CAAE,EACrBtI,EAAE,EAAGA,EAAE2jB,EAAI,OAAQ3jB,IAG1B,GAFA6jB,EAAQrX,EAAK,WAAWmX,EAAI3jB,CAAC,CAAC,EAE1B6jB,EAAO,CAET,IAAImF,EAAKnF,EAAM,YACfmF,EAAK,CACH,eAAgB,OAAOlM,EAAE,eAAmB,IAAcA,EAAE,eAAiBkM,EAAG,eAChF,eAAgB,OAAOlM,EAAE,eAAmB,IAAcA,EAAE,eAAiBkM,EAAG,eAChF,cAAe,OAAOlM,EAAE,cAAkB,IAAcA,EAAE,cAAgBkM,EAAG,cAC7E,cAAe,OAAOlM,EAAE,cAAkB,IAAcA,EAAE,cAAgBkM,EAAG,cAC7E,YAAa,OAAOlM,EAAE,YAAgB,IAAcA,EAAE,YAAckM,EAAG,YACvE,YAAa,OAAOlM,EAAE,YAAgB,IAAcA,EAAE,YAAckM,EAAG,YACvE,cAAe,OAAOlM,EAAE,cAAkB,IAAcA,EAAE,cAAgBkM,EAAG,cAC7E,aAAc,OAAOlM,EAAE,aAAiB,IAAcA,EAAE,aAAekM,EAAG,YAC3E,EAGD,IAAIC,EAASpF,EAAM,QACdoF,IAEEpF,EAAM,OACTA,EAAM,KAAOrX,EAAK,MAAQ,CAAC,EAAG,EAAG,GAAI,GAIvCuc,EAAYlF,EAAO,SAAS,EAC5BoF,EAASpF,EAAM,SAIjBoF,EAAO,eAAiBD,EAAG,eAC3BC,EAAO,eAAiBD,EAAG,eAC3BC,EAAO,cAAgBD,EAAG,cAC1BC,EAAO,cAAgBD,EAAG,cAC1BC,EAAO,YAAcD,EAAG,YACxBC,EAAO,YAAcD,EAAG,YACxBC,EAAO,cAAgBD,EAAG,cAC1BC,EAAO,aAAeD,EAAG,YACjC,CAGI,OAAOxc,CACR,EAUD,MAAM,UAAU,KAAQ,SAASqc,EAAQ,CACvC,OAAO,UAAW,CAChB,IAAIrc,EAAO,KACPgb,EAAShb,EAAK,QAGlBA,EAAK,aAAegb,EAAO,aAC3Bhb,EAAK,QAAUgb,EAAO,QACtBhb,EAAK,KAAOgb,EAAO,KACnBhb,EAAK,YAAcgb,EAAO,YAG1BqB,EAAO,KAAK,IAAI,EAGZrc,EAAK,QACPgb,EAAO,OAAOhb,EAAK,OAAO,EACjBA,EAAK,MACdgb,EAAO,IAAIhb,EAAK,KAAK,CAAC,EAAGA,EAAK,KAAK,CAAC,EAAGA,EAAK,KAAK,CAAC,EAAGA,EAAK,GAAG,CAEhE,CACL,EAAK,MAAM,UAAU,IAAI,EAOvB,MAAM,UAAU,MAAS,SAASqc,EAAQ,CACxC,OAAO,UAAW,CAChB,IAAIrc,EAAO,KACPgb,EAAShb,EAAK,QAGlB,OAAAA,EAAK,aAAegb,EAAO,aAC3Bhb,EAAK,QAAUgb,EAAO,QACtBhb,EAAK,KAAOgb,EAAO,KACnBhb,EAAK,YAAcgb,EAAO,YAGtBhb,EAAK,QACPgb,EAAO,OAAOhb,EAAK,OAAO,EACjBA,EAAK,KACdgb,EAAO,IAAIhb,EAAK,KAAK,CAAC,EAAGA,EAAK,KAAK,CAAC,EAAGA,EAAK,KAAK,CAAC,EAAGA,EAAK,GAAG,EACpDA,EAAK,UAEdA,EAAK,QAAQ,WAAW,CAAC,EACzBA,EAAK,QAAU,OACfgb,EAAO,eAAehb,CAAI,GAIrBqc,EAAO,KAAK,IAAI,CACxB,CACL,EAAK,MAAM,UAAU,KAAK,EAUxB,IAAIE,EAAc,SAASlF,EAAO9lB,EAAM,CACtCA,EAAOA,GAAQ,UAGXA,IAAS,WACX8lB,EAAM,QAAU,OAAO,IAAI,aAAc,EACzCA,EAAM,QAAQ,eAAiBA,EAAM,YAAY,eACjDA,EAAM,QAAQ,eAAiBA,EAAM,YAAY,eACjDA,EAAM,QAAQ,cAAgBA,EAAM,YAAY,cAChDA,EAAM,QAAQ,cAAgBA,EAAM,YAAY,cAChDA,EAAM,QAAQ,YAAcA,EAAM,YAAY,YAC9CA,EAAM,QAAQ,YAAcA,EAAM,YAAY,YAC9CA,EAAM,QAAQ,cAAgBA,EAAM,YAAY,cAChDA,EAAM,QAAQ,aAAeA,EAAM,YAAY,aAE3C,OAAOA,EAAM,QAAQ,UAAc,KACrCA,EAAM,QAAQ,UAAU,eAAeA,EAAM,KAAK,CAAC,EAAG,OAAO,IAAI,WAAW,EAC5EA,EAAM,QAAQ,UAAU,eAAeA,EAAM,KAAK,CAAC,EAAG,OAAO,IAAI,WAAW,EAC5EA,EAAM,QAAQ,UAAU,eAAeA,EAAM,KAAK,CAAC,EAAG,OAAO,IAAI,WAAW,GAE5EA,EAAM,QAAQ,YAAYA,EAAM,KAAK,CAAC,EAAGA,EAAM,KAAK,CAAC,EAAGA,EAAM,KAAK,CAAC,CAAC,EAGnE,OAAOA,EAAM,QAAQ,aAAiB,KACxCA,EAAM,QAAQ,aAAa,eAAeA,EAAM,aAAa,CAAC,EAAG,OAAO,IAAI,WAAW,EACvFA,EAAM,QAAQ,aAAa,eAAeA,EAAM,aAAa,CAAC,EAAG,OAAO,IAAI,WAAW,EACvFA,EAAM,QAAQ,aAAa,eAAeA,EAAM,aAAa,CAAC,EAAG,OAAO,IAAI,WAAW,GAEvFA,EAAM,QAAQ,eAAeA,EAAM,aAAa,CAAC,EAAGA,EAAM,aAAa,CAAC,EAAGA,EAAM,aAAa,CAAC,CAAC,IAGlGA,EAAM,QAAU,OAAO,IAAI,mBAAoB,EAC/CA,EAAM,QAAQ,IAAI,eAAeA,EAAM,QAAS,OAAO,IAAI,WAAW,GAGxEA,EAAM,QAAQ,QAAQA,EAAM,KAAK,EAG5BA,EAAM,SACTA,EAAM,QAAQ,MAAMA,EAAM,IAAK,EAAI,EAAE,KAAKA,EAAM,IAAK,EAAI,CAE5D,CACH,yBC7pGA,SAASqF,GAAsB7F,EAAc,CAC5C,GAAI,CAACA,EAAa,aACjB,OAGD,MAAM3G,EAAI,IAAI,aAAa2G,EAAa,QAAS,CAChD,MAAOA,EAAa,QACpB,KAAM8F,GAAa,EACnB,KAAM9F,EAAa,QACnB,KAAMA,EAAa,KACnB,IAAKA,EAAa,cAClB,CAAA,EAEGA,EAAa,OAChB3G,EAAE,QAAU,gBAAiB,CAC5B,MAAMhlB,EAAQ,CACb,aAAc,GACd,aAAA2rB,EACA,OAAQ,CACP,IAAKA,EAAa,KAClB,KAAM,KACN,CACL,EACG,MAAMntB,GAAK,+BAAgCwB,CAAK,EAE3CA,EAAM,eACV,QAAQ,MAAM,qDAAsD2rB,EAAa,IAAI,EACrF,OAAO,SAAS,KAAOA,EAAa,MAIrC,OAAO,MAAK,CACf,GAGC+F,GAAsB/F,CAAY,CACnC,CAOA,SAAS+F,GAAsB/F,EAAc,eAC5C,GAAIA,EAAa,MAAQ,UAAYA,EAAa,aAAe,QAChE,GAAIgG,GAAU,gBAAiB,YAAY,EAAG,CAC7C,MAAMC,EAAc,CACnB,IAAK,CAACC,GAAiB,gBAAiB,MAAO,UAAU,CAAC,EAC1D,MAAO,GACP,OAAQ,EACZ,EACS1F,EAAQ,IAAIgB,GAAAA,KAAKyE,CAAW,EAC5BE,GAAkB3F,EAAAA,EAAM,QAAQ,CAAC,EAAE,MAAM,SAAvBA,KAAAA,EAAiC,GACzDA,EAAM,KAAI,EAEV,MAAM4F,EAA0BzG,EAAe,QAAQ,mBAAmB,IAAM,OAC1E0G,GAAoBC,GAAAC,EAAA,KAAK,MAAM5G,EAAe,QAAQ,0BAA0B,CAAC,IAA7D,YAAA4G,EAAgE,KAAhE,KAAAD,EAAsE,KAEhG,GAAIF,GAA2BC,GAAqBF,IAAoBE,EAAmB,CAC1F,MAAMG,EAAa,IAAIhF,GAAAA,KAAKyE,CAAW,GAClBzF,GAAAA,EAAAA,EAAM,QAAQ,CAAC,EAAE,OACzB,YADQA,MAAAA,EAAAA,KAAAA,EACI6F,GACvB,KAAK,IAAM,QAAQ,MAAM,2DAA2D,GACpF,MAAO9tB,GAAU,QAAQ,MAAM,mCAAoCA,CAAK,GAC1EiuB,EAAW,KAAI,CACnB,CACA,OACYR,GAAU,gBAAiB,oBAAoB,GAC3C,IAAIxE,QAAK,CACtB,IAAK,CAAC0E,GAAiB,gBAAiB,MAAO,kBAAkB,CAAC,EAClE,OAAQ,EACR,CAAA,EAEK,KAAI,CAEZ,CCWA,MAAMO,GAAmBT,GAAU,OAAQ,SAAU,CAAE,kBAAmB,GAAM,EAAE,kBAC5EU,GAAgCV,GAAU,gBAAiB,8BAA8B,EAEzFW,GAA4B,CAEjC,eAAgB,GAChB,IAAK,OACL,KAAM,GACN,SAAU,UACV,SAAU,GACV,WAAY,GACZ,QAAS/M,GAAE,gBAAiB,wCAAwC,EACpE,QAASA,GAAE,gBAAiB,8QAA8Q,EAC1S,KAAM,sCACN,QAAS,CAAE,EAEX,aAAc,sCACd,KAAMgN,GAAU,OAAQ,2BAA2B,CACpD,EAEKx1B,GAAU,CACd,KAAM,mBAEN,WAAY,CACX,gBAAAy1B,GACA,UAAAxJ,GACA,mBAAAC,GACA,iBAAAwJ,GACA,SAAAjyB,GACA,eAAA9C,GACA,aAAAmD,GACA,iBAAA6xB,EACA,EAED,OAAQ,CACP,MAAO,CACN,0BAAAJ,GACA,8BAAAD,EACD,CACA,EAED,MAAO,CACN,MAAO,CACN,wBAAyB,GACzB,mBAAoB,GACpB,cAAe,GACf,SAAU,GACV,cAAe,CAAE,EACjB,SAAU,KACV,UAAW,KACX,WAAY,KACZ,MAAO,KAiBP,4BAA6B,EAG7B,iBAAkB,IAElB,oBAAqB,IAGrB,SAAU,KACV,cAAe,KAEf,KAAM,EACP,CACA,EAED,SAAU,CACT,0BAA2B,CAC1B,OAAO,KAAK,oBACR,KAAK,yBACL,KAAK,aAAe,OACpB,KAAK,QAAU,KAAK,SACxB,EAED,qBAAsB,CACrB,OAAI,KAAK,0BAA4B,KAC7B9M,GAAE,gBAAiB,sDAAsD,EAG7E,KAAK,8BACD,KAAK,0BAA0B,QAGhCA,GAAE,gBAAiB,kBAAkB,CAC5C,EAED,yBAA0B,CACzB,OAAI,KAAK,8BACD,KAAK,0BAA0B,QAGhC,EACP,CACD,EAED,SAAU,CACT,KAAK,MAAQxhB,GAAe,GAAO,GAAK,KAAK,OAAQ,EACrD,KAAK,UAAY,EAEjB,KAAK,gCAA+B,EAGpC,KAAK,OAAM,EAEK6iB,UAAO,sBAAuB,IAAM,CACnD,KAAK,sBAAqB,CAC1B,CAAA,IAEA,QAAQ,MAAM,wDAAwD,EACtE,KAAK,iBAAmB,GAAK,GAAK,IAClC,KAAK,cAAgB,IAItB,KAAK,oBAAoB,KAAK,gBAAgB,EAE9C,KAAK,oBAAmB,EACxBnjB,GAAU,iBAAkB,KAAK,oBAAoB,EACrDA,GAAU,gBAAiB,KAAK,mBAAmB,EACnDA,GAAU,6BAA8B,KAAK,iBAAiB,CAC9D,EAED,eAAgB,CACfC,GAAY,6BAA8B,KAAK,iBAAiB,EAChEA,GAAY,iBAAkB,KAAK,oBAAoB,EACvDA,GAAY,gBAAiB,KAAK,mBAAmB,CACrD,EAED,QAAS,GACR6hB,GAEA,kBAAkB7lB,EAAO,CACpB4F,GAAgB,EAAC,MAAQ5F,EAAM,SAClC,KAAK,WAAaA,EAAM,OAEzB,EAED,MAAM,QAAS,CACd,KAAK,kCAAiC,EAEtC,MAAM+rB,GAAsB,KAAK,KAAK,EACtC,MAAM,KAAK,OAAM,CACjB,EAED,sBAAuB,CACtB,QAAQ,MAAM,uDAAyD,KAAK,iBAAmB,EAAE,EACjG,KAAK,oBAAoB,KAAK,iBAAmB,EAAE,CACnD,EAED,qBAAsB,CACrB,KAAK,OAAM,EACX,QAAQ,MAAM,kDAAoD,KAAK,gBAAgB,EACvF,KAAK,oBAAoB,KAAK,gBAAgB,CAC9C,EAED,wBAAyB,CACpB2G,IACH,QAAQ,MAAM,4DAA4D,EAC1E,KAAK,SAAW,OAAO,YAAY,KAAK,iBAAiB,KAAK,IAAI,EAAG,KAAK,mBAAmB,GAE7F,QAAQ,MAAM,8DAA8D,CAE7E,EAED,cAAe,CACdvN,GACE,OAAO+E,GAAe,yCAAyC,CAAC,EAChE,KAAK,IAAM,CACX,KAAK,cAAgB,CAAA,EACrB,KAAK,KAAO,GACZ6B,GAAsB,KAAK,KAAK,CAChC,CAAA,EACA,MAAM,IAAM,CACZ9B,GAAUpE,GAAE,gBAAiB,qCAAqC,CAAC,CACnE,CAAA,CACF,EAED,SAAS9V,EAAO,CACf,KAAK,cAAc,OAAOA,EAAO,CAAC,EAClCgc,GAAsB,KAAK,KAAK,CAChC,EAOD,kCAAkCkH,EAAe,CAC5CA,EAAc,OAAS,KAAK,YAC/B,KAAK,UAAYA,EAAc,OAC3B,KAAK,oBAAsB,SAAS,SAElC,SAAS,MAAM,WAAW,IAAI,IAClC,SAAS,MAAQ,KAAO,SAAS,QAIpC,EAOD,eAAgB,CACX,SAAS,MAAM,WAAW,IAAI,IACjC,SAAS,MAAQ,SAAS,MAAM,UAAU,CAAC,EAE5C,EAKD,uBAAwB,CACvB,KAAK,mBAAqB,GACtB,KAAK,eAAiB,KAAK,QAAU,KAAK,WAC7C,QAAQ,MAAM,oHAAoH,EAClI,WAAW,IAAM,CAChB,KAAK,OAAM,CACZ,EAAG,GAAI,IAEP,QAAQ,MAAM,gDAAgD,EAC9D,KAAK,OAAM,EAEZ,EAKD,MAAM,QAAS,CACV,KAAK,cAAc,QAAU,KAAK,cAAc,CAAC,EAAE,eAAiB,KAAK,8BAC5E,KAAK,4BAA8B,KAAK,cAAc,CAAC,EAAE,gBAG1D,MAAM3kB,EAAW,MAAMgd,GAAqB,KAAK,MAAO,KAAK,SAAU,CAAC,KAAK,mBAAoB,KAAK,aAAa,EAE/Ghd,EAAS,SAAW,KAEvB,QAAQ,MAAM,kEAAoE,KAAK,iBAAmB,EAAE,EAC5G,KAAK,oBAAoB,KAAK,iBAAmB,EAAE,GACzCA,EAAS,SAAW,KAC9B,KAAK,WAAaA,EAAS,QAAQ,yBAAyB,EAC5D,KAAK,SAAWA,EAAS,QAAQ,KACjC,KAAK,UAAYA,EAAS,MAC1B,KAAK,cAAgBA,EAAS,KAC9B,KAAK,wBAAwBA,EAAS,IAAI,EAC1C,QAAQ,MAAM,4DAA4D,EAC1E,KAAK,oBAAoB,KAAK,gBAAgB,EAC9C,KAAK,kCAAkC,KAAK,aAAa,EAErD,CAAC,KAAK,oBAAsB,KAAK,cAAc,SAClD,KAAK,4BAA8B,KAAK,cAAc,CAAC,EAAE,iBAEhDA,EAAS,SAAW,IAE9B,KAAK,oBAAoB,KAAK,gBAAgB,EACpCA,EAAS,SAAW,KAE9B,QAAQ,KAAK,8DAA8D,EAC3E,KAAK,oBAAoB,KAAK,iBAAmB,EAAE,GACzCA,EAAS,SAAW,KAE9B,QAAQ,KAAK,8CAA8C,EAC3D,KAAK,oBAAoB,KAAK,iBAAmB,EAAE,IAEnD,QAAQ,KAAK,sCAAwCA,EAAS,MAAM,EACpE,KAAK,oBAAoB,KAAK,iBAAmB,EAAE,EAEpD,EAED,kBAAmB,CAClB,KAAK,mBAAqB,GAC1B,KAAK,OAAM,CACX,EAED,qBAAsB,CACrB,SAAS,iBAAiB,mBAAoB,KAAK,kBAAmB,EAAK,CAC3E,EAED,mBAAoB,CACd,SAAS,QACb,KAAK,cAAa,CAEnB,EAED,oBAAoB4kB,EAAc,CAC7B,KAAK,UAAYA,IAAiB,KAAK,sBAI3C,QAAQ,MAAM,+BAAiCA,CAAY,EAEvD,KAAK,WACR,OAAO,cAAc,KAAK,QAAQ,EAClC,KAAK,SAAW,MAGjB,KAAK,oBAAsBA,EAC3B,KAAK,uBAAsB,EAC3B,EAQD,uBAAuBC,EAAW,CACjC,QAAQ,MAAM,gCAAmCA,EAAa,YAAc,MAAM,EAC9E,KAAK,WACR,OAAO,cAAc,KAAK,QAAQ,EAClC,KAAK,SAAW,MAEjB,KAAK,SAAW,CAACA,CACjB,EAKD,iCAAkC,CACjC,GAAI,EAAE,iBAAkB,QAAS,CAChC,QAAQ,KAAK,wCAAwC,EACrD,KAAK,wBAA0B,GAC/B,MACD,CAEA,GAAI,OAAO,aAAa,aAAe,UAAW,CACjD,QAAQ,MAAM,mCAAmC,EACjD,KAAK,wBAA0B,GAC/B,MACD,CAEA,GAAI,OAAO,aAAa,aAAe,SAAU,CAChD,QAAQ,MAAM,kCAAkC,EAChD,KAAK,wBAA0B,GAC/B,MACD,CAEA,GAAI,OAAO,SAAS,WAAa,QAAS,CACzC,QAAQ,MAAM,6BAA6B,EAC3C,KAAK,wBAA0B,GAC/B,MACD,CAEA,QAAQ,KAAK,6CAA6C,EAC1D,KAAK,wBAA0B,IAC/B,EAKD,MAAM,mCAAoC,CACrC,KAAK,0BAA4B,OAIrC,QAAQ,KAAK,sCAAsC,EACnD,OAAO,aAAa,kBAAiB,EACnC,KAAMC,GAAgB,CACtB,KAAK,wBAA0BA,IAAgB,SAC/C,CAAA,EACF,EAED,wBAAwBH,EAAe,CACtCA,EAAc,QAAShH,GAAiB,CACnC,KAAK,oBAIRntB,GAAK,sCADS,CAAE,aAAAmtB,CAAa,CACoB,EAG9C,KAAK,0BAA4B,KAAK,4BAA8BA,EAAa,gBACpF6F,GAAsB7F,CAAY,CAEnC,CAAA,CACD,CACD,CACF,EA7dOjvB,GAAA,CAAA,MAAM,wBAAwB,YAyBlB,MAAM,qCAmBe,MAAM,yOA5DrCq2B,EAAQ,uBADhB7K,EAyEe8K,EAAA,OAvEd,GAAG,gBACK,KAAMD,EAAI,oCAAJA,EAAI,KAAAhxB,GAClB,MAAM,uBACL,kCAAiC,CAAY,UAAA,EAC7C,aAAY2mB,EAAC,EAAA,gBAAA,eAAA,EACb,MAAOA,EAAC,EAAA,gBAAA,eAAA,EACR,SAAQA,EAAM,SACJ,UACV,IAGiD,CAHjDsB,GAGiDiJ,EAAA,CAF/C,KAAM,GACN,WAAUF,EAAA,cAAc,YAAgBA,EAAuB,0BAAA,KAC/D,eAAcG,EAA6B,+EAI9C,IAuDM,CAvDN5L,EAuDM,MAvDN5qB,GAuDM,CAtDLstB,GAwCamJ,GAAA,CAxCD,KAAK,OAAO,KAAK,qBAC5B,IAcmB,CAbZJ,EAAA,cAAc,OAAM,OAD3B7K,EAcmBkL,GAAA,OAZlB,MAAM,uBACN,KAAK,OACL,IAAI,iBACJ,IAG6C,CAFtCF,EAA6B,mCADpChL,EAG6CmL,EAAA,CAD3C,IAAK,MACL,aAAcH,EAAyB,+DACzC3L,EAAA,EAAA,EAAAJ,EAI6ByD,GAHI,KAAA0I,GAAAP,EAAA,cAAxB,CAAApH,EAAclc,SADvByY,EAI6BmL,EAAA,CAF3B,IAAK1H,EAAa,eAClB,aAAcA,EACd,SAAM5pB,GAAE2mB,EAAQ,SAACjZ,CAAK,6DAIzByY,EAqBiBqL,EAAA,OAnBf,KAAM7K,EAAmB,oBACzB,YAAaA,EAAuB,6BAC1B,OACV,IAAyD,CAAjCwK,EAA6B,+BACrD3L,IAAAJ,EAA+C,OAA/CxqB,EAA+C,QAD/CurB,EAAyDsL,EAAA,CAAA,IAAA,CAAA,CAAA,WAI1CN,EAA6B,oCAAG,cAC/C,IASW,CATXlJ,GASWD,EAAA,CARV,QAAQ,UACR,KAAK,sCACL,OAAO,SACP,IAAI,wBACO,OACV,IAAiC,CAAjCC,GAAiCe,EAAA,CAAZ,KAAM,EAAE,CAAA,cACnB,IACX,IADW,IACXtC,EAAGC,EAAC,EAAA,gBAAA,wBAAA,CAAA,EAA8C,MACnD,CAAA,oEAMQqK,EAAA,cAAc,OAAM,GAA/BxL,IAAAJ,EAUM,MAVNvqB,GAUM,CATLotB,GAQWD,EAAA,CAPV,QAAQ,WACR,KAAA,GACC,QAAOrB,EAAY,eACT,OACV,IAAwB,CAAxBsB,GAAwBC,EAAA,CAAZ,KAAM,EAAE,CAAA,cACV,IACX,CADWzB,GAAA,MACRE,EAAC,EAAA,gBAAA,2BAAA,CAAA,EAAA,CAAA","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,22]} \ No newline at end of file diff --git a/js/NotificationsApp-DI9M0BLE.chunk.mjs.map.license b/js/NotificationsApp-Dl4t5GxQ.chunk.mjs.map.license similarity index 100% rename from js/NotificationsApp-DI9M0BLE.chunk.mjs.map.license rename to js/NotificationsApp-Dl4t5GxQ.chunk.mjs.map.license diff --git a/js/index-BDug3c9j.chunk.mjs b/js/index-B-UytdBL.chunk.mjs similarity index 99% rename from js/index-BDug3c9j.chunk.mjs rename to js/index-B-UytdBL.chunk.mjs index 21457442b..d547b8a0b 100644 --- a/js/index-BDug3c9j.chunk.mjs +++ b/js/index-B-UytdBL.chunk.mjs @@ -1,2 +1,2 @@ -import{O as Pt,P as Ae,Q as Ut,S as jt}from"./index-Dh8t1o6F-BSJbSXZa.chunk.mjs";import"./style-CHsIVRyi.chunk.mjs";import"./vite-preload-helper-B9rAsR6N.chunk.mjs";const Rn=function(e,n,a){const i=Pt(a);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof n=="number"){if(n<0||n===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(n=e.children.indexOf(n),n<0)throw new Error("Expected child node or index");for(;++no&&(o=b):b&&(o!==void 0&&o>-1&&g.push("\n".repeat(o)||" "),o=-1,g.push(b))}return g.join("")}function Gn(e,n,a){return e.type==="element"?Ht(e,n,a):e.type==="text"?a.whitespace==="normal"?Hn(e,a):Zt(e):[]}function Ht(e,n,a){const i=Zn(e,a),r=e.children||[];let d=-1,s=[];if(Kt(e))return s;let l,g;for(pn(e)||Bn(e)&&Rn(n,e,Bn)?g="\n":qt(e)?(l=2,g=2):Kn(e)&&(l=1,g=1);++d]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},g={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},p=n.optional(r)+e.IDENT_RE+"\\s*\\(",u=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],y=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],v=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],h=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],N={type:y,keyword:u,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:v},S={className:"function.dispatch",relevance:0,keywords:{_hint:h},begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},C=[S,o,s,a,e.C_BLOCK_COMMENT_MODE,g,l],R={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:N,contains:C.concat([{begin:/\(/,end:/\)/,keywords:N,contains:C.concat(["self"]),relevance:0}]),relevance:0},B={className:"function",begin:"("+d+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:N,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:N,relevance:0},{begin:p,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,g]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,l,g,s,{begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,l,g,s]}]},s,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:N,illegal:"",keywords:N,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:N},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Yt(e){const n={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},a=Jt(e),i=a.keywords;return i.type=[...i.type,...n.type],i.literal=[...i.literal,...n.literal],i.built_in=[...i.built_in,...n.built_in],i._hints=n._hints,a.name="Arduino",a.aliases=["ino"],a.supersetOf="cpp",a}function ea(e){const n=e.regex,a={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[a]}]};Object.assign(a,{className:"variable",variants:[{begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const r={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},d=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},l={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a,r]};r.contains.push(l);const g={match:/\\"/},o={className:"string",begin:/'/,end:/'/},b={match:/\\'/},p={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,a]},u=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],y=e.SHEBANG({binary:"(".concat(u.join("|"),")"),relevance:10}),v={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},h=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],N=["true","false"],S={match:/(\/[a-z._-]+)+/},C=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],R=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],B=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],D=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:h,literal:N,built_in:[...C,...R,"set","shopt",...B,...D]},contains:[y,e.SHEBANG(),v,p,d,s,S,l,g,o,b,a]}}function na(e){const n=e.regex,a=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",d="("+i+"|"+n.optional(r)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},g={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},p=n.optional(r)+e.IDENT_RE+"\\s*\\(",u={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},y=[o,s,a,e.C_BLOCK_COMMENT_MODE,g,l],v={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:y.concat([{begin:/\(/,end:/\)/,keywords:u,contains:y.concat(["self"]),relevance:0}]),relevance:0},h={begin:"("+d+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:u,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,l,g,s,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,l,g,s]}]},s,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C",aliases:["h"],keywords:u,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:o,strings:l,keywords:u}}}function ta(e){const n=e.regex,a=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",d="(?!struct)("+i+"|"+n.optional(r)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},g={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},p=n.optional(r)+e.IDENT_RE+"\\s*\\(",u=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],y=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],v=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],h=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],N={type:y,keyword:u,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:v},S={className:"function.dispatch",relevance:0,keywords:{_hint:h},begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},C=[S,o,s,a,e.C_BLOCK_COMMENT_MODE,g,l],R={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:N,contains:C.concat([{begin:/\(/,end:/\)/,keywords:N,contains:C.concat(["self"]),relevance:0}]),relevance:0},B={className:"function",begin:"("+d+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:N,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:N,relevance:0},{begin:p,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,g]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,l,g,s,{begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,l,g,s]}]},s,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:N,illegal:"",keywords:N,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:N},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function aa(e){const n=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],a=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],i=["default","false","null","true"],r=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],d=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],s={keyword:r.concat(d),built_in:n,literal:i},l=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),g={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},o={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},b={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},p=e.inherit(b,{illegal:/\n/}),u={className:"subst",begin:/\{/,end:/\}/,keywords:s},y=e.inherit(u,{illegal:/\n/}),v={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,y]},h={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},u]},N=e.inherit(h,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},y]});u.contains=[h,v,b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,g,e.C_BLOCK_COMMENT_MODE],y.contains=[N,v,p,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,g,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const S={variants:[o,h,v,b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},C={begin:"<",end:">",contains:[{beginKeywords:"in out"},l]},R=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",B={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:s,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},S,g,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},l,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[l,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+R+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:s,contains:[{beginKeywords:a.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,C],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,relevance:0,contains:[S,g,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},B]}}const ia=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),ra=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],sa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],oa=[...ra,...sa],la=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),ca=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),da=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),ga=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function ua(e){const n=e.regex,a=ia(e),i={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",d=/@-?\w[\w]*(-\w+)*/,s="[a-zA-Z-][a-zA-Z0-9_-]*",l=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[a.BLOCK_COMMENT,i,a.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+s,relevance:0},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+ca.join("|")+")"},{begin:":(:)?("+da.join("|")+")"}]},a.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ga.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[a.BLOCK_COMMENT,a.HEXCOLOR,a.IMPORTANT,a.CSS_NUMBER_MODE,...l,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...l,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},a.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:d},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:la.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...l,a.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+oa.join("|")+")\\b"}]}}function ba(e){const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function ma(e){const n={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:n,illegal:"Wn(e,n,a-1))}function ha(e){const n=e.regex,a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",i=a+Wn("(?:<"+a+"~~~(?:\\s*,\\s*"+a+"~~~)*>)?",/~~~/g,2),r={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},d={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:r,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[n.concat(/(?!else)/,a),/\s+/,a,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,a],className:{1:"keyword",3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+i+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:r,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:[d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,zn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},zn,d]}}const Fn="[A-Za-z$_][0-9A-Za-z$_]*",_a=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],ya=["true","false","null","undefined","NaN","Infinity"],Xn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Qn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Vn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ea=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],wa=[].concat(Vn,Xn,Qn);function va(e){const n=e.regex,a=(L,{after:Z})=>{const ae="",end:""},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,Z)=>{const ae=L[0].length+L.index,ge=L.input[ae];if(ge==="<"||ge===","){Z.ignoreMatch();return}ge===">"&&(a(L,{after:ae})||Z.ignoreMatch());let se;const ie=L.input.substring(ae);if(se=ie.match(/^\s*=/)){Z.ignoreMatch();return}if((se=ie.match(/^\s+extends\s+/))&&se.index===0){Z.ignoreMatch();return}}},l={$pattern:Fn,keyword:_a,literal:ya,built_in:wa,"variable.language":Ea},g="[0-9](_?[0-9])*",o="\\.(".concat(g,")"),b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:"(\\b(".concat(b,")((").concat(o,")|\\.)?|(").concat(o,"))[eE][+-]?(").concat(g,")\\b")},{begin:"\\b(".concat(b,")\\b((").concat(o,")\\b|\\.)?|(").concat(o,")\\b")},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:l,contains:[]},y={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},v={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},h={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"graphql"}},N={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},S={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},C=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,{match:/\$\d+/},p];u.contains=C.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(C)});const R=[].concat(S,u.contains),B=R.concat([{begin:/(\s*)\(/,end:/\)/,keywords:l,contains:["self"].concat(R)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B},V={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,n.concat(i,"(",n.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Xn,...Qn]}},J={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},q={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},le={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function de(L){return n.concat("(?!",L.join("|"),")")}const ce={match:n.concat(/\b/,de([...Vn,"super","import"].map(L=>"".concat(L,"\\s*\\("))),i,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:n.concat(/\./,n.lookahead(n.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},te="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(te)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:H},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),J,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,S,{match:/\$\d+/},p,H,{scope:"attr",match:i+n.lookahead(":"),relevance:0},ye,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[S,e.REGEXP_MODE,{className:"function",begin:te,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:d},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},q,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,e.inherit(e.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,le,V,j,{match:/\$[(.]/}]}}function Na(e){const n={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},a={match:/[{}[\],:]/,className:"punctuation",relevance:0},i=["true","false","null"],r={scope:"literal",beginKeywords:i.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:i},contains:[n,a,e.QUOTE_STRING_MODE,r,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Oe="[0-9](_*[0-9])*",Ke="\\.(".concat(Oe,")"),Ge="[0-9a-fA-F](_*[0-9a-fA-F])*",ka={className:"number",variants:[{begin:"(\\b(".concat(Oe,")((").concat(Ke,")|\\.)?|(").concat(Ke,"))[eE][+-]?(").concat(Oe,")[fFdD]?\\b")},{begin:"\\b(".concat(Oe,")((").concat(Ke,")[fFdD]?\\b|\\.([fFdD]\\b)?)")},{begin:"(".concat(Ke,")[fFdD]?\\b")},{begin:"\\b(".concat(Oe,")[fFdD]\\b")},{begin:"\\b0[xX]((".concat(Ge,")\\.?|(").concat(Ge,")?\\.(").concat(Ge,"))[pP][+-]?(").concat(Oe,")[fFdD]?\\b")},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:"\\b0[xX](".concat(Ge,")[lL]?\\b")},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function xa(e){const n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},r={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},d={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},s={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[d,r]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,d,r]}]};r.contains.push(s);const l={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},g={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:"string"}),"self"]}]},o=ka,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),p={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},u=p;return u.variants[1].contains=[p],p.variants[1].contains=[u],{name:"Kotlin",aliases:["kt","kts"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,a,i,l,g,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[p,e.C_LINE_COMMENT_MODE,b],relevance:0},e.C_LINE_COMMENT_MODE,b,l,g,s,e.C_NUMBER_MODE]},b]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},l,g]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},o]}}const Sa=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Ma=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Oa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Aa=[...Ma,...Oa],Ca=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Jn=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Yn=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Ta=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),Ra=Jn.concat(Yn).sort().reverse();function Ia(e){const n=Sa(e),a=Ra,i="and or not only",r="[\\w-]+",d="("+r+"|@\\{"+r+"\\})",s=[],l=[],g=function(R){return{className:"string",begin:"~?"+R+".*?"+R}},o=function(R,B,D){return{className:R,begin:B,relevance:D}},b={$pattern:/[a-z-]+/,keyword:i,attribute:Ca.join(" ")},p={begin:"\\(",end:"\\)",contains:l,keywords:b,relevance:0};l.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g("'"),g('"'),n.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},n.HEXCOLOR,p,o("variable","@@?"+r,10),o("variable","@\\{"+r+"\\}"),o("built_in","~?`[^`]*?`"),{className:"attribute",begin:r+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const u=l.concat({begin:/\{/,end:/\}/,contains:s}),y={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(l)},v={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Ta.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:l}}]},h={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:b,returnEnd:!0,contains:l,relevance:0}},N={className:"variable",variants:[{begin:"@"+r+"\\s*:",relevance:15},{begin:"@"+r}],starts:{end:"[;}]",returnEnd:!0,contains:u}},S={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,y,o("keyword","all\\b"),o("variable","@\\{"+r+"\\}"),{begin:"\\b("+Aa.join("|")+")\\b",className:"selector-tag"},n.CSS_NUMBER_MODE,o("selector-tag",d,0),o("selector-id","#"+d),o("selector-class","\\."+d,0),o("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Jn.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Yn.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:u},{begin:"!important"},n.FUNCTION_DISPATCH]},C={begin:r+":(:)?(".concat(a.join("|"),")"),returnBegin:!0,contains:[S]};return s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,h,N,C,v,S,y,n.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:s}}function Da(e){const n="\\[=*\\[",a="\\]=*\\]",i={begin:n,end:a,contains:["self"]},r=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,a,{contains:[i],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:r.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:r}].concat(r)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:n,end:a,contains:[i],relevance:5}])}}function La(e){const n={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},d={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},s={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},l=/[A-Za-z][A-Za-z0-9+.-]*/,g={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:n.concat(/\[.+?\]\(/,l,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},o={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},b={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},p=e.inherit(o,{contains:[]}),u=e.inherit(b,{contains:[]});o.contains.push(u),b.contains.push(p);let y=[a,g];return[o,b,p,u].forEach(v=>{v.contains=v.contains.concat(y)}),y=y.concat(o,b),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:y},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:y}]}]},a,d,o,b,{className:"quote",begin:"^>\\s+",contains:y,end:"$"},r,i,g,s,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function za(e){const n={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},a=/[a-zA-Z@][a-zA-Z0-9_]*/,i={"variable.language":["this","super"],$pattern:a,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},r={$pattern:a,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:i,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+r.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:r,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function Fa(e){const n=e.regex,a=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],i=/[dualxmsipngr]{0,12}/,r={$pattern:/[\w.]+/,keyword:a.join(" ")},d={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:r},s={begin:/->\{/,end:/\}/},l={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},g={scope:"variable",variants:[{begin:/\$\d/},{begin:n.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[l]},o={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},b=[e.BACKSLASH_ESCAPE,d,g],p=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],u=(h,N,S="\\1")=>{const C=S==="\\1"?S:n.concat(S,N);return n.concat(n.concat("(?:",h,")"),N,/(?:\\.|[^\\\/])*?/,C,/(?:\\.|[^\\\/])*?/,S,i)},y=(h,N,S)=>n.concat(n.concat("(?:",h,")"),N,/(?:\\.|[^\\\/])*?/,S,i),v=[g,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),s,{className:"string",contains:b,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},o,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:u("s|tr|y",n.either(...p,{capture:!0}))},{begin:u("s|tr|y","\\(","\\)")},{begin:u("s|tr|y","\\[","\\]")},{begin:u("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:y("(?:m|qr)?",/\//,/\//)},{begin:y("m|qr",n.either(...p,{capture:!0}),/\1/)},{begin:y("m|qr",/\(/,/\)/)},{begin:y("m|qr",/\[/,/\]/)},{begin:y("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,l]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,l,o]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return d.contains=v,s.contains=v,{name:"Perl",aliases:["pl","pm"],keywords:r,contains:v}}function $a(e){const n=e.regex,a=/(?![A-Za-z0-9])(?![$])/,i=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,a),r=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,a),d=n.concat(/[A-Z]+/,a),s={scope:"variable",match:"\\$+"+i},l={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},g={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null}),b=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(g)}),p={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(g),"on:begin":(Y,j)=>{j.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,j)=>{j.data._beginMatch!==Y[1]&&j.ignoreMatch()}},u=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),y="[ \n]",v={scope:"string",variants:[b,o,p,u]},h={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},N=["false","null","true"],S=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],C=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],R={keyword:S,literal:(Y=>{const j=[];return Y.forEach(te=>{j.push(te),te.toLowerCase()===te?j.push(te.toUpperCase()):j.push(te.toLowerCase())}),j})(N),built_in:C},B=Y=>Y.map(j=>j.replace(/\|\d+$/,"")),D={variants:[{match:[/new/,n.concat(y,"+"),n.concat("(?!",B(C).join("\\b|"),"\\b)"),r],scope:{1:"keyword",4:"title.class"}}]},V=n.concat(i,"\\b(?!\\()"),H={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),V],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[r,n.concat(/::/,n.lookahead(/(?!class\b)/)),V],scope:{1:"title.class",3:"variable.constant"}},{match:[r,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[r,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},J={scope:"attr",match:n.concat(i,n.lookahead(":"),n.lookahead(/(?!::)/))},q={relevance:0,begin:/\(/,end:/\)/,keywords:R,contains:[J,s,H,e.C_BLOCK_COMMENT_MODE,v,h,D]},le={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",B(S).join("\\b|"),"|",B(C).join("\\b|"),"\\b)"),i,n.concat(y,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[q]};q.contains.push(le);const de=[J,H,e.C_BLOCK_COMMENT_MODE,v,h,D],ce={begin:n.concat(/#\[\s*\\?/,n.either(r,d)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:N,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:N,keyword:["new","array"]},contains:["self",...de]},...de,{scope:"meta",variants:[{match:r},{match:d}]}]};return{case_insensitive:!1,keywords:R,contains:[ce,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},l,{scope:"variable.language",match:/\$this\b/},s,le,H,{match:[/const/,/\s/,i],scope:{1:"keyword",3:"variable.constant"}},D,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:R,contains:["self",ce,s,H,e.C_BLOCK_COMMENT_MODE,v,h]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},v,h]}}function Pa(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function Ua(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function ja(e){const n=e.regex,a=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],r={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},d={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,end:/\}/,keywords:r,illegal:/#/},l={begin:/\{\{/,relevance:0},g={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,d,l,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,d,l,s]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,l,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,l,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},o="[0-9](_?[0-9])*",b="(\\b(".concat(o,"))?\\.(").concat(o,")|\\b(").concat(o,")\\."),p="\\b|".concat(i.join("|")),u={className:"number",relevance:0,variants:[{begin:"(\\b(".concat(o,")|(").concat(b,"))[eE][+-]?(").concat(o,")[jJ]?(?=").concat(p,")")},{begin:"(".concat(b,")[jJ]?")},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=".concat(p,")")},{begin:"\\b0[bB](_?[01])+[lL]?(?=".concat(p,")")},{begin:"\\b0[oO](_?[0-7])+[lL]?(?=".concat(p,")")},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=".concat(p,")")},{begin:"\\b(".concat(o,")[jJ](?=").concat(p,")")}]},y={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:r,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},v={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:r,contains:["self",d,u,g,e.HASH_COMMENT_MODE]}]};return s.contains=[g,u,d],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:r,illegal:/(<\/|\?)|=>/,contains:[d,u,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},g,y,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[v]},{variants:[{match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,v,g]}]}}function qa(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function Ka(e){const n=e.regex,a=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,i=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),r=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,d=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:a,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:a},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[r,i]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,i]},{scope:{1:"punctuation",2:"number"},match:[d,i]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,i]}]},{scope:{3:"operator"},match:[a,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:r},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:d},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function Ga(e){const n=e.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),r=n.concat(i,/(::\w+)*/),d={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},g=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],o={className:"subst",begin:/#\{/,end:/\}/,keywords:d},b={className:"string",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,o]})]}]},p="[1-9](_?[0-9])*|0",u="[0-9](_?[0-9])*",y={className:"number",relevance:0,variants:[{begin:"\\b(".concat(p,")(\\.(").concat(u,"))?([eE][+-]?(").concat(u,")|r)?i?\\b")},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},v={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:d}]},h=[b,{variants:[{match:[/class\s+/,r,/\s+<\s+/,r]},{match:[/\b(class|module)\s+/,r]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:d},{match:[/(include|extend)\s+/,r],scope:{2:"title.class"},keywords:d},{relevance:0,match:[r,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:i,scope:"title.class"},{match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[v]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[b,{begin:a}],relevance:0},y,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:d},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,o],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,g),relevance:0}].concat(l,g);o.contains=h,v.contains=h;const N=[{begin:/^\s*=>/,starts:{end:"$",contains:h}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:d,contains:h}}];return g.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:d,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(N).concat(g).concat(h)}}function Ha(e){const n=e.regex,a=/(r#)?/,i=n.concat(a,e.UNDERSCORE_IDENT_RE),r=n.concat(a,e.IDENT_RE),d={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,r,n.lookahead(/\s*\(/))},s="([ui](8|16|32|64|128|size)|f(32|64))?",l=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],g=["true","false","Some","None","Ok","Err"],o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],b=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:b,keyword:l,literal:g,built_in:o},illegal:""},d]}}const Za=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Wa=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Xa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Qa=[...Wa,...Xa],Va=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Ja=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Ya=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),ei=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function ni(e){const n=Za(e),a=Ya,i=Ja,r="@[a-z-]+",d="and or not only",s={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Qa.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+i.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+a.join("|")+")"},s,{begin:/\(/,end:/\)/,contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ei.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[n.BLOCK_COMMENT,s,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:r,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:d,attribute:Va.join(" ")},contains:[{begin:r,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},s,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]},n.FUNCTION_DISPATCH]}}function ti(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function ai(e){const n=e.regex,a=e.COMMENT("--","$"),i={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},d=["true","false","unknown"],s=["double precision","large object","with timezone","without timezone"],l=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],g=["add","asc","collation","desc","final","first","last","view"],o=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],b=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],p=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],u=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],y=b,v=[...o,...g].filter(D=>!b.includes(D)),h={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},N={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},S={match:n.concat(/\b/,n.either(...y),/\s*\(/),relevance:0,keywords:{built_in:y}};function C(D){return n.concat(/\b/,n.either(...D.map(V=>V.replace(/\s+/,"\\s+"))),/\b/)}const R={scope:"keyword",match:C(u),relevance:0};function B(D,{exceptions:V,when:H}={}){const J=H;return V=V||[],D.map(q=>q.match(/\|\d+$/)||V.includes(q)?q:J(q)?"".concat(q,"|0"):q)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:B(v,{when:D=>D.length<3}),literal:d,type:l,built_in:p},contains:[{scope:"type",match:C(s)},R,S,h,i,r,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,a,N]}}function et(e){return e?typeof e=="string"?e:e.source:null}function Re(e){return $("(?=",e,")")}function $(...e){return e.map(n=>et(n)).join("")}function ii(e){const n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function re(...e){return"("+(ii(e).capture?"":"?:")+e.map(n=>et(n)).join("|")+")"}const fn=e=>$(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ri=["Protocol","Type"].map(fn),$n=["init","self"].map(fn),si=["Any","Self"],un=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Pn=["false","nil","true"],oi=["assignment","associativity","higherThan","left","lowerThan","none","right"],li=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Un=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],nt=re(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),tt=re(nt,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),bn=$(nt,tt,"*"),at=re(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Ze=re(at,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),pe=$(at,Ze,"*"),He=$(/[A-Z]/,Ze,"*"),ci=["attached","autoclosure",$(/convention\(/,re("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",$(/objc\(/,pe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],di=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function gi(e){const n={match:/\s+/,relevance:0},a=e.COMMENT("/\\*","\\*/",{contains:["self"]}),i=[e.C_LINE_COMMENT_MODE,a],r={match:[/\./,re(...ri,...$n)],className:{2:"keyword"}},d={match:$(/\./,re(...un)),relevance:0},s=un.filter(z=>typeof z=="string").concat(["_|0"]),l=un.filter(z=>typeof z!="string").concat(si).map(fn),g={variants:[{className:"keyword",match:re(...l,...$n)}]},o={$pattern:re(/\b\w+/,/#\w+/),keyword:s.concat(li),literal:Pn},b=[r,d,g],p={match:$(/\./,re(...Un)),relevance:0},u={className:"built_in",match:$(/\b/,re(...Un),/(?=\()/)},y=[p,u],v={match:/->/,relevance:0},h={className:"operator",relevance:0,variants:[{match:bn},{match:"\\.(\\.|".concat(tt,")+")}]},N=[v,h],S="([0-9]_*)+",C="([0-9a-fA-F]_*)+",R={className:"number",relevance:0,variants:[{match:"\\b(".concat(S,")(\\.(").concat(S,"))?([eE][+-]?(").concat(S,"))?\\b")},{match:"\\b0x(".concat(C,")(\\.(").concat(C,"))?([pP][+-]?(").concat(S,"))?\\b")},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},B=(z="")=>({className:"subst",variants:[{match:$(/\\/,z,/[0\\tnr"']/)},{match:$(/\\/,z,/u\{[0-9a-fA-F]{1,8}\}/)}]}),D=(z="")=>({className:"subst",match:$(/\\/,z,/[\t ]*(?:[\r\n]|\r\n)/)}),V=(z="")=>({className:"subst",label:"interpol",begin:$(/\\/,z,/\(/),end:/\)/}),H=(z="")=>({begin:$(z,/"""/),end:$(/"""/,z),contains:[B(z),D(z),V(z)]}),J=(z="")=>({begin:$(z,/"/),end:$(/"/,z),contains:[B(z),V(z)]}),q={className:"string",variants:[H(),H("#"),H("##"),H("###"),J(),J("#"),J("##"),J("###")]},le=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],de={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:le},ce=z=>{const ke=$(z,/\//),Ee=$(/\//,z);return{begin:ke,end:Ee,contains:[...le,{scope:"comment",begin:"#(?!.*".concat(Ee,")"),end:/$/}]}},Y={scope:"regexp",variants:[ce("###"),ce("##"),ce("#"),de]},j={match:$(/`/,pe,/`/)},te={className:"variable",match:/\$\d+/},ye={className:"variable",match:"\\$".concat(Ze,"+")},L=[j,te,ye],Z={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:di,contains:[...N,R,q]}]}},ae={scope:"keyword",match:$(/@/,re(...ci),Re(re(/\(/,/\s+/)))},ge={scope:"meta",match:$(/@/,pe)},se=[Z,ae,ge],ie={match:Re(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:$(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Ze,"+")},{className:"type",match:He,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:$(/\s+&\s+/,Re(He)),relevance:0}]},Xe={begin://,keywords:o,contains:[...i,...b,...se,v,ie]};ie.contains.push(Xe);const Qe={match:$(pe,/\s*:/),keywords:"_|0",relevance:0},Ie={begin:/\(/,end:/\)/,relevance:0,keywords:o,contains:["self",Qe,...i,Y,...b,...y,...N,R,q,...L,...se,ie]},Ce={begin://,keywords:"repeat each",contains:[...i,ie]},Ve={begin:re(Re($(pe,/\s*:/)),Re($(pe,/\s+/,pe,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:pe}]},De={begin:/\(/,end:/\)/,keywords:o,contains:[Ve,...i,...b,...N,R,q,...se,ie,Ie],endsParent:!0,illegal:/["']/},Ne={match:[/(func|macro)/,/\s+/,re(j.match,pe,bn)],className:{1:"keyword",3:"title.function"},contains:[Ce,De,n],illegal:[/\[/,/%/]},Je={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Ce,De,n],illegal:/\[|%/},Ye={match:[/operator/,/\s+/,bn],className:{1:"keyword",3:"title"}},en={begin:[/precedencegroup/,/\s+/,He],className:{1:"keyword",3:"title"},contains:[ie],keywords:[...oi,...Pn],end:/}/},nn={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},tn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},an={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,pe,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:o,contains:[Ce,...b,{begin:/:/,end:/\{/,keywords:o,contains:[{scope:"title.class.inherited",match:He},...b],relevance:0}]};for(const z of q.variants){const ke=z.contains.find(Le=>Le.label==="interpol");ke.keywords=o;const Ee=[...b,...y,...N,R,q,...L];ke.contains=[...Ee,{begin:/\(/,end:/\)/,contains:["self",...Ee]}]}return{name:"Swift",keywords:o,contains:[...i,Ne,Je,nn,tn,an,Ye,en,{beginKeywords:"import",end:/$/,contains:[...i],relevance:0},Y,...b,...y,...N,R,q,...L,...se,ie,Ie]}}const We="[A-Za-z$_][0-9A-Za-z$_]*",it=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],rt=["true","false","null","undefined","NaN","Infinity"],st=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ot=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],lt=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ct=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],dt=[].concat(lt,st,ot);function ui(e){const n=e.regex,a=(L,{after:Z})=>{const ae="",end:""},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,Z)=>{const ae=L[0].length+L.index,ge=L.input[ae];if(ge==="<"||ge===","){Z.ignoreMatch();return}ge===">"&&(a(L,{after:ae})||Z.ignoreMatch());let se;const ie=L.input.substring(ae);if(se=ie.match(/^\s*=/)){Z.ignoreMatch();return}if((se=ie.match(/^\s+extends\s+/))&&se.index===0){Z.ignoreMatch();return}}},l={$pattern:We,keyword:it,literal:rt,built_in:dt,"variable.language":ct},g="[0-9](_?[0-9])*",o="\\.(".concat(g,")"),b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:"(\\b(".concat(b,")((").concat(o,")|\\.)?|(").concat(o,"))[eE][+-]?(").concat(g,")\\b")},{begin:"\\b(".concat(b,")\\b((").concat(o,")\\b|\\.)?|(").concat(o,")\\b")},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:l,contains:[]},y={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},v={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},h={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"graphql"}},N={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},S={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},C=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,{match:/\$\d+/},p];u.contains=C.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(C)});const R=[].concat(S,u.contains),B=R.concat([{begin:/(\s*)\(/,end:/\)/,keywords:l,contains:["self"].concat(R)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B},V={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,n.concat(i,"(",n.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...st,...ot]}},J={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},q={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},le={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function de(L){return n.concat("(?!",L.join("|"),")")}const ce={match:n.concat(/\b/,de([...lt,"super","import"].map(L=>"".concat(L,"\\s*\\("))),i,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:n.concat(/\./,n.lookahead(n.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},te="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(te)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:H},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),J,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,S,{match:/\$\d+/},p,H,{scope:"attr",match:i+n.lookahead(":"),relevance:0},ye,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[S,e.REGEXP_MODE,{className:"function",begin:te,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:d},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},q,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,e.inherit(e.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,le,V,j,{match:/\$[(.]/}]}}function bi(e){const n=e.regex,a=ui(e),i=We,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],d={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[a.exports.CLASS_REFERENCE]},l={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},g=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],o={$pattern:We,keyword:it.concat(g),literal:rt,built_in:dt.concat(r),"variable.language":ct},b={className:"meta",begin:"@"+i},p=(h,N,S)=>{const C=h.contains.findIndex(R=>R.label===N);if(C===-1)throw new Error("can not find mode to replace");h.contains.splice(C,1,S)};Object.assign(a.keywords,o),a.exports.PARAMS_CONTAINS.push(b);const u=a.contains.find(h=>h.scope==="attr"),y=Object.assign({},u,{match:n.concat(i,n.lookahead(/\s*\?:/))});a.exports.PARAMS_CONTAINS.push([a.exports.CLASS_REFERENCE,u,y]),a.contains=a.contains.concat([b,d,s,y]),p(a,"shebang",e.SHEBANG()),p(a,"use_strict",l);const v=a.contains.find(h=>h.label==="func.def");return v.relevance=0,Object.assign(a,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),a}function mi(e){const n=e.regex,a={className:"string",begin:/"(""|[^/n])"C\b/},i={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},r=/\d{1,2}\/\d{1,2}\/\d{4}/,d=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,l=/\d{1,2}(:\d{1,2}){1,2}/,g={className:"literal",variants:[{begin:n.concat(/# */,n.either(d,r),/ *#/)},{begin:n.concat(/# */,l,/ *#/)},{begin:n.concat(/# */,s,/ *#/)},{begin:n.concat(/# */,n.either(d,r),/ +/,n.either(s,l),/ *#/)}]},o={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},b={className:"label",begin:/^\w+:/},p=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),u=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[a,i,g,o,b,p,u,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[u]}]}}function pi(e){e.regex;const n=e.COMMENT(/\(;/,/;\)/);n.contains.push("self");const a=e.COMMENT(/;;/,/$/),i=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],r={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},d={className:"variable",begin:/\$[\w_]+/},s={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},l={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},g={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},o={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:i},contains:[a,n,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},d,s,r,e.QUOTE_STRING_MODE,g,o,l]}}function fi(e){const n=e.regex,a=n.concat(new RegExp("[\\p{L}_]","u"),n.optional(new RegExp("[\\p{L}0-9_.-]*:","u")),new RegExp("[\\p{L}0-9_.-]*","u")),i=new RegExp("[\\p{L}0-9._:-]+","u"),r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},d={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=e.inherit(d,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),g=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),o={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[d,g,l,s,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[d,s,g,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[g]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[o],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[o],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:a,relevance:0,starts:o}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(a,/>/))),contains:[{className:"name",begin:a,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function hi(e){const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",i={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},d={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},s={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},l=e.inherit(s,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),g={className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},o={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},b={begin:/\{/,end:/\}/,contains:[o],illegal:"\\n",relevance:0},p={begin:"\\[",end:"\\]",contains:[o],illegal:"\\n",relevance:0},u=[i,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},g,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},b,p,d,s],y=[...u];return y.pop(),y.push(l),o.contains=y,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:u}}const _i={arduino:Yt,bash:ea,c:na,cpp:ta,csharp:aa,css:ua,diff:ba,go:ma,graphql:pa,ini:fa,java:ha,javascript:va,json:Na,kotlin:xa,less:Ia,lua:Da,makefile:La,markdown:Ba,objectivec:za,perl:Fa,php:$a,"php-template":Pa,plaintext:Ua,python:ja,"python-repl":qa,r:Ka,ruby:Ga,rust:Ha,scss:ni,shell:ti,sql:ai,swift:gi,typescript:bi,vbnet:mi,wasm:pi,xml:fi,yaml:hi};var mn,jn;function yi(){if(jn)return mn;jn=1;function e(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(c=>{const _=t[c],A=typeof _;(A==="object"||A==="function")&&!Object.isFrozen(_)&&e(_)}),t}class n{constructor(c){c.data===void 0&&(c.data={}),this.data=c.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function a(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function i(t,...c){const _=Object.create(null);for(const A in t)_[A]=t[A];return c.forEach(function(A){for(const K in A)_[K]=A[K]}),_}const r="",d=t=>!!t.scope,s=(t,{prefix:c})=>{if(t.startsWith("language:"))return t.replace("language:","language-");if(t.includes(".")){const _=t.split(".");return["".concat(c).concat(_.shift()),..._.map((A,K)=>"".concat(A).concat("_".repeat(K+1)))].join(" ")}return"".concat(c).concat(t)};class l{constructor(c,_){this.buffer="",this.classPrefix=_.classPrefix,c.walk(this)}addText(c){this.buffer+=a(c)}openNode(c){if(!d(c))return;const _=s(c.scope,{prefix:this.classPrefix});this.span(_)}closeNode(c){d(c)&&(this.buffer+=r)}value(){return this.buffer}span(c){this.buffer+='')}}const g=(t={})=>{const c={children:[]};return Object.assign(c,t),c};class o{constructor(){this.rootNode=g(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(c){this.top.children.push(c)}openNode(c){const _=g({scope:c});this.add(_),this.stack.push(_)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(c){return this.constructor._walk(c,this.rootNode)}static _walk(c,_){return typeof _=="string"?c.addText(_):_.children&&(c.openNode(_),_.children.forEach(A=>this._walk(c,A)),c.closeNode(_)),c}static _collapse(c){typeof c!="string"&&c.children&&(c.children.every(_=>typeof _=="string")?c.children=[c.children.join("")]:c.children.forEach(_=>{o._collapse(_)}))}}class b extends o{constructor(c){super(),this.options=c}addText(c){c!==""&&this.add(c)}startScope(c){this.openNode(c)}endScope(){this.closeNode()}__addSublanguage(c,_){const A=c.root;_&&(A.scope="language:".concat(_)),this.add(A)}toHTML(){return new l(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function p(t){return t?typeof t=="string"?t:t.source:null}function u(t){return h("(?=",t,")")}function y(t){return h("(?:",t,")*")}function v(t){return h("(?:",t,")?")}function h(...t){return t.map(c=>p(c)).join("")}function N(t){const c=t[t.length-1];return typeof c=="object"&&c.constructor===Object?(t.splice(t.length-1,1),c):{}}function S(...t){return"("+(N(t).capture?"":"?:")+t.map(c=>p(c)).join("|")+")"}function C(t){return new RegExp(t.toString()+"|").exec("").length-1}function R(t,c){const _=t&&t.exec(c);return _&&_.index===0}const B=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function D(t,{joinWith:c}){let _=0;return t.map(A=>{_+=1;const K=_;let G=p(A),w="";for(;G.length>0;){const E=B.exec(G);if(!E){w+=G;break}w+=G.substring(0,E.index),G=G.substring(E.index+E[0].length),E[0][0]==="\\"&&E[1]?w+="\\"+String(Number(E[1])+K):(w+=E[0],E[0]==="("&&_++)}return w}).map(A=>"(".concat(A,")")).join(c)}const V=/\b\B/,H="[a-zA-Z]\\w*",J="[a-zA-Z_]\\w*",q="\\b\\d+(\\.\\d+)?",le="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",de="\\b(0b[01]+)",ce="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Y=(t={})=>{const c=/^#![ ]*\//;return t.binary&&(t.begin=h(c,/.*\b/,t.binary,/\b.*/)),i({scope:"meta",begin:c,end:/$/,relevance:0,"on:begin":(_,A)=>{_.index!==0&&A.ignoreMatch()}},t)},j={begin:"\\\\[\\s\\S]",relevance:0},te={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[j]},ye={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[j]},L={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Z=function(t,c,_={}){const A=i({scope:"comment",begin:t,end:c,contains:[]},_);A.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const K=S("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return A.contains.push({begin:h(/[ ]+/,"(",K,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),A},ae=Z("//","$"),ge=Z("/\\*","\\*/"),se=Z("#","$"),ie={scope:"number",begin:q,relevance:0},Xe={scope:"number",begin:le,relevance:0},Qe={scope:"number",begin:de,relevance:0},Ie={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[j,{begin:/\[/,end:/\]/,relevance:0,contains:[j]}]},Ce={scope:"title",begin:H,relevance:0},Ve={scope:"title",begin:J,relevance:0},De={begin:"\\.\\s*"+J,relevance:0};var Ne=Object.freeze({__proto__:null,APOS_STRING_MODE:te,BACKSLASH_ESCAPE:j,BINARY_NUMBER_MODE:Qe,BINARY_NUMBER_RE:de,COMMENT:Z,C_BLOCK_COMMENT_MODE:ge,C_LINE_COMMENT_MODE:ae,C_NUMBER_MODE:Xe,C_NUMBER_RE:le,END_SAME_AS_BEGIN:function(t){return Object.assign(t,{"on:begin":(c,_)=>{_.data._beginMatch=c[1]},"on:end":(c,_)=>{_.data._beginMatch!==c[1]&&_.ignoreMatch()}})},HASH_COMMENT_MODE:se,IDENT_RE:H,MATCH_NOTHING_RE:V,METHOD_GUARD:De,NUMBER_MODE:ie,NUMBER_RE:q,PHRASAL_WORDS_MODE:L,QUOTE_STRING_MODE:ye,REGEXP_MODE:Ie,RE_STARTERS_RE:ce,SHEBANG:Y,TITLE_MODE:Ce,UNDERSCORE_IDENT_RE:J,UNDERSCORE_TITLE_MODE:Ve});function Je(t,c){t.input[t.index-1]==="."&&c.ignoreMatch()}function Ye(t,c){t.className!==void 0&&(t.scope=t.className,delete t.className)}function en(t,c){c&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=Je,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function nn(t,c){Array.isArray(t.illegal)&&(t.illegal=S(...t.illegal))}function tn(t,c){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function an(t,c){t.relevance===void 0&&(t.relevance=1)}const z=(t,c)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");const _=Object.assign({},t);Object.keys(t).forEach(A=>{delete t[A]}),t.keywords=_.keywords,t.begin=h(_.beforeMatch,u(_.begin)),t.starts={relevance:0,contains:[Object.assign(_,{endsParent:!0})]},t.relevance=0,delete _.beforeMatch},ke=["of","and","for","in","not","or","if","then","parent","list","value"],Ee="keyword";function Le(t,c,_=Ee){const A=Object.create(null);return typeof t=="string"?K(_,t.split(" ")):Array.isArray(t)?K(_,t):Object.keys(t).forEach(function(G){Object.assign(A,Le(t[G],c,G))}),A;function K(G,w){c&&(w=w.map(E=>E.toLowerCase())),w.forEach(function(E){const M=E.split("|");A[M[0]]=[G,gt(M[0],M[1])]})}}function gt(t,c){return c?Number(c):ut(t)?0:1}function ut(t){return ke.includes(t.toLowerCase())}const hn={},we=t=>{console.error(t)},_n=(t,...c)=>{console.log("WARN: ".concat(t),...c)},xe=(t,c)=>{hn["".concat(t,"/").concat(c)]||(console.log("Deprecated as of ".concat(t,". ").concat(c)),hn["".concat(t,"/").concat(c)]=!0)},Be=new Error;function yn(t,c,{key:_}){let A=0;const K=t[_],G={},w={};for(let E=1;E<=c.length;E++)w[E+A]=K[E],G[E+A]=!0,A+=C(c[E-1]);t[_]=w,t[_]._emit=G,t[_]._multi=!0}function bt(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw we("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Be;if(typeof t.beginScope!="object"||t.beginScope===null)throw we("beginScope must be object"),Be;yn(t,t.begin,{key:"beginScope"}),t.begin=D(t.begin,{joinWith:""})}}function mt(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw we("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Be;if(typeof t.endScope!="object"||t.endScope===null)throw we("endScope must be object"),Be;yn(t,t.end,{key:"endScope"}),t.end=D(t.end,{joinWith:""})}}function pt(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function ft(t){pt(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),bt(t),mt(t)}function ht(t){function c(w,E){return new RegExp(p(w),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(E?"g":""))}class _{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(E,M){M.position=this.position++,this.matchIndexes[this.matchAt]=M,this.regexes.push([M,E]),this.matchAt+=C(E)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const E=this.regexes.map(M=>M[1]);this.matcherRe=c(D(E,{joinWith:"|"}),!0),this.lastIndex=0}exec(E){this.matcherRe.lastIndex=this.lastIndex;const M=this.matcherRe.exec(E);if(!M)return null;const Q=M.findIndex((Te,sn)=>sn>0&&Te!==void 0),W=this.matchIndexes[Q];return M.splice(0,Q),Object.assign(M,W)}}class A{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(E){if(this.multiRegexes[E])return this.multiRegexes[E];const M=new _;return this.rules.slice(E).forEach(([Q,W])=>M.addRule(Q,W)),M.compile(),this.multiRegexes[E]=M,M}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(E,M){this.rules.push([E,M]),M.type==="begin"&&this.count++}exec(E){const M=this.getMatcher(this.regexIndex);M.lastIndex=this.lastIndex;let Q=M.exec(E);if(this.resumingScanAtSamePosition()&&!(Q&&Q.index===this.lastIndex)){const W=this.getMatcher(0);W.lastIndex=this.lastIndex+1,Q=W.exec(E)}return Q&&(this.regexIndex+=Q.position+1,this.regexIndex===this.count&&this.considerAll()),Q}}function K(w){const E=new A;return w.contains.forEach(M=>E.addRule(M.begin,{rule:M,type:"begin"})),w.terminatorEnd&&E.addRule(w.terminatorEnd,{type:"end"}),w.illegal&&E.addRule(w.illegal,{type:"illegal"}),E}function G(w,E){const M=w;if(w.isCompiled)return M;[Ye,tn,ft,z].forEach(W=>W(w,E)),t.compilerExtensions.forEach(W=>W(w,E)),w.__beforeBegin=null,[en,nn,an].forEach(W=>W(w,E)),w.isCompiled=!0;let Q=null;return typeof w.keywords=="object"&&w.keywords.$pattern&&(w.keywords=Object.assign({},w.keywords),Q=w.keywords.$pattern,delete w.keywords.$pattern),Q=Q||/\w+/,w.keywords&&(w.keywords=Le(w.keywords,t.case_insensitive)),M.keywordPatternRe=c(Q,!0),E&&(w.begin||(w.begin=/\B|\b/),M.beginRe=c(M.begin),!w.end&&!w.endsWithParent&&(w.end=/\B|\b/),w.end&&(M.endRe=c(M.end)),M.terminatorEnd=p(M.end)||"",w.endsWithParent&&E.terminatorEnd&&(M.terminatorEnd+=(w.end?"|":"")+E.terminatorEnd)),w.illegal&&(M.illegalRe=c(w.illegal)),w.contains||(w.contains=[]),w.contains=[].concat(...w.contains.map(function(W){return _t(W==="self"?w:W)})),w.contains.forEach(function(W){G(W,M)}),w.starts&&G(w.starts,E),M.matcher=K(M),M}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=i(t.classNameAliases||{}),G(t)}function En(t){return t?t.endsWithParent||En(t.starts):!1}function _t(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(c){return i(t,{variants:null},c)})),t.cachedVariants?t.cachedVariants:En(t)?i(t,{starts:t.starts?i(t.starts):null}):Object.isFrozen(t)?i(t):t}var yt="11.11.1";class Et extends Error{constructor(c,_){super(c),this.name="HTMLInjectionError",this.html=_}}const rn=a,wn=i,vn=Symbol("nomatch"),wt=7,Nn=function(t){const c=Object.create(null),_=Object.create(null),A=[];let K=!0;const G="Could not find the language '{}', did you forget to load/include a language module?",w={disableAutodetect:!0,name:"Plain text",contains:[]};let E={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:b};function M(m){return E.noHighlightRe.test(m)}function Q(m){let x=m.className+" ";x+=m.parentNode?m.parentNode.className:"";const I=E.languageDetectRe.exec(x);if(I){const P=he(I[1]);return P||(_n(G.replace("{}",I[1])),_n("Falling back to no-highlight mode for this block.",m)),P?I[1]:"no-highlight"}return x.split(/\s+/).find(P=>M(P)||he(P))}function W(m,x,I){let P="",X="";typeof x=="object"?(P=m,I=x.ignoreIllegals,X=x.language):(xe("10.7.0","highlight(lang, code, ...args) has been deprecated."),xe("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),X=m,P=x),I===void 0&&(I=!0);const ue={code:P,language:X};Fe("before:highlight",ue);const _e=ue.result?ue.result:Te(ue.language,ue.code,I);return _e.code=ue.code,Fe("after:highlight",_e),_e}function Te(m,x,I,P){const X=Object.create(null);function ue(f,k){return f.keywords[k]}function _e(){if(!O.keywords){ee.addText(U);return}let f=0;O.keywordPatternRe.lastIndex=0;let k=O.keywordPatternRe.exec(U),T="";for(;k;){T+=U.substring(f,k.index);const F=me.case_insensitive?k[0].toLowerCase():k[0],ne=ue(O,F);if(ne){const[fe,Ft]=ne;if(ee.addText(T),T="",X[F]=(X[F]||0)+1,X[F]<=wt&&(Ue+=Ft),fe.startsWith("_"))T+=k[0];else{const $t=me.classNameAliases[fe]||fe;be(k[0],$t)}}else T+=k[0];f=O.keywordPatternRe.lastIndex,k=O.keywordPatternRe.exec(U)}T+=U.substring(f),ee.addText(T)}function $e(){if(U==="")return;let f=null;if(typeof O.subLanguage=="string"){if(!c[O.subLanguage]){ee.addText(U);return}f=Te(O.subLanguage,U,!0,Tn[O.subLanguage]),Tn[O.subLanguage]=f._top}else f=on(U,O.subLanguage.length?O.subLanguage:null);O.relevance>0&&(Ue+=f.relevance),ee.__addSublanguage(f._emitter,f.language)}function oe(){O.subLanguage!=null?$e():_e(),U=""}function be(f,k){f!==""&&(ee.startScope(k),ee.addText(f),ee.endScope())}function Mn(f,k){let T=1;const F=k.length-1;for(;T<=F;){if(!f._emit[T]){T++;continue}const ne=me.classNameAliases[f[T]]||f[T],fe=k[T];ne?be(fe,ne):(U=fe,_e(),U=""),T++}}function On(f,k){return f.scope&&typeof f.scope=="string"&&ee.openNode(me.classNameAliases[f.scope]||f.scope),f.beginScope&&(f.beginScope._wrap?(be(U,me.classNameAliases[f.beginScope._wrap]||f.beginScope._wrap),U=""):f.beginScope._multi&&(Mn(f.beginScope,k),U="")),O=Object.create(f,{parent:{value:O}}),O}function An(f,k,T){let F=R(f.endRe,T);if(F){if(f["on:end"]){const ne=new n(f);f["on:end"](k,ne),ne.isMatchIgnored&&(F=!1)}if(F){for(;f.endsParent&&f.parent;)f=f.parent;return f}}if(f.endsWithParent)return An(f.parent,k,T)}function It(f){return O.matcher.regexIndex===0?(U+=f[0],1):(gn=!0,0)}function Dt(f){const k=f[0],T=f.rule,F=new n(T),ne=[T.__beforeBegin,T["on:begin"]];for(const fe of ne)if(fe&&(fe(f,F),F.isMatchIgnored))return It(k);return T.skip?U+=k:(T.excludeBegin&&(U+=k),oe(),!T.returnBegin&&!T.excludeBegin&&(U=k)),On(T,f),T.returnBegin?0:k.length}function Lt(f){const k=f[0],T=x.substring(f.index),F=An(O,f,T);if(!F)return vn;const ne=O;O.endScope&&O.endScope._wrap?(oe(),be(k,O.endScope._wrap)):O.endScope&&O.endScope._multi?(oe(),Mn(O.endScope,f)):ne.skip?U+=k:(ne.returnEnd||ne.excludeEnd||(U+=k),oe(),ne.excludeEnd&&(U=k));do O.scope&&ee.closeNode(),!O.skip&&!O.subLanguage&&(Ue+=O.relevance),O=O.parent;while(O!==F.parent);return F.starts&&On(F.starts,f),ne.returnEnd?0:k.length}function Bt(){const f=[];for(let k=O;k!==me;k=k.parent)k.scope&&f.unshift(k.scope);f.forEach(k=>ee.openNode(k))}let Pe={};function Cn(f,k){const T=k&&k[0];if(U+=f,T==null)return oe(),0;if(Pe.type==="begin"&&k.type==="end"&&Pe.index===k.index&&T===""){if(U+=x.slice(k.index,k.index+1),!K){const F=new Error("0 width match regex (".concat(m,")"));throw F.languageName=m,F.badRule=Pe.rule,F}return 1}if(Pe=k,k.type==="begin")return Dt(k);if(k.type==="illegal"&&!I){const F=new Error('Illegal lexeme "'+T+'" for mode "'+(O.scope||"")+'"');throw F.mode=O,F}else if(k.type==="end"){const F=Lt(k);if(F!==vn)return F}if(k.type==="illegal"&&T==="")return U+="\n",1;if(dn>1e5&&dn>k.index*3)throw new Error("potential infinite loop, way more iterations than matches");return U+=T,T.length}const me=he(m);if(!me)throw we(G.replace("{}",m)),new Error('Unknown language: "'+m+'"');const zt=ht(me);let cn="",O=P||zt;const Tn={},ee=new E.__emitter(E);Bt();let U="",Ue=0,ve=0,dn=0,gn=!1;try{if(me.__emitTokens)me.__emitTokens(x,ee);else{for(O.matcher.considerAll();;){dn++,gn?gn=!1:O.matcher.considerAll(),O.matcher.lastIndex=ve;const f=O.matcher.exec(x);if(!f)break;const k=x.substring(ve,f.index),T=Cn(k,f);ve=f.index+T}Cn(x.substring(ve))}return ee.finalize(),cn=ee.toHTML(),{language:m,value:cn,relevance:Ue,illegal:!1,_emitter:ee,_top:O}}catch(f){if(f.message&&f.message.includes("Illegal"))return{language:m,value:rn(x),illegal:!0,relevance:0,_illegalBy:{message:f.message,index:ve,context:x.slice(ve-100,ve+100),mode:f.mode,resultSoFar:cn},_emitter:ee};if(K)return{language:m,value:rn(x),illegal:!1,relevance:0,errorRaised:f,_emitter:ee,_top:O};throw f}}function sn(m){const x={value:rn(m),illegal:!1,relevance:0,_top:w,_emitter:new E.__emitter(E)};return x._emitter.addText(m),x}function on(m,x){x=x||E.languages||Object.keys(c);const I=sn(m),P=x.filter(he).filter(Sn).map(oe=>Te(oe,m,!1));P.unshift(I);const X=P.sort((oe,be)=>{if(oe.relevance!==be.relevance)return be.relevance-oe.relevance;if(oe.language&&be.language){if(he(oe.language).supersetOf===be.language)return 1;if(he(be.language).supersetOf===oe.language)return-1}return 0}),[ue,_e]=X,$e=ue;return $e.secondBest=_e,$e}function vt(m,x,I){const P=x&&_[x]||I;m.classList.add("hljs"),m.classList.add("language-".concat(P))}function ln(m){let x=null;const I=Q(m);if(M(I))return;if(Fe("before:highlightElement",{el:m,language:I}),m.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",m);return}if(m.children.length>0&&(E.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(m)),E.throwUnescapedHTML))throw new Et("One of your code blocks includes unescaped HTML.",m.innerHTML);x=m;const P=x.textContent,X=I?W(P,{language:I,ignoreIllegals:!0}):on(P);m.innerHTML=X.value,m.dataset.highlighted="yes",vt(m,I,X.language),m.result={language:X.language,re:X.relevance,relevance:X.relevance},X.secondBest&&(m.secondBest={language:X.secondBest.language,relevance:X.secondBest.relevance}),Fe("after:highlightElement",{el:m,result:X,text:P})}function Nt(m){E=wn(E,m)}const kt=()=>{ze(),xe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function xt(){ze(),xe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let kn=!1;function ze(){function m(){ze()}if(document.readyState==="loading"){kn||window.addEventListener("DOMContentLoaded",m,!1),kn=!0;return}document.querySelectorAll(E.cssSelector).forEach(ln)}function St(m,x){let I=null;try{I=x(t)}catch(P){if(we("Language definition for '{}' could not be registered.".replace("{}",m)),K)we(P);else throw P;I=w}I.name||(I.name=m),c[m]=I,I.rawDefinition=x.bind(null,t),I.aliases&&xn(I.aliases,{languageName:m})}function Mt(m){delete c[m];for(const x of Object.keys(_))_[x]===m&&delete _[x]}function Ot(){return Object.keys(c)}function he(m){return m=(m||"").toLowerCase(),c[m]||c[_[m]]}function xn(m,{languageName:x}){typeof m=="string"&&(m=[m]),m.forEach(I=>{_[I.toLowerCase()]=x})}function Sn(m){const x=he(m);return x&&!x.disableAutodetect}function At(m){m["before:highlightBlock"]&&!m["before:highlightElement"]&&(m["before:highlightElement"]=x=>{m["before:highlightBlock"](Object.assign({block:x.el},x))}),m["after:highlightBlock"]&&!m["after:highlightElement"]&&(m["after:highlightElement"]=x=>{m["after:highlightBlock"](Object.assign({block:x.el},x))})}function Ct(m){At(m),A.push(m)}function Tt(m){const x=A.indexOf(m);x!==-1&&A.splice(x,1)}function Fe(m,x){const I=m;A.forEach(function(P){P[I]&&P[I](x)})}function Rt(m){return xe("10.7.0","highlightBlock will be removed entirely in v12.0"),xe("10.7.0","Please use highlightElement now."),ln(m)}Object.assign(t,{highlight:W,highlightAuto:on,highlightAll:ze,highlightElement:ln,highlightBlock:Rt,configure:Nt,initHighlighting:kt,initHighlightingOnLoad:xt,registerLanguage:St,unregisterLanguage:Mt,listLanguages:Ot,getLanguage:he,registerAliases:xn,autoDetection:Sn,inherit:wn,addPlugin:Ct,removePlugin:Tt}),t.debugMode=function(){K=!1},t.safeMode=function(){K=!0},t.versionString=yt,t.regex={concat:h,lookahead:u,either:S,optional:v,anyNumberOfTimes:y};for(const m in Ne)typeof Ne[m]=="object"&&e(Ne[m]);return Object.assign(t,Ne),t},Se=Nn({});return Se.newInstance=()=>Nn({}),mn=Se,Se.HighlightJS=Se,Se.default=Se,mn}var Ei=yi();const wi=Ut(Ei),qn={},vi="hljs-";function Ni(e){const n=wi.newInstance();return e&&d(e),{highlight:a,highlightAuto:i,listLanguages:r,register:d,registerAlias:s,registered:l};function a(g,o,b){const p=b||qn,u=typeof p.prefix=="string"?p.prefix:vi;if(!n.getLanguage(g))throw new Error("Unknown language: `"+g+"` is not registered");n.configure({__emitter:ki,classPrefix:u});const y=n.highlight(o,{ignoreIllegals:!0,language:g});if(y.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:y.errorRaised});const v=y._emitter.root,h=v.data;return h.language=y.language,h.relevance=y.relevance,v}function i(g,o){const b=(o||qn).subset||r();let p=-1,u=0,y;for(;++pu&&(u=h.data.relevance,y=h)}return y||{type:"root",children:[],data:{language:void 0,relevance:u}}}function r(){return n.listLanguages()}function d(g,o){if(typeof g=="string")n.registerLanguage(g,o);else{let b;for(b in g)Object.hasOwn(g,b)&&n.registerLanguage(b,g[b])}}function s(g,o){if(typeof g=="string")n.registerAliases(typeof o=="string"?o:[...o],{languageName:g});else{let b;for(b in g)if(Object.hasOwn(g,b)){const p=g[b];n.registerAliases(typeof p=="string"?p:[...p],{languageName:b})}}}function l(g){return!!n.getLanguage(g)}}class ki{constructor(n){this.options=n,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(n){if(n==="")return;const a=this.stack[this.stack.length-1],i=a.children[a.children.length-1];i&&i.type==="text"?i.value+=n:a.children.push({type:"text",value:n})}startScope(n){this.openNode(String(n))}endScope(){this.closeNode()}__addSublanguage(n,a){const i=this.stack[this.stack.length-1],r=n.root.children;a?i.children.push({type:"element",tagName:"span",properties:{className:[a]},children:r}):i.children.push(...r)}openNode(n){const a=this,i=n.split(".").map(function(s,l){return l?s+"_".repeat(l):a.options.classPrefix+s}),r=this.stack[this.stack.length-1],d={type:"element",tagName:"span",properties:{className:i},children:[]};r.children.push(d),this.stack.push(d)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const xi={};function Ci(e){const n=e||xi,a=n.aliases,i=n.detect||!1,r=n.languages||_i,d=n.plainText,s=n.prefix,l=n.subset;let g="hljs";const o=Ni(r);if(a&&o.registerAlias(a),s){const b=s.indexOf("-");g=b===-1?s:s.slice(0,b)}return function(b,p){jt(b,"element",function(u,y,v){if(u.tagName!=="code"||!v||v.type!=="element"||v.tagName!=="pre")return;const h=Si(u);if(h===!1||!h&&!i||h&&d&&d.includes(h))return;Array.isArray(u.properties.className)||(u.properties.className=[]),u.properties.className.includes(g)||u.properties.className.unshift(g);const N=Gt(u,{whitespace:"pre"});let S;try{S=h?o.highlight(h,N,{prefix:s}):o.highlightAuto(N,{prefix:s,subset:l})}catch(C){const R=C;if(h&&/Unknown language/.test(R.message)){p.message("Cannot highlight as `"+h+"`, it’s not registered",{ancestors:[v,u],cause:R,place:u.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw R}!h&&S.data&&S.data.language&&u.properties.className.push("language-"+S.data.language),S.children.length>0&&(u.children=S.children)})}}function Si(e){const n=e.properties.className;let a=-1;if(!Array.isArray(n))return;let i;for(;++ao&&(o=b):b&&(o!==void 0&&o>-1&&g.push("\n".repeat(o)||" "),o=-1,g.push(b))}return g.join("")}function Gn(e,n,a){return e.type==="element"?Ht(e,n,a):e.type==="text"?a.whitespace==="normal"?Hn(e,a):Zt(e):[]}function Ht(e,n,a){const i=Zn(e,a),r=e.children||[];let d=-1,s=[];if(Kt(e))return s;let l,g;for(pn(e)||Bn(e)&&Rn(n,e,Bn)?g="\n":qt(e)?(l=2,g=2):Kn(e)&&(l=1,g=1);++d]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},g={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},p=n.optional(r)+e.IDENT_RE+"\\s*\\(",u=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],y=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],v=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],h=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],N={type:y,keyword:u,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:v},S={className:"function.dispatch",relevance:0,keywords:{_hint:h},begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},C=[S,o,s,a,e.C_BLOCK_COMMENT_MODE,g,l],R={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:N,contains:C.concat([{begin:/\(/,end:/\)/,keywords:N,contains:C.concat(["self"]),relevance:0}]),relevance:0},B={className:"function",begin:"("+d+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:N,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:N,relevance:0},{begin:p,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,g]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,l,g,s,{begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,l,g,s]}]},s,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:N,illegal:"",keywords:N,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:N},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Yt(e){const n={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},a=Jt(e),i=a.keywords;return i.type=[...i.type,...n.type],i.literal=[...i.literal,...n.literal],i.built_in=[...i.built_in,...n.built_in],i._hints=n._hints,a.name="Arduino",a.aliases=["ino"],a.supersetOf="cpp",a}function ea(e){const n=e.regex,a={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[a]}]};Object.assign(a,{className:"variable",variants:[{begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const r={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},d=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},l={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a,r]};r.contains.push(l);const g={match:/\\"/},o={className:"string",begin:/'/,end:/'/},b={match:/\\'/},p={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,a]},u=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],y=e.SHEBANG({binary:"(".concat(u.join("|"),")"),relevance:10}),v={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},h=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],N=["true","false"],S={match:/(\/[a-z._-]+)+/},C=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],R=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],B=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],D=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:h,literal:N,built_in:[...C,...R,"set","shopt",...B,...D]},contains:[y,e.SHEBANG(),v,p,d,s,S,l,g,o,b,a]}}function na(e){const n=e.regex,a=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",d="("+i+"|"+n.optional(r)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},g={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},p=n.optional(r)+e.IDENT_RE+"\\s*\\(",u={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},y=[o,s,a,e.C_BLOCK_COMMENT_MODE,g,l],v={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:y.concat([{begin:/\(/,end:/\)/,keywords:u,contains:y.concat(["self"]),relevance:0}]),relevance:0},h={begin:"("+d+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:u,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,l,g,s,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,l,g,s]}]},s,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C",aliases:["h"],keywords:u,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:o,strings:l,keywords:u}}}function ta(e){const n=e.regex,a=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",d="(?!struct)("+i+"|"+n.optional(r)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},g={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:n.optional(r)+e.IDENT_RE,relevance:0},p=n.optional(r)+e.IDENT_RE+"\\s*\\(",u=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],y=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],v=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],h=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],N={type:y,keyword:u,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:v},S={className:"function.dispatch",relevance:0,keywords:{_hint:h},begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},C=[S,o,s,a,e.C_BLOCK_COMMENT_MODE,g,l],R={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:N,contains:C.concat([{begin:/\(/,end:/\)/,keywords:N,contains:C.concat(["self"]),relevance:0}]),relevance:0},B={className:"function",begin:"("+d+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:N,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:N,relevance:0},{begin:p,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,g]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,l,g,s,{begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,l,g,s]}]},s,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:N,illegal:"",keywords:N,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:N},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function aa(e){const n=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],a=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],i=["default","false","null","true"],r=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],d=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],s={keyword:r.concat(d),built_in:n,literal:i},l=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),g={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},o={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},b={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},p=e.inherit(b,{illegal:/\n/}),u={className:"subst",begin:/\{/,end:/\}/,keywords:s},y=e.inherit(u,{illegal:/\n/}),v={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,y]},h={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},u]},N=e.inherit(h,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},y]});u.contains=[h,v,b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,g,e.C_BLOCK_COMMENT_MODE],y.contains=[N,v,p,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,g,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const S={variants:[o,h,v,b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},C={begin:"<",end:">",contains:[{beginKeywords:"in out"},l]},R=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",B={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:s,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},S,g,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},l,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[l,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+R+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:s,contains:[{beginKeywords:a.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,C],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,relevance:0,contains:[S,g,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},B]}}const ia=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),ra=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],sa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],oa=[...ra,...sa],la=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),ca=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),da=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),ga=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function ua(e){const n=e.regex,a=ia(e),i={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",d=/@-?\w[\w]*(-\w+)*/,s="[a-zA-Z-][a-zA-Z0-9_-]*",l=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[a.BLOCK_COMMENT,i,a.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+s,relevance:0},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+ca.join("|")+")"},{begin:":(:)?("+da.join("|")+")"}]},a.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ga.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[a.BLOCK_COMMENT,a.HEXCOLOR,a.IMPORTANT,a.CSS_NUMBER_MODE,...l,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...l,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},a.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:d},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:la.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...l,a.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+oa.join("|")+")\\b"}]}}function ba(e){const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function ma(e){const n={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:n,illegal:"Wn(e,n,a-1))}function ha(e){const n=e.regex,a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",i=a+Wn("(?:<"+a+"~~~(?:\\s*,\\s*"+a+"~~~)*>)?",/~~~/g,2),r={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},d={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:r,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[n.concat(/(?!else)/,a),/\s+/,a,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,a],className:{1:"keyword",3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+i+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:r,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:[d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,zn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},zn,d]}}const Fn="[A-Za-z$_][0-9A-Za-z$_]*",_a=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],ya=["true","false","null","undefined","NaN","Infinity"],Xn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Qn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Vn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ea=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],wa=[].concat(Vn,Xn,Qn);function va(e){const n=e.regex,a=(L,{after:Z})=>{const ae="",end:""},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,Z)=>{const ae=L[0].length+L.index,ge=L.input[ae];if(ge==="<"||ge===","){Z.ignoreMatch();return}ge===">"&&(a(L,{after:ae})||Z.ignoreMatch());let se;const ie=L.input.substring(ae);if(se=ie.match(/^\s*=/)){Z.ignoreMatch();return}if((se=ie.match(/^\s+extends\s+/))&&se.index===0){Z.ignoreMatch();return}}},l={$pattern:Fn,keyword:_a,literal:ya,built_in:wa,"variable.language":Ea},g="[0-9](_?[0-9])*",o="\\.(".concat(g,")"),b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:"(\\b(".concat(b,")((").concat(o,")|\\.)?|(").concat(o,"))[eE][+-]?(").concat(g,")\\b")},{begin:"\\b(".concat(b,")\\b((").concat(o,")\\b|\\.)?|(").concat(o,")\\b")},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:l,contains:[]},y={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},v={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},h={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"graphql"}},N={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},S={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},C=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,{match:/\$\d+/},p];u.contains=C.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(C)});const R=[].concat(S,u.contains),B=R.concat([{begin:/(\s*)\(/,end:/\)/,keywords:l,contains:["self"].concat(R)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B},V={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,n.concat(i,"(",n.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Xn,...Qn]}},J={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},q={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},le={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function de(L){return n.concat("(?!",L.join("|"),")")}const ce={match:n.concat(/\b/,de([...Vn,"super","import"].map(L=>"".concat(L,"\\s*\\("))),i,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:n.concat(/\./,n.lookahead(n.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},te="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(te)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:H},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),J,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,S,{match:/\$\d+/},p,H,{scope:"attr",match:i+n.lookahead(":"),relevance:0},ye,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[S,e.REGEXP_MODE,{className:"function",begin:te,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:d},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},q,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,e.inherit(e.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,le,V,j,{match:/\$[(.]/}]}}function Na(e){const n={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},a={match:/[{}[\],:]/,className:"punctuation",relevance:0},i=["true","false","null"],r={scope:"literal",beginKeywords:i.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:i},contains:[n,a,e.QUOTE_STRING_MODE,r,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Oe="[0-9](_*[0-9])*",Ke="\\.(".concat(Oe,")"),Ge="[0-9a-fA-F](_*[0-9a-fA-F])*",ka={className:"number",variants:[{begin:"(\\b(".concat(Oe,")((").concat(Ke,")|\\.)?|(").concat(Ke,"))[eE][+-]?(").concat(Oe,")[fFdD]?\\b")},{begin:"\\b(".concat(Oe,")((").concat(Ke,")[fFdD]?\\b|\\.([fFdD]\\b)?)")},{begin:"(".concat(Ke,")[fFdD]?\\b")},{begin:"\\b(".concat(Oe,")[fFdD]\\b")},{begin:"\\b0[xX]((".concat(Ge,")\\.?|(").concat(Ge,")?\\.(").concat(Ge,"))[pP][+-]?(").concat(Oe,")[fFdD]?\\b")},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:"\\b0[xX](".concat(Ge,")[lL]?\\b")},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function xa(e){const n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},r={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},d={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},s={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[d,r]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,d,r]}]};r.contains.push(s);const l={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},g={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:"string"}),"self"]}]},o=ka,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),p={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},u=p;return u.variants[1].contains=[p],p.variants[1].contains=[u],{name:"Kotlin",aliases:["kt","kts"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,a,i,l,g,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[p,e.C_LINE_COMMENT_MODE,b],relevance:0},e.C_LINE_COMMENT_MODE,b,l,g,s,e.C_NUMBER_MODE]},b]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},l,g]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},o]}}const Sa=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Ma=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Oa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Aa=[...Ma,...Oa],Ca=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Jn=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Yn=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Ta=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),Ra=Jn.concat(Yn).sort().reverse();function Ia(e){const n=Sa(e),a=Ra,i="and or not only",r="[\\w-]+",d="("+r+"|@\\{"+r+"\\})",s=[],l=[],g=function(R){return{className:"string",begin:"~?"+R+".*?"+R}},o=function(R,B,D){return{className:R,begin:B,relevance:D}},b={$pattern:/[a-z-]+/,keyword:i,attribute:Ca.join(" ")},p={begin:"\\(",end:"\\)",contains:l,keywords:b,relevance:0};l.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g("'"),g('"'),n.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},n.HEXCOLOR,p,o("variable","@@?"+r,10),o("variable","@\\{"+r+"\\}"),o("built_in","~?`[^`]*?`"),{className:"attribute",begin:r+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const u=l.concat({begin:/\{/,end:/\}/,contains:s}),y={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(l)},v={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Ta.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:l}}]},h={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:b,returnEnd:!0,contains:l,relevance:0}},N={className:"variable",variants:[{begin:"@"+r+"\\s*:",relevance:15},{begin:"@"+r}],starts:{end:"[;}]",returnEnd:!0,contains:u}},S={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,y,o("keyword","all\\b"),o("variable","@\\{"+r+"\\}"),{begin:"\\b("+Aa.join("|")+")\\b",className:"selector-tag"},n.CSS_NUMBER_MODE,o("selector-tag",d,0),o("selector-id","#"+d),o("selector-class","\\."+d,0),o("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Jn.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Yn.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:u},{begin:"!important"},n.FUNCTION_DISPATCH]},C={begin:r+":(:)?(".concat(a.join("|"),")"),returnBegin:!0,contains:[S]};return s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,h,N,C,v,S,y,n.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:s}}function Da(e){const n="\\[=*\\[",a="\\]=*\\]",i={begin:n,end:a,contains:["self"]},r=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,a,{contains:[i],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:r.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:r}].concat(r)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:n,end:a,contains:[i],relevance:5}])}}function La(e){const n={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},d={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},s={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},l=/[A-Za-z][A-Za-z0-9+.-]*/,g={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:n.concat(/\[.+?\]\(/,l,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},o={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},b={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},p=e.inherit(o,{contains:[]}),u=e.inherit(b,{contains:[]});o.contains.push(u),b.contains.push(p);let y=[a,g];return[o,b,p,u].forEach(v=>{v.contains=v.contains.concat(y)}),y=y.concat(o,b),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:y},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:y}]}]},a,d,o,b,{className:"quote",begin:"^>\\s+",contains:y,end:"$"},r,i,g,s,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function za(e){const n={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},a=/[a-zA-Z@][a-zA-Z0-9_]*/,i={"variable.language":["this","super"],$pattern:a,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},r={$pattern:a,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:i,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+r.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:r,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function Fa(e){const n=e.regex,a=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],i=/[dualxmsipngr]{0,12}/,r={$pattern:/[\w.]+/,keyword:a.join(" ")},d={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:r},s={begin:/->\{/,end:/\}/},l={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},g={scope:"variable",variants:[{begin:/\$\d/},{begin:n.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[l]},o={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},b=[e.BACKSLASH_ESCAPE,d,g],p=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],u=(h,N,S="\\1")=>{const C=S==="\\1"?S:n.concat(S,N);return n.concat(n.concat("(?:",h,")"),N,/(?:\\.|[^\\\/])*?/,C,/(?:\\.|[^\\\/])*?/,S,i)},y=(h,N,S)=>n.concat(n.concat("(?:",h,")"),N,/(?:\\.|[^\\\/])*?/,S,i),v=[g,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),s,{className:"string",contains:b,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},o,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:u("s|tr|y",n.either(...p,{capture:!0}))},{begin:u("s|tr|y","\\(","\\)")},{begin:u("s|tr|y","\\[","\\]")},{begin:u("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:y("(?:m|qr)?",/\//,/\//)},{begin:y("m|qr",n.either(...p,{capture:!0}),/\1/)},{begin:y("m|qr",/\(/,/\)/)},{begin:y("m|qr",/\[/,/\]/)},{begin:y("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,l]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,l,o]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return d.contains=v,s.contains=v,{name:"Perl",aliases:["pl","pm"],keywords:r,contains:v}}function $a(e){const n=e.regex,a=/(?![A-Za-z0-9])(?![$])/,i=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,a),r=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,a),d=n.concat(/[A-Z]+/,a),s={scope:"variable",match:"\\$+"+i},l={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},g={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null}),b=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(g)}),p={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(g),"on:begin":(Y,j)=>{j.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,j)=>{j.data._beginMatch!==Y[1]&&j.ignoreMatch()}},u=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),y="[ \n]",v={scope:"string",variants:[b,o,p,u]},h={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},N=["false","null","true"],S=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],C=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],R={keyword:S,literal:(Y=>{const j=[];return Y.forEach(te=>{j.push(te),te.toLowerCase()===te?j.push(te.toUpperCase()):j.push(te.toLowerCase())}),j})(N),built_in:C},B=Y=>Y.map(j=>j.replace(/\|\d+$/,"")),D={variants:[{match:[/new/,n.concat(y,"+"),n.concat("(?!",B(C).join("\\b|"),"\\b)"),r],scope:{1:"keyword",4:"title.class"}}]},V=n.concat(i,"\\b(?!\\()"),H={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),V],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[r,n.concat(/::/,n.lookahead(/(?!class\b)/)),V],scope:{1:"title.class",3:"variable.constant"}},{match:[r,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[r,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},J={scope:"attr",match:n.concat(i,n.lookahead(":"),n.lookahead(/(?!::)/))},q={relevance:0,begin:/\(/,end:/\)/,keywords:R,contains:[J,s,H,e.C_BLOCK_COMMENT_MODE,v,h,D]},le={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",B(S).join("\\b|"),"|",B(C).join("\\b|"),"\\b)"),i,n.concat(y,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[q]};q.contains.push(le);const de=[J,H,e.C_BLOCK_COMMENT_MODE,v,h,D],ce={begin:n.concat(/#\[\s*\\?/,n.either(r,d)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:N,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:N,keyword:["new","array"]},contains:["self",...de]},...de,{scope:"meta",variants:[{match:r},{match:d}]}]};return{case_insensitive:!1,keywords:R,contains:[ce,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},l,{scope:"variable.language",match:/\$this\b/},s,le,H,{match:[/const/,/\s/,i],scope:{1:"keyword",3:"variable.constant"}},D,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:R,contains:["self",ce,s,H,e.C_BLOCK_COMMENT_MODE,v,h]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},v,h]}}function Pa(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function Ua(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function ja(e){const n=e.regex,a=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],r={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},d={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,end:/\}/,keywords:r,illegal:/#/},l={begin:/\{\{/,relevance:0},g={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,d,l,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,d,l,s]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,l,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,l,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},o="[0-9](_?[0-9])*",b="(\\b(".concat(o,"))?\\.(").concat(o,")|\\b(").concat(o,")\\."),p="\\b|".concat(i.join("|")),u={className:"number",relevance:0,variants:[{begin:"(\\b(".concat(o,")|(").concat(b,"))[eE][+-]?(").concat(o,")[jJ]?(?=").concat(p,")")},{begin:"(".concat(b,")[jJ]?")},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=".concat(p,")")},{begin:"\\b0[bB](_?[01])+[lL]?(?=".concat(p,")")},{begin:"\\b0[oO](_?[0-7])+[lL]?(?=".concat(p,")")},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=".concat(p,")")},{begin:"\\b(".concat(o,")[jJ](?=").concat(p,")")}]},y={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:r,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},v={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:r,contains:["self",d,u,g,e.HASH_COMMENT_MODE]}]};return s.contains=[g,u,d],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:r,illegal:/(<\/|\?)|=>/,contains:[d,u,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},g,y,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[v]},{variants:[{match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,v,g]}]}}function qa(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function Ka(e){const n=e.regex,a=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,i=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),r=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,d=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:a,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:a},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[r,i]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,i]},{scope:{1:"punctuation",2:"number"},match:[d,i]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,i]}]},{scope:{3:"operator"},match:[a,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:r},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:d},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function Ga(e){const n=e.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),r=n.concat(i,/(::\w+)*/),d={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},g=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],o={className:"subst",begin:/#\{/,end:/\}/,keywords:d},b={className:"string",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,o]})]}]},p="[1-9](_?[0-9])*|0",u="[0-9](_?[0-9])*",y={className:"number",relevance:0,variants:[{begin:"\\b(".concat(p,")(\\.(").concat(u,"))?([eE][+-]?(").concat(u,")|r)?i?\\b")},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},v={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:d}]},h=[b,{variants:[{match:[/class\s+/,r,/\s+<\s+/,r]},{match:[/\b(class|module)\s+/,r]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:d},{match:[/(include|extend)\s+/,r],scope:{2:"title.class"},keywords:d},{relevance:0,match:[r,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:i,scope:"title.class"},{match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[v]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[b,{begin:a}],relevance:0},y,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:d},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,o],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,g),relevance:0}].concat(l,g);o.contains=h,v.contains=h;const N=[{begin:/^\s*=>/,starts:{end:"$",contains:h}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:d,contains:h}}];return g.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:d,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(N).concat(g).concat(h)}}function Ha(e){const n=e.regex,a=/(r#)?/,i=n.concat(a,e.UNDERSCORE_IDENT_RE),r=n.concat(a,e.IDENT_RE),d={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,r,n.lookahead(/\s*\(/))},s="([ui](8|16|32|64|128|size)|f(32|64))?",l=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],g=["true","false","Some","None","Ok","Err"],o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],b=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:b,keyword:l,literal:g,built_in:o},illegal:""},d]}}const Za=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Wa=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Xa=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Qa=[...Wa,...Xa],Va=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Ja=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Ya=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),ei=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function ni(e){const n=Za(e),a=Ya,i=Ja,r="@[a-z-]+",d="and or not only",s={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Qa.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+i.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+a.join("|")+")"},s,{begin:/\(/,end:/\)/,contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ei.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[n.BLOCK_COMMENT,s,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:r,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:d,attribute:Va.join(" ")},contains:[{begin:r,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},s,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]},n.FUNCTION_DISPATCH]}}function ti(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function ai(e){const n=e.regex,a=e.COMMENT("--","$"),i={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},d=["true","false","unknown"],s=["double precision","large object","with timezone","without timezone"],l=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],g=["add","asc","collation","desc","final","first","last","view"],o=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],b=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],p=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],u=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],y=b,v=[...o,...g].filter(D=>!b.includes(D)),h={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},N={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},S={match:n.concat(/\b/,n.either(...y),/\s*\(/),relevance:0,keywords:{built_in:y}};function C(D){return n.concat(/\b/,n.either(...D.map(V=>V.replace(/\s+/,"\\s+"))),/\b/)}const R={scope:"keyword",match:C(u),relevance:0};function B(D,{exceptions:V,when:H}={}){const J=H;return V=V||[],D.map(q=>q.match(/\|\d+$/)||V.includes(q)?q:J(q)?"".concat(q,"|0"):q)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:B(v,{when:D=>D.length<3}),literal:d,type:l,built_in:p},contains:[{scope:"type",match:C(s)},R,S,h,i,r,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,a,N]}}function et(e){return e?typeof e=="string"?e:e.source:null}function Re(e){return $("(?=",e,")")}function $(...e){return e.map(n=>et(n)).join("")}function ii(e){const n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function re(...e){return"("+(ii(e).capture?"":"?:")+e.map(n=>et(n)).join("|")+")"}const fn=e=>$(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ri=["Protocol","Type"].map(fn),$n=["init","self"].map(fn),si=["Any","Self"],un=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Pn=["false","nil","true"],oi=["assignment","associativity","higherThan","left","lowerThan","none","right"],li=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Un=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],nt=re(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),tt=re(nt,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),bn=$(nt,tt,"*"),at=re(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Ze=re(at,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),pe=$(at,Ze,"*"),He=$(/[A-Z]/,Ze,"*"),ci=["attached","autoclosure",$(/convention\(/,re("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",$(/objc\(/,pe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],di=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function gi(e){const n={match:/\s+/,relevance:0},a=e.COMMENT("/\\*","\\*/",{contains:["self"]}),i=[e.C_LINE_COMMENT_MODE,a],r={match:[/\./,re(...ri,...$n)],className:{2:"keyword"}},d={match:$(/\./,re(...un)),relevance:0},s=un.filter(z=>typeof z=="string").concat(["_|0"]),l=un.filter(z=>typeof z!="string").concat(si).map(fn),g={variants:[{className:"keyword",match:re(...l,...$n)}]},o={$pattern:re(/\b\w+/,/#\w+/),keyword:s.concat(li),literal:Pn},b=[r,d,g],p={match:$(/\./,re(...Un)),relevance:0},u={className:"built_in",match:$(/\b/,re(...Un),/(?=\()/)},y=[p,u],v={match:/->/,relevance:0},h={className:"operator",relevance:0,variants:[{match:bn},{match:"\\.(\\.|".concat(tt,")+")}]},N=[v,h],S="([0-9]_*)+",C="([0-9a-fA-F]_*)+",R={className:"number",relevance:0,variants:[{match:"\\b(".concat(S,")(\\.(").concat(S,"))?([eE][+-]?(").concat(S,"))?\\b")},{match:"\\b0x(".concat(C,")(\\.(").concat(C,"))?([pP][+-]?(").concat(S,"))?\\b")},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},B=(z="")=>({className:"subst",variants:[{match:$(/\\/,z,/[0\\tnr"']/)},{match:$(/\\/,z,/u\{[0-9a-fA-F]{1,8}\}/)}]}),D=(z="")=>({className:"subst",match:$(/\\/,z,/[\t ]*(?:[\r\n]|\r\n)/)}),V=(z="")=>({className:"subst",label:"interpol",begin:$(/\\/,z,/\(/),end:/\)/}),H=(z="")=>({begin:$(z,/"""/),end:$(/"""/,z),contains:[B(z),D(z),V(z)]}),J=(z="")=>({begin:$(z,/"/),end:$(/"/,z),contains:[B(z),V(z)]}),q={className:"string",variants:[H(),H("#"),H("##"),H("###"),J(),J("#"),J("##"),J("###")]},le=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],de={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:le},ce=z=>{const ke=$(z,/\//),Ee=$(/\//,z);return{begin:ke,end:Ee,contains:[...le,{scope:"comment",begin:"#(?!.*".concat(Ee,")"),end:/$/}]}},Y={scope:"regexp",variants:[ce("###"),ce("##"),ce("#"),de]},j={match:$(/`/,pe,/`/)},te={className:"variable",match:/\$\d+/},ye={className:"variable",match:"\\$".concat(Ze,"+")},L=[j,te,ye],Z={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:di,contains:[...N,R,q]}]}},ae={scope:"keyword",match:$(/@/,re(...ci),Re(re(/\(/,/\s+/)))},ge={scope:"meta",match:$(/@/,pe)},se=[Z,ae,ge],ie={match:Re(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:$(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Ze,"+")},{className:"type",match:He,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:$(/\s+&\s+/,Re(He)),relevance:0}]},Xe={begin://,keywords:o,contains:[...i,...b,...se,v,ie]};ie.contains.push(Xe);const Qe={match:$(pe,/\s*:/),keywords:"_|0",relevance:0},Ie={begin:/\(/,end:/\)/,relevance:0,keywords:o,contains:["self",Qe,...i,Y,...b,...y,...N,R,q,...L,...se,ie]},Ce={begin://,keywords:"repeat each",contains:[...i,ie]},Ve={begin:re(Re($(pe,/\s*:/)),Re($(pe,/\s+/,pe,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:pe}]},De={begin:/\(/,end:/\)/,keywords:o,contains:[Ve,...i,...b,...N,R,q,...se,ie,Ie],endsParent:!0,illegal:/["']/},Ne={match:[/(func|macro)/,/\s+/,re(j.match,pe,bn)],className:{1:"keyword",3:"title.function"},contains:[Ce,De,n],illegal:[/\[/,/%/]},Je={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Ce,De,n],illegal:/\[|%/},Ye={match:[/operator/,/\s+/,bn],className:{1:"keyword",3:"title"}},en={begin:[/precedencegroup/,/\s+/,He],className:{1:"keyword",3:"title"},contains:[ie],keywords:[...oi,...Pn],end:/}/},nn={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},tn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},an={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,pe,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:o,contains:[Ce,...b,{begin:/:/,end:/\{/,keywords:o,contains:[{scope:"title.class.inherited",match:He},...b],relevance:0}]};for(const z of q.variants){const ke=z.contains.find(Le=>Le.label==="interpol");ke.keywords=o;const Ee=[...b,...y,...N,R,q,...L];ke.contains=[...Ee,{begin:/\(/,end:/\)/,contains:["self",...Ee]}]}return{name:"Swift",keywords:o,contains:[...i,Ne,Je,nn,tn,an,Ye,en,{beginKeywords:"import",end:/$/,contains:[...i],relevance:0},Y,...b,...y,...N,R,q,...L,...se,ie,Ie]}}const We="[A-Za-z$_][0-9A-Za-z$_]*",it=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],rt=["true","false","null","undefined","NaN","Infinity"],st=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ot=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],lt=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ct=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],dt=[].concat(lt,st,ot);function ui(e){const n=e.regex,a=(L,{after:Z})=>{const ae="",end:""},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,Z)=>{const ae=L[0].length+L.index,ge=L.input[ae];if(ge==="<"||ge===","){Z.ignoreMatch();return}ge===">"&&(a(L,{after:ae})||Z.ignoreMatch());let se;const ie=L.input.substring(ae);if(se=ie.match(/^\s*=/)){Z.ignoreMatch();return}if((se=ie.match(/^\s+extends\s+/))&&se.index===0){Z.ignoreMatch();return}}},l={$pattern:We,keyword:it,literal:rt,built_in:dt,"variable.language":ct},g="[0-9](_?[0-9])*",o="\\.(".concat(g,")"),b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:"(\\b(".concat(b,")((").concat(o,")|\\.)?|(").concat(o,"))[eE][+-]?(").concat(g,")\\b")},{begin:"\\b(".concat(b,")\\b((").concat(o,")\\b|\\.)?|(").concat(o,")\\b")},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:l,contains:[]},y={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},v={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},h={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"graphql"}},N={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},S={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},C=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,{match:/\$\d+/},p];u.contains=C.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(C)});const R=[].concat(S,u.contains),B=R.concat([{begin:/(\s*)\(/,end:/\)/,keywords:l,contains:["self"].concat(R)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B},V={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,n.concat(i,"(",n.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...st,...ot]}},J={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},q={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},le={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function de(L){return n.concat("(?!",L.join("|"),")")}const ce={match:n.concat(/\b/,de([...lt,"super","import"].map(L=>"".concat(L,"\\s*\\("))),i,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:n.concat(/\./,n.lookahead(n.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},te="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(te)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:H},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),J,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,v,h,N,S,{match:/\$\d+/},p,H,{scope:"attr",match:i+n.lookahead(":"),relevance:0},ye,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[S,e.REGEXP_MODE,{className:"function",begin:te,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:d},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},q,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,e.inherit(e.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,le,V,j,{match:/\$[(.]/}]}}function bi(e){const n=e.regex,a=ui(e),i=We,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],d={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[a.exports.CLASS_REFERENCE]},l={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},g=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],o={$pattern:We,keyword:it.concat(g),literal:rt,built_in:dt.concat(r),"variable.language":ct},b={className:"meta",begin:"@"+i},p=(h,N,S)=>{const C=h.contains.findIndex(R=>R.label===N);if(C===-1)throw new Error("can not find mode to replace");h.contains.splice(C,1,S)};Object.assign(a.keywords,o),a.exports.PARAMS_CONTAINS.push(b);const u=a.contains.find(h=>h.scope==="attr"),y=Object.assign({},u,{match:n.concat(i,n.lookahead(/\s*\?:/))});a.exports.PARAMS_CONTAINS.push([a.exports.CLASS_REFERENCE,u,y]),a.contains=a.contains.concat([b,d,s,y]),p(a,"shebang",e.SHEBANG()),p(a,"use_strict",l);const v=a.contains.find(h=>h.label==="func.def");return v.relevance=0,Object.assign(a,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),a}function mi(e){const n=e.regex,a={className:"string",begin:/"(""|[^/n])"C\b/},i={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},r=/\d{1,2}\/\d{1,2}\/\d{4}/,d=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,l=/\d{1,2}(:\d{1,2}){1,2}/,g={className:"literal",variants:[{begin:n.concat(/# */,n.either(d,r),/ *#/)},{begin:n.concat(/# */,l,/ *#/)},{begin:n.concat(/# */,s,/ *#/)},{begin:n.concat(/# */,n.either(d,r),/ +/,n.either(s,l),/ *#/)}]},o={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},b={className:"label",begin:/^\w+:/},p=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),u=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[a,i,g,o,b,p,u,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[u]}]}}function pi(e){e.regex;const n=e.COMMENT(/\(;/,/;\)/);n.contains.push("self");const a=e.COMMENT(/;;/,/$/),i=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],r={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},d={className:"variable",begin:/\$[\w_]+/},s={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},l={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},g={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},o={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:i},contains:[a,n,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},d,s,r,e.QUOTE_STRING_MODE,g,o,l]}}function fi(e){const n=e.regex,a=n.concat(new RegExp("[\\p{L}_]","u"),n.optional(new RegExp("[\\p{L}0-9_.-]*:","u")),new RegExp("[\\p{L}0-9_.-]*","u")),i=new RegExp("[\\p{L}0-9._:-]+","u"),r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},d={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=e.inherit(d,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),g=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),o={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[d,g,l,s,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[d,s,g,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[g]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[o],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[o],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:a,relevance:0,starts:o}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(a,/>/))),contains:[{className:"name",begin:a,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function hi(e){const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",i={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},d={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},s={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},l=e.inherit(s,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),g={className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},o={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},b={begin:/\{/,end:/\}/,contains:[o],illegal:"\\n",relevance:0},p={begin:"\\[",end:"\\]",contains:[o],illegal:"\\n",relevance:0},u=[i,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},g,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},b,p,d,s],y=[...u];return y.pop(),y.push(l),o.contains=y,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:u}}const _i={arduino:Yt,bash:ea,c:na,cpp:ta,csharp:aa,css:ua,diff:ba,go:ma,graphql:pa,ini:fa,java:ha,javascript:va,json:Na,kotlin:xa,less:Ia,lua:Da,makefile:La,markdown:Ba,objectivec:za,perl:Fa,php:$a,"php-template":Pa,plaintext:Ua,python:ja,"python-repl":qa,r:Ka,ruby:Ga,rust:Ha,scss:ni,shell:ti,sql:ai,swift:gi,typescript:bi,vbnet:mi,wasm:pi,xml:fi,yaml:hi};var mn,jn;function yi(){if(jn)return mn;jn=1;function e(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(c=>{const _=t[c],A=typeof _;(A==="object"||A==="function")&&!Object.isFrozen(_)&&e(_)}),t}class n{constructor(c){c.data===void 0&&(c.data={}),this.data=c.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function a(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function i(t,...c){const _=Object.create(null);for(const A in t)_[A]=t[A];return c.forEach(function(A){for(const K in A)_[K]=A[K]}),_}const r="",d=t=>!!t.scope,s=(t,{prefix:c})=>{if(t.startsWith("language:"))return t.replace("language:","language-");if(t.includes(".")){const _=t.split(".");return["".concat(c).concat(_.shift()),..._.map((A,K)=>"".concat(A).concat("_".repeat(K+1)))].join(" ")}return"".concat(c).concat(t)};class l{constructor(c,_){this.buffer="",this.classPrefix=_.classPrefix,c.walk(this)}addText(c){this.buffer+=a(c)}openNode(c){if(!d(c))return;const _=s(c.scope,{prefix:this.classPrefix});this.span(_)}closeNode(c){d(c)&&(this.buffer+=r)}value(){return this.buffer}span(c){this.buffer+='')}}const g=(t={})=>{const c={children:[]};return Object.assign(c,t),c};class o{constructor(){this.rootNode=g(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(c){this.top.children.push(c)}openNode(c){const _=g({scope:c});this.add(_),this.stack.push(_)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(c){return this.constructor._walk(c,this.rootNode)}static _walk(c,_){return typeof _=="string"?c.addText(_):_.children&&(c.openNode(_),_.children.forEach(A=>this._walk(c,A)),c.closeNode(_)),c}static _collapse(c){typeof c!="string"&&c.children&&(c.children.every(_=>typeof _=="string")?c.children=[c.children.join("")]:c.children.forEach(_=>{o._collapse(_)}))}}class b extends o{constructor(c){super(),this.options=c}addText(c){c!==""&&this.add(c)}startScope(c){this.openNode(c)}endScope(){this.closeNode()}__addSublanguage(c,_){const A=c.root;_&&(A.scope="language:".concat(_)),this.add(A)}toHTML(){return new l(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function p(t){return t?typeof t=="string"?t:t.source:null}function u(t){return h("(?=",t,")")}function y(t){return h("(?:",t,")*")}function v(t){return h("(?:",t,")?")}function h(...t){return t.map(c=>p(c)).join("")}function N(t){const c=t[t.length-1];return typeof c=="object"&&c.constructor===Object?(t.splice(t.length-1,1),c):{}}function S(...t){return"("+(N(t).capture?"":"?:")+t.map(c=>p(c)).join("|")+")"}function C(t){return new RegExp(t.toString()+"|").exec("").length-1}function R(t,c){const _=t&&t.exec(c);return _&&_.index===0}const B=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function D(t,{joinWith:c}){let _=0;return t.map(A=>{_+=1;const K=_;let G=p(A),w="";for(;G.length>0;){const E=B.exec(G);if(!E){w+=G;break}w+=G.substring(0,E.index),G=G.substring(E.index+E[0].length),E[0][0]==="\\"&&E[1]?w+="\\"+String(Number(E[1])+K):(w+=E[0],E[0]==="("&&_++)}return w}).map(A=>"(".concat(A,")")).join(c)}const V=/\b\B/,H="[a-zA-Z]\\w*",J="[a-zA-Z_]\\w*",q="\\b\\d+(\\.\\d+)?",le="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",de="\\b(0b[01]+)",ce="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Y=(t={})=>{const c=/^#![ ]*\//;return t.binary&&(t.begin=h(c,/.*\b/,t.binary,/\b.*/)),i({scope:"meta",begin:c,end:/$/,relevance:0,"on:begin":(_,A)=>{_.index!==0&&A.ignoreMatch()}},t)},j={begin:"\\\\[\\s\\S]",relevance:0},te={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[j]},ye={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[j]},L={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Z=function(t,c,_={}){const A=i({scope:"comment",begin:t,end:c,contains:[]},_);A.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const K=S("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return A.contains.push({begin:h(/[ ]+/,"(",K,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),A},ae=Z("//","$"),ge=Z("/\\*","\\*/"),se=Z("#","$"),ie={scope:"number",begin:q,relevance:0},Xe={scope:"number",begin:le,relevance:0},Qe={scope:"number",begin:de,relevance:0},Ie={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[j,{begin:/\[/,end:/\]/,relevance:0,contains:[j]}]},Ce={scope:"title",begin:H,relevance:0},Ve={scope:"title",begin:J,relevance:0},De={begin:"\\.\\s*"+J,relevance:0};var Ne=Object.freeze({__proto__:null,APOS_STRING_MODE:te,BACKSLASH_ESCAPE:j,BINARY_NUMBER_MODE:Qe,BINARY_NUMBER_RE:de,COMMENT:Z,C_BLOCK_COMMENT_MODE:ge,C_LINE_COMMENT_MODE:ae,C_NUMBER_MODE:Xe,C_NUMBER_RE:le,END_SAME_AS_BEGIN:function(t){return Object.assign(t,{"on:begin":(c,_)=>{_.data._beginMatch=c[1]},"on:end":(c,_)=>{_.data._beginMatch!==c[1]&&_.ignoreMatch()}})},HASH_COMMENT_MODE:se,IDENT_RE:H,MATCH_NOTHING_RE:V,METHOD_GUARD:De,NUMBER_MODE:ie,NUMBER_RE:q,PHRASAL_WORDS_MODE:L,QUOTE_STRING_MODE:ye,REGEXP_MODE:Ie,RE_STARTERS_RE:ce,SHEBANG:Y,TITLE_MODE:Ce,UNDERSCORE_IDENT_RE:J,UNDERSCORE_TITLE_MODE:Ve});function Je(t,c){t.input[t.index-1]==="."&&c.ignoreMatch()}function Ye(t,c){t.className!==void 0&&(t.scope=t.className,delete t.className)}function en(t,c){c&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=Je,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function nn(t,c){Array.isArray(t.illegal)&&(t.illegal=S(...t.illegal))}function tn(t,c){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function an(t,c){t.relevance===void 0&&(t.relevance=1)}const z=(t,c)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");const _=Object.assign({},t);Object.keys(t).forEach(A=>{delete t[A]}),t.keywords=_.keywords,t.begin=h(_.beforeMatch,u(_.begin)),t.starts={relevance:0,contains:[Object.assign(_,{endsParent:!0})]},t.relevance=0,delete _.beforeMatch},ke=["of","and","for","in","not","or","if","then","parent","list","value"],Ee="keyword";function Le(t,c,_=Ee){const A=Object.create(null);return typeof t=="string"?K(_,t.split(" ")):Array.isArray(t)?K(_,t):Object.keys(t).forEach(function(G){Object.assign(A,Le(t[G],c,G))}),A;function K(G,w){c&&(w=w.map(E=>E.toLowerCase())),w.forEach(function(E){const M=E.split("|");A[M[0]]=[G,gt(M[0],M[1])]})}}function gt(t,c){return c?Number(c):ut(t)?0:1}function ut(t){return ke.includes(t.toLowerCase())}const hn={},we=t=>{console.error(t)},_n=(t,...c)=>{console.log("WARN: ".concat(t),...c)},xe=(t,c)=>{hn["".concat(t,"/").concat(c)]||(console.log("Deprecated as of ".concat(t,". ").concat(c)),hn["".concat(t,"/").concat(c)]=!0)},Be=new Error;function yn(t,c,{key:_}){let A=0;const K=t[_],G={},w={};for(let E=1;E<=c.length;E++)w[E+A]=K[E],G[E+A]=!0,A+=C(c[E-1]);t[_]=w,t[_]._emit=G,t[_]._multi=!0}function bt(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw we("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Be;if(typeof t.beginScope!="object"||t.beginScope===null)throw we("beginScope must be object"),Be;yn(t,t.begin,{key:"beginScope"}),t.begin=D(t.begin,{joinWith:""})}}function mt(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw we("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Be;if(typeof t.endScope!="object"||t.endScope===null)throw we("endScope must be object"),Be;yn(t,t.end,{key:"endScope"}),t.end=D(t.end,{joinWith:""})}}function pt(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function ft(t){pt(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),bt(t),mt(t)}function ht(t){function c(w,E){return new RegExp(p(w),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(E?"g":""))}class _{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(E,M){M.position=this.position++,this.matchIndexes[this.matchAt]=M,this.regexes.push([M,E]),this.matchAt+=C(E)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const E=this.regexes.map(M=>M[1]);this.matcherRe=c(D(E,{joinWith:"|"}),!0),this.lastIndex=0}exec(E){this.matcherRe.lastIndex=this.lastIndex;const M=this.matcherRe.exec(E);if(!M)return null;const Q=M.findIndex((Te,sn)=>sn>0&&Te!==void 0),W=this.matchIndexes[Q];return M.splice(0,Q),Object.assign(M,W)}}class A{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(E){if(this.multiRegexes[E])return this.multiRegexes[E];const M=new _;return this.rules.slice(E).forEach(([Q,W])=>M.addRule(Q,W)),M.compile(),this.multiRegexes[E]=M,M}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(E,M){this.rules.push([E,M]),M.type==="begin"&&this.count++}exec(E){const M=this.getMatcher(this.regexIndex);M.lastIndex=this.lastIndex;let Q=M.exec(E);if(this.resumingScanAtSamePosition()&&!(Q&&Q.index===this.lastIndex)){const W=this.getMatcher(0);W.lastIndex=this.lastIndex+1,Q=W.exec(E)}return Q&&(this.regexIndex+=Q.position+1,this.regexIndex===this.count&&this.considerAll()),Q}}function K(w){const E=new A;return w.contains.forEach(M=>E.addRule(M.begin,{rule:M,type:"begin"})),w.terminatorEnd&&E.addRule(w.terminatorEnd,{type:"end"}),w.illegal&&E.addRule(w.illegal,{type:"illegal"}),E}function G(w,E){const M=w;if(w.isCompiled)return M;[Ye,tn,ft,z].forEach(W=>W(w,E)),t.compilerExtensions.forEach(W=>W(w,E)),w.__beforeBegin=null,[en,nn,an].forEach(W=>W(w,E)),w.isCompiled=!0;let Q=null;return typeof w.keywords=="object"&&w.keywords.$pattern&&(w.keywords=Object.assign({},w.keywords),Q=w.keywords.$pattern,delete w.keywords.$pattern),Q=Q||/\w+/,w.keywords&&(w.keywords=Le(w.keywords,t.case_insensitive)),M.keywordPatternRe=c(Q,!0),E&&(w.begin||(w.begin=/\B|\b/),M.beginRe=c(M.begin),!w.end&&!w.endsWithParent&&(w.end=/\B|\b/),w.end&&(M.endRe=c(M.end)),M.terminatorEnd=p(M.end)||"",w.endsWithParent&&E.terminatorEnd&&(M.terminatorEnd+=(w.end?"|":"")+E.terminatorEnd)),w.illegal&&(M.illegalRe=c(w.illegal)),w.contains||(w.contains=[]),w.contains=[].concat(...w.contains.map(function(W){return _t(W==="self"?w:W)})),w.contains.forEach(function(W){G(W,M)}),w.starts&&G(w.starts,E),M.matcher=K(M),M}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=i(t.classNameAliases||{}),G(t)}function En(t){return t?t.endsWithParent||En(t.starts):!1}function _t(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(c){return i(t,{variants:null},c)})),t.cachedVariants?t.cachedVariants:En(t)?i(t,{starts:t.starts?i(t.starts):null}):Object.isFrozen(t)?i(t):t}var yt="11.11.1";class Et extends Error{constructor(c,_){super(c),this.name="HTMLInjectionError",this.html=_}}const rn=a,wn=i,vn=Symbol("nomatch"),wt=7,Nn=function(t){const c=Object.create(null),_=Object.create(null),A=[];let K=!0;const G="Could not find the language '{}', did you forget to load/include a language module?",w={disableAutodetect:!0,name:"Plain text",contains:[]};let E={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:b};function M(m){return E.noHighlightRe.test(m)}function Q(m){let x=m.className+" ";x+=m.parentNode?m.parentNode.className:"";const I=E.languageDetectRe.exec(x);if(I){const P=he(I[1]);return P||(_n(G.replace("{}",I[1])),_n("Falling back to no-highlight mode for this block.",m)),P?I[1]:"no-highlight"}return x.split(/\s+/).find(P=>M(P)||he(P))}function W(m,x,I){let P="",X="";typeof x=="object"?(P=m,I=x.ignoreIllegals,X=x.language):(xe("10.7.0","highlight(lang, code, ...args) has been deprecated."),xe("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),X=m,P=x),I===void 0&&(I=!0);const ue={code:P,language:X};Fe("before:highlight",ue);const _e=ue.result?ue.result:Te(ue.language,ue.code,I);return _e.code=ue.code,Fe("after:highlight",_e),_e}function Te(m,x,I,P){const X=Object.create(null);function ue(f,k){return f.keywords[k]}function _e(){if(!O.keywords){ee.addText(U);return}let f=0;O.keywordPatternRe.lastIndex=0;let k=O.keywordPatternRe.exec(U),T="";for(;k;){T+=U.substring(f,k.index);const F=me.case_insensitive?k[0].toLowerCase():k[0],ne=ue(O,F);if(ne){const[fe,Ft]=ne;if(ee.addText(T),T="",X[F]=(X[F]||0)+1,X[F]<=wt&&(Ue+=Ft),fe.startsWith("_"))T+=k[0];else{const $t=me.classNameAliases[fe]||fe;be(k[0],$t)}}else T+=k[0];f=O.keywordPatternRe.lastIndex,k=O.keywordPatternRe.exec(U)}T+=U.substring(f),ee.addText(T)}function $e(){if(U==="")return;let f=null;if(typeof O.subLanguage=="string"){if(!c[O.subLanguage]){ee.addText(U);return}f=Te(O.subLanguage,U,!0,Tn[O.subLanguage]),Tn[O.subLanguage]=f._top}else f=on(U,O.subLanguage.length?O.subLanguage:null);O.relevance>0&&(Ue+=f.relevance),ee.__addSublanguage(f._emitter,f.language)}function oe(){O.subLanguage!=null?$e():_e(),U=""}function be(f,k){f!==""&&(ee.startScope(k),ee.addText(f),ee.endScope())}function Mn(f,k){let T=1;const F=k.length-1;for(;T<=F;){if(!f._emit[T]){T++;continue}const ne=me.classNameAliases[f[T]]||f[T],fe=k[T];ne?be(fe,ne):(U=fe,_e(),U=""),T++}}function On(f,k){return f.scope&&typeof f.scope=="string"&&ee.openNode(me.classNameAliases[f.scope]||f.scope),f.beginScope&&(f.beginScope._wrap?(be(U,me.classNameAliases[f.beginScope._wrap]||f.beginScope._wrap),U=""):f.beginScope._multi&&(Mn(f.beginScope,k),U="")),O=Object.create(f,{parent:{value:O}}),O}function An(f,k,T){let F=R(f.endRe,T);if(F){if(f["on:end"]){const ne=new n(f);f["on:end"](k,ne),ne.isMatchIgnored&&(F=!1)}if(F){for(;f.endsParent&&f.parent;)f=f.parent;return f}}if(f.endsWithParent)return An(f.parent,k,T)}function It(f){return O.matcher.regexIndex===0?(U+=f[0],1):(gn=!0,0)}function Dt(f){const k=f[0],T=f.rule,F=new n(T),ne=[T.__beforeBegin,T["on:begin"]];for(const fe of ne)if(fe&&(fe(f,F),F.isMatchIgnored))return It(k);return T.skip?U+=k:(T.excludeBegin&&(U+=k),oe(),!T.returnBegin&&!T.excludeBegin&&(U=k)),On(T,f),T.returnBegin?0:k.length}function Lt(f){const k=f[0],T=x.substring(f.index),F=An(O,f,T);if(!F)return vn;const ne=O;O.endScope&&O.endScope._wrap?(oe(),be(k,O.endScope._wrap)):O.endScope&&O.endScope._multi?(oe(),Mn(O.endScope,f)):ne.skip?U+=k:(ne.returnEnd||ne.excludeEnd||(U+=k),oe(),ne.excludeEnd&&(U=k));do O.scope&&ee.closeNode(),!O.skip&&!O.subLanguage&&(Ue+=O.relevance),O=O.parent;while(O!==F.parent);return F.starts&&On(F.starts,f),ne.returnEnd?0:k.length}function Bt(){const f=[];for(let k=O;k!==me;k=k.parent)k.scope&&f.unshift(k.scope);f.forEach(k=>ee.openNode(k))}let Pe={};function Cn(f,k){const T=k&&k[0];if(U+=f,T==null)return oe(),0;if(Pe.type==="begin"&&k.type==="end"&&Pe.index===k.index&&T===""){if(U+=x.slice(k.index,k.index+1),!K){const F=new Error("0 width match regex (".concat(m,")"));throw F.languageName=m,F.badRule=Pe.rule,F}return 1}if(Pe=k,k.type==="begin")return Dt(k);if(k.type==="illegal"&&!I){const F=new Error('Illegal lexeme "'+T+'" for mode "'+(O.scope||"")+'"');throw F.mode=O,F}else if(k.type==="end"){const F=Lt(k);if(F!==vn)return F}if(k.type==="illegal"&&T==="")return U+="\n",1;if(dn>1e5&&dn>k.index*3)throw new Error("potential infinite loop, way more iterations than matches");return U+=T,T.length}const me=he(m);if(!me)throw we(G.replace("{}",m)),new Error('Unknown language: "'+m+'"');const zt=ht(me);let cn="",O=P||zt;const Tn={},ee=new E.__emitter(E);Bt();let U="",Ue=0,ve=0,dn=0,gn=!1;try{if(me.__emitTokens)me.__emitTokens(x,ee);else{for(O.matcher.considerAll();;){dn++,gn?gn=!1:O.matcher.considerAll(),O.matcher.lastIndex=ve;const f=O.matcher.exec(x);if(!f)break;const k=x.substring(ve,f.index),T=Cn(k,f);ve=f.index+T}Cn(x.substring(ve))}return ee.finalize(),cn=ee.toHTML(),{language:m,value:cn,relevance:Ue,illegal:!1,_emitter:ee,_top:O}}catch(f){if(f.message&&f.message.includes("Illegal"))return{language:m,value:rn(x),illegal:!0,relevance:0,_illegalBy:{message:f.message,index:ve,context:x.slice(ve-100,ve+100),mode:f.mode,resultSoFar:cn},_emitter:ee};if(K)return{language:m,value:rn(x),illegal:!1,relevance:0,errorRaised:f,_emitter:ee,_top:O};throw f}}function sn(m){const x={value:rn(m),illegal:!1,relevance:0,_top:w,_emitter:new E.__emitter(E)};return x._emitter.addText(m),x}function on(m,x){x=x||E.languages||Object.keys(c);const I=sn(m),P=x.filter(he).filter(Sn).map(oe=>Te(oe,m,!1));P.unshift(I);const X=P.sort((oe,be)=>{if(oe.relevance!==be.relevance)return be.relevance-oe.relevance;if(oe.language&&be.language){if(he(oe.language).supersetOf===be.language)return 1;if(he(be.language).supersetOf===oe.language)return-1}return 0}),[ue,_e]=X,$e=ue;return $e.secondBest=_e,$e}function vt(m,x,I){const P=x&&_[x]||I;m.classList.add("hljs"),m.classList.add("language-".concat(P))}function ln(m){let x=null;const I=Q(m);if(M(I))return;if(Fe("before:highlightElement",{el:m,language:I}),m.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",m);return}if(m.children.length>0&&(E.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(m)),E.throwUnescapedHTML))throw new Et("One of your code blocks includes unescaped HTML.",m.innerHTML);x=m;const P=x.textContent,X=I?W(P,{language:I,ignoreIllegals:!0}):on(P);m.innerHTML=X.value,m.dataset.highlighted="yes",vt(m,I,X.language),m.result={language:X.language,re:X.relevance,relevance:X.relevance},X.secondBest&&(m.secondBest={language:X.secondBest.language,relevance:X.secondBest.relevance}),Fe("after:highlightElement",{el:m,result:X,text:P})}function Nt(m){E=wn(E,m)}const kt=()=>{ze(),xe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function xt(){ze(),xe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let kn=!1;function ze(){function m(){ze()}if(document.readyState==="loading"){kn||window.addEventListener("DOMContentLoaded",m,!1),kn=!0;return}document.querySelectorAll(E.cssSelector).forEach(ln)}function St(m,x){let I=null;try{I=x(t)}catch(P){if(we("Language definition for '{}' could not be registered.".replace("{}",m)),K)we(P);else throw P;I=w}I.name||(I.name=m),c[m]=I,I.rawDefinition=x.bind(null,t),I.aliases&&xn(I.aliases,{languageName:m})}function Mt(m){delete c[m];for(const x of Object.keys(_))_[x]===m&&delete _[x]}function Ot(){return Object.keys(c)}function he(m){return m=(m||"").toLowerCase(),c[m]||c[_[m]]}function xn(m,{languageName:x}){typeof m=="string"&&(m=[m]),m.forEach(I=>{_[I.toLowerCase()]=x})}function Sn(m){const x=he(m);return x&&!x.disableAutodetect}function At(m){m["before:highlightBlock"]&&!m["before:highlightElement"]&&(m["before:highlightElement"]=x=>{m["before:highlightBlock"](Object.assign({block:x.el},x))}),m["after:highlightBlock"]&&!m["after:highlightElement"]&&(m["after:highlightElement"]=x=>{m["after:highlightBlock"](Object.assign({block:x.el},x))})}function Ct(m){At(m),A.push(m)}function Tt(m){const x=A.indexOf(m);x!==-1&&A.splice(x,1)}function Fe(m,x){const I=m;A.forEach(function(P){P[I]&&P[I](x)})}function Rt(m){return xe("10.7.0","highlightBlock will be removed entirely in v12.0"),xe("10.7.0","Please use highlightElement now."),ln(m)}Object.assign(t,{highlight:W,highlightAuto:on,highlightAll:ze,highlightElement:ln,highlightBlock:Rt,configure:Nt,initHighlighting:kt,initHighlightingOnLoad:xt,registerLanguage:St,unregisterLanguage:Mt,listLanguages:Ot,getLanguage:he,registerAliases:xn,autoDetection:Sn,inherit:wn,addPlugin:Ct,removePlugin:Tt}),t.debugMode=function(){K=!1},t.safeMode=function(){K=!0},t.versionString=yt,t.regex={concat:h,lookahead:u,either:S,optional:v,anyNumberOfTimes:y};for(const m in Ne)typeof Ne[m]=="object"&&e(Ne[m]);return Object.assign(t,Ne),t},Se=Nn({});return Se.newInstance=()=>Nn({}),mn=Se,Se.HighlightJS=Se,Se.default=Se,mn}var Ei=yi();const wi=Ut(Ei),qn={},vi="hljs-";function Ni(e){const n=wi.newInstance();return e&&d(e),{highlight:a,highlightAuto:i,listLanguages:r,register:d,registerAlias:s,registered:l};function a(g,o,b){const p=b||qn,u=typeof p.prefix=="string"?p.prefix:vi;if(!n.getLanguage(g))throw new Error("Unknown language: `"+g+"` is not registered");n.configure({__emitter:ki,classPrefix:u});const y=n.highlight(o,{ignoreIllegals:!0,language:g});if(y.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:y.errorRaised});const v=y._emitter.root,h=v.data;return h.language=y.language,h.relevance=y.relevance,v}function i(g,o){const b=(o||qn).subset||r();let p=-1,u=0,y;for(;++pu&&(u=h.data.relevance,y=h)}return y||{type:"root",children:[],data:{language:void 0,relevance:u}}}function r(){return n.listLanguages()}function d(g,o){if(typeof g=="string")n.registerLanguage(g,o);else{let b;for(b in g)Object.hasOwn(g,b)&&n.registerLanguage(b,g[b])}}function s(g,o){if(typeof g=="string")n.registerAliases(typeof o=="string"?o:[...o],{languageName:g});else{let b;for(b in g)if(Object.hasOwn(g,b)){const p=g[b];n.registerAliases(typeof p=="string"?p:[...p],{languageName:b})}}}function l(g){return!!n.getLanguage(g)}}class ki{constructor(n){this.options=n,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(n){if(n==="")return;const a=this.stack[this.stack.length-1],i=a.children[a.children.length-1];i&&i.type==="text"?i.value+=n:a.children.push({type:"text",value:n})}startScope(n){this.openNode(String(n))}endScope(){this.closeNode()}__addSublanguage(n,a){const i=this.stack[this.stack.length-1],r=n.root.children;a?i.children.push({type:"element",tagName:"span",properties:{className:[a]},children:r}):i.children.push(...r)}openNode(n){const a=this,i=n.split(".").map(function(s,l){return l?s+"_".repeat(l):a.options.classPrefix+s}),r=this.stack[this.stack.length-1],d={type:"element",tagName:"span",properties:{className:i},children:[]};r.children.push(d),this.stack.push(d)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const xi={};function Ci(e){const n=e||xi,a=n.aliases,i=n.detect||!1,r=n.languages||_i,d=n.plainText,s=n.prefix,l=n.subset;let g="hljs";const o=Ni(r);if(a&&o.registerAlias(a),s){const b=s.indexOf("-");g=b===-1?s:s.slice(0,b)}return function(b,p){jt(b,"element",function(u,y,v){if(u.tagName!=="code"||!v||v.type!=="element"||v.tagName!=="pre")return;const h=Si(u);if(h===!1||!h&&!i||h&&d&&d.includes(h))return;Array.isArray(u.properties.className)||(u.properties.className=[]),u.properties.className.includes(g)||u.properties.className.unshift(g);const N=Gt(u,{whitespace:"pre"});let S;try{S=h?o.highlight(h,N,{prefix:s}):o.highlightAuto(N,{prefix:s,subset:l})}catch(C){const R=C;if(h&&/Unknown language/.test(R.message)){p.message("Cannot highlight as `"+h+"`, it’s not registered",{ancestors:[v,u],cause:R,place:u.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw R}!h&&S.data&&S.data.language&&u.properties.className.push("language-"+S.data.language),S.children.length>0&&(u.children=S.children)})}}function Si(e){const n=e.properties.className;let a=-1;if(!Array.isArray(n))return;let i;for(;++a | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {(\n * Kind extends {children: Array}\n * ? Child\n * : never\n * )} Child\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Kind\n * All node types.\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Find the first node in `parent` after another `node` or after an index,\n * that passes `test`.\n *\n * @param parent\n * Parent node.\n * @param index\n * Child node or index.\n * @param [test=undefined]\n * Test for child to look for (optional).\n * @returns\n * A child (matching `test`, if given) or `undefined`.\n */\nexport const findAfter =\n // Note: overloads like this are needed to support optional generics.\n /**\n * @type {(\n * ((parent: Kind, index: Child | number, test: Check) => Matches, Check> | undefined) &\n * ((parent: Kind, index: Child | number, test?: null | undefined) => Child | undefined)\n * )}\n */\n (\n /**\n * @param {UnistParent} parent\n * @param {UnistNode | number} index\n * @param {Test} [test]\n * @returns {UnistNode | undefined}\n */\n function (parent, index, test) {\n const is = convert(test)\n\n if (!parent || !parent.type || !parent.children) {\n throw new Error('Expected parent node')\n }\n\n if (typeof index === 'number') {\n if (index < 0 || index === Number.POSITIVE_INFINITY) {\n throw new Error('Expected positive finite number as index')\n }\n } else {\n index = parent.children.indexOf(index)\n\n if (index < 0) {\n throw new Error('Expected child node or index')\n }\n }\n\n while (++index < parent.children.length) {\n if (is(parent.children[index], index, parent)) {\n return parent.children[index]\n }\n }\n\n return undefined\n }\n )\n","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast-util-is-element').TestFunction} TestFunction\n */\n\n/**\n * @typedef {'normal' | 'nowrap' | 'pre' | 'pre-wrap'} Whitespace\n * Valid and useful whitespace values (from CSS).\n *\n * @typedef {0 | 1 | 2} BreakNumber\n * Specific break:\n *\n * * `0` — space\n * * `1` — line ending\n * * `2` — blank line\n *\n * @typedef {'\\n'} BreakForce\n * Forced break.\n *\n * @typedef {boolean} BreakValue\n * Whether there was a break.\n *\n * @typedef {BreakNumber | BreakValue | undefined} BreakBefore\n * Any value for a break before.\n *\n * @typedef {BreakForce | BreakNumber | BreakValue | undefined} BreakAfter\n * Any value for a break after.\n *\n * @typedef CollectionInfo\n * Info on current collection.\n * @property {BreakAfter} breakAfter\n * Whether there was a break after.\n * @property {BreakBefore} breakBefore\n * Whether there was a break before.\n * @property {Whitespace} whitespace\n * Current whitespace setting.\n *\n * @typedef Options\n * Configuration.\n * @property {Whitespace | null | undefined} [whitespace='normal']\n * Initial CSS whitespace setting to use (default: `'normal'`).\n */\n\nimport {findAfter} from 'unist-util-find-after'\nimport {convertElement} from 'hast-util-is-element'\n\nconst searchLineFeeds = /\\n/g\nconst searchTabOrSpaces = /[\\t ]+/g\n\nconst br = convertElement('br')\nconst cell = convertElement(isCell)\nconst p = convertElement('p')\nconst row = convertElement('tr')\n\n// Note that we don’t need to include void elements here as they don’t have text.\n// See: \nconst notRendered = convertElement([\n // List from: \n 'datalist',\n 'head',\n 'noembed',\n 'noframes',\n 'noscript', // Act as if we support scripting.\n 'rp',\n 'script',\n 'style',\n 'template',\n 'title',\n // Hidden attribute.\n hidden,\n // From: \n closedDialog\n])\n\n// See: \nconst blockOrCaption = convertElement([\n 'address', // Flow content\n 'article', // Sections and headings\n 'aside', // Sections and headings\n 'blockquote', // Flow content\n 'body', // Page\n 'caption', // `table-caption`\n 'center', // Flow content (legacy)\n 'dd', // Lists\n 'dialog', // Flow content\n 'dir', // Lists (legacy)\n 'dl', // Lists\n 'dt', // Lists\n 'div', // Flow content\n 'figure', // Flow content\n 'figcaption', // Flow content\n 'footer', // Flow content\n 'form,', // Flow content\n 'h1', // Sections and headings\n 'h2', // Sections and headings\n 'h3', // Sections and headings\n 'h4', // Sections and headings\n 'h5', // Sections and headings\n 'h6', // Sections and headings\n 'header', // Flow content\n 'hgroup', // Sections and headings\n 'hr', // Flow content\n 'html', // Page\n 'legend', // Flow content\n 'li', // Lists (as `display: list-item`)\n 'listing', // Flow content (legacy)\n 'main', // Flow content\n 'menu', // Lists\n 'nav', // Sections and headings\n 'ol', // Lists\n 'p', // Flow content\n 'plaintext', // Flow content (legacy)\n 'pre', // Flow content\n 'section', // Sections and headings\n 'ul', // Lists\n 'xmp' // Flow content (legacy)\n])\n\n/**\n * Get the plain-text value of a node.\n *\n * ###### Algorithm\n *\n * * if `tree` is a comment, returns its `value`\n * * if `tree` is a text, applies normal whitespace collapsing to its\n * `value`, as defined by the CSS Text spec\n * * if `tree` is a root or element, applies an algorithm similar to the\n * `innerText` getter as defined by HTML\n *\n * ###### Notes\n *\n * > 👉 **Note**: the algorithm acts as if `tree` is being rendered, and as if\n * > we’re a CSS-supporting user agent, with scripting enabled.\n *\n * * if `tree` is an element that is not displayed (such as a `head`), we’ll\n * still use the `innerText` algorithm instead of switching to `textContent`\n * * if descendants of `tree` are elements that are not displayed, they are\n * ignored\n * * CSS is not considered, except for the default user agent style sheet\n * * a line feed is collapsed instead of ignored in cases where Fullwidth, Wide,\n * or Halfwidth East Asian Width characters are used, the same goes for a case\n * with Chinese, Japanese, or Yi writing systems\n * * replaced elements (such as `audio`) are treated like non-replaced elements\n *\n * @param {Nodes} tree\n * Tree to turn into text.\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `tree`.\n */\nexport function toText(tree, options) {\n const options_ = options || {}\n const children = 'children' in tree ? tree.children : []\n const block = blockOrCaption(tree)\n const whitespace = inferWhitespace(tree, {\n whitespace: options_.whitespace || 'normal',\n breakBefore: false,\n breakAfter: false\n })\n\n /** @type {Array} */\n const results = []\n\n // Treat `text` and `comment` as having normal white-space.\n // This deviates from the spec as in the DOM the node’s `.data` has to be\n // returned.\n // If you want that behavior use `hast-util-to-string`.\n // All other nodes are later handled as if they are `element`s (so the\n // algorithm also works on a `root`).\n // Nodes without children are treated as a void element, so `doctype` is thus\n // ignored.\n if (tree.type === 'text' || tree.type === 'comment') {\n results.push(\n ...collectText(tree, {\n whitespace,\n breakBefore: true,\n breakAfter: true\n })\n )\n }\n\n // 1. If this element is not being rendered, or if the user agent is a\n // non-CSS user agent, then return the same value as the textContent IDL\n // attribute on this element.\n //\n // Note: we’re not supporting stylesheets so we’re acting as if the node\n // is rendered.\n //\n // If you want that behavior use `hast-util-to-string`.\n // Important: we’ll have to account for this later though.\n\n // 2. Let results be a new empty list.\n let index = -1\n\n // 3. For each child node node of this element:\n while (++index < children.length) {\n // 3.1. Let current be the list resulting in running the inner text\n // collection steps with node.\n // Each item in results will either be a JavaScript string or a\n // positive integer (a required line break count).\n // 3.2. For each item item in current, append item to results.\n results.push(\n ...renderedTextCollection(\n children[index],\n // @ts-expect-error: `tree` is a parent if we’re here.\n tree,\n {\n whitespace,\n breakBefore: index ? undefined : block,\n breakAfter:\n index < children.length - 1 ? br(children[index + 1]) : block\n }\n )\n )\n }\n\n // 4. Remove any items from results that are the empty string.\n // 5. Remove any runs of consecutive required line break count items at the\n // start or end of results.\n // 6. Replace each remaining run of consecutive required line break count\n // items with a string consisting of as many U+000A LINE FEED (LF)\n // characters as the maximum of the values in the required line break\n // count items.\n /** @type {Array} */\n const result = []\n /** @type {number | undefined} */\n let count\n\n index = -1\n\n while (++index < results.length) {\n const value = results[index]\n\n if (typeof value === 'number') {\n if (count !== undefined && value > count) count = value\n } else if (value) {\n if (count !== undefined && count > -1) {\n result.push('\\n'.repeat(count) || ' ')\n }\n\n count = -1\n result.push(value)\n }\n }\n\n // 7. Return the concatenation of the string items in results.\n return result.join('')\n}\n\n/**\n * \n *\n * @param {Nodes} node\n * @param {Parents} parent\n * @param {CollectionInfo} info\n * @returns {Array}\n */\nfunction renderedTextCollection(node, parent, info) {\n if (node.type === 'element') {\n return collectElement(node, parent, info)\n }\n\n if (node.type === 'text') {\n return info.whitespace === 'normal'\n ? collectText(node, info)\n : collectPreText(node)\n }\n\n return []\n}\n\n/**\n * Collect an element.\n *\n * @param {Element} node\n * Element node.\n * @param {Parents} parent\n * @param {CollectionInfo} info\n * Info on current collection.\n * @returns {Array}\n */\nfunction collectElement(node, parent, info) {\n // First we infer the `white-space` property.\n const whitespace = inferWhitespace(node, info)\n const children = node.children || []\n let index = -1\n /** @type {Array} */\n let items = []\n\n // We’re ignoring point 3, and exiting without any content here, because we\n // deviated from the spec in `toText` at step 3.\n if (notRendered(node)) {\n return items\n }\n\n /** @type {BreakNumber | undefined} */\n let prefix\n /** @type {BreakForce | BreakNumber | undefined} */\n let suffix\n // Note: we first detect if there is going to be a break before or after the\n // contents, as that changes the white-space handling.\n\n // 2. If node’s computed value of `visibility` is not `visible`, then return\n // items.\n //\n // Note: Ignored, as everything is visible by default user agent styles.\n\n // 3. If node is not being rendered, then return items. [...]\n //\n // Note: We already did this above.\n\n // See `collectText` for step 4.\n\n // 5. If node is a `
` element, then append a string containing a single\n // U+000A LINE FEED (LF) character to items.\n if (br(node)) {\n suffix = '\\n'\n }\n\n // 7. If node’s computed value of `display` is `table-row`, and node’s CSS\n // box is not the last `table-row` box of the nearest ancestor `table`\n // box, then append a string containing a single U+000A LINE FEED (LF)\n // character to items.\n //\n // See: \n // Note: needs further investigation as this does not account for implicit\n // rows.\n else if (\n row(node) &&\n // @ts-expect-error: something up with types of parents.\n findAfter(parent, node, row)\n ) {\n suffix = '\\n'\n }\n\n // 8. If node is a `

` element, then append 2 (a required line break count)\n // at the beginning and end of items.\n else if (p(node)) {\n prefix = 2\n suffix = 2\n }\n\n // 9. If node’s used value of `display` is block-level or `table-caption`,\n // then append 1 (a required line break count) at the beginning and end of\n // items.\n else if (blockOrCaption(node)) {\n prefix = 1\n suffix = 1\n }\n\n // 1. Let items be the result of running the inner text collection steps with\n // each child node of node in tree order, and then concatenating the\n // results to a single list.\n while (++index < children.length) {\n items = items.concat(\n renderedTextCollection(children[index], node, {\n whitespace,\n breakBefore: index ? undefined : prefix,\n breakAfter:\n index < children.length - 1 ? br(children[index + 1]) : suffix\n })\n )\n }\n\n // 6. If node’s computed value of `display` is `table-cell`, and node’s CSS\n // box is not the last `table-cell` box of its enclosing `table-row` box,\n // then append a string containing a single U+0009 CHARACTER TABULATION\n // (tab) character to items.\n //\n // See: \n if (\n cell(node) &&\n // @ts-expect-error: something up with types of parents.\n findAfter(parent, node, cell)\n ) {\n items.push('\\t')\n }\n\n // Add the pre- and suffix.\n if (prefix) items.unshift(prefix)\n if (suffix) items.push(suffix)\n\n return items\n}\n\n/**\n * 4. If node is a Text node, then for each CSS text box produced by node,\n * in content order, compute the text of the box after application of the\n * CSS `white-space` processing rules and `text-transform` rules, set\n * items to the list of the resulting strings, and return items.\n * The CSS `white-space` processing rules are slightly modified:\n * collapsible spaces at the end of lines are always collapsed, but they\n * are only removed if the line is the last line of the block, or it ends\n * with a br element.\n * Soft hyphens should be preserved.\n *\n * Note: See `collectText` and `collectPreText`.\n * Note: we don’t deal with `text-transform`, no element has that by\n * default.\n *\n * See: \n *\n * @param {Comment | Text} node\n * Text node.\n * @param {CollectionInfo} info\n * Info on current collection.\n * @returns {Array}\n * Result.\n */\nfunction collectText(node, info) {\n const value = String(node.value)\n /** @type {Array} */\n const lines = []\n /** @type {Array} */\n const result = []\n let start = 0\n\n while (start <= value.length) {\n searchLineFeeds.lastIndex = start\n\n const match = searchLineFeeds.exec(value)\n const end = match && 'index' in match ? match.index : value.length\n\n lines.push(\n // Any sequence of collapsible spaces and tabs immediately preceding or\n // following a segment break is removed.\n trimAndCollapseSpacesAndTabs(\n // […] ignoring bidi formatting characters (characters with the\n // Bidi_Control property [UAX9]: ALM, LTR, RTL, LRE-RLO, LRI-PDI) as if\n // they were not there.\n value\n .slice(start, end)\n .replace(/[\\u061C\\u200E\\u200F\\u202A-\\u202E\\u2066-\\u2069]/g, ''),\n start === 0 ? info.breakBefore : true,\n end === value.length ? info.breakAfter : true\n )\n )\n\n start = end + 1\n }\n\n // Collapsible segment breaks are transformed for rendering according to the\n // segment break transformation rules.\n // So here we jump to 4.1.2 of [CSSTEXT]:\n // Any collapsible segment break immediately following another collapsible\n // segment break is removed\n let index = -1\n /** @type {BreakNumber | undefined} */\n let join\n\n while (++index < lines.length) {\n // * If the character immediately before or immediately after the segment\n // break is the zero-width space character (U+200B), then the break is\n // removed, leaving behind the zero-width space.\n if (\n lines[index].charCodeAt(lines[index].length - 1) === 0x20_0b /* ZWSP */ ||\n (index < lines.length - 1 &&\n lines[index + 1].charCodeAt(0) === 0x20_0b) /* ZWSP */\n ) {\n result.push(lines[index])\n join = undefined\n }\n\n // * Otherwise, if the East Asian Width property [UAX11] of both the\n // character before and after the segment break is Fullwidth, Wide, or\n // Halfwidth (not Ambiguous), and neither side is Hangul, then the\n // segment break is removed.\n //\n // Note: ignored.\n // * Otherwise, if the writing system of the segment break is Chinese,\n // Japanese, or Yi, and the character before or after the segment break\n // is punctuation or a symbol (Unicode general category P* or S*) and\n // has an East Asian Width property of Ambiguous, and the character on\n // the other side of the segment break is Fullwidth, Wide, or Halfwidth,\n // and not Hangul, then the segment break is removed.\n //\n // Note: ignored.\n\n // * Otherwise, the segment break is converted to a space (U+0020).\n else if (lines[index]) {\n if (typeof join === 'number') result.push(join)\n result.push(lines[index])\n join = 0\n } else if (index === 0 || index === lines.length - 1) {\n // If this line is empty, and it’s the first or last, add a space.\n // Note that this function is only called in normal whitespace, so we\n // don’t worry about `pre`.\n result.push(0)\n }\n }\n\n return result\n}\n\n/**\n * Collect a text node as “pre” whitespace.\n *\n * @param {Text} node\n * Text node.\n * @returns {Array}\n * Result.\n */\nfunction collectPreText(node) {\n return [String(node.value)]\n}\n\n/**\n * 3. Every collapsible tab is converted to a collapsible space (U+0020).\n * 4. Any collapsible space immediately following another collapsible\n * space—even one outside the boundary of the inline containing that\n * space, provided both spaces are within the same inline formatting\n * context—is collapsed to have zero advance width. (It is invisible,\n * but retains its soft wrap opportunity, if any.)\n *\n * @param {string} value\n * Value to collapse.\n * @param {BreakBefore} breakBefore\n * Whether there was a break before.\n * @param {BreakAfter} breakAfter\n * Whether there was a break after.\n * @returns {string}\n * Result.\n */\nfunction trimAndCollapseSpacesAndTabs(value, breakBefore, breakAfter) {\n /** @type {Array} */\n const result = []\n let start = 0\n /** @type {number | undefined} */\n let end\n\n while (start < value.length) {\n searchTabOrSpaces.lastIndex = start\n const match = searchTabOrSpaces.exec(value)\n end = match ? match.index : value.length\n\n // If we’re not directly after a segment break, but there was white space,\n // add an empty value that will be turned into a space.\n if (!start && !end && match && !breakBefore) {\n result.push('')\n }\n\n if (start !== end) {\n result.push(value.slice(start, end))\n }\n\n start = match ? end + match[0].length : end\n }\n\n // If we reached the end, there was trailing white space, and there’s no\n // segment break after this node, add an empty value that will be turned\n // into a space.\n if (start !== end && !breakAfter) {\n result.push('')\n }\n\n return result.join(' ')\n}\n\n/**\n * Figure out the whitespace of a node.\n *\n * We don’t support void elements here (so `nobr wbr` -> `normal` is ignored).\n *\n * @param {Nodes} node\n * Node (typically `Element`).\n * @param {CollectionInfo} info\n * Info on current collection.\n * @returns {Whitespace}\n * Applied whitespace.\n */\nfunction inferWhitespace(node, info) {\n if (node.type === 'element') {\n const properties = node.properties || {}\n switch (node.tagName) {\n case 'listing':\n case 'plaintext':\n case 'xmp': {\n return 'pre'\n }\n\n case 'nobr': {\n return 'nowrap'\n }\n\n case 'pre': {\n return properties.wrap ? 'pre-wrap' : 'pre'\n }\n\n case 'td':\n case 'th': {\n return properties.noWrap ? 'nowrap' : info.whitespace\n }\n\n case 'textarea': {\n return 'pre-wrap'\n }\n\n default:\n }\n }\n\n return info.whitespace\n}\n\n/**\n * @type {TestFunction}\n * @param {Element} node\n * @returns {node is {properties: {hidden: true}}}\n */\nfunction hidden(node) {\n return Boolean((node.properties || {}).hidden)\n}\n\n/**\n * @type {TestFunction}\n * @param {Element} node\n * @returns {node is {tagName: 'td' | 'th'}}\n */\nfunction isCell(node) {\n return node.tagName === 'td' || node.tagName === 'th'\n}\n\n/**\n * @type {TestFunction}\n */\nfunction closedDialog(node) {\n return node.tagName === 'dialog' && !(node.properties || {}).open\n}\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n // Floating-point literal.\n { begin:\n \"[+-]?(?:\" // Leading sign.\n // Decimal.\n + \"(?:\"\n +\"[0-9](?:'?[0-9])*\\\\.(?:[0-9](?:'?[0-9])*)?\"\n + \"|\\\\.[0-9](?:'?[0-9])*\"\n + \")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?\"\n + \"|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*\"\n // Hexadecimal.\n + \"|0[Xx](?:\"\n +\"[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?\"\n + \"|\\\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*\"\n + \")[Pp][+-]?[0-9](?:'?[0-9])*\"\n + \")(?:\" // Literal suffixes.\n + \"[Ff](?:16|32|64|128)?\"\n + \"|(BF|bf)16\"\n + \"|[Ll]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n },\n // Integer literal.\n { begin:\n \"[+-]?\\\\b(?:\" // Leading sign.\n + \"0[Bb][01](?:'?[01])*\" // Binary.\n + \"|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*\" // Hexadecimal.\n + \"|0(?:'?[0-7])*\" // Octal or just a lone zero.\n + \"|[1-9](?:'?[0-9])*\" // Decimal.\n + \")(?:\" // Literal suffixes.\n + \"[Uu](?:LL?|ll?)\"\n + \"|[Uu][Zz]?\"\n + \"|(?:LL?|ll?)[Uu]?\"\n + \"|[Zz][Uu]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n // Note: there are user-defined literal suffixes too, but perhaps having the custom suffix not part of the\n // literal highlight actually makes it stand out more.\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'flat_map',\n 'flat_set',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [ '_Pragma' ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: ' rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\n/*\nLanguage: Arduino\nAuthor: Stefania Mellai \nDescription: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.\nWebsite: https://www.arduino.cc\nCategory: system\n*/\n\n\n/** @type LanguageFn */\nfunction arduino(hljs) {\n const ARDUINO_KW = {\n type: [\n \"boolean\",\n \"byte\",\n \"word\",\n \"String\"\n ],\n built_in: [\n \"KeyboardController\",\n \"MouseController\",\n \"SoftwareSerial\",\n \"EthernetServer\",\n \"EthernetClient\",\n \"LiquidCrystal\",\n \"RobotControl\",\n \"GSMVoiceCall\",\n \"EthernetUDP\",\n \"EsploraTFT\",\n \"HttpClient\",\n \"RobotMotor\",\n \"WiFiClient\",\n \"GSMScanner\",\n \"FileSystem\",\n \"Scheduler\",\n \"GSMServer\",\n \"YunClient\",\n \"YunServer\",\n \"IPAddress\",\n \"GSMClient\",\n \"GSMModem\",\n \"Keyboard\",\n \"Ethernet\",\n \"Console\",\n \"GSMBand\",\n \"Esplora\",\n \"Stepper\",\n \"Process\",\n \"WiFiUDP\",\n \"GSM_SMS\",\n \"Mailbox\",\n \"USBHost\",\n \"Firmata\",\n \"PImage\",\n \"Client\",\n \"Server\",\n \"GSMPIN\",\n \"FileIO\",\n \"Bridge\",\n \"Serial\",\n \"EEPROM\",\n \"Stream\",\n \"Mouse\",\n \"Audio\",\n \"Servo\",\n \"File\",\n \"Task\",\n \"GPRS\",\n \"WiFi\",\n \"Wire\",\n \"TFT\",\n \"GSM\",\n \"SPI\",\n \"SD\"\n ],\n _hints: [\n \"setup\",\n \"loop\",\n \"runShellCommandAsynchronously\",\n \"analogWriteResolution\",\n \"retrieveCallingNumber\",\n \"printFirmwareVersion\",\n \"analogReadResolution\",\n \"sendDigitalPortPair\",\n \"noListenOnLocalhost\",\n \"readJoystickButton\",\n \"setFirmwareVersion\",\n \"readJoystickSwitch\",\n \"scrollDisplayRight\",\n \"getVoiceCallStatus\",\n \"scrollDisplayLeft\",\n \"writeMicroseconds\",\n \"delayMicroseconds\",\n \"beginTransmission\",\n \"getSignalStrength\",\n \"runAsynchronously\",\n \"getAsynchronously\",\n \"listenOnLocalhost\",\n \"getCurrentCarrier\",\n \"readAccelerometer\",\n \"messageAvailable\",\n \"sendDigitalPorts\",\n \"lineFollowConfig\",\n \"countryNameWrite\",\n \"runShellCommand\",\n \"readStringUntil\",\n \"rewindDirectory\",\n \"readTemperature\",\n \"setClockDivider\",\n \"readLightSensor\",\n \"endTransmission\",\n \"analogReference\",\n \"detachInterrupt\",\n \"countryNameRead\",\n \"attachInterrupt\",\n \"encryptionType\",\n \"readBytesUntil\",\n \"robotNameWrite\",\n \"readMicrophone\",\n \"robotNameRead\",\n \"cityNameWrite\",\n \"userNameWrite\",\n \"readJoystickY\",\n \"readJoystickX\",\n \"mouseReleased\",\n \"openNextFile\",\n \"scanNetworks\",\n \"noInterrupts\",\n \"digitalWrite\",\n \"beginSpeaker\",\n \"mousePressed\",\n \"isActionDone\",\n \"mouseDragged\",\n \"displayLogos\",\n \"noAutoscroll\",\n \"addParameter\",\n \"remoteNumber\",\n \"getModifiers\",\n \"keyboardRead\",\n \"userNameRead\",\n \"waitContinue\",\n \"processInput\",\n \"parseCommand\",\n \"printVersion\",\n \"readNetworks\",\n \"writeMessage\",\n \"blinkVersion\",\n \"cityNameRead\",\n \"readMessage\",\n \"setDataMode\",\n \"parsePacket\",\n \"isListening\",\n \"setBitOrder\",\n \"beginPacket\",\n \"isDirectory\",\n \"motorsWrite\",\n \"drawCompass\",\n \"digitalRead\",\n \"clearScreen\",\n \"serialEvent\",\n \"rightToLeft\",\n \"setTextSize\",\n \"leftToRight\",\n \"requestFrom\",\n \"keyReleased\",\n \"compassRead\",\n \"analogWrite\",\n \"interrupts\",\n \"WiFiServer\",\n \"disconnect\",\n \"playMelody\",\n \"parseFloat\",\n \"autoscroll\",\n \"getPINUsed\",\n \"setPINUsed\",\n \"setTimeout\",\n \"sendAnalog\",\n \"readSlider\",\n \"analogRead\",\n \"beginWrite\",\n \"createChar\",\n \"motorsStop\",\n \"keyPressed\",\n \"tempoWrite\",\n \"readButton\",\n \"subnetMask\",\n \"debugPrint\",\n \"macAddress\",\n \"writeGreen\",\n \"randomSeed\",\n \"attachGPRS\",\n \"readString\",\n \"sendString\",\n \"remotePort\",\n \"releaseAll\",\n \"mouseMoved\",\n \"background\",\n \"getXChange\",\n \"getYChange\",\n \"answerCall\",\n \"getResult\",\n \"voiceCall\",\n \"endPacket\",\n \"constrain\",\n \"getSocket\",\n \"writeJSON\",\n \"getButton\",\n \"available\",\n \"connected\",\n \"findUntil\",\n \"readBytes\",\n \"exitValue\",\n \"readGreen\",\n \"writeBlue\",\n \"startLoop\",\n \"IPAddress\",\n \"isPressed\",\n \"sendSysex\",\n \"pauseMode\",\n \"gatewayIP\",\n \"setCursor\",\n \"getOemKey\",\n \"tuneWrite\",\n \"noDisplay\",\n \"loadImage\",\n \"switchPIN\",\n \"onRequest\",\n \"onReceive\",\n \"changePIN\",\n \"playFile\",\n \"noBuffer\",\n \"parseInt\",\n \"overflow\",\n \"checkPIN\",\n \"knobRead\",\n \"beginTFT\",\n \"bitClear\",\n \"updateIR\",\n \"bitWrite\",\n \"position\",\n \"writeRGB\",\n \"highByte\",\n \"writeRed\",\n \"setSpeed\",\n \"readBlue\",\n \"noStroke\",\n \"remoteIP\",\n \"transfer\",\n \"shutdown\",\n \"hangCall\",\n \"beginSMS\",\n \"endWrite\",\n \"attached\",\n \"maintain\",\n \"noCursor\",\n \"checkReg\",\n \"checkPUK\",\n \"shiftOut\",\n \"isValid\",\n \"shiftIn\",\n \"pulseIn\",\n \"connect\",\n \"println\",\n \"localIP\",\n \"pinMode\",\n \"getIMEI\",\n \"display\",\n \"noBlink\",\n \"process\",\n \"getBand\",\n \"running\",\n \"beginSD\",\n \"drawBMP\",\n \"lowByte\",\n \"setBand\",\n \"release\",\n \"bitRead\",\n \"prepare\",\n \"pointTo\",\n \"readRed\",\n \"setMode\",\n \"noFill\",\n \"remove\",\n \"listen\",\n \"stroke\",\n \"detach\",\n \"attach\",\n \"noTone\",\n \"exists\",\n \"buffer\",\n \"height\",\n \"bitSet\",\n \"circle\",\n \"config\",\n \"cursor\",\n \"random\",\n \"IRread\",\n \"setDNS\",\n \"endSMS\",\n \"getKey\",\n \"micros\",\n \"millis\",\n \"begin\",\n \"print\",\n \"write\",\n \"ready\",\n \"flush\",\n \"width\",\n \"isPIN\",\n \"blink\",\n \"clear\",\n \"press\",\n \"mkdir\",\n \"rmdir\",\n \"close\",\n \"point\",\n \"yield\",\n \"image\",\n \"BSSID\",\n \"click\",\n \"delay\",\n \"read\",\n \"text\",\n \"move\",\n \"peek\",\n \"beep\",\n \"rect\",\n \"line\",\n \"open\",\n \"seek\",\n \"fill\",\n \"size\",\n \"turn\",\n \"stop\",\n \"home\",\n \"find\",\n \"step\",\n \"tone\",\n \"sqrt\",\n \"RSSI\",\n \"SSID\",\n \"end\",\n \"bit\",\n \"tan\",\n \"cos\",\n \"sin\",\n \"pow\",\n \"map\",\n \"abs\",\n \"max\",\n \"min\",\n \"get\",\n \"run\",\n \"put\"\n ],\n literal: [\n \"DIGITAL_MESSAGE\",\n \"FIRMATA_STRING\",\n \"ANALOG_MESSAGE\",\n \"REPORT_DIGITAL\",\n \"REPORT_ANALOG\",\n \"INPUT_PULLUP\",\n \"SET_PIN_MODE\",\n \"INTERNAL2V56\",\n \"SYSTEM_RESET\",\n \"LED_BUILTIN\",\n \"INTERNAL1V1\",\n \"SYSEX_START\",\n \"INTERNAL\",\n \"EXTERNAL\",\n \"DEFAULT\",\n \"OUTPUT\",\n \"INPUT\",\n \"HIGH\",\n \"LOW\"\n ]\n };\n\n const ARDUINO = cPlusPlus(hljs);\n\n const kws = /** @type {Record} */ (ARDUINO.keywords);\n\n kws.type = [\n ...kws.type,\n ...ARDUINO_KW.type\n ];\n kws.literal = [\n ...kws.literal,\n ...ARDUINO_KW.literal\n ];\n kws.built_in = [\n ...kws.built_in,\n ...ARDUINO_KW.built_in\n ];\n kws._hints = ARDUINO_KW._hints;\n\n ARDUINO.name = 'Arduino';\n ARDUINO.aliases = [ 'ino' ];\n ARDUINO.supersetOf = \"cpp\";\n\n return ARDUINO;\n}\n\nexport { arduino as default };\n","/*\nLanguage: Bash\nAuthor: vah \nContributrors: Benjamin Pannell \nWebsite: https://www.gnu.org/software/bash/\nCategory: common, scripting\n*/\n\n/** @type LanguageFn */\nfunction bash(hljs) {\n const regex = hljs.regex;\n const VAR = {};\n const BRACED_VAR = {\n begin: /\\$\\{/,\n end: /\\}/,\n contains: [\n \"self\",\n {\n begin: /:-/,\n contains: [ VAR ]\n } // default values\n ]\n };\n Object.assign(VAR, {\n className: 'variable',\n variants: [\n { begin: regex.concat(/\\$[\\w\\d#@][\\w\\d_]*/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![\\\\w\\\\d])(?![$])`) },\n BRACED_VAR\n ]\n });\n\n const SUBST = {\n className: 'subst',\n begin: /\\$\\(/,\n end: /\\)/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n const COMMENT = hljs.inherit(\n hljs.COMMENT(),\n {\n match: [\n /(^|\\s)/,\n /#.*$/\n ],\n scope: {\n 2: 'comment'\n }\n }\n );\n const HERE_DOC = {\n begin: /<<-?\\s*(?=\\w+)/,\n starts: { contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n className: 'string'\n })\n ] }\n };\n const QUOTE_STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR,\n SUBST\n ]\n };\n SUBST.contains.push(QUOTE_STRING);\n const ESCAPED_QUOTE = {\n match: /\\\\\"/\n };\n const APOS_STRING = {\n className: 'string',\n begin: /'/,\n end: /'/\n };\n const ESCAPED_APOS = {\n match: /\\\\'/\n };\n const ARITHMETIC = {\n begin: /\\$?\\(\\(/,\n end: /\\)\\)/,\n contains: [\n {\n begin: /\\d+#[0-9a-f]+/,\n className: \"number\"\n },\n hljs.NUMBER_MODE,\n VAR\n ]\n };\n const SH_LIKE_SHELLS = [\n \"fish\",\n \"bash\",\n \"zsh\",\n \"sh\",\n \"csh\",\n \"ksh\",\n \"tcsh\",\n \"dash\",\n \"scsh\",\n ];\n const KNOWN_SHEBANG = hljs.SHEBANG({\n binary: `(${SH_LIKE_SHELLS.join(\"|\")})`,\n relevance: 10\n });\n const FUNCTION = {\n className: 'function',\n begin: /\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,\n returnBegin: true,\n contains: [ hljs.inherit(hljs.TITLE_MODE, { begin: /\\w[\\w\\d_]*/ }) ],\n relevance: 0\n };\n\n const KEYWORDS = [\n \"if\",\n \"then\",\n \"else\",\n \"elif\",\n \"fi\",\n \"time\",\n \"for\",\n \"while\",\n \"until\",\n \"in\",\n \"do\",\n \"done\",\n \"case\",\n \"esac\",\n \"coproc\",\n \"function\",\n \"select\"\n ];\n\n const LITERALS = [\n \"true\",\n \"false\"\n ];\n\n // to consume paths to prevent keyword matches inside them\n const PATH_MODE = { match: /(\\/[a-z._-]+)+/ };\n\n // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n const SHELL_BUILT_INS = [\n \"break\",\n \"cd\",\n \"continue\",\n \"eval\",\n \"exec\",\n \"exit\",\n \"export\",\n \"getopts\",\n \"hash\",\n \"pwd\",\n \"readonly\",\n \"return\",\n \"shift\",\n \"test\",\n \"times\",\n \"trap\",\n \"umask\",\n \"unset\"\n ];\n\n const BASH_BUILT_INS = [\n \"alias\",\n \"bind\",\n \"builtin\",\n \"caller\",\n \"command\",\n \"declare\",\n \"echo\",\n \"enable\",\n \"help\",\n \"let\",\n \"local\",\n \"logout\",\n \"mapfile\",\n \"printf\",\n \"read\",\n \"readarray\",\n \"source\",\n \"sudo\",\n \"type\",\n \"typeset\",\n \"ulimit\",\n \"unalias\"\n ];\n\n const ZSH_BUILT_INS = [\n \"autoload\",\n \"bg\",\n \"bindkey\",\n \"bye\",\n \"cap\",\n \"chdir\",\n \"clone\",\n \"comparguments\",\n \"compcall\",\n \"compctl\",\n \"compdescribe\",\n \"compfiles\",\n \"compgroups\",\n \"compquote\",\n \"comptags\",\n \"comptry\",\n \"compvalues\",\n \"dirs\",\n \"disable\",\n \"disown\",\n \"echotc\",\n \"echoti\",\n \"emulate\",\n \"fc\",\n \"fg\",\n \"float\",\n \"functions\",\n \"getcap\",\n \"getln\",\n \"history\",\n \"integer\",\n \"jobs\",\n \"kill\",\n \"limit\",\n \"log\",\n \"noglob\",\n \"popd\",\n \"print\",\n \"pushd\",\n \"pushln\",\n \"rehash\",\n \"sched\",\n \"setcap\",\n \"setopt\",\n \"stat\",\n \"suspend\",\n \"ttyctl\",\n \"unfunction\",\n \"unhash\",\n \"unlimit\",\n \"unsetopt\",\n \"vared\",\n \"wait\",\n \"whence\",\n \"where\",\n \"which\",\n \"zcompile\",\n \"zformat\",\n \"zftp\",\n \"zle\",\n \"zmodload\",\n \"zparseopts\",\n \"zprof\",\n \"zpty\",\n \"zregexparse\",\n \"zsocket\",\n \"zstyle\",\n \"ztcp\"\n ];\n\n const GNU_CORE_UTILS = [\n \"chcon\",\n \"chgrp\",\n \"chown\",\n \"chmod\",\n \"cp\",\n \"dd\",\n \"df\",\n \"dir\",\n \"dircolors\",\n \"ln\",\n \"ls\",\n \"mkdir\",\n \"mkfifo\",\n \"mknod\",\n \"mktemp\",\n \"mv\",\n \"realpath\",\n \"rm\",\n \"rmdir\",\n \"shred\",\n \"sync\",\n \"touch\",\n \"truncate\",\n \"vdir\",\n \"b2sum\",\n \"base32\",\n \"base64\",\n \"cat\",\n \"cksum\",\n \"comm\",\n \"csplit\",\n \"cut\",\n \"expand\",\n \"fmt\",\n \"fold\",\n \"head\",\n \"join\",\n \"md5sum\",\n \"nl\",\n \"numfmt\",\n \"od\",\n \"paste\",\n \"ptx\",\n \"pr\",\n \"sha1sum\",\n \"sha224sum\",\n \"sha256sum\",\n \"sha384sum\",\n \"sha512sum\",\n \"shuf\",\n \"sort\",\n \"split\",\n \"sum\",\n \"tac\",\n \"tail\",\n \"tr\",\n \"tsort\",\n \"unexpand\",\n \"uniq\",\n \"wc\",\n \"arch\",\n \"basename\",\n \"chroot\",\n \"date\",\n \"dirname\",\n \"du\",\n \"echo\",\n \"env\",\n \"expr\",\n \"factor\",\n // \"false\", // keyword literal already\n \"groups\",\n \"hostid\",\n \"id\",\n \"link\",\n \"logname\",\n \"nice\",\n \"nohup\",\n \"nproc\",\n \"pathchk\",\n \"pinky\",\n \"printenv\",\n \"printf\",\n \"pwd\",\n \"readlink\",\n \"runcon\",\n \"seq\",\n \"sleep\",\n \"stat\",\n \"stdbuf\",\n \"stty\",\n \"tee\",\n \"test\",\n \"timeout\",\n // \"true\", // keyword literal already\n \"tty\",\n \"uname\",\n \"unlink\",\n \"uptime\",\n \"users\",\n \"who\",\n \"whoami\",\n \"yes\"\n ];\n\n return {\n name: 'Bash',\n aliases: [\n 'sh',\n 'zsh'\n ],\n keywords: {\n $pattern: /\\b[a-z][a-z0-9._-]+\\b/,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: [\n ...SHELL_BUILT_INS,\n ...BASH_BUILT_INS,\n // Shell modifiers\n \"set\",\n \"shopt\",\n ...ZSH_BUILT_INS,\n ...GNU_CORE_UTILS\n ]\n },\n contains: [\n KNOWN_SHEBANG, // to catch known shells and boost relevancy\n hljs.SHEBANG(), // to catch unknown shells but still highlight the shebang\n FUNCTION,\n ARITHMETIC,\n COMMENT,\n HERE_DOC,\n PATH_MODE,\n QUOTE_STRING,\n ESCAPED_QUOTE,\n APOS_STRING,\n ESCAPED_APOS,\n VAR\n ]\n };\n}\n\nexport { bash as default };\n","/*\nLanguage: C\nCategory: common, system\nWebsite: https://en.wikipedia.org/wiki/C_(programming_language)\n*/\n\n/** @type LanguageFn */\nfunction c(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n\n const TYPES = {\n className: 'type',\n variants: [\n { begin: '\\\\b[a-z\\\\d_]*_t\\\\b' },\n { match: /\\batomic_[a-z]{3,6}\\b/ }\n ]\n\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n { match: /\\b(0b[01']+)/ }, \n { match: /(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/ }, \n { match: /(-?)\\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/ }, \n { match: /(-?)\\b\\d+(?:'\\d+)*(?:\\.\\d*(?:'\\d*)*)?(?:[eE][-+]?\\d+)?/ } \n ],\n relevance: 0\n }; \n \n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef elifdef elifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n const C_KEYWORDS = [\n \"asm\",\n \"auto\",\n \"break\",\n \"case\",\n \"continue\",\n \"default\",\n \"do\",\n \"else\",\n \"enum\",\n \"extern\",\n \"for\",\n \"fortran\",\n \"goto\",\n \"if\",\n \"inline\",\n \"register\",\n \"restrict\",\n \"return\",\n \"sizeof\",\n \"typeof\",\n \"typeof_unqual\",\n \"struct\",\n \"switch\",\n \"typedef\",\n \"union\",\n \"volatile\",\n \"while\",\n \"_Alignas\",\n \"_Alignof\",\n \"_Atomic\",\n \"_Generic\",\n \"_Noreturn\",\n \"_Static_assert\",\n \"_Thread_local\",\n // aliases\n \"alignas\",\n \"alignof\",\n \"noreturn\",\n \"static_assert\",\n \"thread_local\",\n // not a C keyword but is, for all intents and purposes, treated exactly like one.\n \"_Pragma\"\n ];\n\n const C_TYPES = [\n \"float\",\n \"double\",\n \"signed\",\n \"unsigned\",\n \"int\",\n \"short\",\n \"long\",\n \"char\",\n \"void\",\n \"_Bool\",\n \"_BitInt\",\n \"_Complex\",\n \"_Imaginary\",\n \"_Decimal32\",\n \"_Decimal64\",\n \"_Decimal96\",\n \"_Decimal128\",\n \"_Decimal64x\",\n \"_Decimal128x\",\n \"_Float16\",\n \"_Float32\",\n \"_Float64\",\n \"_Float128\",\n \"_Float32x\",\n \"_Float64x\",\n \"_Float128x\",\n // modifiers\n \"const\",\n \"static\",\n \"constexpr\",\n // aliases\n \"complex\",\n \"bool\",\n \"imaginary\"\n ];\n\n const KEYWORDS = {\n keyword: C_KEYWORDS,\n type: C_TYPES,\n literal: 'true false NULL',\n // TODO: apply hinting work similar to what was done in cpp.js\n built_in: 'std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream '\n + 'auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set '\n + 'unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos '\n + 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp '\n + 'fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper '\n + 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow '\n + 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp '\n + 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan '\n + 'vfprintf vprintf vsprintf endl initializer_list unique_ptr',\n };\n\n const EXPRESSION_CONTAINS = [\n PREPROCESSOR,\n TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ hljs.inherit(TITLE_MODE, { className: \"title.function\" }) ],\n relevance: 0\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n TYPES\n ]\n }\n ]\n },\n TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: \"C\",\n aliases: [ 'h' ],\n keywords: KEYWORDS,\n // Until differentiations are added between `c` and `cpp`, `c` will\n // not be auto-detected to avoid auto-detect conflicts between C and C++\n disableAutodetect: true,\n illegal: '=]/,\n contains: [\n { beginKeywords: \"final class struct\" },\n hljs.TITLE_MODE\n ]\n }\n ]),\n exports: {\n preprocessor: PREPROCESSOR,\n strings: STRINGS,\n keywords: KEYWORDS\n }\n };\n}\n\nexport { c as default };\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cpp(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n // Floating-point literal.\n { begin:\n \"[+-]?(?:\" // Leading sign.\n // Decimal.\n + \"(?:\"\n +\"[0-9](?:'?[0-9])*\\\\.(?:[0-9](?:'?[0-9])*)?\"\n + \"|\\\\.[0-9](?:'?[0-9])*\"\n + \")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?\"\n + \"|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*\"\n // Hexadecimal.\n + \"|0[Xx](?:\"\n +\"[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?\"\n + \"|\\\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*\"\n + \")[Pp][+-]?[0-9](?:'?[0-9])*\"\n + \")(?:\" // Literal suffixes.\n + \"[Ff](?:16|32|64|128)?\"\n + \"|(BF|bf)16\"\n + \"|[Ll]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n },\n // Integer literal.\n { begin:\n \"[+-]?\\\\b(?:\" // Leading sign.\n + \"0[Bb][01](?:'?[01])*\" // Binary.\n + \"|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*\" // Hexadecimal.\n + \"|0(?:'?[0-7])*\" // Octal or just a lone zero.\n + \"|[1-9](?:'?[0-9])*\" // Decimal.\n + \")(?:\" // Literal suffixes.\n + \"[Uu](?:LL?|ll?)\"\n + \"|[Uu][Zz]?\"\n + \"|(?:LL?|ll?)[Uu]?\"\n + \"|[Zz][Uu]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n // Note: there are user-defined literal suffixes too, but perhaps having the custom suffix not part of the\n // literal highlight actually makes it stand out more.\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'flat_map',\n 'flat_set',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [ '_Pragma' ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: ' rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\nexport { cpp as default };\n","/*\nLanguage: C#\nAuthor: Jason Diamond \nContributor: Nicolas LLOBERA , Pieter Vantorre , David Pine \nWebsite: https://docs.microsoft.com/dotnet/csharp/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction csharp(hljs) {\n const BUILT_IN_KEYWORDS = [\n 'bool',\n 'byte',\n 'char',\n 'decimal',\n 'delegate',\n 'double',\n 'dynamic',\n 'enum',\n 'float',\n 'int',\n 'long',\n 'nint',\n 'nuint',\n 'object',\n 'sbyte',\n 'short',\n 'string',\n 'ulong',\n 'uint',\n 'ushort'\n ];\n const FUNCTION_MODIFIERS = [\n 'public',\n 'private',\n 'protected',\n 'static',\n 'internal',\n 'protected',\n 'abstract',\n 'async',\n 'extern',\n 'override',\n 'unsafe',\n 'virtual',\n 'new',\n 'sealed',\n 'partial'\n ];\n const LITERAL_KEYWORDS = [\n 'default',\n 'false',\n 'null',\n 'true'\n ];\n const NORMAL_KEYWORDS = [\n 'abstract',\n 'as',\n 'base',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'const',\n 'continue',\n 'do',\n 'else',\n 'event',\n 'explicit',\n 'extern',\n 'finally',\n 'fixed',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'namespace',\n 'new',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'record',\n 'ref',\n 'return',\n 'scoped',\n 'sealed',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'try',\n 'typeof',\n 'unchecked',\n 'unsafe',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while'\n ];\n const CONTEXTUAL_KEYWORDS = [\n 'add',\n 'alias',\n 'and',\n 'ascending',\n 'args',\n 'async',\n 'await',\n 'by',\n 'descending',\n 'dynamic',\n 'equals',\n 'file',\n 'from',\n 'get',\n 'global',\n 'group',\n 'init',\n 'into',\n 'join',\n 'let',\n 'nameof',\n 'not',\n 'notnull',\n 'on',\n 'or',\n 'orderby',\n 'partial',\n 'record',\n 'remove',\n 'required',\n 'scoped',\n 'select',\n 'set',\n 'unmanaged',\n 'value|0',\n 'var',\n 'when',\n 'where',\n 'with',\n 'yield'\n ];\n\n const KEYWORDS = {\n keyword: NORMAL_KEYWORDS.concat(CONTEXTUAL_KEYWORDS),\n built_in: BUILT_IN_KEYWORDS,\n literal: LITERAL_KEYWORDS\n };\n const TITLE_MODE = hljs.inherit(hljs.TITLE_MODE, { begin: '[a-zA-Z](\\\\.?\\\\w)*' });\n const NUMBERS = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0b[01\\']+)' },\n { begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)(u|U|l|L|ul|UL|f|F|b|B)' },\n { begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)' }\n ],\n relevance: 0\n };\n const RAW_STRING = {\n className: 'string',\n begin: /\"\"\"(\"*)(?!\")(.|\\n)*?\"\"\"\\1/,\n relevance: 1\n };\n const VERBATIM_STRING = {\n className: 'string',\n begin: '@\"',\n end: '\"',\n contains: [ { begin: '\"\"' } ]\n };\n const VERBATIM_STRING_NO_LF = hljs.inherit(VERBATIM_STRING, { illegal: /\\n/ });\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS\n };\n const SUBST_NO_LF = hljs.inherit(SUBST, { illegal: /\\n/ });\n const INTERPOLATED_STRING = {\n className: 'string',\n begin: /\\$\"/,\n end: '\"',\n illegal: /\\n/,\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n hljs.BACKSLASH_ESCAPE,\n SUBST_NO_LF\n ]\n };\n const INTERPOLATED_VERBATIM_STRING = {\n className: 'string',\n begin: /\\$@\"/,\n end: '\"',\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n { begin: '\"\"' },\n SUBST\n ]\n };\n const INTERPOLATED_VERBATIM_STRING_NO_LF = hljs.inherit(INTERPOLATED_VERBATIM_STRING, {\n illegal: /\\n/,\n contains: [\n { begin: /\\{\\{/ },\n { begin: /\\}\\}/ },\n { begin: '\"\"' },\n SUBST_NO_LF\n ]\n });\n SUBST.contains = [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ];\n SUBST_NO_LF.contains = [\n INTERPOLATED_VERBATIM_STRING_NO_LF,\n INTERPOLATED_STRING,\n VERBATIM_STRING_NO_LF,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.inherit(hljs.C_BLOCK_COMMENT_MODE, { illegal: /\\n/ })\n ];\n const STRING = { variants: [\n RAW_STRING,\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ] };\n\n const GENERIC_MODIFIER = {\n begin: \"<\",\n end: \">\",\n contains: [\n { beginKeywords: \"in out\" },\n TITLE_MODE\n ]\n };\n const TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\\\s*,\\\\s*' + hljs.IDENT_RE + ')*>)?(\\\\[\\\\])?';\n const AT_IDENTIFIER = {\n // prevents expressions like `@class` from incorrect flagging\n // `class` as a keyword\n begin: \"@\" + hljs.IDENT_RE,\n relevance: 0\n };\n\n return {\n name: 'C#',\n aliases: [\n 'cs',\n 'c#'\n ],\n keywords: KEYWORDS,\n illegal: /::/,\n contains: [\n hljs.COMMENT(\n '///',\n '$',\n {\n returnBegin: true,\n contains: [\n {\n className: 'doctag',\n variants: [\n {\n begin: '///',\n relevance: 0\n },\n { begin: '' },\n {\n begin: ''\n }\n ]\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: { keyword: 'if else elif endif define undef warning error line region endregion pragma checksum' }\n },\n STRING,\n NUMBERS,\n {\n beginKeywords: 'class interface',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:,]/,\n contains: [\n { beginKeywords: \"where class\" },\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'record',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n // [Attributes(\"\")]\n className: 'meta',\n begin: '^\\\\s*\\\\[(?=[\\\\w])',\n excludeBegin: true,\n end: '\\\\]',\n excludeEnd: true,\n contains: [\n {\n className: 'string',\n begin: /\"/,\n end: /\"/\n }\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new return throw await else',\n relevance: 0\n },\n {\n className: 'function',\n begin: '(' + TYPE_IDENT_RE + '\\\\s+)+' + hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n end: /\\s*[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n // prevents these from being highlighted `title`\n {\n beginKeywords: FUNCTION_MODIFIERS.join(\" \"),\n relevance: 0\n },\n {\n begin: hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n contains: [\n hljs.TITLE_MODE,\n GENERIC_MODIFIER\n ],\n relevance: 0\n },\n { match: /\\(\\)/ },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n STRING,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n AT_IDENTIFIER\n ]\n };\n}\n\nexport { csharp as default };\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z_][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst HTML_TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'picture',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'select',\n 'source',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst SVG_TAGS = [\n 'defs',\n 'g',\n 'marker',\n 'mask',\n 'pattern',\n 'svg',\n 'switch',\n 'symbol',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feFlood',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMorphology',\n 'feOffset',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'linearGradient',\n 'radialGradient',\n 'stop',\n 'circle',\n 'ellipse',\n 'image',\n 'line',\n 'path',\n 'polygon',\n 'polyline',\n 'rect',\n 'text',\n 'use',\n 'textPath',\n 'tspan',\n 'foreignObject',\n 'clipPath'\n];\n\nconst TAGS = [\n ...HTML_TAGS,\n ...SVG_TAGS,\n];\n\n// Sorting, then reversing makes sure longer attributes/elements like\n// `font-weight` are matched fully instead of getting false positives on say `font`\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n].sort().reverse();\n\nconst ATTRIBUTES = [\n 'accent-color',\n 'align-content',\n 'align-items',\n 'align-self',\n 'alignment-baseline',\n 'all',\n 'anchor-name',\n 'animation',\n 'animation-composition',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-range',\n 'animation-range-end',\n 'animation-range-start',\n 'animation-timeline',\n 'animation-timing-function',\n 'appearance',\n 'aspect-ratio',\n 'backdrop-filter',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-position-x',\n 'background-position-y',\n 'background-repeat',\n 'background-size',\n 'baseline-shift',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-align',\n 'box-decoration-break',\n 'box-direction',\n 'box-flex',\n 'box-flex-group',\n 'box-lines',\n 'box-ordinal-group',\n 'box-orient',\n 'box-pack',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'color-scheme',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'contain-intrinsic-block-size',\n 'contain-intrinsic-height',\n 'contain-intrinsic-inline-size',\n 'contain-intrinsic-size',\n 'contain-intrinsic-width',\n 'container',\n 'container-name',\n 'container-type',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'counter-set',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'cx',\n 'cy',\n 'direction',\n 'display',\n 'dominant-baseline',\n 'empty-cells',\n 'enable-background',\n 'field-sizing',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flood-color',\n 'flood-opacity',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-optical-sizing',\n 'font-palette',\n 'font-size',\n 'font-size-adjust',\n 'font-smooth',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-synthesis-position',\n 'font-synthesis-small-caps',\n 'font-synthesis-style',\n 'font-synthesis-weight',\n 'font-variant',\n 'font-variant-alternates',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-emoji',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'forced-color-adjust',\n 'gap',\n 'glyph-orientation-horizontal',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphenate-character',\n 'hyphenate-limit-chars',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'initial-letter',\n 'initial-letter-align',\n 'inline-size',\n 'inset',\n 'inset-area',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'isolation',\n 'justify-content',\n 'justify-items',\n 'justify-self',\n 'kerning',\n 'left',\n 'letter-spacing',\n 'lighting-color',\n 'line-break',\n 'line-height',\n 'line-height-step',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'margin-trim',\n 'marker',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'masonry-auto-flow',\n 'math-depth',\n 'math-shift',\n 'math-style',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-anchor',\n 'overflow-block',\n 'overflow-clip-margin',\n 'overflow-inline',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'overlay',\n 'overscroll-behavior',\n 'overscroll-behavior-block',\n 'overscroll-behavior-inline',\n 'overscroll-behavior-x',\n 'overscroll-behavior-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'paint-order',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'place-content',\n 'place-items',\n 'place-self',\n 'pointer-events',\n 'position',\n 'position-anchor',\n 'position-visibility',\n 'print-color-adjust',\n 'quotes',\n 'r',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'rotate',\n 'row-gap',\n 'ruby-align',\n 'ruby-position',\n 'scale',\n 'scroll-behavior',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scroll-timeline',\n 'scroll-timeline-axis',\n 'scroll-timeline-name',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'shape-rendering',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'stop-color',\n 'stop-opacity',\n 'stroke',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-anchor',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-skip',\n 'text-decoration-skip-ink',\n 'text-decoration-style',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-size-adjust',\n 'text-transform',\n 'text-underline-offset',\n 'text-underline-position',\n 'text-wrap',\n 'text-wrap-mode',\n 'text-wrap-style',\n 'timeline-scope',\n 'top',\n 'touch-action',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-behavior',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'translate',\n 'unicode-bidi',\n 'user-modify',\n 'user-select',\n 'vector-effect',\n 'vertical-align',\n 'view-timeline',\n 'view-timeline-axis',\n 'view-timeline-inset',\n 'view-timeline-name',\n 'view-transition-name',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'white-space-collapse',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'x',\n 'y',\n 'z-index',\n 'zoom'\n].sort().reverse();\n\n/*\nLanguage: CSS\nCategory: common, css, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/CSS\n*/\n\n\n/** @type LanguageFn */\nfunction css(hljs) {\n const regex = hljs.regex;\n const modes = MODES(hljs);\n const VENDOR_PREFIX = { begin: /-(webkit|moz|ms|o)-(?=[a-z])/ };\n const AT_MODIFIERS = \"and or not only\";\n const AT_PROPERTY_RE = /@-?\\w[\\w]*(-\\w+)*/; // @-webkit-keyframes\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const STRINGS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ];\n\n return {\n name: 'CSS',\n case_insensitive: true,\n illegal: /[=|'\\$]/,\n keywords: { keyframePosition: \"from to\" },\n classNameAliases: {\n // for visual continuity with `tag {}` and because we\n // don't have a great class for this?\n keyframePosition: \"selector-tag\" },\n contains: [\n modes.BLOCK_COMMENT,\n VENDOR_PREFIX,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: /#[A-Za-z0-9_-]+/,\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.' + IDENT_RE,\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n variants: [\n { begin: ':(' + PSEUDO_CLASSES.join('|') + ')' },\n { begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')' }\n ]\n },\n // we may actually need this (12/2020)\n // { // pseudo-selector params\n // begin: /\\(/,\n // end: /\\)/,\n // contains: [ hljs.CSS_NUMBER_MODE ]\n // },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n // attribute values\n {\n begin: /:/,\n end: /[;}{]/,\n contains: [\n modes.BLOCK_COMMENT,\n modes.HEXCOLOR,\n modes.IMPORTANT,\n modes.CSS_NUMBER_MODE,\n ...STRINGS,\n // needed to highlight these as strings and to avoid issues with\n // illegal characters that might be inside urls that would tigger the\n // languages illegal stack\n {\n begin: /(url|data-uri)\\(/,\n end: /\\)/,\n relevance: 0, // from keywords\n keywords: { built_in: \"url data-uri\" },\n contains: [\n ...STRINGS,\n {\n className: \"string\",\n // any character other than `)` as in `url()` will be the start\n // of a string, which ends with `)` (from the parent mode)\n begin: /[^)]/,\n endsWithParent: true,\n excludeEnd: true\n }\n ]\n },\n modes.FUNCTION_DISPATCH\n ]\n },\n {\n begin: regex.lookahead(/@/),\n end: '[{;]',\n relevance: 0,\n illegal: /:/, // break on Less variables @var: ...\n contains: [\n {\n className: 'keyword',\n begin: AT_PROPERTY_RE\n },\n {\n begin: /\\s/,\n endsWithParent: true,\n excludeEnd: true,\n relevance: 0,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n ...STRINGS,\n modes.CSS_NUMBER_MODE\n ]\n }\n ]\n },\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b'\n }\n ]\n };\n}\n\nexport { css as default };\n","/*\nLanguage: Diff\nDescription: Unified and context diff\nAuthor: Vasily Polovnyov \nWebsite: https://www.gnu.org/software/diffutils/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction diff(hljs) {\n const regex = hljs.regex;\n return {\n name: 'Diff',\n aliases: [ 'patch' ],\n contains: [\n {\n className: 'meta',\n relevance: 10,\n match: regex.either(\n /^@@ +-\\d+,\\d+ +\\+\\d+,\\d+ +@@/,\n /^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/,\n /^--- +\\d+,\\d+ +----$/\n )\n },\n {\n className: 'comment',\n variants: [\n {\n begin: regex.either(\n /Index: /,\n /^index/,\n /={3,}/,\n /^-{3}/,\n /^\\*{3} /,\n /^\\+{3}/,\n /^diff --git/\n ),\n end: /$/\n },\n { match: /^\\*{15}$/ }\n ]\n },\n {\n className: 'addition',\n begin: /^\\+/,\n end: /$/\n },\n {\n className: 'deletion',\n begin: /^-/,\n end: /$/\n },\n {\n className: 'addition',\n begin: /^!/,\n end: /$/\n }\n ]\n };\n}\n\nexport { diff as default };\n","/*\nLanguage: Go\nAuthor: Stephan Kountso aka StepLg \nContributors: Evgeny Stepanischev \nDescription: Google go language (golang). For info about language\nWebsite: http://golang.org/\nCategory: common, system\n*/\n\nfunction go(hljs) {\n const LITERALS = [\n \"true\",\n \"false\",\n \"iota\",\n \"nil\"\n ];\n const BUILT_INS = [\n \"append\",\n \"cap\",\n \"close\",\n \"complex\",\n \"copy\",\n \"imag\",\n \"len\",\n \"make\",\n \"new\",\n \"panic\",\n \"print\",\n \"println\",\n \"real\",\n \"recover\",\n \"delete\"\n ];\n const TYPES = [\n \"bool\",\n \"byte\",\n \"complex64\",\n \"complex128\",\n \"error\",\n \"float32\",\n \"float64\",\n \"int8\",\n \"int16\",\n \"int32\",\n \"int64\",\n \"string\",\n \"uint8\",\n \"uint16\",\n \"uint32\",\n \"uint64\",\n \"int\",\n \"uint\",\n \"uintptr\",\n \"rune\"\n ];\n const KWS = [\n \"break\",\n \"case\",\n \"chan\",\n \"const\",\n \"continue\",\n \"default\",\n \"defer\",\n \"else\",\n \"fallthrough\",\n \"for\",\n \"func\",\n \"go\",\n \"goto\",\n \"if\",\n \"import\",\n \"interface\",\n \"map\",\n \"package\",\n \"range\",\n \"return\",\n \"select\",\n \"struct\",\n \"switch\",\n \"type\",\n \"var\",\n ];\n const KEYWORDS = {\n keyword: KWS,\n type: TYPES,\n literal: LITERALS,\n built_in: BUILT_INS\n };\n return {\n name: 'Go',\n aliases: [ 'golang' ],\n keywords: KEYWORDS,\n illegal: '\nCategory: common, config\nWebsite: https://github.com/toml-lang/toml\n*/\n\nfunction ini(hljs) {\n const regex = hljs.regex;\n const NUMBERS = {\n className: 'number',\n relevance: 0,\n variants: [\n { begin: /([+-]+)?[\\d]+_[\\d_]+/ },\n { begin: hljs.NUMBER_RE }\n ]\n };\n const COMMENTS = hljs.COMMENT();\n COMMENTS.variants = [\n {\n begin: /;/,\n end: /$/\n },\n {\n begin: /#/,\n end: /$/\n }\n ];\n const VARIABLES = {\n className: 'variable',\n variants: [\n { begin: /\\$[\\w\\d\"][\\w\\d_]*/ },\n { begin: /\\$\\{(.*?)\\}/ }\n ]\n };\n const LITERALS = {\n className: 'literal',\n begin: /\\bon|off|true|false|yes|no\\b/\n };\n const STRINGS = {\n className: \"string\",\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: \"'''\",\n end: \"'''\",\n relevance: 10\n },\n {\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 10\n },\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: \"'\",\n end: \"'\"\n }\n ]\n };\n const ARRAY = {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n COMMENTS,\n LITERALS,\n VARIABLES,\n STRINGS,\n NUMBERS,\n 'self'\n ],\n relevance: 0\n };\n\n const BARE_KEY = /[A-Za-z0-9_-]+/;\n const QUOTED_KEY_DOUBLE_QUOTE = /\"(\\\\\"|[^\"])*\"/;\n const QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/;\n const ANY_KEY = regex.either(\n BARE_KEY, QUOTED_KEY_DOUBLE_QUOTE, QUOTED_KEY_SINGLE_QUOTE\n );\n const DOTTED_KEY = regex.concat(\n ANY_KEY, '(\\\\s*\\\\.\\\\s*', ANY_KEY, ')*',\n regex.lookahead(/\\s*=\\s*[^#\\s]/)\n );\n\n return {\n name: 'TOML, also INI',\n aliases: [ 'toml' ],\n case_insensitive: true,\n illegal: /\\S/,\n contains: [\n COMMENTS,\n {\n className: 'section',\n begin: /\\[+/,\n end: /\\]+/\n },\n {\n begin: DOTTED_KEY,\n className: 'attr',\n starts: {\n end: /$/,\n contains: [\n COMMENTS,\n ARRAY,\n LITERALS,\n VARIABLES,\n STRINGS,\n NUMBERS\n ]\n }\n }\n ]\n };\n}\n\nexport { ini as default };\n","// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n // excluding ExponentPart\n { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n { begin: `(${frac})[fFdD]?\\\\b` },\n { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n // HexadecimalFloatingPointLiteral\n { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n // DecimalIntegerLiteral\n { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n // HexIntegerLiteral\n { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n // OctalIntegerLiteral\n { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n // BinaryIntegerLiteral\n { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n ],\n relevance: 0\n};\n\n/*\nLanguage: Java\nAuthor: Vsevolod Solovyov \nCategory: common, enterprise\nWebsite: https://www.java.com/\n*/\n\n\n/**\n * Allows recursive regex expressions to a given depth\n *\n * ie: recurRegex(\"(abc~~~)\", /~~~/g, 2) becomes:\n * (abc(abc(abc)))\n *\n * @param {string} re\n * @param {RegExp} substitution (should be a g mode regex)\n * @param {number} depth\n * @returns {string}``\n */\nfunction recurRegex(re, substitution, depth) {\n if (depth === -1) return \"\";\n\n return re.replace(substitution, _ => {\n return recurRegex(re, substitution, depth - 1);\n });\n}\n\n/** @type LanguageFn */\nfunction java(hljs) {\n const regex = hljs.regex;\n const JAVA_IDENT_RE = '[\\u00C0-\\u02B8a-zA-Z_$][\\u00C0-\\u02B8a-zA-Z_$0-9]*';\n const GENERIC_IDENT_RE = JAVA_IDENT_RE\n + recurRegex('(?:<' + JAVA_IDENT_RE + '~~~(?:\\\\s*,\\\\s*' + JAVA_IDENT_RE + '~~~)*>)?', /~~~/g, 2);\n const MAIN_KEYWORDS = [\n 'synchronized',\n 'abstract',\n 'private',\n 'var',\n 'static',\n 'if',\n 'const ',\n 'for',\n 'while',\n 'strictfp',\n 'finally',\n 'protected',\n 'import',\n 'native',\n 'final',\n 'void',\n 'enum',\n 'else',\n 'break',\n 'transient',\n 'catch',\n 'instanceof',\n 'volatile',\n 'case',\n 'assert',\n 'package',\n 'default',\n 'public',\n 'try',\n 'switch',\n 'continue',\n 'throws',\n 'protected',\n 'public',\n 'private',\n 'module',\n 'requires',\n 'exports',\n 'do',\n 'sealed',\n 'yield',\n 'permits',\n 'goto',\n 'when'\n ];\n\n const BUILT_INS = [\n 'super',\n 'this'\n ];\n\n const LITERALS = [\n 'false',\n 'true',\n 'null'\n ];\n\n const TYPES = [\n 'char',\n 'boolean',\n 'long',\n 'float',\n 'int',\n 'byte',\n 'short',\n 'double'\n ];\n\n const KEYWORDS = {\n keyword: MAIN_KEYWORDS,\n literal: LITERALS,\n type: TYPES,\n built_in: BUILT_INS\n };\n\n const ANNOTATION = {\n className: 'meta',\n begin: '@' + JAVA_IDENT_RE,\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [ \"self\" ] // allow nested () inside our annotation\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [ hljs.C_BLOCK_COMMENT_MODE ],\n endsParent: true\n };\n\n return {\n name: 'Java',\n aliases: [ 'jsp' ],\n keywords: KEYWORDS,\n illegal: /<\\/|#/,\n contains: [\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n },\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n // relevance boost\n {\n begin: /import java\\.[a-z]+\\./,\n keywords: \"import\",\n relevance: 2\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n begin: /\"\"\"/,\n end: /\"\"\"/,\n className: \"string\",\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n match: [\n /\\b(?:class|interface|enum|extends|implements|new)/,\n /\\s+/,\n JAVA_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n // Exceptions for hyphenated keywords\n match: /non-sealed/,\n scope: \"keyword\"\n },\n {\n begin: [\n regex.concat(/(?!else)/, JAVA_IDENT_RE),\n /\\s+/,\n JAVA_IDENT_RE,\n /\\s+/,\n /=(?!=)/\n ],\n className: {\n 1: \"type\",\n 3: \"variable\",\n 5: \"operator\"\n }\n },\n {\n begin: [\n /record/,\n /\\s+/,\n JAVA_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n },\n contains: [\n PARAMS,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new throw return else',\n relevance: 0\n },\n {\n begin: [\n '(?:' + GENERIC_IDENT_RE + '\\\\s+)',\n hljs.UNDERSCORE_IDENT_RE,\n /\\s*(?=\\()/\n ],\n className: { 2: \"title.function\" },\n keywords: KEYWORDS,\n contains: [\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n ANNOTATION,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMERIC,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n NUMERIC,\n ANNOTATION\n ]\n };\n}\n\nexport { java as default };\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\",\n // It's reached stage 3, which is \"recommended for implementation\":\n \"using\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"sessionStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\"\n ) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // (key?: string) => Modify<\n if ((m = afterMatch.match(/^\\s*=/))) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: '\\.?html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: '\\.?css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const GRAPHQL_TEMPLATE = {\n begin: '\\.?gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'graphql'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /(\\s*)\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n // convert this to negative lookbehind in v12\n begin: /(\\s*)\\(/, // to match the parms with\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\",\n \"import\"\n ].map(x => `${x}\\\\s*\\\\(`)),\n IDENT_RE$1, regex.lookahead(/\\s*\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n CLASS_REFERENCE,\n {\n scope: 'attr',\n match: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /(\\s*)\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\nexport { javascript as default };\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev \nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n const ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n const PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\"\n ];\n // NOTE: normally we would rely on `keywords` for this but using a mode here allows us\n // - to use the very tight `illegal: \\S` rule later to flag any other character\n // - as illegal indicating that despite looking like JSON we do not truly have\n // - JSON and thus improve false-positively greatly since JSON will try and claim\n // - all sorts of JSON looking stuff\n const LITERALS_MODE = {\n scope: \"literal\",\n beginKeywords: LITERALS.join(\" \"),\n };\n\n return {\n name: 'JSON',\n aliases: ['jsonc'],\n keywords:{\n literal: LITERALS,\n },\n contains: [\n ATTRIBUTE,\n PUNCTUATION,\n hljs.QUOTE_STRING_MODE,\n LITERALS_MODE,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ],\n illegal: '\\\\S'\n };\n}\n\nexport { json as default };\n","// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n // excluding ExponentPart\n { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n { begin: `(${frac})[fFdD]?\\\\b` },\n { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n // HexadecimalFloatingPointLiteral\n { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n // DecimalIntegerLiteral\n { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n // HexIntegerLiteral\n { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n // OctalIntegerLiteral\n { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n // BinaryIntegerLiteral\n { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n ],\n relevance: 0\n};\n\n/*\n Language: Kotlin\n Description: Kotlin is an OSS statically typed programming language that targets the JVM, Android, JavaScript and Native.\n Author: Sergey Mashkov \n Website: https://kotlinlang.org\n Category: common\n */\n\n\nfunction kotlin(hljs) {\n const KEYWORDS = {\n keyword:\n 'abstract as val var vararg get set class object open private protected public noinline '\n + 'crossinline dynamic final enum if else do while for when throw try catch finally '\n + 'import package is in fun override companion reified inline lateinit init '\n + 'interface annotation data sealed internal infix operator out by constructor super '\n + 'tailrec where const inner suspend typealias external expect actual',\n built_in:\n 'Byte Short Char Int Long Boolean Float Double Void Unit Nothing',\n literal:\n 'true false null'\n };\n const KEYWORDS_WITH_LABEL = {\n className: 'keyword',\n begin: /\\b(break|continue|return|this)\\b/,\n starts: { contains: [\n {\n className: 'symbol',\n begin: /@\\w+/\n }\n ] }\n };\n const LABEL = {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '@'\n };\n\n // for string templates\n const SUBST = {\n className: 'subst',\n begin: /\\$\\{/,\n end: /\\}/,\n contains: [ hljs.C_NUMBER_MODE ]\n };\n const VARIABLE = {\n className: 'variable',\n begin: '\\\\$' + hljs.UNDERSCORE_IDENT_RE\n };\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: '\"\"\"',\n end: '\"\"\"(?=[^\"])',\n contains: [\n VARIABLE,\n SUBST\n ]\n },\n // Can't use built-in modes easily, as we want to use STRING in the meta\n // context as 'meta-string' and there's no syntax to remove explicitly set\n // classNames in built-in modes.\n {\n begin: '\\'',\n end: '\\'',\n illegal: /\\n/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '\"',\n end: '\"',\n illegal: /\\n/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VARIABLE,\n SUBST\n ]\n }\n ]\n };\n SUBST.contains.push(STRING);\n\n const ANNOTATION_USE_SITE = {\n className: 'meta',\n begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?'\n };\n const ANNOTATION = {\n className: 'meta',\n begin: '@' + hljs.UNDERSCORE_IDENT_RE,\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.inherit(STRING, { className: 'string' }),\n \"self\"\n ]\n }\n ]\n };\n\n // https://kotlinlang.org/docs/reference/whatsnew11.html#underscores-in-numeric-literals\n // According to the doc above, the number mode of kotlin is the same as java 8,\n // so the code below is copied from java.js\n const KOTLIN_NUMBER_MODE = NUMERIC;\n const KOTLIN_NESTED_COMMENT = hljs.COMMENT(\n '/\\\\*', '\\\\*/',\n { contains: [ hljs.C_BLOCK_COMMENT_MODE ] }\n );\n const KOTLIN_PAREN_TYPE = { variants: [\n {\n className: 'type',\n begin: hljs.UNDERSCORE_IDENT_RE\n },\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [] // defined later\n }\n ] };\n const KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE;\n KOTLIN_PAREN_TYPE2.variants[1].contains = [ KOTLIN_PAREN_TYPE ];\n KOTLIN_PAREN_TYPE.variants[1].contains = [ KOTLIN_PAREN_TYPE2 ];\n\n return {\n name: 'Kotlin',\n aliases: [\n 'kt',\n 'kts'\n ],\n keywords: KEYWORDS,\n contains: [\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT,\n KEYWORDS_WITH_LABEL,\n LABEL,\n ANNOTATION_USE_SITE,\n ANNOTATION,\n {\n className: 'function',\n beginKeywords: 'fun',\n end: '[(]|$',\n returnBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 5,\n contains: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n returnBegin: true,\n relevance: 0,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n className: 'type',\n begin: //,\n keywords: 'reified',\n relevance: 0\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n endsParent: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n {\n begin: /:/,\n end: /[=,\\/]/,\n endsWithParent: true,\n contains: [\n KOTLIN_PAREN_TYPE,\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT\n ],\n relevance: 0\n },\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT,\n ANNOTATION_USE_SITE,\n ANNOTATION,\n STRING,\n hljs.C_NUMBER_MODE\n ]\n },\n KOTLIN_NESTED_COMMENT\n ]\n },\n {\n begin: [\n /class|interface|trait/,\n /\\s+/,\n hljs.UNDERSCORE_IDENT_RE\n ],\n beginScope: {\n 3: \"title.class\"\n },\n keywords: 'class interface trait',\n end: /[:\\{(]|$/,\n excludeEnd: true,\n illegal: 'extends implements',\n contains: [\n { beginKeywords: 'public protected internal private constructor' },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n className: 'type',\n begin: //,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n },\n {\n className: 'type',\n begin: /[,:]\\s*/,\n end: /[<\\(,){\\s]|$/,\n excludeBegin: true,\n returnEnd: true\n },\n ANNOTATION_USE_SITE,\n ANNOTATION\n ]\n },\n STRING,\n {\n className: 'meta',\n begin: \"^#!/usr/bin/env\",\n end: '$',\n illegal: '\\n'\n },\n KOTLIN_NUMBER_MODE\n ]\n };\n}\n\nexport { kotlin as default };\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z_][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst HTML_TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'picture',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'select',\n 'source',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst SVG_TAGS = [\n 'defs',\n 'g',\n 'marker',\n 'mask',\n 'pattern',\n 'svg',\n 'switch',\n 'symbol',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feFlood',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMorphology',\n 'feOffset',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'linearGradient',\n 'radialGradient',\n 'stop',\n 'circle',\n 'ellipse',\n 'image',\n 'line',\n 'path',\n 'polygon',\n 'polyline',\n 'rect',\n 'text',\n 'use',\n 'textPath',\n 'tspan',\n 'foreignObject',\n 'clipPath'\n];\n\nconst TAGS = [\n ...HTML_TAGS,\n ...SVG_TAGS,\n];\n\n// Sorting, then reversing makes sure longer attributes/elements like\n// `font-weight` are matched fully instead of getting false positives on say `font`\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n].sort().reverse();\n\nconst ATTRIBUTES = [\n 'accent-color',\n 'align-content',\n 'align-items',\n 'align-self',\n 'alignment-baseline',\n 'all',\n 'anchor-name',\n 'animation',\n 'animation-composition',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-range',\n 'animation-range-end',\n 'animation-range-start',\n 'animation-timeline',\n 'animation-timing-function',\n 'appearance',\n 'aspect-ratio',\n 'backdrop-filter',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-position-x',\n 'background-position-y',\n 'background-repeat',\n 'background-size',\n 'baseline-shift',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-align',\n 'box-decoration-break',\n 'box-direction',\n 'box-flex',\n 'box-flex-group',\n 'box-lines',\n 'box-ordinal-group',\n 'box-orient',\n 'box-pack',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'color-scheme',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'contain-intrinsic-block-size',\n 'contain-intrinsic-height',\n 'contain-intrinsic-inline-size',\n 'contain-intrinsic-size',\n 'contain-intrinsic-width',\n 'container',\n 'container-name',\n 'container-type',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'counter-set',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'cx',\n 'cy',\n 'direction',\n 'display',\n 'dominant-baseline',\n 'empty-cells',\n 'enable-background',\n 'field-sizing',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flood-color',\n 'flood-opacity',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-optical-sizing',\n 'font-palette',\n 'font-size',\n 'font-size-adjust',\n 'font-smooth',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-synthesis-position',\n 'font-synthesis-small-caps',\n 'font-synthesis-style',\n 'font-synthesis-weight',\n 'font-variant',\n 'font-variant-alternates',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-emoji',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'forced-color-adjust',\n 'gap',\n 'glyph-orientation-horizontal',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphenate-character',\n 'hyphenate-limit-chars',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'initial-letter',\n 'initial-letter-align',\n 'inline-size',\n 'inset',\n 'inset-area',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'isolation',\n 'justify-content',\n 'justify-items',\n 'justify-self',\n 'kerning',\n 'left',\n 'letter-spacing',\n 'lighting-color',\n 'line-break',\n 'line-height',\n 'line-height-step',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'margin-trim',\n 'marker',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'masonry-auto-flow',\n 'math-depth',\n 'math-shift',\n 'math-style',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-anchor',\n 'overflow-block',\n 'overflow-clip-margin',\n 'overflow-inline',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'overlay',\n 'overscroll-behavior',\n 'overscroll-behavior-block',\n 'overscroll-behavior-inline',\n 'overscroll-behavior-x',\n 'overscroll-behavior-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'paint-order',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'place-content',\n 'place-items',\n 'place-self',\n 'pointer-events',\n 'position',\n 'position-anchor',\n 'position-visibility',\n 'print-color-adjust',\n 'quotes',\n 'r',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'rotate',\n 'row-gap',\n 'ruby-align',\n 'ruby-position',\n 'scale',\n 'scroll-behavior',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scroll-timeline',\n 'scroll-timeline-axis',\n 'scroll-timeline-name',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'shape-rendering',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'stop-color',\n 'stop-opacity',\n 'stroke',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-anchor',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-skip',\n 'text-decoration-skip-ink',\n 'text-decoration-style',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-size-adjust',\n 'text-transform',\n 'text-underline-offset',\n 'text-underline-position',\n 'text-wrap',\n 'text-wrap-mode',\n 'text-wrap-style',\n 'timeline-scope',\n 'top',\n 'touch-action',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-behavior',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'translate',\n 'unicode-bidi',\n 'user-modify',\n 'user-select',\n 'vector-effect',\n 'vertical-align',\n 'view-timeline',\n 'view-timeline-axis',\n 'view-timeline-inset',\n 'view-timeline-name',\n 'view-transition-name',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'white-space-collapse',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'x',\n 'y',\n 'z-index',\n 'zoom'\n].sort().reverse();\n\n// some grammars use them all as a single group\nconst PSEUDO_SELECTORS = PSEUDO_CLASSES.concat(PSEUDO_ELEMENTS).sort().reverse();\n\n/*\nLanguage: Less\nDescription: It's CSS, with just a little more.\nAuthor: Max Mikhailov \nWebsite: http://lesscss.org\nCategory: common, css, web\n*/\n\n\n/** @type LanguageFn */\nfunction less(hljs) {\n const modes = MODES(hljs);\n const PSEUDO_SELECTORS$1 = PSEUDO_SELECTORS;\n\n const AT_MODIFIERS = \"and or not only\";\n const IDENT_RE = '[\\\\w-]+'; // yes, Less identifiers may begin with a digit\n const INTERP_IDENT_RE = '(' + IDENT_RE + '|@\\\\{' + IDENT_RE + '\\\\})';\n\n /* Generic Modes */\n\n const RULES = []; const VALUE_MODES = []; // forward def. for recursive modes\n\n const STRING_MODE = function(c) {\n return {\n // Less strings are not multiline (also include '~' for more consistent coloring of \"escaped\" strings)\n className: 'string',\n begin: '~?' + c + '.*?' + c\n };\n };\n\n const IDENT_MODE = function(name, begin, relevance) {\n return {\n className: name,\n begin: begin,\n relevance: relevance\n };\n };\n\n const AT_KEYWORDS = {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n };\n\n const PARENS_MODE = {\n // used only to properly balance nested parens inside mixin call, def. arg list\n begin: '\\\\(',\n end: '\\\\)',\n contains: VALUE_MODES,\n keywords: AT_KEYWORDS,\n relevance: 0\n };\n\n // generic Less highlighter (used almost everywhere except selectors):\n VALUE_MODES.push(\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING_MODE(\"'\"),\n STRING_MODE('\"'),\n modes.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(\n {\n begin: '(url|data-uri)\\\\(',\n starts: {\n className: 'string',\n end: '[\\\\)\\\\n]',\n excludeEnd: true\n }\n },\n modes.HEXCOLOR,\n PARENS_MODE,\n IDENT_MODE('variable', '@@?' + IDENT_RE, 10),\n IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'),\n IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string\n { // @media features (it’s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):\n className: 'attribute',\n begin: IDENT_RE + '\\\\s*:',\n end: ':',\n returnBegin: true,\n excludeEnd: true\n },\n modes.IMPORTANT,\n { beginKeywords: 'and not' },\n modes.FUNCTION_DISPATCH\n );\n\n const VALUE_WITH_RULESETS = VALUE_MODES.concat({\n begin: /\\{/,\n end: /\\}/,\n contains: RULES\n });\n\n const MIXIN_GUARD_MODE = {\n beginKeywords: 'when',\n endsWithParent: true,\n contains: [ { beginKeywords: 'and not' } ].concat(VALUE_MODES) // using this form to override VALUE’s 'function' match\n };\n\n /* Rule-Level Modes */\n\n const RULE_MODE = {\n begin: INTERP_IDENT_RE + '\\\\s*:',\n returnBegin: true,\n end: /[;}]/,\n relevance: 0,\n contains: [\n { begin: /-(webkit|moz|ms|o)-/ },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b',\n end: /(?=:)/,\n starts: {\n endsWithParent: true,\n illegal: '[<=$]',\n relevance: 0,\n contains: VALUE_MODES\n }\n }\n ]\n };\n\n const AT_RULE_MODE = {\n className: 'keyword',\n begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b',\n starts: {\n end: '[;{}]',\n keywords: AT_KEYWORDS,\n returnEnd: true,\n contains: VALUE_MODES,\n relevance: 0\n }\n };\n\n // variable definitions and calls\n const VAR_RULE_MODE = {\n className: 'variable',\n variants: [\n // using more strict pattern for higher relevance to increase chances of Less detection.\n // this is *the only* Less specific statement used in most of the sources, so...\n // (we’ll still often loose to the css-parser unless there's '//' comment,\n // simply because 1 variable just can't beat 99 properties :)\n {\n begin: '@' + IDENT_RE + '\\\\s*:',\n relevance: 15\n },\n { begin: '@' + IDENT_RE }\n ],\n starts: {\n end: '[;}]',\n returnEnd: true,\n contains: VALUE_WITH_RULESETS\n }\n };\n\n const SELECTOR_MODE = {\n // first parse unambiguous selectors (i.e. those not starting with tag)\n // then fall into the scary lookahead-discriminator variant.\n // this mode also handles mixin definitions and calls\n variants: [\n {\n begin: '[\\\\.#:&\\\\[>]',\n end: '[;{}]' // mixin calls end with ';'\n },\n {\n begin: INTERP_IDENT_RE,\n end: /\\{/\n }\n ],\n returnBegin: true,\n returnEnd: true,\n illegal: '[<=\\'$\"]',\n relevance: 0,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n MIXIN_GUARD_MODE,\n IDENT_MODE('keyword', 'all\\\\b'),\n IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'), // otherwise it’s identified as tag\n \n {\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n className: 'selector-tag'\n },\n modes.CSS_NUMBER_MODE,\n IDENT_MODE('selector-tag', INTERP_IDENT_RE, 0),\n IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),\n IDENT_MODE('selector-class', '\\\\.' + INTERP_IDENT_RE, 0),\n IDENT_MODE('selector-tag', '&', 0),\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n },\n {\n className: 'selector-pseudo',\n begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')'\n },\n {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n contains: VALUE_WITH_RULESETS\n }, // argument list of parametric mixins\n { begin: '!important' }, // eat !important after mixin call or it will be colored as tag\n modes.FUNCTION_DISPATCH\n ]\n };\n\n const PSEUDO_SELECTOR_MODE = {\n begin: IDENT_RE + ':(:)?' + `(${PSEUDO_SELECTORS$1.join('|')})`,\n returnBegin: true,\n contains: [ SELECTOR_MODE ]\n };\n\n RULES.push(\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AT_RULE_MODE,\n VAR_RULE_MODE,\n PSEUDO_SELECTOR_MODE,\n RULE_MODE,\n SELECTOR_MODE,\n MIXIN_GUARD_MODE,\n modes.FUNCTION_DISPATCH\n );\n\n return {\n name: 'Less',\n case_insensitive: true,\n illegal: '[=>\\'/<($\"]',\n contains: RULES\n };\n}\n\nexport { less as default };\n","/*\nLanguage: Lua\nDescription: Lua is a powerful, efficient, lightweight, embeddable scripting language.\nAuthor: Andrew Fedorov \nCategory: common, gaming, scripting\nWebsite: https://www.lua.org\n*/\n\nfunction lua(hljs) {\n const OPENING_LONG_BRACKET = '\\\\[=*\\\\[';\n const CLOSING_LONG_BRACKET = '\\\\]=*\\\\]';\n const LONG_BRACKETS = {\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [ 'self' ]\n };\n const COMMENTS = [\n hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),\n hljs.COMMENT(\n '--' + OPENING_LONG_BRACKET,\n CLOSING_LONG_BRACKET,\n {\n contains: [ LONG_BRACKETS ],\n relevance: 10\n }\n )\n ];\n return {\n name: 'Lua',\n aliases: ['pluto'],\n keywords: {\n $pattern: hljs.UNDERSCORE_IDENT_RE,\n literal: \"true false nil\",\n keyword: \"and break do else elseif end for goto if in local not or repeat return then until while\",\n built_in:\n // Metatags and globals:\n '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len '\n + '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert '\n // Standard methods and properties:\n + 'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring '\n + 'module next pairs pcall print rawequal rawget rawset require select setfenv '\n + 'setmetatable tonumber tostring type unpack xpcall arg self '\n // Library methods and properties (one line per library):\n + 'coroutine resume yield status wrap create running debug getupvalue '\n + 'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv '\n + 'io lines write close flush open output type read stderr stdin input stdout popen tmpfile '\n + 'math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan '\n + 'os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall '\n + 'string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower '\n + 'table setn insert getn foreachi maxn foreach concat sort remove'\n },\n contains: COMMENTS.concat([\n {\n className: 'function',\n beginKeywords: 'function',\n end: '\\\\)',\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: '([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*' }),\n {\n className: 'params',\n begin: '\\\\(',\n endsWithParent: true,\n contains: COMMENTS\n }\n ].concat(COMMENTS)\n },\n hljs.C_NUMBER_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [ LONG_BRACKETS ],\n relevance: 5\n }\n ])\n };\n}\n\nexport { lua as default };\n","/*\nLanguage: Makefile\nAuthor: Ivan Sagalaev \nContributors: Joël Porquet \nWebsite: https://www.gnu.org/software/make/manual/html_node/Introduction.html\nCategory: common, build-system\n*/\n\nfunction makefile(hljs) {\n /* Variables: simple (eg $(var)) and special (eg $@) */\n const VARIABLE = {\n className: 'variable',\n variants: [\n {\n begin: '\\\\$\\\\(' + hljs.UNDERSCORE_IDENT_RE + '\\\\)',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n { begin: /\\$[@%\nWebsite: https://daringfireball.net/projects/markdown/\nCategory: common, markup\n*/\n\nfunction markdown(hljs) {\n const regex = hljs.regex;\n const INLINE_HTML = {\n begin: /<\\/?[A-Za-z_]/,\n end: '>',\n subLanguage: 'xml',\n relevance: 0\n };\n const HORIZONTAL_RULE = {\n begin: '^[-\\\\*]{3,}',\n end: '$'\n };\n const CODE = {\n className: 'code',\n variants: [\n // TODO: fix to allow these to work with sublanguage also\n { begin: '(`{3,})[^`](.|\\\\n)*?\\\\1`*[ ]*' },\n { begin: '(~{3,})[^~](.|\\\\n)*?\\\\1~*[ ]*' },\n // needed to allow markdown as a sublanguage to work\n {\n begin: '```',\n end: '```+[ ]*$'\n },\n {\n begin: '~~~',\n end: '~~~+[ ]*$'\n },\n { begin: '`.+?`' },\n {\n begin: '(?=^( {4}|\\\\t))',\n // use contains to gobble up multiple lines to allow the block to be whatever size\n // but only have a single open/close tag vs one per line\n contains: [\n {\n begin: '^( {4}|\\\\t)',\n end: '(\\\\n)$'\n }\n ],\n relevance: 0\n }\n ]\n };\n const LIST = {\n className: 'bullet',\n begin: '^[ \\t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)',\n end: '\\\\s+',\n excludeEnd: true\n };\n const LINK_REFERENCE = {\n begin: /^\\[[^\\n]+\\]:/,\n returnBegin: true,\n contains: [\n {\n className: 'symbol',\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'link',\n begin: /:\\s*/,\n end: /$/,\n excludeBegin: true\n }\n ]\n };\n const URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/;\n const LINK = {\n variants: [\n // too much like nested array access in so many languages\n // to have any real relevance\n {\n begin: /\\[.+?\\]\\[.*?\\]/,\n relevance: 0\n },\n // popular internet URLs\n {\n begin: /\\[.+?\\]\\(((data|javascript|mailto):|(?:http|ftp)s?:\\/\\/).*?\\)/,\n relevance: 2\n },\n {\n begin: regex.concat(/\\[.+?\\]\\(/, URL_SCHEME, /:\\/\\/.*?\\)/),\n relevance: 2\n },\n // relative urls\n {\n begin: /\\[.+?\\]\\([./?&#].*?\\)/,\n relevance: 1\n },\n // whatever else, lower relevance (might not be a link at all)\n {\n begin: /\\[.*?\\]\\(.*?\\)/,\n relevance: 0\n }\n ],\n returnBegin: true,\n contains: [\n {\n // empty strings for alt or link text\n match: /\\[(?=\\])/ },\n {\n className: 'string',\n relevance: 0,\n begin: '\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n returnEnd: true\n },\n {\n className: 'link',\n relevance: 0,\n begin: '\\\\]\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'symbol',\n relevance: 0,\n begin: '\\\\]\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n excludeEnd: true\n }\n ]\n };\n const BOLD = {\n className: 'strong',\n contains: [], // defined later\n variants: [\n {\n begin: /_{2}(?!\\s)/,\n end: /_{2}/\n },\n {\n begin: /\\*{2}(?!\\s)/,\n end: /\\*{2}/\n }\n ]\n };\n const ITALIC = {\n className: 'emphasis',\n contains: [], // defined later\n variants: [\n {\n begin: /\\*(?![*\\s])/,\n end: /\\*/\n },\n {\n begin: /_(?![_\\s])/,\n end: /_/,\n relevance: 0\n }\n ]\n };\n\n // 3 level deep nesting is not allowed because it would create confusion\n // in cases like `***testing***` because where we don't know if the last\n // `***` is starting a new bold/italic or finishing the last one\n const BOLD_WITHOUT_ITALIC = hljs.inherit(BOLD, { contains: [] });\n const ITALIC_WITHOUT_BOLD = hljs.inherit(ITALIC, { contains: [] });\n BOLD.contains.push(ITALIC_WITHOUT_BOLD);\n ITALIC.contains.push(BOLD_WITHOUT_ITALIC);\n\n let CONTAINABLE = [\n INLINE_HTML,\n LINK\n ];\n\n [\n BOLD,\n ITALIC,\n BOLD_WITHOUT_ITALIC,\n ITALIC_WITHOUT_BOLD\n ].forEach(m => {\n m.contains = m.contains.concat(CONTAINABLE);\n });\n\n CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);\n\n const HEADER = {\n className: 'section',\n variants: [\n {\n begin: '^#{1,6}',\n end: '$',\n contains: CONTAINABLE\n },\n {\n begin: '(?=^.+?\\\\n[=-]{2,}$)',\n contains: [\n { begin: '^[=-]*$' },\n {\n begin: '^',\n end: \"\\\\n\",\n contains: CONTAINABLE\n }\n ]\n }\n ]\n };\n\n const BLOCKQUOTE = {\n className: 'quote',\n begin: '^>\\\\s+',\n contains: CONTAINABLE,\n end: '$'\n };\n\n const ENTITY = {\n //https://spec.commonmark.org/0.31.2/#entity-references\n scope: 'literal',\n match: /&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/\n };\n\n return {\n name: 'Markdown',\n aliases: [\n 'md',\n 'mkdown',\n 'mkd'\n ],\n contains: [\n HEADER,\n INLINE_HTML,\n LIST,\n BOLD,\n ITALIC,\n BLOCKQUOTE,\n CODE,\n HORIZONTAL_RULE,\n LINK,\n LINK_REFERENCE,\n ENTITY\n ]\n };\n}\n\nexport { markdown as default };\n","/*\nLanguage: Objective-C\nAuthor: Valerii Hiora \nContributors: Angel G. Olloqui , Matt Diephouse , Andrew Farmer , Minh Nguyễn \nWebsite: https://developer.apple.com/documentation/objectivec\nCategory: common\n*/\n\nfunction objectivec(hljs) {\n const API_CLASS = {\n className: 'built_in',\n begin: '\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+'\n };\n const IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/;\n const TYPES = [\n \"int\",\n \"float\",\n \"char\",\n \"unsigned\",\n \"signed\",\n \"short\",\n \"long\",\n \"double\",\n \"wchar_t\",\n \"unichar\",\n \"void\",\n \"bool\",\n \"BOOL\",\n \"id|0\",\n \"_Bool\"\n ];\n const KWS = [\n \"while\",\n \"export\",\n \"sizeof\",\n \"typedef\",\n \"const\",\n \"struct\",\n \"for\",\n \"union\",\n \"volatile\",\n \"static\",\n \"mutable\",\n \"if\",\n \"do\",\n \"return\",\n \"goto\",\n \"enum\",\n \"else\",\n \"break\",\n \"extern\",\n \"asm\",\n \"case\",\n \"default\",\n \"register\",\n \"explicit\",\n \"typename\",\n \"switch\",\n \"continue\",\n \"inline\",\n \"readonly\",\n \"assign\",\n \"readwrite\",\n \"self\",\n \"@synchronized\",\n \"id\",\n \"typeof\",\n \"nonatomic\",\n \"IBOutlet\",\n \"IBAction\",\n \"strong\",\n \"weak\",\n \"copy\",\n \"in\",\n \"out\",\n \"inout\",\n \"bycopy\",\n \"byref\",\n \"oneway\",\n \"__strong\",\n \"__weak\",\n \"__block\",\n \"__autoreleasing\",\n \"@private\",\n \"@protected\",\n \"@public\",\n \"@try\",\n \"@property\",\n \"@end\",\n \"@throw\",\n \"@catch\",\n \"@finally\",\n \"@autoreleasepool\",\n \"@synthesize\",\n \"@dynamic\",\n \"@selector\",\n \"@optional\",\n \"@required\",\n \"@encode\",\n \"@package\",\n \"@import\",\n \"@defs\",\n \"@compatibility_alias\",\n \"__bridge\",\n \"__bridge_transfer\",\n \"__bridge_retained\",\n \"__bridge_retain\",\n \"__covariant\",\n \"__contravariant\",\n \"__kindof\",\n \"_Nonnull\",\n \"_Nullable\",\n \"_Null_unspecified\",\n \"__FUNCTION__\",\n \"__PRETTY_FUNCTION__\",\n \"__attribute__\",\n \"getter\",\n \"setter\",\n \"retain\",\n \"unsafe_unretained\",\n \"nonnull\",\n \"nullable\",\n \"null_unspecified\",\n \"null_resettable\",\n \"class\",\n \"instancetype\",\n \"NS_DESIGNATED_INITIALIZER\",\n \"NS_UNAVAILABLE\",\n \"NS_REQUIRES_SUPER\",\n \"NS_RETURNS_INNER_POINTER\",\n \"NS_INLINE\",\n \"NS_AVAILABLE\",\n \"NS_DEPRECATED\",\n \"NS_ENUM\",\n \"NS_OPTIONS\",\n \"NS_SWIFT_UNAVAILABLE\",\n \"NS_ASSUME_NONNULL_BEGIN\",\n \"NS_ASSUME_NONNULL_END\",\n \"NS_REFINED_FOR_SWIFT\",\n \"NS_SWIFT_NAME\",\n \"NS_SWIFT_NOTHROW\",\n \"NS_DURING\",\n \"NS_HANDLER\",\n \"NS_ENDHANDLER\",\n \"NS_VALUERETURN\",\n \"NS_VOIDRETURN\"\n ];\n const LITERALS = [\n \"false\",\n \"true\",\n \"FALSE\",\n \"TRUE\",\n \"nil\",\n \"YES\",\n \"NO\",\n \"NULL\"\n ];\n const BUILT_INS = [\n \"dispatch_once_t\",\n \"dispatch_queue_t\",\n \"dispatch_sync\",\n \"dispatch_async\",\n \"dispatch_once\"\n ];\n const KEYWORDS = {\n \"variable.language\": [\n \"this\",\n \"super\"\n ],\n $pattern: IDENTIFIER_RE,\n keyword: KWS,\n literal: LITERALS,\n built_in: BUILT_INS,\n type: TYPES\n };\n const CLASS_KEYWORDS = {\n $pattern: IDENTIFIER_RE,\n keyword: [\n \"@interface\",\n \"@class\",\n \"@protocol\",\n \"@implementation\"\n ]\n };\n return {\n name: 'Objective-C',\n aliases: [\n 'mm',\n 'objc',\n 'obj-c',\n 'obj-c++',\n 'objective-c++'\n ],\n keywords: KEYWORDS,\n illegal: '/,\n end: /$/,\n illegal: '\\\\n'\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n className: 'class',\n begin: '(' + CLASS_KEYWORDS.keyword.join('|') + ')\\\\b',\n end: /(\\{|$)/,\n excludeEnd: true,\n keywords: CLASS_KEYWORDS,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n begin: '\\\\.' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }\n ]\n };\n}\n\nexport { objectivec as default };\n","/*\nLanguage: Perl\nAuthor: Peter Leonov \nWebsite: https://www.perl.org\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction perl(hljs) {\n const regex = hljs.regex;\n const KEYWORDS = [\n 'abs',\n 'accept',\n 'alarm',\n 'and',\n 'atan2',\n 'bind',\n 'binmode',\n 'bless',\n 'break',\n 'caller',\n 'chdir',\n 'chmod',\n 'chomp',\n 'chop',\n 'chown',\n 'chr',\n 'chroot',\n 'class',\n 'close',\n 'closedir',\n 'connect',\n 'continue',\n 'cos',\n 'crypt',\n 'dbmclose',\n 'dbmopen',\n 'defined',\n 'delete',\n 'die',\n 'do',\n 'dump',\n 'each',\n 'else',\n 'elsif',\n 'endgrent',\n 'endhostent',\n 'endnetent',\n 'endprotoent',\n 'endpwent',\n 'endservent',\n 'eof',\n 'eval',\n 'exec',\n 'exists',\n 'exit',\n 'exp',\n 'fcntl',\n 'field',\n 'fileno',\n 'flock',\n 'for',\n 'foreach',\n 'fork',\n 'format',\n 'formline',\n 'getc',\n 'getgrent',\n 'getgrgid',\n 'getgrnam',\n 'gethostbyaddr',\n 'gethostbyname',\n 'gethostent',\n 'getlogin',\n 'getnetbyaddr',\n 'getnetbyname',\n 'getnetent',\n 'getpeername',\n 'getpgrp',\n 'getpriority',\n 'getprotobyname',\n 'getprotobynumber',\n 'getprotoent',\n 'getpwent',\n 'getpwnam',\n 'getpwuid',\n 'getservbyname',\n 'getservbyport',\n 'getservent',\n 'getsockname',\n 'getsockopt',\n 'given',\n 'glob',\n 'gmtime',\n 'goto',\n 'grep',\n 'gt',\n 'hex',\n 'if',\n 'index',\n 'int',\n 'ioctl',\n 'join',\n 'keys',\n 'kill',\n 'last',\n 'lc',\n 'lcfirst',\n 'length',\n 'link',\n 'listen',\n 'local',\n 'localtime',\n 'log',\n 'lstat',\n 'lt',\n 'ma',\n 'map',\n 'method',\n 'mkdir',\n 'msgctl',\n 'msgget',\n 'msgrcv',\n 'msgsnd',\n 'my',\n 'ne',\n 'next',\n 'no',\n 'not',\n 'oct',\n 'open',\n 'opendir',\n 'or',\n 'ord',\n 'our',\n 'pack',\n 'package',\n 'pipe',\n 'pop',\n 'pos',\n 'print',\n 'printf',\n 'prototype',\n 'push',\n 'q|0',\n 'qq',\n 'quotemeta',\n 'qw',\n 'qx',\n 'rand',\n 'read',\n 'readdir',\n 'readline',\n 'readlink',\n 'readpipe',\n 'recv',\n 'redo',\n 'ref',\n 'rename',\n 'require',\n 'reset',\n 'return',\n 'reverse',\n 'rewinddir',\n 'rindex',\n 'rmdir',\n 'say',\n 'scalar',\n 'seek',\n 'seekdir',\n 'select',\n 'semctl',\n 'semget',\n 'semop',\n 'send',\n 'setgrent',\n 'sethostent',\n 'setnetent',\n 'setpgrp',\n 'setpriority',\n 'setprotoent',\n 'setpwent',\n 'setservent',\n 'setsockopt',\n 'shift',\n 'shmctl',\n 'shmget',\n 'shmread',\n 'shmwrite',\n 'shutdown',\n 'sin',\n 'sleep',\n 'socket',\n 'socketpair',\n 'sort',\n 'splice',\n 'split',\n 'sprintf',\n 'sqrt',\n 'srand',\n 'stat',\n 'state',\n 'study',\n 'sub',\n 'substr',\n 'symlink',\n 'syscall',\n 'sysopen',\n 'sysread',\n 'sysseek',\n 'system',\n 'syswrite',\n 'tell',\n 'telldir',\n 'tie',\n 'tied',\n 'time',\n 'times',\n 'tr',\n 'truncate',\n 'uc',\n 'ucfirst',\n 'umask',\n 'undef',\n 'unless',\n 'unlink',\n 'unpack',\n 'unshift',\n 'untie',\n 'until',\n 'use',\n 'utime',\n 'values',\n 'vec',\n 'wait',\n 'waitpid',\n 'wantarray',\n 'warn',\n 'when',\n 'while',\n 'write',\n 'x|0',\n 'xor',\n 'y|0'\n ];\n\n // https://perldoc.perl.org/perlre#Modifiers\n const REGEX_MODIFIERS = /[dualxmsipngr]{0,12}/; // aa and xx are valid, making max length 12\n const PERL_KEYWORDS = {\n $pattern: /[\\w.]+/,\n keyword: KEYWORDS.join(\" \")\n };\n const SUBST = {\n className: 'subst',\n begin: '[$@]\\\\{',\n end: '\\\\}',\n keywords: PERL_KEYWORDS\n };\n const METHOD = {\n begin: /->\\{/,\n end: /\\}/\n // contains defined later\n };\n const ATTR = {\n scope: 'attr',\n match: /\\s+:\\s*\\w+(\\s*\\(.*?\\))?/,\n };\n const VAR = {\n scope: 'variable',\n variants: [\n { begin: /\\$\\d/ },\n { begin: regex.concat(\n /[$%@](?!\")(\\^\\w\\b|#\\w+(::\\w+)*|\\{\\w+\\}|\\w+(::\\w*)*)/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![A-Za-z])(?![@$%])`\n )\n },\n {\n // Only $= is a special Perl variable and one can't declare @= or %=.\n begin: /[$%@](?!\")[^\\s\\w{=]|\\$=/,\n relevance: 0\n }\n ],\n contains: [ ATTR ],\n };\n const NUMBER = {\n className: 'number',\n variants: [\n // decimal numbers:\n // include the case where a number starts with a dot (eg. .9), and\n // the leading 0? avoids mixing the first and second match on 0.x cases\n { match: /0?\\.[0-9][0-9_]+\\b/ },\n // include the special versioned number (eg. v5.38)\n { match: /\\bv?(0|[1-9][0-9_]*(\\.[0-9_]+)?|[1-9][0-9_]*)\\b/ },\n // non-decimal numbers:\n { match: /\\b0[0-7][0-7_]*\\b/ },\n { match: /\\b0x[0-9a-fA-F][0-9a-fA-F_]*\\b/ },\n { match: /\\b0b[0-1][0-1_]*\\b/ },\n ],\n relevance: 0\n };\n const STRING_CONTAINS = [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n VAR\n ];\n const REGEX_DELIMS = [\n /!/,\n /\\//,\n /\\|/,\n /\\?/,\n /'/,\n /\"/, // valid but infrequent and weird\n /#/ // valid but infrequent and weird\n ];\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_DOUBLE_RE = (prefix, open, close = '\\\\1') => {\n const middle = (close === '\\\\1')\n ? close\n : regex.concat(close, open);\n return regex.concat(\n regex.concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n middle,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_RE = (prefix, open, close) => {\n return regex.concat(\n regex.concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n const PERL_DEFAULT_CONTAINS = [\n VAR,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT(\n /^=\\w/,\n /=cut/,\n { endsWithParent: true }\n ),\n METHOD,\n {\n className: 'string',\n contains: STRING_CONTAINS,\n variants: [\n {\n begin: 'q[qwxr]?\\\\s*\\\\(',\n end: '\\\\)',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\[',\n end: '\\\\]',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\{',\n end: '\\\\}',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\|',\n end: '\\\\|',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*<',\n end: '>',\n relevance: 5\n },\n {\n begin: 'qw\\\\s+q',\n end: 'q',\n relevance: 5\n },\n {\n begin: '\\'',\n end: '\\'',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: '`',\n end: '`',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: /\\{\\w+\\}/,\n relevance: 0\n },\n {\n begin: '-?\\\\w+\\\\s*=>',\n relevance: 0\n }\n ]\n },\n NUMBER,\n { // regexp container\n begin: '(\\\\/\\\\/|' + hljs.RE_STARTERS_RE + '|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*',\n keywords: 'split return print reverse grep',\n relevance: 0,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'regexp',\n variants: [\n // allow matching common delimiters\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", regex.either(...REGEX_DELIMS, { capture: true })) },\n // and then paired delmis\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\(\", \"\\\\)\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\[\", \"\\\\]\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\{\", \"\\\\}\") }\n ],\n relevance: 2\n },\n {\n className: 'regexp',\n variants: [\n {\n // could be a comment in many languages so do not count\n // as relevant\n begin: /(m|qr)\\/\\//,\n relevance: 0\n },\n // prefix is optional with /regex/\n { begin: PAIRED_RE(\"(?:m|qr)?\", /\\//, /\\//) },\n // allow matching common delimiters\n { begin: PAIRED_RE(\"m|qr\", regex.either(...REGEX_DELIMS, { capture: true }), /\\1/) },\n // allow common paired delmins\n { begin: PAIRED_RE(\"m|qr\", /\\(/, /\\)/) },\n { begin: PAIRED_RE(\"m|qr\", /\\[/, /\\]/) },\n { begin: PAIRED_RE(\"m|qr\", /\\{/, /\\}/) }\n ]\n }\n ]\n },\n {\n className: 'function',\n beginKeywords: 'sub method',\n end: '(\\\\s*\\\\(.*?\\\\))?[;{]',\n excludeEnd: true,\n relevance: 5,\n contains: [ hljs.TITLE_MODE, ATTR ]\n },\n {\n className: 'class',\n beginKeywords: 'class',\n end: '[;{]',\n excludeEnd: true,\n relevance: 5,\n contains: [ hljs.TITLE_MODE, ATTR, NUMBER ]\n },\n {\n begin: '-\\\\w\\\\b',\n relevance: 0\n },\n {\n begin: \"^__DATA__$\",\n end: \"^__END__$\",\n subLanguage: 'mojolicious',\n contains: [\n {\n begin: \"^@@.*\",\n end: \"$\",\n className: \"comment\"\n }\n ]\n }\n ];\n SUBST.contains = PERL_DEFAULT_CONTAINS;\n METHOD.contains = PERL_DEFAULT_CONTAINS;\n\n return {\n name: 'Perl',\n aliases: [\n 'pl',\n 'pm'\n ],\n keywords: PERL_KEYWORDS,\n contains: PERL_DEFAULT_CONTAINS\n };\n}\n\nexport { perl as default };\n","/*\nLanguage: PHP\nAuthor: Victor Karamzin \nContributors: Evgeny Stepanischev , Ivan Sagalaev \nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const regex = hljs.regex;\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n const IDENT_RE = regex.concat(\n /[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/,\n NOT_PERL_ETC);\n // Will not detect camelCase classes\n const PASCAL_CASE_CLASS_NAME_RE = regex.concat(\n /(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/,\n NOT_PERL_ETC);\n const UPCASE_NAME_RE = regex.concat(\n /[A-Z]+/,\n NOT_PERL_ETC);\n const VARIABLE = {\n scope: 'variable',\n match: '\\\\$+' + IDENT_RE,\n };\n const PREPROCESSOR = {\n scope: \"meta\",\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?=/ },\n // less relevant per PSR-1 which says not to use short-tags\n { begin: /<\\?/, relevance: 0.1 },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n scope: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n {\n begin: /\\{\\$/,\n end: /\\}/\n }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null, });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n\n const HEREDOC = {\n begin: /<<<[ \\t]*(?:(\\w+)|\"(\\w+)\")\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1] || m[2]; },\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); },\n };\n\n const NOWDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*'(\\w+)'\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n });\n // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n const WHITESPACE = '[ \\t\\n]';\n const STRING = {\n scope: 'string',\n variants: [\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC,\n NOWDOC\n ]\n };\n const NUMBER = {\n scope: 'number',\n variants: [\n { begin: `\\\\b0[bB][01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const LITERALS = [\n \"false\",\n \"null\",\n \"true\"\n ];\n const KWS = [\n // Magic constants:\n // \n \"__CLASS__\",\n \"__DIR__\",\n \"__FILE__\",\n \"__FUNCTION__\",\n \"__COMPILER_HALT_OFFSET__\",\n \"__LINE__\",\n \"__METHOD__\",\n \"__NAMESPACE__\",\n \"__TRAIT__\",\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n \"die\",\n \"echo\",\n \"exit\",\n \"include\",\n \"include_once\",\n \"print\",\n \"require\",\n \"require_once\",\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // \n // \n \"array\",\n \"abstract\",\n \"and\",\n \"as\",\n \"binary\",\n \"bool\",\n \"boolean\",\n \"break\",\n \"callable\",\n \"case\",\n \"catch\",\n \"class\",\n \"clone\",\n \"const\",\n \"continue\",\n \"declare\",\n \"default\",\n \"do\",\n \"double\",\n \"else\",\n \"elseif\",\n \"empty\",\n \"enddeclare\",\n \"endfor\",\n \"endforeach\",\n \"endif\",\n \"endswitch\",\n \"endwhile\",\n \"enum\",\n \"eval\",\n \"extends\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"foreach\",\n \"from\",\n \"global\",\n \"goto\",\n \"if\",\n \"implements\",\n \"instanceof\",\n \"insteadof\",\n \"int\",\n \"integer\",\n \"interface\",\n \"isset\",\n \"iterable\",\n \"list\",\n \"match|0\",\n \"mixed\",\n \"new\",\n \"never\",\n \"object\",\n \"or\",\n \"private\",\n \"protected\",\n \"public\",\n \"readonly\",\n \"real\",\n \"return\",\n \"string\",\n \"switch\",\n \"throw\",\n \"trait\",\n \"try\",\n \"unset\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"xor\",\n \"yield\"\n ];\n\n const BUILT_INS = [\n // Standard PHP library:\n // \n \"Error|0\",\n \"AppendIterator\",\n \"ArgumentCountError\",\n \"ArithmeticError\",\n \"ArrayIterator\",\n \"ArrayObject\",\n \"AssertionError\",\n \"BadFunctionCallException\",\n \"BadMethodCallException\",\n \"CachingIterator\",\n \"CallbackFilterIterator\",\n \"CompileError\",\n \"Countable\",\n \"DirectoryIterator\",\n \"DivisionByZeroError\",\n \"DomainException\",\n \"EmptyIterator\",\n \"ErrorException\",\n \"Exception\",\n \"FilesystemIterator\",\n \"FilterIterator\",\n \"GlobIterator\",\n \"InfiniteIterator\",\n \"InvalidArgumentException\",\n \"IteratorIterator\",\n \"LengthException\",\n \"LimitIterator\",\n \"LogicException\",\n \"MultipleIterator\",\n \"NoRewindIterator\",\n \"OutOfBoundsException\",\n \"OutOfRangeException\",\n \"OuterIterator\",\n \"OverflowException\",\n \"ParentIterator\",\n \"ParseError\",\n \"RangeException\",\n \"RecursiveArrayIterator\",\n \"RecursiveCachingIterator\",\n \"RecursiveCallbackFilterIterator\",\n \"RecursiveDirectoryIterator\",\n \"RecursiveFilterIterator\",\n \"RecursiveIterator\",\n \"RecursiveIteratorIterator\",\n \"RecursiveRegexIterator\",\n \"RecursiveTreeIterator\",\n \"RegexIterator\",\n \"RuntimeException\",\n \"SeekableIterator\",\n \"SplDoublyLinkedList\",\n \"SplFileInfo\",\n \"SplFileObject\",\n \"SplFixedArray\",\n \"SplHeap\",\n \"SplMaxHeap\",\n \"SplMinHeap\",\n \"SplObjectStorage\",\n \"SplObserver\",\n \"SplPriorityQueue\",\n \"SplQueue\",\n \"SplStack\",\n \"SplSubject\",\n \"SplTempFileObject\",\n \"TypeError\",\n \"UnderflowException\",\n \"UnexpectedValueException\",\n \"UnhandledMatchError\",\n // Reserved interfaces:\n // \n \"ArrayAccess\",\n \"BackedEnum\",\n \"Closure\",\n \"Fiber\",\n \"Generator\",\n \"Iterator\",\n \"IteratorAggregate\",\n \"Serializable\",\n \"Stringable\",\n \"Throwable\",\n \"Traversable\",\n \"UnitEnum\",\n \"WeakReference\",\n \"WeakMap\",\n // Reserved classes:\n // \n \"Directory\",\n \"__PHP_Incomplete_Class\",\n \"parent\",\n \"php_user_filter\",\n \"self\",\n \"static\",\n \"stdClass\"\n ];\n\n /** Dual-case keywords\n *\n * [\"then\",\"FILE\"] =>\n * [\"then\", \"THEN\", \"FILE\", \"file\"]\n *\n * @param {string[]} items */\n const dualCase = (items) => {\n /** @type string[] */\n const result = [];\n items.forEach(item => {\n result.push(item);\n if (item.toLowerCase() === item) {\n result.push(item.toUpperCase());\n } else {\n result.push(item.toLowerCase());\n }\n });\n return result;\n };\n\n const KEYWORDS = {\n keyword: KWS,\n literal: dualCase(LITERALS),\n built_in: BUILT_INS,\n };\n\n /**\n * @param {string[]} items */\n const normalizeKeywords = (items) => {\n return items.map(item => {\n return item.replace(/\\|\\d+$/, \"\");\n });\n };\n\n const CONSTRUCTOR_CALL = { variants: [\n {\n match: [\n /new/,\n regex.concat(WHITESPACE, \"+\"),\n // to prevent built ins from being confused as the class constructor call\n regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n PASCAL_CASE_CLASS_NAME_RE,\n ],\n scope: {\n 1: \"keyword\",\n 4: \"title.class\",\n },\n }\n ] };\n\n const CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n\n const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [\n {\n match: [\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: { 2: \"variable.constant\", },\n },\n {\n match: [\n /::/,\n /class/,\n ],\n scope: { 2: \"variable.language\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.constant\",\n },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n \"::\",\n regex.lookahead(/(?!class\\b)/)\n ),\n ],\n scope: { 1: \"title.class\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n /::/,\n /class/,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.language\",\n },\n }\n ] };\n\n const NAMED_ARGUMENT = {\n scope: 'attr',\n match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/)),\n };\n const PARAMS_MODE = {\n relevance: 0,\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n NAMED_ARGUMENT,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ],\n };\n const FUNCTION_INVOKE = {\n relevance: 0,\n match: [\n /\\b/,\n // to prevent keywords from being confused as the function title\n regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n IDENT_RE,\n regex.concat(WHITESPACE, \"*\"),\n regex.lookahead(/(?=\\()/)\n ],\n scope: { 3: \"title.function.invoke\", },\n contains: [ PARAMS_MODE ]\n };\n PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n\n const ATTRIBUTE_CONTAINS = [\n NAMED_ARGUMENT,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ];\n\n const ATTRIBUTES = {\n begin: regex.concat(/#\\[\\s*\\\\?/,\n regex.either(\n PASCAL_CASE_CLASS_NAME_RE,\n UPCASE_NAME_RE\n )\n ),\n beginScope: \"meta\",\n end: /]/,\n endScope: \"meta\",\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n {\n begin: /\\[/,\n end: /]/,\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n 'self',\n ...ATTRIBUTE_CONTAINS,\n ]\n },\n ...ATTRIBUTE_CONTAINS,\n {\n scope: 'meta',\n variants: [\n { match: PASCAL_CASE_CLASS_NAME_RE },\n { match: UPCASE_NAME_RE }\n ]\n }\n ]\n };\n\n return {\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n ATTRIBUTES,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$'),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [\n {\n scope: 'doctag',\n match: '@[A-Za-z]+'\n }\n ] }\n ),\n {\n match: /__halt_compiler\\(\\);/,\n keywords: '__halt_compiler',\n starts: {\n scope: \"comment\",\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n match: /\\?>/,\n scope: \"meta\",\n endsParent: true\n }\n ]\n }\n },\n PREPROCESSOR,\n {\n scope: 'variable.language',\n match: /\\$this\\b/\n },\n VARIABLE,\n FUNCTION_INVOKE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n {\n match: [\n /const/,\n /\\s/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"variable.constant\",\n },\n },\n CONSTRUCTOR_CALL,\n {\n scope: 'function',\n relevance: 0,\n beginKeywords: 'fn function',\n end: /[;{]/,\n excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n { beginKeywords: 'use', },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n scope: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n ATTRIBUTES,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n },\n ]\n },\n {\n scope: 'class',\n variants: [\n {\n beginKeywords: \"enum\",\n illegal: /[($\"]/\n },\n {\n beginKeywords: \"class interface trait\",\n illegal: /[:($\"]/\n }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n // both use and namespace still use \"old style\" rules (vs multi-match)\n // because the namespace name can include `\\` and we still want each\n // element to be treated as its own *individual* title\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { scope: \"title.class\" }) ]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [\n // TODO: title.function vs title.class\n {\n match: /\\b(as|const|function)\\b/,\n scope: \"keyword\"\n },\n // TODO: could be title.class or title.function\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n STRING,\n NUMBER,\n ]\n };\n}\n\nexport { php as default };\n","/*\nLanguage: PHP Template\nRequires: xml.js, php.js\nAuthor: Josh Goebel \nWebsite: https://www.php.net\nCategory: common\n*/\n\nfunction phpTemplate(hljs) {\n return {\n name: \"PHP template\",\n subLanguage: 'xml',\n contains: [\n {\n begin: /<\\?(php|=)?/,\n end: /\\?>/,\n subLanguage: 'php',\n contains: [\n // We don't want the php closing tag ?> to close the PHP block when\n // inside any of the following blocks:\n {\n begin: '/\\\\*',\n end: '\\\\*/',\n skip: true\n },\n {\n begin: 'b\"',\n end: '\"',\n skip: true\n },\n {\n begin: 'b\\'',\n end: '\\'',\n skip: true\n },\n hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n })\n ]\n }\n ]\n };\n}\n\nexport { phpTemplate as default };\n","/*\nLanguage: Plain text\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nDescription: Plain text without any highlighting.\nCategory: common\n*/\n\nfunction plaintext(hljs) {\n return {\n name: 'Plain text',\n aliases: [\n 'text',\n 'txt'\n ],\n disableAutodetect: true\n };\n}\n\nexport { plaintext as default };\n","/*\nLanguage: Python\nDescription: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.\nWebsite: https://www.python.org\nCategory: common\n*/\n\nfunction python(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[\\p{XID_Start}_]\\p{XID_Continue}*/u;\n const RESERVED_WORDS = [\n 'and',\n 'as',\n 'assert',\n 'async',\n 'await',\n 'break',\n 'case',\n 'class',\n 'continue',\n 'def',\n 'del',\n 'elif',\n 'else',\n 'except',\n 'finally',\n 'for',\n 'from',\n 'global',\n 'if',\n 'import',\n 'in',\n 'is',\n 'lambda',\n 'match',\n 'nonlocal|10',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'return',\n 'try',\n 'while',\n 'with',\n 'yield'\n ];\n\n const BUILT_INS = [\n '__import__',\n 'abs',\n 'all',\n 'any',\n 'ascii',\n 'bin',\n 'bool',\n 'breakpoint',\n 'bytearray',\n 'bytes',\n 'callable',\n 'chr',\n 'classmethod',\n 'compile',\n 'complex',\n 'delattr',\n 'dict',\n 'dir',\n 'divmod',\n 'enumerate',\n 'eval',\n 'exec',\n 'filter',\n 'float',\n 'format',\n 'frozenset',\n 'getattr',\n 'globals',\n 'hasattr',\n 'hash',\n 'help',\n 'hex',\n 'id',\n 'input',\n 'int',\n 'isinstance',\n 'issubclass',\n 'iter',\n 'len',\n 'list',\n 'locals',\n 'map',\n 'max',\n 'memoryview',\n 'min',\n 'next',\n 'object',\n 'oct',\n 'open',\n 'ord',\n 'pow',\n 'print',\n 'property',\n 'range',\n 'repr',\n 'reversed',\n 'round',\n 'set',\n 'setattr',\n 'slice',\n 'sorted',\n 'staticmethod',\n 'str',\n 'sum',\n 'super',\n 'tuple',\n 'type',\n 'vars',\n 'zip'\n ];\n\n const LITERALS = [\n '__debug__',\n 'Ellipsis',\n 'False',\n 'None',\n 'NotImplemented',\n 'True'\n ];\n\n // https://docs.python.org/3/library/typing.html\n // TODO: Could these be supplemented by a CamelCase matcher in certain\n // contexts, leaving these remaining only for relevance hinting?\n const TYPES = [\n \"Any\",\n \"Callable\",\n \"Coroutine\",\n \"Dict\",\n \"List\",\n \"Literal\",\n \"Generic\",\n \"Optional\",\n \"Sequence\",\n \"Set\",\n \"Tuple\",\n \"Type\",\n \"Union\"\n ];\n\n const KEYWORDS = {\n $pattern: /[A-Za-z]\\w+|__\\w+__/,\n keyword: RESERVED_WORDS,\n built_in: BUILT_INS,\n literal: LITERALS,\n type: TYPES\n };\n\n const PROMPT = {\n className: 'meta',\n begin: /^(>>>|\\.\\.\\.) /\n };\n\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS,\n illegal: /#/\n };\n\n const LITERAL_BRACKET = {\n begin: /\\{\\{/,\n relevance: 0\n };\n\n const STRING = {\n className: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([uU]|[rR])'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /([uU]|[rR])\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])'/,\n end: /'/\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])\"/,\n end: /\"/\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'/,\n end: /'/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n\n // https://docs.python.org/3.9/reference/lexical_analysis.html#numeric-literals\n const digitpart = '[0-9](_?[0-9])*';\n const pointfloat = `(\\\\b(${digitpart}))?\\\\.(${digitpart})|\\\\b(${digitpart})\\\\.`;\n // Whitespace after a number (or any lexical token) is needed only if its absence\n // would change the tokenization\n // https://docs.python.org/3.9/reference/lexical_analysis.html#whitespace-between-tokens\n // We deviate slightly, requiring a word boundary or a keyword\n // to avoid accidentally recognizing *prefixes* (e.g., `0` in `0x41` or `08` or `0__1`)\n const lookahead = `\\\\b|${RESERVED_WORDS.join('|')}`;\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // exponentfloat, pointfloat\n // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals\n // optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n // Note: no leading \\b because floats can start with a decimal point\n // and we don't want to mishandle e.g. `fn(.5)`,\n // no trailing \\b for pointfloat because it can end with a decimal point\n // and we don't want to mishandle e.g. `0..hex()`; this should be safe\n // because both MUST contain a decimal point and so cannot be confused with\n // the interior part of an identifier\n {\n begin: `(\\\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?(?=${lookahead})`\n },\n {\n begin: `(${pointfloat})[jJ]?`\n },\n\n // decinteger, bininteger, octinteger, hexinteger\n // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals\n // optionally \"long\" in Python 2\n // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals\n // decinteger is optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[bB](_?[01])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[oO](_?[0-7])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${lookahead})`\n },\n\n // imagnumber (digitpart-based)\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b(${digitpart})[jJ](?=${lookahead})`\n }\n ]\n };\n const COMMENT_TYPE = {\n className: \"comment\",\n begin: regex.lookahead(/# type:/),\n end: /$/,\n keywords: KEYWORDS,\n contains: [\n { // prevent keywords from coloring `type`\n begin: /# type:/\n },\n // comment within a datatype comment includes no keywords\n {\n begin: /#/,\n end: /\\b\\B/,\n endsWithParent: true\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n variants: [\n // Exclude params in functions without params\n {\n className: \"\",\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n PROMPT,\n NUMBER,\n STRING,\n hljs.HASH_COMMENT_MODE\n ]\n }\n ]\n };\n SUBST.contains = [\n STRING,\n NUMBER,\n PROMPT\n ];\n\n return {\n name: 'Python',\n aliases: [\n 'py',\n 'gyp',\n 'ipython'\n ],\n unicodeRegex: true,\n keywords: KEYWORDS,\n illegal: /(<\\/|\\?)|=>/,\n contains: [\n PROMPT,\n NUMBER,\n {\n // very common convention\n scope: 'variable.language',\n match: /\\bself\\b/\n },\n {\n // eat \"if\" prior to string so that it won't accidentally be\n // labeled as an f-string\n beginKeywords: \"if\",\n relevance: 0\n },\n { match: /\\bor\\b/, scope: \"keyword\" },\n STRING,\n COMMENT_TYPE,\n hljs.HASH_COMMENT_MODE,\n {\n match: [\n /\\bdef/, /\\s+/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [ PARAMS ]\n },\n {\n variants: [\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE, /\\s*/,\n /\\(\\s*/, IDENT_RE,/\\s*\\)/\n ],\n },\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE\n ],\n }\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 6: \"title.class.inherited\",\n }\n },\n {\n className: 'meta',\n begin: /^[\\t ]*@/,\n end: /(?=#)|$/,\n contains: [\n NUMBER,\n PARAMS,\n STRING\n ]\n }\n ]\n };\n}\n\nexport { python as default };\n","/*\nLanguage: Python REPL\nRequires: python.js\nAuthor: Josh Goebel \nCategory: common\n*/\n\nfunction pythonRepl(hljs) {\n return {\n aliases: [ 'pycon' ],\n contains: [\n {\n className: 'meta.prompt',\n starts: {\n // a space separates the REPL prefix from the actual code\n // this is purely for cleaner HTML output\n end: / |$/,\n starts: {\n end: '$',\n subLanguage: 'python'\n }\n },\n variants: [\n { begin: /^>>>(?=[ ]|$)/ },\n { begin: /^\\.\\.\\.(?=[ ]|$)/ }\n ]\n }\n ]\n };\n}\n\nexport { pythonRepl as default };\n","/*\nLanguage: R\nDescription: R is a free software environment for statistical computing and graphics.\nAuthor: Joe Cheng \nContributors: Konrad Rudolph \nWebsite: https://www.r-project.org\nCategory: common,scientific\n*/\n\n/** @type LanguageFn */\nfunction r(hljs) {\n const regex = hljs.regex;\n // Identifiers in R cannot start with `_`, but they can start with `.` if it\n // is not immediately followed by a digit.\n // R also supports quoted identifiers, which are near-arbitrary sequences\n // delimited by backticks (`…`), which may contain escape sequences. These are\n // handled in a separate mode. See `test/markup/r/names.txt` for examples.\n // FIXME: Support Unicode identifiers.\n const IDENT_RE = /(?:(?:[a-zA-Z]|\\.[._a-zA-Z])[._a-zA-Z0-9]*)|\\.(?!\\d)/;\n const NUMBER_TYPES_RE = regex.either(\n // Special case: only hexadecimal binary powers can contain fractions\n /0[xX][0-9a-fA-F]+\\.[0-9a-fA-F]*[pP][+-]?\\d+i?/,\n // Hexadecimal numbers without fraction and optional binary power\n /0[xX][0-9a-fA-F]+(?:[pP][+-]?\\d+)?[Li]?/,\n // Decimal numbers\n /(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?[Li]?/\n );\n const OPERATORS_RE = /[=!<>:]=|\\|\\||&&|:::?|<-|<<-|->>|->|\\|>|[-+*\\/?!$&|:<=>@^~]|\\*\\*/;\n const PUNCTUATION_RE = regex.either(\n /[()]/,\n /[{}]/,\n /\\[\\[/,\n /[[\\]]/,\n /\\\\/,\n /,/\n );\n\n return {\n name: 'R',\n\n keywords: {\n $pattern: IDENT_RE,\n keyword:\n 'function if in break next repeat else for while',\n literal:\n 'NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 '\n + 'NA_character_|10 NA_complex_|10',\n built_in:\n // Builtin constants\n 'LETTERS letters month.abb month.name pi T F '\n // Primitive functions\n // These are all the functions in `base` that are implemented as a\n // `.Primitive`, minus those functions that are also keywords.\n + 'abs acos acosh all any anyNA Arg as.call as.character '\n + 'as.complex as.double as.environment as.integer as.logical '\n + 'as.null.default as.numeric as.raw asin asinh atan atanh attr '\n + 'attributes baseenv browser c call ceiling class Conj cos cosh '\n + 'cospi cummax cummin cumprod cumsum digamma dim dimnames '\n + 'emptyenv exp expression floor forceAndCall gamma gc.time '\n + 'globalenv Im interactive invisible is.array is.atomic is.call '\n + 'is.character is.complex is.double is.environment is.expression '\n + 'is.finite is.function is.infinite is.integer is.language '\n + 'is.list is.logical is.matrix is.na is.name is.nan is.null '\n + 'is.numeric is.object is.pairlist is.raw is.recursive is.single '\n + 'is.symbol lazyLoadDBfetch length lgamma list log max min '\n + 'missing Mod names nargs nzchar oldClass on.exit pos.to.env '\n + 'proc.time prod quote range Re rep retracemem return round '\n + 'seq_along seq_len seq.int sign signif sin sinh sinpi sqrt '\n + 'standardGeneric substitute sum switch tan tanh tanpi tracemem '\n + 'trigamma trunc unclass untracemem UseMethod xtfrm',\n },\n\n contains: [\n // Roxygen comments\n hljs.COMMENT(\n /#'/,\n /$/,\n { contains: [\n {\n // Handle `@examples` separately to cause all subsequent code\n // until the next `@`-tag on its own line to be kept as-is,\n // preventing highlighting. This code is example R code, so nested\n // doctags shouldn’t be treated as such. See\n // `test/markup/r/roxygen.txt` for an example.\n scope: 'doctag',\n match: /@examples/,\n starts: {\n end: regex.lookahead(regex.either(\n // end if another doc comment\n /\\n^#'\\s*(?=@[a-zA-Z]+)/,\n // or a line with no comment\n /\\n^(?!#')/\n )),\n endsParent: true\n }\n },\n {\n // Handle `@param` to highlight the parameter name following\n // after.\n scope: 'doctag',\n begin: '@param',\n end: /$/,\n contains: [\n {\n scope: 'variable',\n variants: [\n { match: IDENT_RE },\n { match: /`(?:\\\\.|[^`\\\\])+`/ }\n ],\n endsParent: true\n }\n ]\n },\n {\n scope: 'doctag',\n match: /@[a-zA-Z]+/\n },\n {\n scope: 'keyword',\n match: /\\\\[a-zA-Z]+/\n }\n ] }\n ),\n\n hljs.HASH_COMMENT_MODE,\n\n {\n scope: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]\"(-*)\\(/,\n end: /\\)(-*)\"/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]\"(-*)\\{/,\n end: /\\}(-*)\"/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]\"(-*)\\[/,\n end: /\\](-*)\"/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]'(-*)\\(/,\n end: /\\)(-*)'/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]'(-*)\\{/,\n end: /\\}(-*)'/\n }),\n hljs.END_SAME_AS_BEGIN({\n begin: /[rR]'(-*)\\[/,\n end: /\\](-*)'/\n }),\n {\n begin: '\"',\n end: '\"',\n relevance: 0\n },\n {\n begin: \"'\",\n end: \"'\",\n relevance: 0\n }\n ],\n },\n\n // Matching numbers immediately following punctuation and operators is\n // tricky since we need to look at the character ahead of a number to\n // ensure the number is not part of an identifier, and we cannot use\n // negative look-behind assertions. So instead we explicitly handle all\n // possible combinations of (operator|punctuation), number.\n // TODO: replace with negative look-behind when available\n // { begin: /(?\nContributors: Peter Leonov , Vasily Polovnyov , Loren Segal , Pascal Hurni , Cedric Sohrauer \nCategory: common, scripting\n*/\n\nfunction ruby(hljs) {\n const regex = hljs.regex;\n const RUBY_METHOD_RE = '([a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?)';\n // TODO: move concepts like CAMEL_CASE into `modes.js`\n const CLASS_NAME_RE = regex.either(\n /\\b([A-Z]+[a-z0-9]+)+/,\n // ends in caps\n /\\b([A-Z]+[a-z0-9]+)+[A-Z]+/,\n )\n ;\n const CLASS_NAME_WITH_NAMESPACE_RE = regex.concat(CLASS_NAME_RE, /(::\\w+)*/);\n // very popular ruby built-ins that one might even assume\n // are actual keywords (despite that not being the case)\n const PSEUDO_KWS = [\n \"include\",\n \"extend\",\n \"prepend\",\n \"public\",\n \"private\",\n \"protected\",\n \"raise\",\n \"throw\"\n ];\n const RUBY_KEYWORDS = {\n \"variable.constant\": [\n \"__FILE__\",\n \"__LINE__\",\n \"__ENCODING__\"\n ],\n \"variable.language\": [\n \"self\",\n \"super\",\n ],\n keyword: [\n \"alias\",\n \"and\",\n \"begin\",\n \"BEGIN\",\n \"break\",\n \"case\",\n \"class\",\n \"defined\",\n \"do\",\n \"else\",\n \"elsif\",\n \"end\",\n \"END\",\n \"ensure\",\n \"for\",\n \"if\",\n \"in\",\n \"module\",\n \"next\",\n \"not\",\n \"or\",\n \"redo\",\n \"require\",\n \"rescue\",\n \"retry\",\n \"return\",\n \"then\",\n \"undef\",\n \"unless\",\n \"until\",\n \"when\",\n \"while\",\n \"yield\",\n ...PSEUDO_KWS\n ],\n built_in: [\n \"proc\",\n \"lambda\",\n \"attr_accessor\",\n \"attr_reader\",\n \"attr_writer\",\n \"define_method\",\n \"private_constant\",\n \"module_function\"\n ],\n literal: [\n \"true\",\n \"false\",\n \"nil\"\n ]\n };\n const YARDOCTAG = {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n };\n const IRB_OBJECT = {\n begin: '#<',\n end: '>'\n };\n const COMMENT_MODES = [\n hljs.COMMENT(\n '#',\n '$',\n { contains: [ YARDOCTAG ] }\n ),\n hljs.COMMENT(\n '^=begin',\n '^=end',\n {\n contains: [ YARDOCTAG ],\n relevance: 10\n }\n ),\n hljs.COMMENT('^__END__', hljs.MATCH_NOTHING_RE)\n ];\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: RUBY_KEYWORDS\n };\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /`/,\n end: /`/\n },\n {\n begin: /%[qQwWx]?\\(/,\n end: /\\)/\n },\n {\n begin: /%[qQwWx]?\\[/,\n end: /\\]/\n },\n {\n begin: /%[qQwWx]?\\{/,\n end: /\\}/\n },\n {\n begin: /%[qQwWx]?/\n },\n {\n begin: /%[qQwWx]?\\//,\n end: /\\//\n },\n {\n begin: /%[qQwWx]?%/,\n end: /%/\n },\n {\n begin: /%[qQwWx]?-/,\n end: /-/\n },\n {\n begin: /%[qQwWx]?\\|/,\n end: /\\|/\n },\n // in the following expressions, \\B in the beginning suppresses recognition of ?-sequences\n // where ? is the last character of a preceding identifier, as in: `func?4`\n { begin: /\\B\\?(\\\\\\d{1,3})/ },\n { begin: /\\B\\?(\\\\x[A-Fa-f0-9]{1,2})/ },\n { begin: /\\B\\?(\\\\u\\{?[A-Fa-f0-9]{1,6}\\}?)/ },\n { begin: /\\B\\?(\\\\M-\\\\C-|\\\\M-\\\\c|\\\\c\\\\M-|\\\\M-|\\\\C-\\\\M-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\(c|C-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\?\\S/ },\n // heredocs\n {\n // this guard makes sure that we have an entire heredoc and not a false\n // positive (auto-detect, etc.)\n begin: regex.concat(\n /<<[-~]?'?/,\n regex.lookahead(/(\\w+)(?=\\W)[^\\n]*\\n(?:[^\\n]*\\n)*?\\s*\\1\\b/)\n ),\n contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n })\n ]\n }\n ]\n };\n\n // Ruby syntax is underdocumented, but this grammar seems to be accurate\n // as of version 2.7.2 (confirmed with (irb and `Ripper.sexp(...)`)\n // https://docs.ruby-lang.org/en/2.7.0/doc/syntax/literals_rdoc.html#label-Numbers\n const decimal = '[1-9](_?[0-9])*|0';\n const digits = '[0-9](_?[0-9])*';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal integer/float, optionally exponential or rational, optionally imaginary\n { begin: `\\\\b(${decimal})(\\\\.(${digits}))?([eE][+-]?(${digits})|r)?i?\\\\b` },\n\n // explicit decimal/binary/octal/hexadecimal integer,\n // optionally rational and/or imaginary\n { begin: \"\\\\b0[dD][0-9](_?[0-9])*r?i?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*r?i?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*r?i?\\\\b\" },\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\\\b\" },\n\n // 0-prefixed implicit octal integer, optionally rational and/or imaginary\n { begin: \"\\\\b0(_?[0-7])+r?i?\\\\b\" }\n ]\n };\n\n const PARAMS = {\n variants: [\n {\n match: /\\(\\)/,\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /(?=\\))/,\n excludeBegin: true,\n endsParent: true,\n keywords: RUBY_KEYWORDS,\n }\n ]\n };\n\n const INCLUDE_EXTEND = {\n match: [\n /(include|extend)\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ],\n scope: {\n 2: \"title.class\"\n },\n keywords: RUBY_KEYWORDS\n };\n\n const CLASS_DEFINITION = {\n variants: [\n {\n match: [\n /class\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\s+<\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n },\n {\n match: [\n /\\b(class|module)\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n }\n ],\n scope: {\n 2: \"title.class\",\n 4: \"title.class.inherited\"\n },\n keywords: RUBY_KEYWORDS\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n const METHOD_DEFINITION = {\n match: [\n /def/, /\\s+/,\n RUBY_METHOD_RE\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n const OBJECT_CREATION = {\n relevance: 0,\n match: [\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\.new[. (]/\n ],\n scope: {\n 1: \"title.class\"\n }\n };\n\n // CamelCase\n const CLASS_REFERENCE = {\n relevance: 0,\n match: CLASS_NAME_RE,\n scope: \"title.class\"\n };\n\n const RUBY_DEFAULT_CONTAINS = [\n STRING,\n CLASS_DEFINITION,\n INCLUDE_EXTEND,\n OBJECT_CREATION,\n UPPER_CASE_CONSTANT,\n CLASS_REFERENCE,\n METHOD_DEFINITION,\n {\n // swallow namespace qualifiers before symbols\n begin: hljs.IDENT_RE + '::' },\n {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ':(?!\\\\s)',\n contains: [\n STRING,\n { begin: RUBY_METHOD_RE }\n ],\n relevance: 0\n },\n NUMBER,\n {\n // negative-look forward attempts to prevent false matches like:\n // @ident@ or $ident$ that might indicate this is not ruby at all\n className: \"variable\",\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))(?=[^@$?])' + `(?![A-Za-z])(?![@$?'])`\n },\n {\n className: 'params',\n begin: /\\|(?!=)/,\n end: /\\|/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0, // this could be a lot of things (in other languages) other than params\n keywords: RUBY_KEYWORDS\n },\n { // regexp container\n begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\\\s*',\n keywords: 'unless',\n contains: [\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n illegal: /\\n/,\n variants: [\n {\n begin: '/',\n end: '/[a-z]*'\n },\n {\n begin: /%r\\{/,\n end: /\\}[a-z]*/\n },\n {\n begin: '%r\\\\(',\n end: '\\\\)[a-z]*'\n },\n {\n begin: '%r!',\n end: '![a-z]*'\n },\n {\n begin: '%r\\\\[',\n end: '\\\\][a-z]*'\n }\n ]\n }\n ].concat(IRB_OBJECT, COMMENT_MODES),\n relevance: 0\n }\n ].concat(IRB_OBJECT, COMMENT_MODES);\n\n SUBST.contains = RUBY_DEFAULT_CONTAINS;\n PARAMS.contains = RUBY_DEFAULT_CONTAINS;\n\n // >>\n // ?>\n const SIMPLE_PROMPT = \"[>?]>\";\n // irb(main):001:0>\n const DEFAULT_PROMPT = \"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+[>*]\";\n const RVM_PROMPT = \"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d+(p\\\\d+)?[^\\\\d][^>]+>\";\n\n const IRB_DEFAULT = [\n {\n begin: /^\\s*=>/,\n starts: {\n end: '$',\n contains: RUBY_DEFAULT_CONTAINS\n }\n },\n {\n className: 'meta.prompt',\n begin: '^(' + SIMPLE_PROMPT + \"|\" + DEFAULT_PROMPT + '|' + RVM_PROMPT + ')(?=[ ])',\n starts: {\n end: '$',\n keywords: RUBY_KEYWORDS,\n contains: RUBY_DEFAULT_CONTAINS\n }\n }\n ];\n\n COMMENT_MODES.unshift(IRB_OBJECT);\n\n return {\n name: 'Ruby',\n aliases: [\n 'rb',\n 'gemspec',\n 'podspec',\n 'thor',\n 'irb'\n ],\n keywords: RUBY_KEYWORDS,\n illegal: /\\/\\*/,\n contains: [ hljs.SHEBANG({ binary: \"ruby\" }) ]\n .concat(IRB_DEFAULT)\n .concat(COMMENT_MODES)\n .concat(RUBY_DEFAULT_CONTAINS)\n };\n}\n\nexport { ruby as default };\n","/*\nLanguage: Rust\nAuthor: Andrey Vlasovskikh \nContributors: Roman Shmatov , Kasper Andersen \nWebsite: https://www.rust-lang.org\nCategory: common, system\n*/\n\n/** @type LanguageFn */\n\nfunction rust(hljs) {\n const regex = hljs.regex;\n // ============================================\n // Added to support the r# keyword, which is a raw identifier in Rust.\n const RAW_IDENTIFIER = /(r#)?/;\n const UNDERSCORE_IDENT_RE = regex.concat(RAW_IDENTIFIER, hljs.UNDERSCORE_IDENT_RE);\n const IDENT_RE = regex.concat(RAW_IDENTIFIER, hljs.IDENT_RE);\n // ============================================\n const FUNCTION_INVOKE = {\n className: \"title.function.invoke\",\n relevance: 0,\n begin: regex.concat(\n /\\b/,\n /(?!let|for|while|if|else|match\\b)/,\n IDENT_RE,\n regex.lookahead(/\\s*\\(/))\n };\n const NUMBER_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\\?';\n const KEYWORDS = [\n \"abstract\",\n \"as\",\n \"async\",\n \"await\",\n \"become\",\n \"box\",\n \"break\",\n \"const\",\n \"continue\",\n \"crate\",\n \"do\",\n \"dyn\",\n \"else\",\n \"enum\",\n \"extern\",\n \"false\",\n \"final\",\n \"fn\",\n \"for\",\n \"if\",\n \"impl\",\n \"in\",\n \"let\",\n \"loop\",\n \"macro\",\n \"match\",\n \"mod\",\n \"move\",\n \"mut\",\n \"override\",\n \"priv\",\n \"pub\",\n \"ref\",\n \"return\",\n \"self\",\n \"Self\",\n \"static\",\n \"struct\",\n \"super\",\n \"trait\",\n \"true\",\n \"try\",\n \"type\",\n \"typeof\",\n \"union\",\n \"unsafe\",\n \"unsized\",\n \"use\",\n \"virtual\",\n \"where\",\n \"while\",\n \"yield\"\n ];\n const LITERALS = [\n \"true\",\n \"false\",\n \"Some\",\n \"None\",\n \"Ok\",\n \"Err\"\n ];\n const BUILTINS = [\n // functions\n 'drop ',\n // traits\n \"Copy\",\n \"Send\",\n \"Sized\",\n \"Sync\",\n \"Drop\",\n \"Fn\",\n \"FnMut\",\n \"FnOnce\",\n \"ToOwned\",\n \"Clone\",\n \"Debug\",\n \"PartialEq\",\n \"PartialOrd\",\n \"Eq\",\n \"Ord\",\n \"AsRef\",\n \"AsMut\",\n \"Into\",\n \"From\",\n \"Default\",\n \"Iterator\",\n \"Extend\",\n \"IntoIterator\",\n \"DoubleEndedIterator\",\n \"ExactSizeIterator\",\n \"SliceConcatExt\",\n \"ToString\",\n // macros\n \"assert!\",\n \"assert_eq!\",\n \"bitflags!\",\n \"bytes!\",\n \"cfg!\",\n \"col!\",\n \"concat!\",\n \"concat_idents!\",\n \"debug_assert!\",\n \"debug_assert_eq!\",\n \"env!\",\n \"eprintln!\",\n \"panic!\",\n \"file!\",\n \"format!\",\n \"format_args!\",\n \"include_bytes!\",\n \"include_str!\",\n \"line!\",\n \"local_data_key!\",\n \"module_path!\",\n \"option_env!\",\n \"print!\",\n \"println!\",\n \"select!\",\n \"stringify!\",\n \"try!\",\n \"unimplemented!\",\n \"unreachable!\",\n \"vec!\",\n \"write!\",\n \"writeln!\",\n \"macro_rules!\",\n \"assert_ne!\",\n \"debug_assert_ne!\"\n ];\n const TYPES = [\n \"i8\",\n \"i16\",\n \"i32\",\n \"i64\",\n \"i128\",\n \"isize\",\n \"u8\",\n \"u16\",\n \"u32\",\n \"u64\",\n \"u128\",\n \"usize\",\n \"f32\",\n \"f64\",\n \"str\",\n \"char\",\n \"bool\",\n \"Box\",\n \"Option\",\n \"Result\",\n \"String\",\n \"Vec\"\n ];\n return {\n name: 'Rust',\n aliases: [ 'rs' ],\n keywords: {\n $pattern: hljs.IDENT_RE + '!?',\n type: TYPES,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILTINS\n },\n illegal: ''\n },\n FUNCTION_INVOKE\n ]\n };\n}\n\nexport { rust as default };\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z_][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst HTML_TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'picture',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'select',\n 'source',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst SVG_TAGS = [\n 'defs',\n 'g',\n 'marker',\n 'mask',\n 'pattern',\n 'svg',\n 'switch',\n 'symbol',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feFlood',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMorphology',\n 'feOffset',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'linearGradient',\n 'radialGradient',\n 'stop',\n 'circle',\n 'ellipse',\n 'image',\n 'line',\n 'path',\n 'polygon',\n 'polyline',\n 'rect',\n 'text',\n 'use',\n 'textPath',\n 'tspan',\n 'foreignObject',\n 'clipPath'\n];\n\nconst TAGS = [\n ...HTML_TAGS,\n ...SVG_TAGS,\n];\n\n// Sorting, then reversing makes sure longer attributes/elements like\n// `font-weight` are matched fully instead of getting false positives on say `font`\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n].sort().reverse();\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n].sort().reverse();\n\nconst ATTRIBUTES = [\n 'accent-color',\n 'align-content',\n 'align-items',\n 'align-self',\n 'alignment-baseline',\n 'all',\n 'anchor-name',\n 'animation',\n 'animation-composition',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-range',\n 'animation-range-end',\n 'animation-range-start',\n 'animation-timeline',\n 'animation-timing-function',\n 'appearance',\n 'aspect-ratio',\n 'backdrop-filter',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-position-x',\n 'background-position-y',\n 'background-repeat',\n 'background-size',\n 'baseline-shift',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-align',\n 'box-decoration-break',\n 'box-direction',\n 'box-flex',\n 'box-flex-group',\n 'box-lines',\n 'box-ordinal-group',\n 'box-orient',\n 'box-pack',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'color-scheme',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'contain-intrinsic-block-size',\n 'contain-intrinsic-height',\n 'contain-intrinsic-inline-size',\n 'contain-intrinsic-size',\n 'contain-intrinsic-width',\n 'container',\n 'container-name',\n 'container-type',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'counter-set',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'cx',\n 'cy',\n 'direction',\n 'display',\n 'dominant-baseline',\n 'empty-cells',\n 'enable-background',\n 'field-sizing',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flood-color',\n 'flood-opacity',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-optical-sizing',\n 'font-palette',\n 'font-size',\n 'font-size-adjust',\n 'font-smooth',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-synthesis-position',\n 'font-synthesis-small-caps',\n 'font-synthesis-style',\n 'font-synthesis-weight',\n 'font-variant',\n 'font-variant-alternates',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-emoji',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'forced-color-adjust',\n 'gap',\n 'glyph-orientation-horizontal',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphenate-character',\n 'hyphenate-limit-chars',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'initial-letter',\n 'initial-letter-align',\n 'inline-size',\n 'inset',\n 'inset-area',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'isolation',\n 'justify-content',\n 'justify-items',\n 'justify-self',\n 'kerning',\n 'left',\n 'letter-spacing',\n 'lighting-color',\n 'line-break',\n 'line-height',\n 'line-height-step',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'margin-trim',\n 'marker',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'masonry-auto-flow',\n 'math-depth',\n 'math-shift',\n 'math-style',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-anchor',\n 'overflow-block',\n 'overflow-clip-margin',\n 'overflow-inline',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'overlay',\n 'overscroll-behavior',\n 'overscroll-behavior-block',\n 'overscroll-behavior-inline',\n 'overscroll-behavior-x',\n 'overscroll-behavior-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'paint-order',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'place-content',\n 'place-items',\n 'place-self',\n 'pointer-events',\n 'position',\n 'position-anchor',\n 'position-visibility',\n 'print-color-adjust',\n 'quotes',\n 'r',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'rotate',\n 'row-gap',\n 'ruby-align',\n 'ruby-position',\n 'scale',\n 'scroll-behavior',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scroll-timeline',\n 'scroll-timeline-axis',\n 'scroll-timeline-name',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'shape-rendering',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'stop-color',\n 'stop-opacity',\n 'stroke',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-anchor',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-skip',\n 'text-decoration-skip-ink',\n 'text-decoration-style',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-size-adjust',\n 'text-transform',\n 'text-underline-offset',\n 'text-underline-position',\n 'text-wrap',\n 'text-wrap-mode',\n 'text-wrap-style',\n 'timeline-scope',\n 'top',\n 'touch-action',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-behavior',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'translate',\n 'unicode-bidi',\n 'user-modify',\n 'user-select',\n 'vector-effect',\n 'vertical-align',\n 'view-timeline',\n 'view-timeline-axis',\n 'view-timeline-inset',\n 'view-timeline-name',\n 'view-transition-name',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'white-space-collapse',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'x',\n 'y',\n 'z-index',\n 'zoom'\n].sort().reverse();\n\n/*\nLanguage: SCSS\nDescription: Scss is an extension of the syntax of CSS.\nAuthor: Kurt Emch \nWebsite: https://sass-lang.com\nCategory: common, css, web\n*/\n\n\n/** @type LanguageFn */\nfunction scss(hljs) {\n const modes = MODES(hljs);\n const PSEUDO_ELEMENTS$1 = PSEUDO_ELEMENTS;\n const PSEUDO_CLASSES$1 = PSEUDO_CLASSES;\n\n const AT_IDENTIFIER = '@[a-z-]+'; // @font-face\n const AT_MODIFIERS = \"and or not only\";\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const VARIABLE = {\n className: 'variable',\n begin: '(\\\\$' + IDENT_RE + ')\\\\b',\n relevance: 0\n };\n\n return {\n name: 'SCSS',\n case_insensitive: true,\n illegal: '[=/|\\']',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: '#[A-Za-z0-9_-]+',\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.[A-Za-z0-9_-]+',\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n // was there, before, but why?\n relevance: 0\n },\n {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES$1.join('|') + ')'\n },\n {\n className: 'selector-pseudo',\n begin: ':(:)?(' + PSEUDO_ELEMENTS$1.join('|') + ')'\n },\n VARIABLE,\n { // pseudo-selector params\n begin: /\\(/,\n end: /\\)/,\n contains: [ modes.CSS_NUMBER_MODE ]\n },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n { begin: '\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b' },\n {\n begin: /:/,\n end: /[;}{]/,\n relevance: 0,\n contains: [\n modes.BLOCK_COMMENT,\n VARIABLE,\n modes.HEXCOLOR,\n modes.CSS_NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.IMPORTANT,\n modes.FUNCTION_DISPATCH\n ]\n },\n // matching these here allows us to treat them more like regular CSS\n // rules so everything between the {} gets regular rule highlighting,\n // which is what we want for page and font-face\n {\n begin: '@(page|font-face)',\n keywords: {\n $pattern: AT_IDENTIFIER,\n keyword: '@page @font-face'\n }\n },\n {\n begin: '@',\n end: '[{;]',\n returnBegin: true,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: AT_IDENTIFIER,\n className: \"keyword\"\n },\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n VARIABLE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.HEXCOLOR,\n modes.CSS_NUMBER_MODE\n ]\n },\n modes.FUNCTION_DISPATCH\n ]\n };\n}\n\nexport { scss as default };\n","/*\nLanguage: Shell Session\nRequires: bash.js\nAuthor: TSUYUSATO Kitsune \nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction shell(hljs) {\n return {\n name: 'Shell Session',\n aliases: [\n 'console',\n 'shellsession'\n ],\n contains: [\n {\n className: 'meta.prompt',\n // We cannot add \\s (spaces) in the regular expression otherwise it will be too broad and produce unexpected result.\n // For instance, in the following example, it would match \"echo /path/to/home >\" as a prompt:\n // echo /path/to/home > t.exe\n begin: /^\\s{0,3}[/~\\w\\d[\\]()@-]*[>%$#][ ]?/,\n starts: {\n end: /[^\\\\](?=\\s*$)/,\n subLanguage: 'bash'\n }\n }\n ]\n };\n}\n\nexport { shell as default };\n","/*\n Language: SQL\n Website: https://en.wikipedia.org/wiki/SQL\n Category: common, database\n */\n\n/*\n\nGoals:\n\nSQL is intended to highlight basic/common SQL keywords and expressions\n\n- If pretty much every single SQL server includes supports, then it's a canidate.\n- It is NOT intended to include tons of vendor specific keywords (Oracle, MySQL,\n PostgreSQL) although the list of data types is purposely a bit more expansive.\n- For more specific SQL grammars please see:\n - PostgreSQL and PL/pgSQL - core\n - T-SQL - https://github.com/highlightjs/highlightjs-tsql\n - sql_more (core)\n\n */\n\nfunction sql(hljs) {\n const regex = hljs.regex;\n const COMMENT_MODE = hljs.COMMENT('--', '$');\n const STRING = {\n scope: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/,\n contains: [ { match: /''/ } ]\n }\n ]\n };\n const QUOTED_IDENTIFIER = {\n begin: /\"/,\n end: /\"/,\n contains: [ { match: /\"\"/ } ]\n };\n\n const LITERALS = [\n \"true\",\n \"false\",\n // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.\n // \"null\",\n \"unknown\"\n ];\n\n const MULTI_WORD_TYPES = [\n \"double precision\",\n \"large object\",\n \"with timezone\",\n \"without timezone\"\n ];\n\n const TYPES = [\n 'bigint',\n 'binary',\n 'blob',\n 'boolean',\n 'char',\n 'character',\n 'clob',\n 'date',\n 'dec',\n 'decfloat',\n 'decimal',\n 'float',\n 'int',\n 'integer',\n 'interval',\n 'nchar',\n 'nclob',\n 'national',\n 'numeric',\n 'real',\n 'row',\n 'smallint',\n 'time',\n 'timestamp',\n 'varchar',\n 'varying', // modifier (character varying)\n 'varbinary'\n ];\n\n const NON_RESERVED_WORDS = [\n \"add\",\n \"asc\",\n \"collation\",\n \"desc\",\n \"final\",\n \"first\",\n \"last\",\n \"view\"\n ];\n\n // https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#reserved-word\n const RESERVED_WORDS = [\n \"abs\",\n \"acos\",\n \"all\",\n \"allocate\",\n \"alter\",\n \"and\",\n \"any\",\n \"are\",\n \"array\",\n \"array_agg\",\n \"array_max_cardinality\",\n \"as\",\n \"asensitive\",\n \"asin\",\n \"asymmetric\",\n \"at\",\n \"atan\",\n \"atomic\",\n \"authorization\",\n \"avg\",\n \"begin\",\n \"begin_frame\",\n \"begin_partition\",\n \"between\",\n \"bigint\",\n \"binary\",\n \"blob\",\n \"boolean\",\n \"both\",\n \"by\",\n \"call\",\n \"called\",\n \"cardinality\",\n \"cascaded\",\n \"case\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"char\",\n \"char_length\",\n \"character\",\n \"character_length\",\n \"check\",\n \"classifier\",\n \"clob\",\n \"close\",\n \"coalesce\",\n \"collate\",\n \"collect\",\n \"column\",\n \"commit\",\n \"condition\",\n \"connect\",\n \"constraint\",\n \"contains\",\n \"convert\",\n \"copy\",\n \"corr\",\n \"corresponding\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"create\",\n \"cross\",\n \"cube\",\n \"cume_dist\",\n \"current\",\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_row\",\n \"current_schema\",\n \"current_time\",\n \"current_timestamp\",\n \"current_path\",\n \"current_role\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"cursor\",\n \"cycle\",\n \"date\",\n \"day\",\n \"deallocate\",\n \"dec\",\n \"decimal\",\n \"decfloat\",\n \"declare\",\n \"default\",\n \"define\",\n \"delete\",\n \"dense_rank\",\n \"deref\",\n \"describe\",\n \"deterministic\",\n \"disconnect\",\n \"distinct\",\n \"double\",\n \"drop\",\n \"dynamic\",\n \"each\",\n \"element\",\n \"else\",\n \"empty\",\n \"end\",\n \"end_frame\",\n \"end_partition\",\n \"end-exec\",\n \"equals\",\n \"escape\",\n \"every\",\n \"except\",\n \"exec\",\n \"execute\",\n \"exists\",\n \"exp\",\n \"external\",\n \"extract\",\n \"false\",\n \"fetch\",\n \"filter\",\n \"first_value\",\n \"float\",\n \"floor\",\n \"for\",\n \"foreign\",\n \"frame_row\",\n \"free\",\n \"from\",\n \"full\",\n \"function\",\n \"fusion\",\n \"get\",\n \"global\",\n \"grant\",\n \"group\",\n \"grouping\",\n \"groups\",\n \"having\",\n \"hold\",\n \"hour\",\n \"identity\",\n \"in\",\n \"indicator\",\n \"initial\",\n \"inner\",\n \"inout\",\n \"insensitive\",\n \"insert\",\n \"int\",\n \"integer\",\n \"intersect\",\n \"intersection\",\n \"interval\",\n \"into\",\n \"is\",\n \"join\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"language\",\n \"large\",\n \"last_value\",\n \"lateral\",\n \"lead\",\n \"leading\",\n \"left\",\n \"like\",\n \"like_regex\",\n \"listagg\",\n \"ln\",\n \"local\",\n \"localtime\",\n \"localtimestamp\",\n \"log\",\n \"log10\",\n \"lower\",\n \"match\",\n \"match_number\",\n \"match_recognize\",\n \"matches\",\n \"max\",\n \"member\",\n \"merge\",\n \"method\",\n \"min\",\n \"minute\",\n \"mod\",\n \"modifies\",\n \"module\",\n \"month\",\n \"multiset\",\n \"national\",\n \"natural\",\n \"nchar\",\n \"nclob\",\n \"new\",\n \"no\",\n \"none\",\n \"normalize\",\n \"not\",\n \"nth_value\",\n \"ntile\",\n \"null\",\n \"nullif\",\n \"numeric\",\n \"octet_length\",\n \"occurrences_regex\",\n \"of\",\n \"offset\",\n \"old\",\n \"omit\",\n \"on\",\n \"one\",\n \"only\",\n \"open\",\n \"or\",\n \"order\",\n \"out\",\n \"outer\",\n \"over\",\n \"overlaps\",\n \"overlay\",\n \"parameter\",\n \"partition\",\n \"pattern\",\n \"per\",\n \"percent\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"period\",\n \"portion\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"precedes\",\n \"precision\",\n \"prepare\",\n \"primary\",\n \"procedure\",\n \"ptf\",\n \"range\",\n \"rank\",\n \"reads\",\n \"real\",\n \"recursive\",\n \"ref\",\n \"references\",\n \"referencing\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"release\",\n \"result\",\n \"return\",\n \"returns\",\n \"revoke\",\n \"right\",\n \"rollback\",\n \"rollup\",\n \"row\",\n \"row_number\",\n \"rows\",\n \"running\",\n \"savepoint\",\n \"scope\",\n \"scroll\",\n \"search\",\n \"second\",\n \"seek\",\n \"select\",\n \"sensitive\",\n \"session_user\",\n \"set\",\n \"show\",\n \"similar\",\n \"sin\",\n \"sinh\",\n \"skip\",\n \"smallint\",\n \"some\",\n \"specific\",\n \"specifictype\",\n \"sql\",\n \"sqlexception\",\n \"sqlstate\",\n \"sqlwarning\",\n \"sqrt\",\n \"start\",\n \"static\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"submultiset\",\n \"subset\",\n \"substring\",\n \"substring_regex\",\n \"succeeds\",\n \"sum\",\n \"symmetric\",\n \"system\",\n \"system_time\",\n \"system_user\",\n \"table\",\n \"tablesample\",\n \"tan\",\n \"tanh\",\n \"then\",\n \"time\",\n \"timestamp\",\n \"timezone_hour\",\n \"timezone_minute\",\n \"to\",\n \"trailing\",\n \"translate\",\n \"translate_regex\",\n \"translation\",\n \"treat\",\n \"trigger\",\n \"trim\",\n \"trim_array\",\n \"true\",\n \"truncate\",\n \"uescape\",\n \"union\",\n \"unique\",\n \"unknown\",\n \"unnest\",\n \"update\",\n \"upper\",\n \"user\",\n \"using\",\n \"value\",\n \"values\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"varbinary\",\n \"varchar\",\n \"varying\",\n \"versioning\",\n \"when\",\n \"whenever\",\n \"where\",\n \"width_bucket\",\n \"window\",\n \"with\",\n \"within\",\n \"without\",\n \"year\",\n ];\n\n // these are reserved words we have identified to be functions\n // and should only be highlighted in a dispatch-like context\n // ie, array_agg(...), etc.\n const RESERVED_FUNCTIONS = [\n \"abs\",\n \"acos\",\n \"array_agg\",\n \"asin\",\n \"atan\",\n \"avg\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"coalesce\",\n \"corr\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"cume_dist\",\n \"dense_rank\",\n \"deref\",\n \"element\",\n \"exp\",\n \"extract\",\n \"first_value\",\n \"floor\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"last_value\",\n \"lead\",\n \"listagg\",\n \"ln\",\n \"log\",\n \"log10\",\n \"lower\",\n \"max\",\n \"min\",\n \"mod\",\n \"nth_value\",\n \"ntile\",\n \"nullif\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"rank\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"row_number\",\n \"sin\",\n \"sinh\",\n \"sqrt\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"substring\",\n \"substring_regex\",\n \"sum\",\n \"tan\",\n \"tanh\",\n \"translate\",\n \"translate_regex\",\n \"treat\",\n \"trim\",\n \"trim_array\",\n \"unnest\",\n \"upper\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"width_bucket\",\n ];\n\n // these functions can\n const POSSIBLE_WITHOUT_PARENS = [\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_schema\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"session_user\",\n \"system_time\",\n \"system_user\",\n \"current_time\",\n \"localtime\",\n \"current_timestamp\",\n \"localtimestamp\"\n ];\n\n // those exist to boost relevance making these very\n // \"SQL like\" keyword combos worth +1 extra relevance\n const COMBOS = [\n \"create table\",\n \"insert into\",\n \"primary key\",\n \"foreign key\",\n \"not null\",\n \"alter table\",\n \"add constraint\",\n \"grouping sets\",\n \"on overflow\",\n \"character set\",\n \"respect nulls\",\n \"ignore nulls\",\n \"nulls first\",\n \"nulls last\",\n \"depth first\",\n \"breadth first\"\n ];\n\n const FUNCTIONS = RESERVED_FUNCTIONS;\n\n const KEYWORDS = [\n ...RESERVED_WORDS,\n ...NON_RESERVED_WORDS\n ].filter((keyword) => {\n return !RESERVED_FUNCTIONS.includes(keyword);\n });\n\n const VARIABLE = {\n scope: \"variable\",\n match: /@[a-z0-9][a-z0-9_]*/,\n };\n\n const OPERATOR = {\n scope: \"operator\",\n match: /[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,\n relevance: 0,\n };\n\n const FUNCTION_CALL = {\n match: regex.concat(/\\b/, regex.either(...FUNCTIONS), /\\s*\\(/),\n relevance: 0,\n keywords: { built_in: FUNCTIONS }\n };\n\n // turns a multi-word keyword combo into a regex that doesn't\n // care about extra whitespace etc.\n // input: \"START QUERY\"\n // output: /\\bSTART\\s+QUERY\\b/\n function kws_to_regex(list) {\n return regex.concat(\n /\\b/,\n regex.either(...list.map((kw) => {\n return kw.replace(/\\s+/, \"\\\\s+\")\n })),\n /\\b/\n )\n }\n\n const MULTI_WORD_KEYWORDS = {\n scope: \"keyword\",\n match: kws_to_regex(COMBOS),\n relevance: 0,\n };\n\n // keywords with less than 3 letters are reduced in relevancy\n function reduceRelevancy(list, {\n exceptions, when\n } = {}) {\n const qualifyFn = when;\n exceptions = exceptions || [];\n return list.map((item) => {\n if (item.match(/\\|\\d+$/) || exceptions.includes(item)) {\n return item;\n } else if (qualifyFn(item)) {\n return `${item}|0`;\n } else {\n return item;\n }\n });\n }\n\n return {\n name: 'SQL',\n case_insensitive: true,\n // does not include {} or HTML tags ` x.length < 3 }),\n literal: LITERALS,\n type: TYPES,\n built_in: POSSIBLE_WITHOUT_PARENS\n },\n contains: [\n {\n scope: \"type\",\n match: kws_to_regex(MULTI_WORD_TYPES)\n },\n MULTI_WORD_KEYWORDS,\n FUNCTION_CALL,\n VARIABLE,\n STRING,\n QUOTED_IDENTIFIER,\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n OPERATOR\n ]\n };\n}\n\nexport { sql as default };\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\nconst keywordWrapper = keyword => concat(\n /\\b/,\n keyword,\n /\\w$/.test(keyword) ? /\\b/ : /\\B/\n);\n\n// Keywords that require a leading dot.\nconst dotKeywords = [\n 'Protocol', // contextual\n 'Type' // contextual\n].map(keywordWrapper);\n\n// Keywords that may have a leading dot.\nconst optionalDotKeywords = [\n 'init',\n 'self'\n].map(keywordWrapper);\n\n// should register as keyword, not type\nconst keywordTypes = [\n 'Any',\n 'Self'\n];\n\n// Regular keywords and literals.\nconst keywords = [\n // strings below will be fed into the regular `keywords` engine while regex\n // will result in additional modes being created to scan for those keywords to\n // avoid conflicts with other rules\n 'actor',\n 'any', // contextual\n 'associatedtype',\n 'async',\n 'await',\n /as\\?/, // operator\n /as!/, // operator\n 'as', // operator\n 'borrowing', // contextual\n 'break',\n 'case',\n 'catch',\n 'class',\n 'consume', // contextual\n 'consuming', // contextual\n 'continue',\n 'convenience', // contextual\n 'copy', // contextual\n 'default',\n 'defer',\n 'deinit',\n 'didSet', // contextual\n 'distributed',\n 'do',\n 'dynamic', // contextual\n 'each',\n 'else',\n 'enum',\n 'extension',\n 'fallthrough',\n /fileprivate\\(set\\)/,\n 'fileprivate',\n 'final', // contextual\n 'for',\n 'func',\n 'get', // contextual\n 'guard',\n 'if',\n 'import',\n 'indirect', // contextual\n 'infix', // contextual\n /init\\?/,\n /init!/,\n 'inout',\n /internal\\(set\\)/,\n 'internal',\n 'in',\n 'is', // operator\n 'isolated', // contextual\n 'nonisolated', // contextual\n 'lazy', // contextual\n 'let',\n 'macro',\n 'mutating', // contextual\n 'nonmutating', // contextual\n /open\\(set\\)/, // contextual\n 'open', // contextual\n 'operator',\n 'optional', // contextual\n 'override', // contextual\n 'package',\n 'postfix', // contextual\n 'precedencegroup',\n 'prefix', // contextual\n /private\\(set\\)/,\n 'private',\n 'protocol',\n /public\\(set\\)/,\n 'public',\n 'repeat',\n 'required', // contextual\n 'rethrows',\n 'return',\n 'set', // contextual\n 'some', // contextual\n 'static',\n 'struct',\n 'subscript',\n 'super',\n 'switch',\n 'throws',\n 'throw',\n /try\\?/, // operator\n /try!/, // operator\n 'try', // operator\n 'typealias',\n /unowned\\(safe\\)/, // contextual\n /unowned\\(unsafe\\)/, // contextual\n 'unowned', // contextual\n 'var',\n 'weak', // contextual\n 'where',\n 'while',\n 'willSet' // contextual\n];\n\n// NOTE: Contextual keywords are reserved only in specific contexts.\n// Ideally, these should be matched using modes to avoid false positives.\n\n// Literals.\nconst literals = [\n 'false',\n 'nil',\n 'true'\n];\n\n// Keywords used in precedence groups.\nconst precedencegroupKeywords = [\n 'assignment',\n 'associativity',\n 'higherThan',\n 'left',\n 'lowerThan',\n 'none',\n 'right'\n];\n\n// Keywords that start with a number sign (#).\n// #(un)available is handled separately.\nconst numberSignKeywords = [\n '#colorLiteral',\n '#column',\n '#dsohandle',\n '#else',\n '#elseif',\n '#endif',\n '#error',\n '#file',\n '#fileID',\n '#fileLiteral',\n '#filePath',\n '#function',\n '#if',\n '#imageLiteral',\n '#keyPath',\n '#line',\n '#selector',\n '#sourceLocation',\n '#warning'\n];\n\n// Global functions in the Standard Library.\nconst builtIns = [\n 'abs',\n 'all',\n 'any',\n 'assert',\n 'assertionFailure',\n 'debugPrint',\n 'dump',\n 'fatalError',\n 'getVaList',\n 'isKnownUniquelyReferenced',\n 'max',\n 'min',\n 'numericCast',\n 'pointwiseMax',\n 'pointwiseMin',\n 'precondition',\n 'preconditionFailure',\n 'print',\n 'readLine',\n 'repeatElement',\n 'sequence',\n 'stride',\n 'swap',\n 'swift_unboxFromSwiftValueWithType',\n 'transcode',\n 'type',\n 'unsafeBitCast',\n 'unsafeDowncast',\n 'withExtendedLifetime',\n 'withUnsafeMutablePointer',\n 'withUnsafePointer',\n 'withVaList',\n 'withoutActuallyEscaping',\n 'zip'\n];\n\n// Valid first characters for operators.\nconst operatorHead = either(\n /[/=\\-+!*%<>&|^~?]/,\n /[\\u00A1-\\u00A7]/,\n /[\\u00A9\\u00AB]/,\n /[\\u00AC\\u00AE]/,\n /[\\u00B0\\u00B1]/,\n /[\\u00B6\\u00BB\\u00BF\\u00D7\\u00F7]/,\n /[\\u2016-\\u2017]/,\n /[\\u2020-\\u2027]/,\n /[\\u2030-\\u203E]/,\n /[\\u2041-\\u2053]/,\n /[\\u2055-\\u205E]/,\n /[\\u2190-\\u23FF]/,\n /[\\u2500-\\u2775]/,\n /[\\u2794-\\u2BFF]/,\n /[\\u2E00-\\u2E7F]/,\n /[\\u3001-\\u3003]/,\n /[\\u3008-\\u3020]/,\n /[\\u3030]/\n);\n\n// Valid characters for operators.\nconst operatorCharacter = either(\n operatorHead,\n /[\\u0300-\\u036F]/,\n /[\\u1DC0-\\u1DFF]/,\n /[\\u20D0-\\u20FF]/,\n /[\\uFE00-\\uFE0F]/,\n /[\\uFE20-\\uFE2F]/\n // TODO: The following characters are also allowed, but the regex isn't supported yet.\n // /[\\u{E0100}-\\u{E01EF}]/u\n);\n\n// Valid operator.\nconst operator = concat(operatorHead, operatorCharacter, '*');\n\n// Valid first characters for identifiers.\nconst identifierHead = either(\n /[a-zA-Z_]/,\n /[\\u00A8\\u00AA\\u00AD\\u00AF\\u00B2-\\u00B5\\u00B7-\\u00BA]/,\n /[\\u00BC-\\u00BE\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]/,\n /[\\u0100-\\u02FF\\u0370-\\u167F\\u1681-\\u180D\\u180F-\\u1DBF]/,\n /[\\u1E00-\\u1FFF]/,\n /[\\u200B-\\u200D\\u202A-\\u202E\\u203F-\\u2040\\u2054\\u2060-\\u206F]/,\n /[\\u2070-\\u20CF\\u2100-\\u218F\\u2460-\\u24FF\\u2776-\\u2793]/,\n /[\\u2C00-\\u2DFF\\u2E80-\\u2FFF]/,\n /[\\u3004-\\u3007\\u3021-\\u302F\\u3031-\\u303F\\u3040-\\uD7FF]/,\n /[\\uF900-\\uFD3D\\uFD40-\\uFDCF\\uFDF0-\\uFE1F\\uFE30-\\uFE44]/,\n /[\\uFE47-\\uFEFE\\uFF00-\\uFFFD]/ // Should be /[\\uFE47-\\uFFFD]/, but we have to exclude FEFF.\n // The following characters are also allowed, but the regexes aren't supported yet.\n // /[\\u{10000}-\\u{1FFFD}\\u{20000-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}]/u,\n // /[\\u{50000}-\\u{5FFFD}\\u{60000-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}]/u,\n // /[\\u{90000}-\\u{9FFFD}\\u{A0000-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}]/u,\n // /[\\u{D0000}-\\u{DFFFD}\\u{E0000-\\u{EFFFD}]/u\n);\n\n// Valid characters for identifiers.\nconst identifierCharacter = either(\n identifierHead,\n /\\d/,\n /[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]/\n);\n\n// Valid identifier.\nconst identifier = concat(identifierHead, identifierCharacter, '*');\n\n// Valid type identifier.\nconst typeIdentifier = concat(/[A-Z]/, identifierCharacter, '*');\n\n// Built-in attributes, which are highlighted as keywords.\n// @available is handled separately.\n// https://docs.swift.org/swift-book/documentation/the-swift-programming-language/attributes\nconst keywordAttributes = [\n 'attached',\n 'autoclosure',\n concat(/convention\\(/, either('swift', 'block', 'c'), /\\)/),\n 'discardableResult',\n 'dynamicCallable',\n 'dynamicMemberLookup',\n 'escaping',\n 'freestanding',\n 'frozen',\n 'GKInspectable',\n 'IBAction',\n 'IBDesignable',\n 'IBInspectable',\n 'IBOutlet',\n 'IBSegueAction',\n 'inlinable',\n 'main',\n 'nonobjc',\n 'NSApplicationMain',\n 'NSCopying',\n 'NSManaged',\n concat(/objc\\(/, identifier, /\\)/),\n 'objc',\n 'objcMembers',\n 'propertyWrapper',\n 'requires_stored_property_inits',\n 'resultBuilder',\n 'Sendable',\n 'testable',\n 'UIApplicationMain',\n 'unchecked',\n 'unknown',\n 'usableFromInline',\n 'warn_unqualified_access'\n];\n\n// Contextual keywords used in @available and #(un)available.\nconst availabilityKeywords = [\n 'iOS',\n 'iOSApplicationExtension',\n 'macOS',\n 'macOSApplicationExtension',\n 'macCatalyst',\n 'macCatalystApplicationExtension',\n 'watchOS',\n 'watchOSApplicationExtension',\n 'tvOS',\n 'tvOSApplicationExtension',\n 'swift'\n];\n\n/*\nLanguage: Swift\nDescription: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.\nAuthor: Steven Van Impe \nContributors: Chris Eidhof , Nate Cook , Alexander Lichter , Richard Gibson \nWebsite: https://swift.org\nCategory: common, system\n*/\n\n\n/** @type LanguageFn */\nfunction swift(hljs) {\n const WHITESPACE = {\n match: /\\s+/,\n relevance: 0\n };\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID411\n const BLOCK_COMMENT = hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [ 'self' ] }\n );\n const COMMENTS = [\n hljs.C_LINE_COMMENT_MODE,\n BLOCK_COMMENT\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html\n const DOT_KEYWORD = {\n match: [\n /\\./,\n either(...dotKeywords, ...optionalDotKeywords)\n ],\n className: { 2: \"keyword\" }\n };\n const KEYWORD_GUARD = {\n // Consume .keyword to prevent highlighting properties and methods as keywords.\n match: concat(/\\./, either(...keywords)),\n relevance: 0\n };\n const PLAIN_KEYWORDS = keywords\n .filter(kw => typeof kw === 'string')\n .concat([ \"_|0\" ]); // seems common, so 0 relevance\n const REGEX_KEYWORDS = keywords\n .filter(kw => typeof kw !== 'string') // find regex\n .concat(keywordTypes)\n .map(keywordWrapper);\n const KEYWORD = { variants: [\n {\n className: 'keyword',\n match: either(...REGEX_KEYWORDS, ...optionalDotKeywords)\n }\n ] };\n // find all the regular keywords\n const KEYWORDS = {\n $pattern: either(\n /\\b\\w+/, // regular keywords\n /#\\w+/ // number keywords\n ),\n keyword: PLAIN_KEYWORDS\n .concat(numberSignKeywords),\n literal: literals\n };\n const KEYWORD_MODES = [\n DOT_KEYWORD,\n KEYWORD_GUARD,\n KEYWORD\n ];\n\n // https://github.com/apple/swift/tree/main/stdlib/public/core\n const BUILT_IN_GUARD = {\n // Consume .built_in to prevent highlighting properties and methods.\n match: concat(/\\./, either(...builtIns)),\n relevance: 0\n };\n const BUILT_IN = {\n className: 'built_in',\n match: concat(/\\b/, either(...builtIns), /(?=\\()/)\n };\n const BUILT_INS = [\n BUILT_IN_GUARD,\n BUILT_IN\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418\n const OPERATOR_GUARD = {\n // Prevent -> from being highlighting as an operator.\n match: /->/,\n relevance: 0\n };\n const OPERATOR = {\n className: 'operator',\n relevance: 0,\n variants: [\n { match: operator },\n {\n // dot-operator: only operators that start with a dot are allowed to use dots as\n // characters (..., ...<, .*, etc). So there rule here is: a dot followed by one or more\n // characters that may also include dots.\n match: `\\\\.(\\\\.|${operatorCharacter})+` }\n ]\n };\n const OPERATORS = [\n OPERATOR_GUARD,\n OPERATOR\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal\n // TODO: Update for leading `-` after lookbehind is supported everywhere\n const decimalDigits = '([0-9]_*)+';\n const hexDigits = '([0-9a-fA-F]_*)+';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal floating-point-literal (subsumes decimal-literal)\n { match: `\\\\b(${decimalDigits})(\\\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\\\b` },\n // hexadecimal floating-point-literal (subsumes hexadecimal-literal)\n { match: `\\\\b0x(${hexDigits})(\\\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\\\b` },\n // octal-literal\n { match: /\\b0o([0-7]_*)+\\b/ },\n // binary-literal\n { match: /\\b0b([01]_*)+\\b/ }\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_string-literal\n const ESCAPED_CHARACTER = (rawDelimiter = \"\") => ({\n className: 'subst',\n variants: [\n { match: concat(/\\\\/, rawDelimiter, /[0\\\\tnr\"']/) },\n { match: concat(/\\\\/, rawDelimiter, /u\\{[0-9a-fA-F]{1,8}\\}/) }\n ]\n });\n const ESCAPED_NEWLINE = (rawDelimiter = \"\") => ({\n className: 'subst',\n match: concat(/\\\\/, rawDelimiter, /[\\t ]*(?:[\\r\\n]|\\r\\n)/)\n });\n const INTERPOLATION = (rawDelimiter = \"\") => ({\n className: 'subst',\n label: \"interpol\",\n begin: concat(/\\\\/, rawDelimiter, /\\(/),\n end: /\\)/\n });\n const MULTILINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"\"\"/),\n end: concat(/\"\"\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n ESCAPED_NEWLINE(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const SINGLE_LINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"/),\n end: concat(/\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const STRING = {\n className: 'string',\n variants: [\n MULTILINE_STRING(),\n MULTILINE_STRING(\"#\"),\n MULTILINE_STRING(\"##\"),\n MULTILINE_STRING(\"###\"),\n SINGLE_LINE_STRING(),\n SINGLE_LINE_STRING(\"#\"),\n SINGLE_LINE_STRING(\"##\"),\n SINGLE_LINE_STRING(\"###\")\n ]\n };\n\n const REGEXP_CONTENTS = [\n hljs.BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n }\n ];\n\n const BARE_REGEXP_LITERAL = {\n begin: /\\/[^\\s](?=[^/\\n]*\\/)/,\n end: /\\//,\n contains: REGEXP_CONTENTS\n };\n\n const EXTENDED_REGEXP_LITERAL = (rawDelimiter) => {\n const begin = concat(rawDelimiter, /\\//);\n const end = concat(/\\//, rawDelimiter);\n return {\n begin,\n end,\n contains: [\n ...REGEXP_CONTENTS,\n {\n scope: \"comment\",\n begin: `#(?!.*${end})`,\n end: /$/,\n },\n ],\n };\n };\n\n // https://docs.swift.org/swift-book/documentation/the-swift-programming-language/lexicalstructure/#Regular-Expression-Literals\n const REGEXP = {\n scope: \"regexp\",\n variants: [\n EXTENDED_REGEXP_LITERAL('###'),\n EXTENDED_REGEXP_LITERAL('##'),\n EXTENDED_REGEXP_LITERAL('#'),\n BARE_REGEXP_LITERAL\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID412\n const QUOTED_IDENTIFIER = { match: concat(/`/, identifier, /`/) };\n const IMPLICIT_PARAMETER = {\n className: 'variable',\n match: /\\$\\d+/\n };\n const PROPERTY_WRAPPER_PROJECTION = {\n className: 'variable',\n match: `\\\\$${identifierCharacter}+`\n };\n const IDENTIFIERS = [\n QUOTED_IDENTIFIER,\n IMPLICIT_PARAMETER,\n PROPERTY_WRAPPER_PROJECTION\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Attributes.html\n const AVAILABLE_ATTRIBUTE = {\n match: /(@|#(un)?)available/,\n scope: 'keyword',\n starts: { contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: availabilityKeywords,\n contains: [\n ...OPERATORS,\n NUMBER,\n STRING\n ]\n }\n ] }\n };\n\n const KEYWORD_ATTRIBUTE = {\n scope: 'keyword',\n match: concat(/@/, either(...keywordAttributes), lookahead(either(/\\(/, /\\s+/))),\n };\n\n const USER_DEFINED_ATTRIBUTE = {\n scope: 'meta',\n match: concat(/@/, identifier)\n };\n\n const ATTRIBUTES = [\n AVAILABLE_ATTRIBUTE,\n KEYWORD_ATTRIBUTE,\n USER_DEFINED_ATTRIBUTE\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Types.html\n const TYPE = {\n match: lookahead(/\\b[A-Z]/),\n relevance: 0,\n contains: [\n { // Common Apple frameworks, for relevance boost\n className: 'type',\n match: concat(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, '+')\n },\n { // Type identifier\n className: 'type',\n match: typeIdentifier,\n relevance: 0\n },\n { // Optional type\n match: /[?!]+/,\n relevance: 0\n },\n { // Variadic parameter\n match: /\\.\\.\\./,\n relevance: 0\n },\n { // Protocol composition\n match: concat(/\\s+&\\s+/, lookahead(typeIdentifier)),\n relevance: 0\n }\n ]\n };\n const GENERIC_ARGUMENTS = {\n begin: //,\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...ATTRIBUTES,\n OPERATOR_GUARD,\n TYPE\n ]\n };\n TYPE.contains.push(GENERIC_ARGUMENTS);\n\n // https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID552\n // Prevents element names from being highlighted as keywords.\n const TUPLE_ELEMENT_NAME = {\n match: concat(identifier, /\\s*:/),\n keywords: \"_|0\",\n relevance: 0\n };\n // Matches tuples as well as the parameter list of a function type.\n const TUPLE = {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: KEYWORDS,\n contains: [\n 'self',\n TUPLE_ELEMENT_NAME,\n ...COMMENTS,\n REGEXP,\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE\n ]\n };\n\n const GENERIC_PARAMETERS = {\n begin: //,\n keywords: 'repeat each',\n contains: [\n ...COMMENTS,\n TYPE\n ]\n };\n const FUNCTION_PARAMETER_NAME = {\n begin: either(\n lookahead(concat(identifier, /\\s*:/)),\n lookahead(concat(identifier, /\\s+/, identifier, /\\s*:/))\n ),\n end: /:/,\n relevance: 0,\n contains: [\n {\n className: 'keyword',\n match: /\\b_\\b/\n },\n {\n className: 'params',\n match: identifier\n }\n ]\n };\n const FUNCTION_PARAMETERS = {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n FUNCTION_PARAMETER_NAME,\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ],\n endsParent: true,\n illegal: /[\"']/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID362\n // https://docs.swift.org/swift-book/documentation/the-swift-programming-language/declarations/#Macro-Declaration\n const FUNCTION_OR_MACRO = {\n match: [\n /(func|macro)/,\n /\\s+/,\n either(QUOTED_IDENTIFIER.match, identifier, operator)\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: [\n /\\[/,\n /%/\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID375\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID379\n const INIT_SUBSCRIPT = {\n match: [\n /\\b(?:subscript|init[?!]?)/,\n /\\s*(?=[<(])/,\n ],\n className: { 1: \"keyword\" },\n contains: [\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: /\\[|%/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID380\n const OPERATOR_DECLARATION = {\n match: [\n /operator/,\n /\\s+/,\n operator\n ],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n }\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID550\n const PRECEDENCEGROUP = {\n begin: [\n /precedencegroup/,\n /\\s+/,\n typeIdentifier\n ],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n },\n contains: [ TYPE ],\n keywords: [\n ...precedencegroupKeywords,\n ...literals\n ],\n end: /}/\n };\n\n const CLASS_FUNC_DECLARATION = {\n match: [\n /class\\b/, \n /\\s+/,\n /func\\b/,\n /\\s+/,\n /\\b[A-Za-z_][A-Za-z0-9_]*\\b/ \n ],\n scope: {\n 1: \"keyword\",\n 3: \"keyword\",\n 5: \"title.function\"\n }\n };\n\n const CLASS_VAR_DECLARATION = {\n match: [\n /class\\b/,\n /\\s+/, \n /var\\b/, \n ],\n scope: {\n 1: \"keyword\",\n 3: \"keyword\"\n }\n };\n\n const TYPE_DECLARATION = {\n begin: [\n /(struct|protocol|class|extension|enum|actor)/,\n /\\s+/,\n identifier,\n /\\s*/,\n ],\n beginScope: {\n 1: \"keyword\",\n 3: \"title.class\"\n },\n keywords: KEYWORDS,\n contains: [\n GENERIC_PARAMETERS,\n ...KEYWORD_MODES,\n {\n begin: /:/,\n end: /\\{/,\n keywords: KEYWORDS,\n contains: [\n {\n scope: \"title.class.inherited\",\n match: typeIdentifier,\n },\n ...KEYWORD_MODES,\n ],\n relevance: 0,\n },\n ]\n };\n\n // Add supported submodes to string interpolation.\n for (const variant of STRING.variants) {\n const interpolation = variant.contains.find(mode => mode.label === \"interpol\");\n // TODO: Interpolation can contain any expression, so there's room for improvement here.\n interpolation.keywords = KEYWORDS;\n const submodes = [\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS\n ];\n interpolation.contains = [\n ...submodes,\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n ...submodes\n ]\n }\n ];\n }\n\n return {\n name: 'Swift',\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n FUNCTION_OR_MACRO,\n INIT_SUBSCRIPT,\n CLASS_FUNC_DECLARATION,\n CLASS_VAR_DECLARATION,\n TYPE_DECLARATION,\n OPERATOR_DECLARATION,\n PRECEDENCEGROUP,\n {\n beginKeywords: 'import',\n end: /$/,\n contains: [ ...COMMENTS ],\n relevance: 0\n },\n REGEXP,\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ]\n };\n}\n\nexport { swift as default };\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\",\n // It's reached stage 3, which is \"recommended for implementation\":\n \"using\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"sessionStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\"\n ) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // (key?: string) => Modify<\n if ((m = afterMatch.match(/^\\s*=/))) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: '\\.?html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: '\\.?css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const GRAPHQL_TEMPLATE = {\n begin: '\\.?gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'graphql'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /(\\s*)\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n // convert this to negative lookbehind in v12\n begin: /(\\s*)\\(/, // to match the parms with\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\",\n \"import\"\n ].map(x => `${x}\\\\s*\\\\(`)),\n IDENT_RE$1, regex.lookahead(/\\s*\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n CLASS_REFERENCE,\n {\n scope: 'attr',\n match: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /(\\s*)\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti \nContributors: Ike Ku \nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n const regex = hljs.regex;\n const tsLanguage = javascript(hljs);\n\n const IDENT_RE$1 = IDENT_RE;\n const TYPES = [\n \"any\",\n \"void\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n \"never\",\n \"symbol\",\n \"bigint\",\n \"unknown\"\n ];\n const NAMESPACE = {\n begin: [\n /namespace/,\n /\\s+/,\n hljs.IDENT_RE\n ],\n beginScope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n };\n const INTERFACE = {\n beginKeywords: 'interface',\n end: /\\{/,\n excludeEnd: true,\n keywords: {\n keyword: 'interface extends',\n built_in: TYPES\n },\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n const TS_SPECIFIC_KEYWORDS = [\n \"type\",\n // \"namespace\",\n \"interface\",\n \"public\",\n \"private\",\n \"protected\",\n \"implements\",\n \"declare\",\n \"abstract\",\n \"readonly\",\n \"enum\",\n \"override\",\n \"satisfies\"\n ];\n /*\n namespace is a TS keyword but it's fine to use it as a variable name too.\n const message = 'foo';\n const namespace = 'bar';\n */\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES),\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n const DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1,\n };\n\n const swapMode = (mode, label, replacement) => {\n const indx = mode.contains.findIndex(m => m.label === label);\n if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n\n mode.contains.splice(indx, 1, replacement);\n };\n\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n\n // highlight the function params\n const ATTRIBUTE_HIGHLIGHT = tsLanguage.contains.find(c => c.scope === \"attr\");\n\n // take default attr rule and extend it to support optionals\n const OPTIONAL_KEY_OR_ARGUMENT = Object.assign({},\n ATTRIBUTE_HIGHLIGHT,\n { match: regex.concat(IDENT_RE$1, regex.lookahead(/\\s*\\?:/)) }\n );\n tsLanguage.exports.PARAMS_CONTAINS.push([\n tsLanguage.exports.CLASS_REFERENCE, // class reference for highlighting the params types\n ATTRIBUTE_HIGHLIGHT, // highlight the params key\n OPTIONAL_KEY_OR_ARGUMENT, // Added for optional property assignment highlighting\n ]);\n\n // Add the optional property assignment highlighting for objects or classes\n tsLanguage.contains = tsLanguage.contains.concat([\n DECORATOR,\n NAMESPACE,\n INTERFACE,\n OPTIONAL_KEY_OR_ARGUMENT, // Added for optional property assignment highlighting\n ]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n const functionDeclaration = tsLanguage.contains.find(m => m.label === \"func.def\");\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: [\n 'ts',\n 'tsx',\n 'mts',\n 'cts'\n ]\n });\n\n return tsLanguage;\n}\n\nexport { typescript as default };\n","/*\nLanguage: Visual Basic .NET\nDescription: Visual Basic .NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the .NET Framework.\nAuthors: Poren Chiang , Jan Pilzer\nWebsite: https://docs.microsoft.com/dotnet/visual-basic/getting-started\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction vbnet(hljs) {\n const regex = hljs.regex;\n /**\n * Character Literal\n * Either a single character (\"a\"C) or an escaped double quote (\"\"\"\"C).\n */\n const CHARACTER = {\n className: 'string',\n begin: /\"(\"\"|[^/n])\"C\\b/\n };\n\n const STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n contains: [\n {\n // double quote escape\n begin: /\"\"/ }\n ]\n };\n\n /** Date Literals consist of a date, a time, or both separated by whitespace, surrounded by # */\n const MM_DD_YYYY = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\n const YYYY_MM_DD = /\\d{4}-\\d{1,2}-\\d{1,2}/;\n const TIME_12H = /(\\d|1[012])(:\\d+){0,2} *(AM|PM)/;\n const TIME_24H = /\\d{1,2}(:\\d{1,2}){1,2}/;\n const DATE = {\n className: 'literal',\n variants: [\n {\n // #YYYY-MM-DD# (ISO-Date) or #M/D/YYYY# (US-Date)\n begin: regex.concat(/# */, regex.either(YYYY_MM_DD, MM_DD_YYYY), / *#/) },\n {\n // #H:mm[:ss]# (24h Time)\n begin: regex.concat(/# */, TIME_24H, / *#/) },\n {\n // #h[:mm[:ss]] A# (12h Time)\n begin: regex.concat(/# */, TIME_12H, / *#/) },\n {\n // date plus time\n begin: regex.concat(\n /# */,\n regex.either(YYYY_MM_DD, MM_DD_YYYY),\n / +/,\n regex.either(TIME_12H, TIME_24H),\n / *#/\n ) }\n ]\n };\n\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n {\n // Float\n begin: /\\b\\d[\\d_]*((\\.[\\d_]+(E[+-]?[\\d_]+)?)|(E[+-]?[\\d_]+))[RFD@!#]?/ },\n {\n // Integer (base 10)\n begin: /\\b\\d[\\d_]*((U?[SIL])|[%&])?/ },\n {\n // Integer (base 16)\n begin: /&H[\\dA-F_]+((U?[SIL])|[%&])?/ },\n {\n // Integer (base 8)\n begin: /&O[0-7_]+((U?[SIL])|[%&])?/ },\n {\n // Integer (base 2)\n begin: /&B[01_]+((U?[SIL])|[%&])?/ }\n ]\n };\n\n const LABEL = {\n className: 'label',\n begin: /^\\w+:/\n };\n\n const DOC_COMMENT = hljs.COMMENT(/'''/, /$/, { contains: [\n {\n className: 'doctag',\n begin: /<\\/?/,\n end: />/\n }\n ] });\n\n const COMMENT = hljs.COMMENT(null, /$/, { variants: [\n { begin: /'/ },\n {\n // TODO: Use multi-class for leading spaces\n begin: /([\\t ]|^)REM(?=\\s)/ }\n ] });\n\n const DIRECTIVES = {\n className: 'meta',\n // TODO: Use multi-class for indentation once available\n begin: /[\\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\\b/,\n end: /$/,\n keywords: { keyword:\n 'const disable else elseif enable end externalsource if region then' },\n contains: [ COMMENT ]\n };\n\n return {\n name: 'Visual Basic .NET',\n aliases: [ 'vb' ],\n case_insensitive: true,\n classNameAliases: { label: 'symbol' },\n keywords: {\n keyword:\n 'addhandler alias aggregate ansi as async assembly auto binary by byref byval ' /* a-b */\n + 'call case catch class compare const continue custom declare default delegate dim distinct do ' /* c-d */\n + 'each equals else elseif end enum erase error event exit explicit finally for friend from function ' /* e-f */\n + 'get global goto group handles if implements imports in inherits interface into iterator ' /* g-i */\n + 'join key let lib loop me mid module mustinherit mustoverride mybase myclass ' /* j-m */\n + 'namespace narrowing new next notinheritable notoverridable ' /* n */\n + 'of off on operator option optional order overloads overridable overrides ' /* o */\n + 'paramarray partial preserve private property protected public ' /* p */\n + 'raiseevent readonly redim removehandler resume return ' /* r */\n + 'select set shadows shared skip static step stop structure strict sub synclock ' /* s */\n + 'take text then throw to try unicode until using when where while widening with withevents writeonly yield' /* t-y */,\n built_in:\n // Operators https://docs.microsoft.com/dotnet/visual-basic/language-reference/operators\n 'addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor '\n // Type Conversion Functions https://docs.microsoft.com/dotnet/visual-basic/language-reference/functions/type-conversion-functions\n + 'cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort',\n type:\n // Data types https://docs.microsoft.com/dotnet/visual-basic/language-reference/data-types\n 'boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort',\n literal: 'true false nothing'\n },\n illegal:\n '//|\\\\{|\\\\}|endif|gosub|variant|wend|^\\\\$ ' /* reserved deprecated keywords */,\n contains: [\n CHARACTER,\n STRING,\n DATE,\n NUMBER,\n LABEL,\n DOC_COMMENT,\n COMMENT,\n DIRECTIVES\n ]\n };\n}\n\nexport { vbnet as default };\n","/*\nLanguage: WebAssembly\nWebsite: https://webassembly.org\nDescription: Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.\nCategory: web, common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction wasm(hljs) {\n hljs.regex;\n const BLOCK_COMMENT = hljs.COMMENT(/\\(;/, /;\\)/);\n BLOCK_COMMENT.contains.push(\"self\");\n const LINE_COMMENT = hljs.COMMENT(/;;/, /$/);\n\n const KWS = [\n \"anyfunc\",\n \"block\",\n \"br\",\n \"br_if\",\n \"br_table\",\n \"call\",\n \"call_indirect\",\n \"data\",\n \"drop\",\n \"elem\",\n \"else\",\n \"end\",\n \"export\",\n \"func\",\n \"global.get\",\n \"global.set\",\n \"local.get\",\n \"local.set\",\n \"local.tee\",\n \"get_global\",\n \"get_local\",\n \"global\",\n \"if\",\n \"import\",\n \"local\",\n \"loop\",\n \"memory\",\n \"memory.grow\",\n \"memory.size\",\n \"module\",\n \"mut\",\n \"nop\",\n \"offset\",\n \"param\",\n \"result\",\n \"return\",\n \"select\",\n \"set_global\",\n \"set_local\",\n \"start\",\n \"table\",\n \"tee_local\",\n \"then\",\n \"type\",\n \"unreachable\"\n ];\n\n const FUNCTION_REFERENCE = {\n begin: [\n /(?:func|call|call_indirect)/,\n /\\s+/,\n /\\$[^\\s)]+/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n }\n };\n\n const ARGUMENT = {\n className: \"variable\",\n begin: /\\$[\\w_]+/\n };\n\n const PARENS = {\n match: /(\\((?!;)|\\))+/,\n className: \"punctuation\",\n relevance: 0\n };\n\n const NUMBER = {\n className: \"number\",\n relevance: 0,\n // borrowed from Prism, TODO: split out into variants\n match: /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/\n };\n\n const TYPE = {\n // look-ahead prevents us from gobbling up opcodes\n match: /(i32|i64|f32|f64)(?!\\.)/,\n className: \"type\"\n };\n\n const MATH_OPERATIONS = {\n className: \"keyword\",\n // borrowed from Prism, TODO: split out into variants\n match: /\\b(f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))\\b/\n };\n\n const OFFSET_ALIGN = {\n match: [\n /(?:offset|align)/,\n /\\s*/,\n /=/\n ],\n className: {\n 1: \"keyword\",\n 3: \"operator\"\n }\n };\n\n return {\n name: 'WebAssembly',\n keywords: {\n $pattern: /[\\w.]+/,\n keyword: KWS\n },\n contains: [\n LINE_COMMENT,\n BLOCK_COMMENT,\n OFFSET_ALIGN,\n ARGUMENT,\n PARENS,\n FUNCTION_REFERENCE,\n hljs.QUOTE_STRING_MODE,\n TYPE,\n MATH_OPERATIONS,\n NUMBER\n ]\n };\n}\n\nexport { wasm as default };\n","/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: //,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: //,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n //,\n { relevance: 10 }\n ),\n {\n begin: //,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n ')/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the