respec 37.3.2 → 37.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- window.respecVersion="37.3.2",function(){"use strict";var e="undefined"!=typeof document?document.currentScript:null;const t=document.documentElement;t?.hasAttribute("lang")||(t.lang="en",t.hasAttribute("dir")||(t.dir="ltr"));const n={},r=t?.lang??"en";var s=Object.freeze({__proto__:null,l10n:n,lang:r,name:"core/l10n",run:function(e){e.l10n=n[r]||n.en}});const i=(e,t)=>t.some((t=>e instanceof t));let o,a;const c=new WeakMap,l=new WeakMap,u=new WeakMap;let d={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return c.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return m(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function p(e){d=e(d)}function h(e){return(a||(a=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(g(this),t),m(this.request)}:function(...t){return m(e.apply(g(this),t))}}function f(e){return"function"==typeof e?h(e):(e instanceof IDBTransaction&&function(e){if(c.has(e))return;const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("complete",s),e.removeEventListener("error",i),e.removeEventListener("abort",i)},s=()=>{t(),r()},i=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",s),e.addEventListener("error",i),e.addEventListener("abort",i)}));c.set(e,t)}(e),i(e,o||(o=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,d):e)}function m(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("success",s),e.removeEventListener("error",i)},s=()=>{t(m(e.result)),r()},i=()=>{n(e.error),r()};e.addEventListener("success",s),e.addEventListener("error",i)}));return u.set(t,e),t}(e);if(l.has(e))return l.get(e);const t=f(e);return t!==e&&(l.set(e,t),u.set(t,e)),t}const g=e=>u.get(e);const b=["get","getKey","getAll","getAllKeys","count"],y=["put","add","delete","clear"],w=new Map;function v(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(w.get(t))return w.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,s=y.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!s&&!b.includes(n))return;const i=async function(e,...t){const i=this.transaction(e,s?"readwrite":"readonly");let o=i.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),s&&i.done]))[0]};return w.set(t,i),i}p((e=>({...e,get:(t,n,r)=>v(t,n)||e.get(t,n,r),has:(t,n)=>!!v(t,n)||e.has(t,n)})));const k=["continue","continuePrimaryKey","advance"],$={},x=new WeakMap,C=new WeakMap,S={get(e,t){if(!k.includes(t))return e[t];let n=$[t];return n||(n=$[t]=function(...e){x.set(this,C.get(this)[t](...e))}),n}};async function*_(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const n=new Proxy(t,S);for(C.set(n,t),u.set(n,g(t));t;)yield n,t=await(x.get(n)||t.continue()),x.delete(n)}function T(e,t){return t===Symbol.asyncIterator&&i(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&i(e,[IDBIndex,IDBObjectStore])}p((e=>({...e,get:(t,n,r)=>T(t,n)?_:e.get(t,n,r),has:(t,n)=>T(t,n)||e.has(t,n)})));var R=Object.freeze({__proto__:null,deleteDB:function(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),m(n).then((()=>{}))},openDB:function(e,t,{blocked:n,upgrade:r,blocking:s,terminated:i}={}){const o=indexedDB.open(e,t),a=m(o);return r&&o.addEventListener("upgradeneeded",(e=>{r(m(o.result),e.oldVersion,e.newVersion,m(o.transaction),e)})),n&&o.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),a.then((e=>{i&&e.addEventListener("close",(()=>i())),s&&e.addEventListener("versionchange",(e=>s(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),a},unwrap:g,wrap:m});function E(e,t,n,r,s,{level:i="error",autofix:o,ruleName:a}={}){function c(n){return n>0?e.slice(t,t+n):e.slice(Math.max(t+n,0),t)}function l(n,{precedes:r}={}){const s=n.map((e=>e.trivia+e.value)).join(""),i=e[t];return"eof"===i.type?s:r?s+i.trivia:s.slice(i.trivia.length)}const u="eof"!==e[t].type?e[t].line:e.length>1?e[t-1].line:1,d=function(e){const t=e.split("\n");return t[t.length-1]}(l(c(-5),{precedes:!0})),p=c(5),h=l(p),f=d+h.split("\n")[0]+"\n"+(" ".repeat(d.length)+"^"),m="Syntax"===s?"since":"inside",g=`${s} error at line ${u}${e.name?` in ${e.name}`:""}${n&&n.name?`, ${m} \`${n.partial?"partial ":""}${function(e){const t=[e];for(;e&&e.parent;){const{parent:n}=e;t.unshift(n),e=n}return t.map((e=>function(e,t){let n=e;return t&&(n+=` ${t}`),n}(e.type,e.name))).join(" -> ")}(n)}\``:""}:\n${f}`;return{message:`${g} ${r}`,bareMessage:r,context:g,line:u,sourceName:e.name,level:i,ruleName:a,autofix:o,input:h,tokens:p}}function L(e,t,n,r){return E(e,t,n,r,"Syntax")}function A(e,t,n,r,s={}){return s.ruleName=n,E(t.source,e.index,t,r,"Validation",s)}class P{constructor({source:e,tokens:t}){Object.defineProperties(this,{source:{value:e},tokens:{value:t,writable:!0},parent:{value:null,writable:!0},this:{value:this}})}toJSON(){const e={type:void 0,name:void 0,inheritance:void 0};let t=this;for(;t!==Object.prototype;){const n=Object.getOwnPropertyDescriptors(t);for(const[t,r]of Object.entries(n))(r.enumerable||r.get)&&(e[t]=this[t]);t=Object.getPrototypeOf(t)}return e}}function N(e,t,{useNullableInner:n}={}){if(!e.union){const r=t.unique.get(e.idlType);if(!r)return;if("typedef"===r.type){const{typedefIncludesDictionary:n}=t.cache;if(n.has(r))return n.get(r);t.cache.typedefIncludesDictionary.set(r,void 0);const s=N(r.idlType,t);if(t.cache.typedefIncludesDictionary.set(r,s),s)return{reference:e,dictionary:s.dictionary}}if("dictionary"===r.type&&(n||!e.nullable))return{reference:e,dictionary:r}}for(const n of e.subtype){const e=N(n,t);if(e)return n.union?e:{reference:n,dictionary:e.dictionary}}}function I(e,t){if(t.cache.dictionaryIncludesRequiredField.has(e))return t.cache.dictionaryIncludesRequiredField.get(e);t.cache.dictionaryIncludesRequiredField.set(e,void 0);let n=e.members.some((e=>e.required));if(!n&&e.inheritance){const r=t.unique.get(e.inheritance);r?I(r,t)&&(n=!0):n=!0}return t.cache.dictionaryIncludesRequiredField.set(e,n),n}class D extends Array{constructor({source:e,tokens:t}){super(),Object.defineProperties(this,{source:{value:e},tokens:{value:t},parent:{value:null,writable:!0}})}}class O extends P{static parser(e,t){return()=>{const n=e.consumeKind(t);if(n)return new O({source:e.source,tokens:{value:n}})}}get value(){return ee(this.tokens.value.value)}write(e){return e.ts.wrap([e.token(this.tokens.value),e.token(this.tokens.separator)])}}class j extends O{static parse(e){const t=e.consumeKind("eof");if(t)return new j({source:e.source,tokens:{value:t}})}get type(){return"eof"}}function z(e,t){return te(e,{parser:O.parser(e,t),listName:t+" list"})}const M=["identifier","decimal","integer","string"],U=new Map([...["NoInterfaceObject","LenientSetter","LenientThis","TreatNonObjectAsNull","Unforgeable"].map((e=>[e,`Legacy${e}`])),["NamedConstructor","LegacyFactoryFunction"],["OverrideBuiltins","LegacyOverrideBuiltIns"],["TreatNullAs","LegacyNullToEmptyString"]]);function q(e){for(const t of M){const n=z(e,t);if(n.length)return n}e.error("Expected identifiers, strings, decimals, or integers but none found")}class W extends P{static parse(e){const t={assign:e.consume("=")},n=pe(new W({source:e.source,tokens:t}));if(n.list=[],t.assign){if(t.asterisk=e.consume("*"),t.asterisk)return n.this;t.secondaryName=e.consumeKind(...M)}return t.open=e.consume("("),t.open?(n.list=n.rhsIsList?q(e):ie(e),t.close=e.consume(")")||e.error("Unexpected token in extended attribute argument list")):t.assign&&!t.secondaryName&&e.error("No right hand side to extended attribute assignment"),n.this}get rhsIsList(){return this.tokens.assign&&!this.tokens.asterisk&&!this.tokens.secondaryName}get rhsType(){return this.rhsIsList?this.list[0].tokens.value.type+"-list":this.tokens.asterisk?"*":this.tokens.secondaryName?this.tokens.secondaryName.type:null}write(e){const{rhsType:t}=this;return e.ts.wrap([e.token(this.tokens.assign),e.token(this.tokens.asterisk),e.reference_token(this.tokens.secondaryName,this.parent),e.token(this.tokens.open),...this.list.map((n=>"identifier-list"===t?e.identifier(n,this.parent):n.write(e))),e.token(this.tokens.close)])}}class F extends P{static parse(e){const t=e.consumeKind("identifier");if(t)return new F({source:e.source,tokens:{name:t},params:W.parse(e)})}constructor({source:e,tokens:t,params:n}){super({source:e,tokens:t}),n.parent=this,Object.defineProperty(this,"params",{value:n})}get type(){return"extended-attribute"}get name(){return this.tokens.name.value}get rhs(){const{rhsType:e,tokens:t,list:n}=this.params;if(!e)return null;return{type:e,value:this.params.rhsIsList?n:this.params.tokens.secondaryName?ee(t.secondaryName.value):null}}get arguments(){const{rhsIsList:e,list:t}=this.params;return!t||e?[]:t}*validate(e){const{name:t}=this;if("LegacyNoInterfaceObject"===t){const e="`[LegacyNoInterfaceObject]` extended attribute is an undesirable feature that may be removed from Web IDL in the future. Refer to the [relevant upstream PR](https://github.com/whatwg/webidl/pull/609) for more information.";yield A(this.tokens.name,this,"no-nointerfaceobject",e,{level:"warning"})}else if(U.has(t)){const e=`\`[${t}]\` extended attribute is a legacy feature that is now renamed to \`[${U.get(t)}]\`. Refer to the [relevant upstream PR](https://github.com/whatwg/webidl/pull/870) for more information.`;yield A(this.tokens.name,this,"renamed-legacy",e,{level:"warning",autofix:(n=this,()=>{const{name:e}=n;n.tokens.name.value=U.get(e),"TreatNullAs"===e&&(n.params.tokens={})})})}var n;for(const t of this.arguments)yield*t.validate(e)}write(e){return e.ts.wrap([e.ts.trivia(this.tokens.name.trivia),e.ts.extendedAttribute(e.ts.wrap([e.ts.extendedAttributeReference(this.name),this.params.write(e)])),e.token(this.tokens.separator)])}}class B extends D{static parse(e){const t={};t.open=e.consume("[");const n=new B({source:e.source,tokens:t});return t.open?(n.push(...te(e,{parser:F.parse,listName:"extended attribute"})),t.close=e.consume("]")||e.error("Expected a closing token for the extended attribute list"),n.length||(e.unconsume(t.close.index),e.error("An extended attribute list must not be empty")),e.probe("[")&&e.error("Illegal double extended attribute lists, consider merging them"),n):n}*validate(e){for(const t of this)yield*t.validate(e)}write(e){return this.length?e.ts.wrap([e.token(this.tokens.open),...this.map((t=>t.write(e))),e.token(this.tokens.close)]):""}}function H(e,t){const n=e.consume("?");n&&(t.tokens.nullable=n),e.probe("?")&&e.error("Can't nullable more than once")}function G(e,t){let n=function(e,t){const n=e.consume("FrozenArray","ObservableArray","Promise","async_sequence","sequence","record");if(!n)return;const r=pe(new V({source:e.source,tokens:{base:n}}));switch(r.tokens.open=e.consume("<")||e.error(`No opening bracket after ${n.value}`),n.value){case"Promise":{e.probe("[")&&e.error("Promise type cannot have extended attribute");const n=ae(e,t)||e.error("Missing Promise subtype");r.subtype.push(n);break}case"async_sequence":case"sequence":case"FrozenArray":case"ObservableArray":{const s=oe(e,t)||e.error(`Missing ${n.value} subtype`);r.subtype.push(s);break}case"record":{e.probe("[")&&e.error("Record key cannot have extended attribute");const n=e.consume(...me)||e.error(`Record key must be one of: ${me.join(", ")}`),s=new V({source:e.source,tokens:{base:n}});s.tokens.separator=e.consume(",")||e.error("Missing comma after record key type"),s.type=t;const i=oe(e,t)||e.error("Error parsing generic type record");r.subtype.push(s,i);break}}return r.idlType||e.error(`Error parsing generic type ${n.value}`),r.tokens.close=e.consume(">")||e.error(`Missing closing bracket after ${n.value}`),r.this}(e,t)||se(e);if(!n){const t=e.consumeKind("identifier")||e.consume(...me,...fe);if(!t)return;n=new V({source:e.source,tokens:{base:t}}),e.probe("<")&&e.error(`Unsupported generic type ${t.value}`)}return"Promise"===n.generic&&e.probe("?")&&e.error("Promise type cannot be nullable"),n.type=t||null,H(e,n),n.nullable&&"any"===n.idlType&&e.error("Type `any` cannot be made nullable"),n}let V=class extends P{static parse(e,t){return G(e,t)||function(e,t){const n={};if(n.open=e.consume("("),!n.open)return;const r=pe(new V({source:e.source,tokens:n}));for(r.type=t||null;;){const n=oe(e,t)||e.error("No type after open parenthesis or 'or' in union type");"any"===n.idlType&&e.error("Type `any` cannot be included in a union type"),"Promise"===n.generic&&e.error("Type `Promise` cannot be included in a union type"),r.subtype.push(n);const s=e.consume("or");if(!s)break;n.tokens.separator=s}return r.idlType.length<2&&e.error("At least two types are expected in a union type but found less"),n.close=e.consume(")")||e.error("Unterminated union type"),H(e,r),r.this}(e,t)}constructor({source:e,tokens:t}){super({source:e,tokens:t}),Object.defineProperty(this,"subtype",{value:[],writable:!0}),this.extAttrs=new B({source:e,tokens:{}})}get generic(){return this.subtype.length&&this.tokens.base?this.tokens.base.value:""}get nullable(){return Boolean(this.tokens.nullable)}get union(){return Boolean(this.subtype.length)&&!this.tokens.base}get idlType(){if(this.subtype.length)return this.subtype;return ee([this.tokens.prefix,this.tokens.base,this.tokens.postfix].filter((e=>e)).map((e=>e.value)).join(" "))}*validate(e){if(yield*this.extAttrs.validate(e),"BufferSource"===this.idlType)for(const e of[this.extAttrs,this.parent?.extAttrs])for(const t of e){if("AllowShared"!==t.name)continue;const n="`[AllowShared] BufferSource` is now replaced with AllowSharedBufferSource.";yield A(this.tokens.base,this,"migrate-allowshared",n,{autofix:J(this,t,e)})}if("void"===this.idlType){const e="`void` is now replaced by `undefined`. Refer to the [relevant GitHub issue](https://github.com/whatwg/webidl/issues/60) for more information.";yield A(this.tokens.base,this,"replace-void",e,{autofix:(t=this,()=>{t.tokens.base.value="undefined"})})}var t;const n=!this.union&&e.unique.get(this.idlType),r=this.union?this:n&&"typedef"===n.type?n.idlType:void 0;if(r&&this.nullable){const{reference:t}=N(r,e)||{};if(t){const e=(this.union?t:this).tokens.base,n="Nullable union cannot include a dictionary type.";yield A(e,this,"no-nullable-union-dict",n)}}else for(const t of this.subtype)yield*t.validate(e)}write(e){return e.ts.wrap([this.extAttrs.write(e),(()=>{if(this.union||this.generic)return e.ts.wrap([e.token(this.tokens.base,e.ts.generic),e.token(this.tokens.open),...this.subtype.map((t=>t.write(e))),e.token(this.tokens.close)]);const t=this.tokens.prefix||this.tokens.base,n=this.tokens.prefix?[this.tokens.prefix.value,e.ts.trivia(this.tokens.base.trivia)]:[],r=e.reference(e.ts.wrap([...n,this.tokens.base.value,e.token(this.tokens.postfix)]),{unescaped:this.idlType,context:this});return e.ts.wrap([e.ts.trivia(t.trivia),r])})(),e.token(this.tokens.nullable),e.token(this.tokens.separator)])}};function J(e,t,n){return()=>{const r=n.indexOf(t);n.splice(r,1),!n.length&&e.tokens.base.trivia.match(/^\s$/)&&(e.tokens.base.trivia=""),e.tokens.base.value="AllowSharedBufferSource"}}class K extends P{static parse(e){const t=e.consume("=");if(!t)return null;const n=ne(e)||e.consumeKind("string")||e.consume("null","[","{")||e.error("No value for default"),r=[n];if("["===n.value){const t=e.consume("]")||e.error("Default sequence value must be empty");r.push(t)}else if("{"===n.value){const t=e.consume("}")||e.error("Default dictionary value must be empty");r.push(t)}return new K({source:e.source,tokens:{assign:t},expression:r})}constructor({source:e,tokens:t,expression:n}){super({source:e,tokens:t}),n.parent=this,Object.defineProperty(this,"expression",{value:n})}get type(){return re(this.expression[0]).type}get value(){return re(this.expression[0]).value}get negative(){return re(this.expression[0]).negative}write(e){return e.ts.wrap([e.token(this.tokens.assign),...this.expression.map((t=>e.token(t)))])}}class Z extends P{static parse(e){const t=e.position,n={},r=pe(new Z({source:e.source,tokens:n}));return r.extAttrs=B.parse(e),n.optional=e.consume("optional"),r.idlType=oe(e,"argument-type"),r.idlType?(n.optional||(n.variadic=e.consume("...")),n.name=e.consumeKind("identifier")||e.consume(...ge),n.name?(r.default=n.optional?K.parse(e):null,r.this):e.unconsume(t)):e.unconsume(t)}get type(){return"argument"}get optional(){return!!this.tokens.optional}get variadic(){return!!this.tokens.variadic}get name(){return ee(this.tokens.name.value)}*validate(e){yield*this.extAttrs.validate(e),yield*this.idlType.validate(e);const t=N(this.idlType,e,{useNullableInner:!0});if(t)if(this.idlType.nullable){const e="Dictionary arguments cannot be nullable.";yield A(this.tokens.name,this,"no-nullable-dict-arg",e)}else if(this.optional){if(!this.default){const e="Optional dictionary arguments must have a default value of `{}`.";yield A(this.tokens.name,this,"dict-arg-default",e,{autofix:Y(this)})}}else if(this.parent&&!I(t.dictionary,e)&&function(e){const t=e.parent.arguments||e.parent.list,n=t.indexOf(e),r=t.slice(n+1).some((e=>!e.optional));return!r}(this)){const e="Dictionary argument must be optional if it has no required fields";yield A(this.tokens.name,this,"dict-arg-optional",e,{autofix:(n=this,()=>{const e=de(n.idlType);n.tokens.optional={...e,type:"optional",value:"optional"},e.trivia=" ",Y(n)()})})}var n}write(e){return e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.optional),e.ts.type(this.idlType.write(e)),e.token(this.tokens.variadic),e.name_token(this.tokens.name,{data:this}),this.default?this.default.write(e):"",e.token(this.tokens.separator)])}}function Y(e){return()=>{e.default=K.parse(new ve(" = {}"))}}class X extends P{static parse(e,{special:t,regular:n}={}){const r={special:t},s=pe(new X({source:e.source,tokens:r}));return t&&"stringifier"===t.value&&(r.termination=e.consume(";"),r.termination)?(s.arguments=[],s):(t||n||(r.special=e.consume("getter","setter","deleter")),s.idlType=ae(e)||e.error("Missing return type"),r.name=e.consumeKind("identifier")||e.consume("includes"),r.open=e.consume("(")||e.error("Invalid operation"),s.arguments=ie(e),r.close=e.consume(")")||e.error("Unterminated operation"),r.termination=e.consume(";")||e.error("Unterminated operation, expected `;`"),s.this)}get type(){return"operation"}get name(){const{name:e}=this.tokens;return e?ee(e.value):""}get special(){return this.tokens.special?this.tokens.special.value:""}*validate(e){if(yield*this.extAttrs.validate(e),!this.name&&["","static"].includes(this.special)){const e="Regular or static operations must have both a return type and an identifier.";yield A(this.tokens.open,this,"incomplete-op",e)}if(this.idlType){if("async_sequence"===this.idlType.generic){const e="async_sequence types cannot be returned by an operation.";yield A(this.idlType.tokens.base,this,"async-sequence-idl-to-js",e)}yield*this.idlType.validate(e)}for(const t of this.arguments)yield*t.validate(e)}write(e){const{parent:t}=this,n=this.idlType?[e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this,parent:t}),e.token(this.tokens.open),e.ts.wrap(this.arguments.map((t=>t.write(e)))),e.token(this.tokens.close)]:[];return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),this.tokens.name?e.token(this.tokens.special):e.token(this.tokens.special,e.ts.nameless,{data:this,parent:t}),...n,e.token(this.tokens.termination)]),{data:this,parent:t})}}class Q extends P{static parse(e,{special:t,noInherit:n=!1,readonly:r=!1}={}){const s=e.position,i={special:t},o=pe(new Q({source:e.source,tokens:i}));if(t||n||(i.special=e.consume("inherit")),"inherit"===o.special&&e.probe("readonly")&&e.error("Inherited attributes cannot be read-only"),i.readonly=e.consume("readonly"),r&&!i.readonly&&e.probe("attribute")&&e.error("Attributes must be readonly in this context"),i.base=e.consume("attribute"),i.base)return o.idlType=oe(e,"attribute-type")||e.error("Attribute lacks a type"),i.name=e.consumeKind("identifier")||e.consume("async","required")||e.error("Attribute lacks a name"),i.termination=e.consume(";")||e.error("Unterminated attribute, expected `;`"),o.this;e.unconsume(s)}get type(){return"attribute"}get special(){return this.tokens.special?this.tokens.special.value:""}get readonly(){return!!this.tokens.readonly}get name(){return ee(this.tokens.name.value)}*validate(e){if(yield*this.extAttrs.validate(e),yield*this.idlType.validate(e),["async_sequence","sequence","record"].includes(this.idlType.generic)){const e=`Attributes cannot accept ${this.idlType.generic} types.`;yield A(this.tokens.name,this,"attr-invalid-type",e)}{const{reference:t}=N(this.idlType,e)||{};if(t){const e=(this.idlType.union?t:this.idlType).tokens.base,n="Attributes cannot accept dictionary types.";yield A(e,this,"attr-invalid-type",n)}}if(this.readonly&&function(e,t){if(e.union)return!1;if(e.extAttrs.some((e=>"EnforceRange"===e.name)))return!0;const n=t.unique.get(e.idlType);return"typedef"===n?.type&&n.idlType.extAttrs.some((e=>"EnforceRange"===e.name))}(this.idlType,e)){const e=this.idlType.tokens.base,t="Readonly attributes cannot accept [EnforceRange] extended attribute.";yield A(e,this,"attr-invalid-type",t)}}write(e){const{parent:t}=this;return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.special),e.token(this.tokens.readonly),e.token(this.tokens.base),e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this,parent:t}),e.token(this.tokens.termination)]),{data:this,parent:t})}}function ee(e){return e.startsWith("_")?e.slice(1):e}function te(e,{parser:t,allowDangler:n,listName:r="list"}){const s=t(e);if(!s)return[];s.tokens.separator=e.consume(",");const i=[s];for(;s.tokens.separator;){const s=t(e);if(!s){n||e.error(`Trailing comma in ${r}`);break}if(s.tokens.separator=e.consume(","),i.push(s),!s.tokens.separator)break}return i}function ne(e){return e.consumeKind("decimal","integer")||e.consume("true","false","Infinity","-Infinity","NaN")}function re({type:e,value:t}){switch(e){case"decimal":case"integer":return{type:"number",value:t};case"string":return{type:"string",value:t.slice(1,-1)}}switch(t){case"true":case"false":return{type:"boolean",value:"true"===t};case"Infinity":case"-Infinity":return{type:"Infinity",negative:t.startsWith("-")};case"[":return{type:"sequence",value:[]};case"{":return{type:"dictionary"};default:return{type:t}}}function se(e){const{source:t}=e,n=function(){const n=e.consume("unsigned"),r=e.consume("short","long");if(r){const s=e.consume("long");return new V({source:t,tokens:{prefix:n,base:r,postfix:s}})}n&&e.error("Failed to parse integer type")}()||function(){const n=e.consume("unrestricted"),r=e.consume("float","double");if(r)return new V({source:t,tokens:{prefix:n,base:r}});n&&e.error("Failed to parse float type")}();if(n)return n;const r=e.consume("bigint","boolean","byte","octet","undefined");return r?new V({source:t,tokens:{base:r}}):void 0}function ie(e){return te(e,{parser:Z.parse,listName:"arguments list"})}function oe(e,t){const n=B.parse(e),r=V.parse(e,t);return r&&(pe(r).extAttrs=n),r}function ae(e,t){const n=V.parse(e,t||"return-type");if(n)return n;const r=e.consume("void");if(r){const t=new V({source:e.source,tokens:{base:r}});return t.type="return-type",t}}function ce(e){const t=e.consume("stringifier");if(!t)return;return Q.parse(e,{special:t})||X.parse(e,{special:t})||e.error("Unterminated stringifier")}function le(e){const t=e.split("\n");if(t.length){const e=t[t.length-1].match(/^\s+/);if(e)return e[0]}return""}function ue(e){return()=>{if(e.extAttrs.length){const t=new ve("Exposed=Window,"),n=F.parse(t);n.tokens.separator=t.consume(",");const r=e.extAttrs[0];/^\s/.test(r.tokens.name.trivia)||(r.tokens.name.trivia=` ${r.tokens.name.trivia}`),e.extAttrs.unshift(n)}else{pe(e).extAttrs=B.parse(new ve("[Exposed=Window]"));const t=e.tokens.base.trivia;e.extAttrs.tokens.open.trivia=t,e.tokens.base.trivia=`\n${le(t)}`}}}function de(e){if(e.extAttrs.length)return e.extAttrs.tokens.open;if("operation"===e.type&&!e.special)return de(e.idlType);const t=Object.values(e.tokens).sort(((e,t)=>e.index-t.index));return t[0]}function pe(e,t){if(t||(t=e),!e)return e;return new Proxy(e,{get(e,t){const n=e[t];return Array.isArray(n)&&"source"!==t?pe(n,e):n},set(e,n,r){if(e[n]=r,!r)return!0;if(Array.isArray(r))for(const e of r)void 0!==e.parent&&(e.parent=t);else void 0!==r.parent&&(r.parent=t);return!0}})}const he={decimal:/-?(?=[0-9]*\.|[0-9]+[eE])(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][-+]?[0-9]+)?|[0-9]+[Ee][-+]?[0-9]+)/y,integer:/-?(0([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*)/y,identifier:/[_-]?[A-Za-z][0-9A-Z_a-z-]*/y,string:/"[^"]*"/y,whitespace:/[\t\n\r ]+/y,comment:/\/\/.*|\/\*[\s\S]*?\*\//y,other:/[^\t\n\r 0-9A-Za-z]/y},fe=["ArrayBuffer","SharedArrayBuffer","DataView","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray","BigInt64Array","BigUint64Array","Float16Array","Float32Array","Float64Array","any","object","symbol"],me=["ByteString","DOMString","USVString"],ge=["async","attribute","callback","const","constructor","deleter","dictionary","enum","getter","includes","inherit","interface","iterable","maplike","namespace","partial","required","setlike","setter","static","stringifier","typedef","unrestricted"],be=["-Infinity","FrozenArray","Infinity","NaN","ObservableArray","Promise","async_iterable","async_sequence","bigint","boolean","byte","double","false","float","long","mixin","null","octet","optional","or","readonly","record","sequence","short","true","undefined","unsigned","void"].concat(ge,me,fe),ye=["(",")",",","...",":",";","<","=",">","?","*","[","]","{","}"],we=["_constructor","toString","_toString"];class ve{constructor(e){this.source=function(e){const t=[];let n=0,r="",s=1,i=0;for(;n<e.length;){const a=e.charAt(n);let c=-1;if(/[\t\n\r ]/.test(a)?c=o("whitespace",{noFlushTrivia:!0}):"/"===a&&(c=o("comment",{noFlushTrivia:!0})),-1!==c){const e=t.pop().value;s+=(e.match(/\n/g)||[]).length,r+=e,i-=1}else if(/[-0-9.A-Z_a-z]/.test(a)){if(c=o("decimal"),-1===c&&(c=o("integer")),-1===c){c=o("identifier");const e=t.length-1,n=t[e];if(-1!==c){if(we.includes(n.value)){const r=`${ee(n.value)} is a reserved identifier and must not be used.`;throw new ke(L(t,e,null,r))}be.includes(n.value)&&(n.type="inline")}}}else'"'===a&&(c=o("string"));for(const o of ye)if(e.startsWith(o,n)){t.push({type:"inline",value:o,trivia:r,line:s,index:i}),r="",n+=o.length,c=n;break}if(-1===c&&(c=o("other")),-1===c)throw new Error("Token stream not progressing");n=c,i+=1}return t.push({type:"eof",value:"",trivia:r,line:s,index:i}),t;function o(o,{noFlushTrivia:a}={}){const c=he[o];c.lastIndex=n;const l=c.exec(e);return l?(t.push({type:o,value:l[0],trivia:r,line:s,index:i}),a||(r=""),c.lastIndex):-1}}(e),this.position=0}error(e){throw new ke(L(this.source,this.position,this.current,e))}probeKind(e){return this.source.length>this.position&&this.source[this.position].type===e}probe(e){return this.probeKind("inline")&&this.source[this.position].value===e}consumeKind(...e){for(const t of e){if(!this.probeKind(t))continue;const e=this.source[this.position];return this.position++,e}}consume(...e){if(!this.probeKind("inline"))return;const t=this.source[this.position];for(const n of e)if(t.value===n)return this.position++,t}consumeIdentifier(e){if(this.probeKind("identifier")&&this.source[this.position].value===e)return this.consumeKind("identifier")}unconsume(e){this.position=e}}class ke extends Error{constructor({message:e,bareMessage:t,context:n,line:r,sourceName:s,input:i,tokens:o}){super(e),this.name="WebIDLParseError",this.bareMessage=t,this.context=n,this.line=r,this.sourceName=s,this.input=i,this.tokens=o}}class $e extends O{static parse(e){const t=e.consumeKind("string");if(t)return new $e({source:e.source,tokens:{value:t}})}get type(){return"enum-value"}get value(){return super.value.slice(1,-1)}write(e){const{parent:t}=this;return e.ts.wrap([e.ts.trivia(this.tokens.value.trivia),e.ts.definition(e.ts.wrap(['"',e.ts.name(this.value,{data:this,parent:t}),'"']),{data:this,parent:t}),e.token(this.tokens.separator)])}}class xe extends P{static parse(e){const t={};if(t.base=e.consume("enum"),!t.base)return;t.name=e.consumeKind("identifier")||e.error("No name for enum");const n=pe(new xe({source:e.source,tokens:t}));return e.current=n.this,t.open=e.consume("{")||e.error("Bodyless enum"),n.values=te(e,{parser:$e.parse,allowDangler:!0,listName:"enumeration"}),e.probeKind("string")&&e.error("No comma between enum values"),t.close=e.consume("}")||e.error("Unexpected value in enum"),n.values.length||e.error("No value in enum"),t.termination=e.consume(";")||e.error("No semicolon after enum"),n.this}get type(){return"enum"}get name(){return ee(this.tokens.name.value)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base),e.name_token(this.tokens.name,{data:this}),e.token(this.tokens.open),e.ts.wrap(this.values.map((t=>t.write(e)))),e.token(this.tokens.close),e.token(this.tokens.termination)]),{data:this})}}class Ce extends P{static parse(e){const t=e.consumeKind("identifier");if(!t)return;const n={target:t};if(n.includes=e.consume("includes"),n.includes)return n.mixin=e.consumeKind("identifier")||e.error("Incomplete includes statement"),n.termination=e.consume(";")||e.error("No terminating ; for includes statement"),new Ce({source:e.source,tokens:n});e.unconsume(t.index)}get type(){return"includes"}get target(){return ee(this.tokens.target.value)}get includes(){return ee(this.tokens.mixin.value)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.reference_token(this.tokens.target,this),e.token(this.tokens.includes),e.reference_token(this.tokens.mixin,this),e.token(this.tokens.termination)]),{data:this})}}class Se extends P{static parse(e){const t={},n=pe(new Se({source:e.source,tokens:t}));if(t.base=e.consume("typedef"),t.base)return n.idlType=oe(e,"typedef-type")||e.error("Typedef lacks a type"),t.name=e.consumeKind("identifier")||e.error("Typedef lacks a name"),e.current=n.this,t.termination=e.consume(";")||e.error("Unterminated typedef, expected `;`"),n.this}get type(){return"typedef"}get name(){return ee(this.tokens.name.value)}*validate(e){yield*this.idlType.validate(e)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base),e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this}),e.token(this.tokens.termination)]),{data:this})}}class _e extends P{static parse(e,t){const n={base:t},r=pe(new _e({source:e.source,tokens:n}));return n.name=e.consumeKind("identifier")||e.error("Callback lacks a name"),e.current=r.this,n.assign=e.consume("=")||e.error("Callback lacks an assignment"),r.idlType=ae(e)||e.error("Callback lacks a return type"),n.open=e.consume("(")||e.error("Callback lacks parentheses for arguments"),r.arguments=ie(e),n.close=e.consume(")")||e.error("Unterminated callback"),n.termination=e.consume(";")||e.error("Unterminated callback, expected `;`"),r.this}get type(){return"callback"}get name(){return ee(this.tokens.name.value)}*validate(e){yield*this.extAttrs.validate(e);for(const t of this.arguments)if(yield*t.validate(e),"async_sequence"===t.idlType.generic){const e="async_sequence types cannot be returned as a callback argument.";yield A(t.tokens.name,t,"async-sequence-idl-to-js",e)}yield*this.idlType.validate(e)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base),e.name_token(this.tokens.name,{data:this}),e.token(this.tokens.assign),e.ts.type(this.idlType.write(e)),e.token(this.tokens.open),...this.arguments.map((t=>t.write(e))),e.token(this.tokens.close),e.token(this.tokens.termination)]),{data:this})}}class Te extends P{static parse(e,t,{inheritable:n,allowedMembers:r}){const{tokens:s,type:i}=t;for(s.name=e.consumeKind("identifier")||e.error(`Missing name in ${i}`),e.current=t,t=pe(t),n&&Object.assign(s,function(e){const t=e.consume(":");return t?{colon:t,inheritance:e.consumeKind("identifier")||e.error("Inheritance lacks a type")}:{}}(e)),s.open=e.consume("{")||e.error(`Bodyless ${i}`),t.members=[];;){if(s.close=e.consume("}"),s.close)return s.termination=e.consume(";")||e.error(`Missing semicolon after ${i}`),t.this;const n=B.parse(e);let o;for(const[t,...n]of r)if(o=pe(t(e,...n)),o)break;o||e.error("Unknown member"),o.extAttrs=n,t.members.push(o.this)}}get partial(){return!!this.tokens.partial}get name(){return ee(this.tokens.name.value)}get inheritance(){return this.tokens.inheritance?ee(this.tokens.inheritance.value):null}*validate(e){for(const t of this.members)t.validate&&(yield*t.validate(e))}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.callback),e.token(this.tokens.partial),e.token(this.tokens.base),e.token(this.tokens.mixin),e.name_token(this.tokens.name,{data:this}),(()=>this.tokens.inheritance?e.ts.wrap([e.token(this.tokens.colon),e.ts.trivia(this.tokens.inheritance.trivia),e.ts.inheritance(e.reference(this.tokens.inheritance.value,{context:this}))]):"")(),e.token(this.tokens.open),e.ts.wrap(this.members.map((t=>t.write(e)))),e.token(this.tokens.close),e.token(this.tokens.termination)]),{data:this})}}class Re extends P{static parse(e){const t={};if(t.base=e.consume("const"),!t.base)return;let n=se(e);if(!n){const t=e.consumeKind("identifier")||e.error("Const lacks a type");n=new V({source:e.source,tokens:{base:t}})}e.probe("?")&&e.error("Unexpected nullable constant type"),n.type="const-type",t.name=e.consumeKind("identifier")||e.error("Const lacks a name"),t.assign=e.consume("=")||e.error("Const lacks value assignment"),t.value=ne(e)||e.error("Const lacks a value"),t.termination=e.consume(";")||e.error("Unterminated const, expected `;`");const r=new Re({source:e.source,tokens:t});return pe(r).idlType=n,r}get type(){return"const"}get name(){return ee(this.tokens.name.value)}get value(){return re(this.tokens.value)}write(e){const{parent:t}=this;return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base),e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this,parent:t}),e.token(this.tokens.assign),e.token(this.tokens.value),e.token(this.tokens.termination)]),{data:this,parent:t})}}class Ee extends P{static parse(e){const t=e.position,n=pe(new Ee({source:e.source,tokens:{}})),{tokens:r}=n;if(r.readonly=e.consume("readonly"),r.readonly||(r.async=e.consume("async")),r.base=r.readonly?e.consume("maplike","setlike"):r.async?e.consume("iterable"):e.consume("iterable","async_iterable","maplike","setlike"),!r.base)return void e.unconsume(t);const{type:s}=n,i="maplike"===s,o=i||"iterable"===s||"async_iterable"===s,a="async_iterable"===s||n.async&&"iterable"===s;r.open=e.consume("<")||e.error(`Missing less-than sign \`<\` in ${s} declaration`);const c=oe(e)||e.error(`Missing a type argument in ${s} declaration`);return n.idlType=[c],n.arguments=[],o&&(c.tokens.separator=e.consume(","),c.tokens.separator?n.idlType.push(oe(e)):i&&e.error(`Missing second type argument in ${s} declaration`)),r.close=e.consume(">")||e.error(`Missing greater-than sign \`>\` in ${s} declaration`),e.probe("(")&&(a?(r.argsOpen=e.consume("("),n.arguments.push(...ie(e)),r.argsClose=e.consume(")")||e.error("Unterminated async iterable argument list")):e.error("Arguments are only allowed for `async iterable`")),r.termination=e.consume(";")||e.error(`Missing semicolon after ${s} declaration`),n.this}get type(){return this.tokens.base.value}get readonly(){return!!this.tokens.readonly}get async(){return!!this.tokens.async}*validate(e){if(this.async&&"iterable"===this.type){const e="`async iterable` is now changed to `async_iterable`.";yield A(this.tokens.async,this,"obsolete-async-iterable-syntax",e,{autofix:(t=this,()=>{const e=t.tokens.async;t.tokens.base={...e,type:"async_iterable",value:"async_iterable"},delete t.tokens.async})})}var t;for(const t of this.idlType)yield*t.validate(e);for(const t of this.arguments)yield*t.validate(e)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.readonly),e.token(this.tokens.async),e.token(this.tokens.base,e.ts.generic),e.token(this.tokens.open),e.ts.wrap(this.idlType.map((t=>t.write(e)))),e.token(this.tokens.close),e.token(this.tokens.argsOpen),e.ts.wrap(this.arguments.map((t=>t.write(e)))),e.token(this.tokens.argsClose),e.token(this.tokens.termination)]),{data:this,parent:this.parent})}}class Le extends P{static parse(e){const t=e.consume("constructor");if(!t)return;const n={base:t};n.open=e.consume("(")||e.error("No argument list in constructor");const r=ie(e);n.close=e.consume(")")||e.error("Unterminated constructor"),n.termination=e.consume(";")||e.error("No semicolon after constructor");const s=new Le({source:e.source,tokens:n});return pe(s).arguments=r,s}get type(){return"constructor"}*validate(e){for(const t of this.arguments)yield*t.validate(e)}write(e){const{parent:t}=this;return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base,e.ts.nameless,{data:this,parent:t}),e.token(this.tokens.open),e.ts.wrap(this.arguments.map((t=>t.write(e)))),e.token(this.tokens.close),e.token(this.tokens.termination)]),{data:this,parent:t})}}function Ae(e){const t=e.consume("static");if(!t)return;return Q.parse(e,{special:t})||X.parse(e,{special:t})||e.error("No body in static member")}class Pe extends Te{static parse(e,t,{extMembers:n=[],partial:r=null}={}){const s={partial:r,base:t};return Te.parse(e,new Pe({source:e.source,tokens:s}),{inheritable:!r,allowedMembers:[...n,[Re.parse],[Le.parse],[Ae],[ce],[Ee.parse],[Q.parse],[X.parse]]})}get type(){return"interface"}*validate(e){if(yield*this.extAttrs.validate(e),!this.partial&&this.extAttrs.every((e=>"Exposed"!==e.name))){const e="Interfaces must have `[Exposed]` extended attribute. To fix, add, for example, `[Exposed=Window]`. Please also consider carefully if your interface should also be exposed in a Worker scope. Refer to the [WebIDL spec section on Exposed](https://heycam.github.io/webidl/#Exposed) for more information.";yield A(this.tokens.name,this,"require-exposed",e,{autofix:ue(this)})}const t=this.extAttrs.filter((e=>"Constructor"===e.name));for(const e of t){const t="Constructors should now be represented as a `constructor()` operation on the interface instead of `[Constructor]` extended attribute. Refer to the [WebIDL spec section on constructor operations](https://heycam.github.io/webidl/#idl-constructors) for more information.";yield A(e.tokens.name,this,"constructor-member",t,{autofix:Ne(this,e)})}if(this.extAttrs.some((e=>"Global"===e.name))){const e=this.extAttrs.filter((e=>"LegacyFactoryFunction"===e.name));for(const t of e){const e="Interfaces marked as `[Global]` cannot have factory functions.";yield A(t.tokens.name,this,"no-constructible-global",e)}const t=this.members.filter((e=>"constructor"===e.type));for(const e of t){const t="Interfaces marked as `[Global]` cannot have constructors.";yield A(e.tokens.base,this,"no-constructible-global",t)}}yield*super.validate(e),this.partial||(yield*function*(e,t){const n=function(e){const t=o(e);return{statics:new Set(t.filter((e=>"static"===e.special)).map((e=>e.name))),nonstatics:new Set(t.filter((e=>"static"!==e.special)).map((e=>e.name)))}}(t),r=e.partials.get(t.name)||[],s=e.mixinMap.get(t.name)||[];for(const e of[...r,...s]){const r=o(e),s=r.filter((e=>"static"===e.special)),a=r.filter((e=>"static"!==e.special));yield*i(s,n.statics,e,t),yield*i(a,n.nonstatics,e,t),s.forEach((e=>n.statics.add(e.name))),a.forEach((e=>n.nonstatics.add(e.name)))}function*i(e,t,n,r){for(const s of e){const{name:e}=s;if(e&&t.has(e)){const t=`The ${"static"===s.special?"static ":""}operation "${e}" has already been defined for the base interface "${r.name}" either in itself or in a mixin`;yield A(s.tokens.name,n,"no-cross-overload",t)}}}function o(e){return e.members.filter((({type:e})=>"operation"===e))}}(e,this))}}function Ne(e,t){return e=pe(e),()=>{const n=le(e.extAttrs.tokens.open.trivia),r=e.members.length?le(de(e.members[0]).trivia):function(e){const t=le(e),n=t.includes("\t")?"\t":" ";return t+n}(n),s=Le.parse(new ve(`\n${r}constructor();`));s.extAttrs=new B({source:e.source,tokens:{}}),pe(s).arguments=t.arguments;const i=function(e,t){const n=e.slice().reverse().findIndex(t);return-1===n?n:e.length-n-1}(e.members,(e=>"constructor"===e.type));e.members.splice(i+1,0,s);const{close:o}=e.tokens;o.trivia.includes("\n")||(o.trivia+=`\n${n}`);const{extAttrs:a}=e,c=a.indexOf(t),l=a.splice(c,1);a.length?a.length===c?a[c-1].tokens.separator=void 0:a[c].tokens.name.trivia.trim()||(a[c].tokens.name.trivia=l[0].tokens.name.trivia):a.tokens.open=a.tokens.close=void 0}}class Ie extends Te{static parse(e,t,{extMembers:n=[],partial:r}={}){const s={partial:r,base:t};if(s.mixin=e.consume("mixin"),s.mixin)return Te.parse(e,new Ie({source:e.source,tokens:s}),{allowedMembers:[...n,[Re.parse],[ce],[Q.parse,{noInherit:!0}],[X.parse,{regular:!0}]]})}get type(){return"interface mixin"}}class De extends P{static parse(e){const t={},n=pe(new De({source:e.source,tokens:t}));return n.extAttrs=B.parse(e),t.required=e.consume("required"),n.idlType=oe(e,"dictionary-type")||e.error("Dictionary member lacks a type"),t.name=e.consumeKind("identifier")||e.error("Dictionary member lacks a name"),n.default=K.parse(e),t.required&&n.default&&e.error("Required member must not have a default"),t.termination=e.consume(";")||e.error("Unterminated dictionary member, expected `;`"),n.this}get type(){return"field"}get name(){return ee(this.tokens.name.value)}get required(){return!!this.tokens.required}*validate(e){yield*this.idlType.validate(e)}write(e){const{parent:t}=this;return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.required),e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this,parent:t}),this.default?this.default.write(e):"",e.token(this.tokens.termination)]),{data:this,parent:t})}}class Oe extends Te{static parse(e,{extMembers:t=[],partial:n}={}){const r={partial:n};if(r.base=e.consume("dictionary"),r.base)return Te.parse(e,new Oe({source:e.source,tokens:r}),{inheritable:!n,allowedMembers:[...t,[De.parse]]})}get type(){return"dictionary"}}class je extends Te{static parse(e,{extMembers:t=[],partial:n}={}){const r={partial:n};if(r.base=e.consume("namespace"),r.base)return Te.parse(e,new je({source:e.source,tokens:r}),{allowedMembers:[...t,[Q.parse,{noInherit:!0,readonly:!0}],[Re.parse],[X.parse,{regular:!0}]]})}get type(){return"namespace"}*validate(e){if(!this.partial&&this.extAttrs.every((e=>"Exposed"!==e.name))){const e="Namespaces must have [Exposed] extended attribute. To fix, add, for example, [Exposed=Window]. Please also consider carefully if your namespace should also be exposed in a Worker scope. Refer to the [WebIDL spec section on Exposed](https://heycam.github.io/webidl/#Exposed) for more information.";yield A(this.tokens.name,this,"require-exposed",e,{autofix:ue(this)})}yield*super.validate(e)}}class ze extends Te{static parse(e,t,{extMembers:n=[]}={}){const r={callback:t};if(r.base=e.consume("interface"),r.base)return Te.parse(e,new ze({source:e.source,tokens:r}),{allowedMembers:[...n,[Re.parse],[X.parse,{regular:!0}]]})}get type(){return"callback interface"}}function Me(e,t){const n=e.source;function r(t){e.error(t)}function s(...t){return e.consume(...t)}function i(n){const i=s("interface");if(i)return Ie.parse(e,i,{...n,...t?.extensions?.mixin})||Pe.parse(e,i,{...n,...t?.extensions?.interface})||r("Interface has no proper body")}function o(){if(t.productions)for(const n of t.productions){const t=n(e);if(t)return t}return function(){const n=s("callback");if(n)return e.probe("interface")?ze.parse(e,n,{...t?.extensions?.callbackInterface}):_e.parse(e,n)}()||i()||function(){const n=s("partial");if(n)return Oe.parse(e,{partial:n,...t?.extensions?.dictionary})||i({partial:n})||je.parse(e,{partial:n,...t?.extensions?.namespace})||r("Partial doesn't apply to anything")}()||Oe.parse(e,t?.extensions?.dictionary)||xe.parse(e)||Se.parse(e)||Ce.parse(e)||je.parse(e,t?.extensions?.namespace)}const a=function(){if(!n.length)return[];const s=[];for(;;){const t=B.parse(e),n=o();if(!n){t.length&&r("Stray extended attributes");break}pe(n).extAttrs=t,s.push(n)}const i=j.parse(e);return t.concrete&&s.push(i),s}();return e.position<n.length&&r("Unrecognised tokens"),a}function Ue(e){return e}const qe={wrap:e=>e.join(""),trivia:Ue,name:Ue,reference:Ue,type:Ue,generic:Ue,nameless:Ue,inheritance:Ue,definition:Ue,extendedAttribute:Ue,extendedAttributeReference:Ue};class We{constructor(e){this.ts=Object.assign({},qe,e)}reference(e,{unescaped:t,context:n}){return t||(t=e.startsWith("_")?e.slice(1):e),this.ts.reference(e,t,n)}token(e,t=Ue,...n){if(!e)return"";const r=t(e.value,...n);return this.ts.wrap([this.ts.trivia(e.trivia),r])}reference_token(e,t){return this.token(e,this.reference.bind(this),{context:t})}name_token(e,t){return this.token(e,this.ts.name,t)}identifier(e,t){return this.ts.wrap([this.reference_token(e.tokens.value,t),this.token(e.tokens.separator)])}}function Fe(e,t){const n=new Map,r=e.filter((e=>"includes"===e.type));for(const e of r){const r=t.get(e.includes);if(!r)continue;const s=n.get(e.target);s?s.push(r):n.set(e.target,[r])}return n}function*Be(e){const t=function(e){const t=new Map,n=new Set,r=new Map;for(const s of e)if(s.partial){const e=r.get(s.name);e?e.push(s):r.set(s.name,[s])}else s.name&&(t.has(s.name)?n.add(s):t.set(s.name,s));return{all:e,unique:t,partials:r,duplicates:n,mixinMap:Fe(e,t),cache:{typedefIncludesDictionary:new WeakMap,dictionaryIncludesRequiredField:new WeakMap}}}(e);for(const e of t.all)e.validate&&(yield*e.validate(t));yield*function*({unique:e,duplicates:t}){for(const n of t){const{name:t}=n,r=`The name "${t}" of type "${e.get(t).type}" was already seen`;yield A(n.tokens.name,n,"no-duplicate",r)}}(t)}var He,Ge=Object.freeze({__proto__:null,WebIDLParseError:ke,parse:function(e,t={}){const n=new ve(e);return void 0!==t.sourceName&&(n.source.name=t.sourceName),Me(n,t)},validate:function(e){return[...Be((t=e,t.flat?t.flat():[].concat(...t)))];var t},write:function(e,{templates:t=qe}={}){t=Object.assign({},qe,t);const n=new We(t);return t.wrap(e.map((e=>e.write(n))))}});!function(e){e.ILLEGAL="ILLEGAL",e.EOF="EOF",e.NL="\n",e.SPACE=" ",e.UNDERSCORE="_",e.DOLLAR="$",e.ATSIGN="@",e.CARET="^",e.HASH="#",e.TILDE="~",e.AMPERSAND="&",e.IDENT="IDENT",e.COMMENT="COMMENT",e.STRING="STRING",e.NUMBER="NUMBER",e.FLOAT="FLOAT",e.CTLOP="CTLOP",e.BYTES="BYTES",e.HEX="HEX",e.BASE64="BASE64",e.ASSIGN="=",e.ARROWMAP="=>",e.TCHOICE="/",e.GCHOICE="//",e.TCHOICEALT="/=",e.GCHOICEALT="//=",e.PLUS="+",e.MINUS="-",e.QUEST="?",e.ASTERISK="*",e.INCLRANGE="..",e.EXCLRANGE="...",e.COMMA=",",e.DOT=".",e.COLON=":",e.SEMICOLON=";",e.LPAREN="(",e.RPAREN=")",e.LBRACE="{",e.RBRACE="}",e.LBRACK="[",e.RBRACK="]",e.LT="<",e.GT=">",e.QUOT='"'}(He||(He={}));const Ve=Object.entries(He).reduce(((e,[t,n])=>(e[n]=t,e)),{});class Je{type;literal;comments;whitespace;constructor(e,t,n=[],r=""){this.type=e,this.literal=t,this.comments=n,this.whitespace=r}serialize(){let e="";for(const t of this.comments)e+=t.serialize();switch(e+=this.whitespace,this.type){case He.IDENT:case He.COMMENT:case He.NUMBER:case He.FLOAT:e+=this.literal;break;case He.STRING:e+='"'+this.literal+'"';break;case He.CTLOP:e+="."+this.literal;break;case He.BYTES:e+="'"+this.literal+"'";break;case He.HEX:e+="h'"+this.literal+"'";break;case He.BASE64:e+="b64'"+this.literal+"'";break;case He.EOF:break;default:e+=this.type.valueOf()}return e}startWithSpaces(){return""!==this.whitespace||this.comments.length>0}toString(e=0){const t=[`${" ".repeat(e)}${this.constructor.name}: ${Ve[this.type]} (${this.type})`];""!==this.whitespace&&t.push(" ".repeat(e+1)+`whitespaces: ${this.whitespace.length}`),""!==this.literal&&t.push(" ".repeat(e+1)+`literal: ${this.literal}`);for(const n of this.comments)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return{type:this.type,literal:this.literal,comments:this.comments?.map((e=>e.toJSON())),whitespace:this.whitespace}}}class Ke{parentNode=null;serialize(e){if(this.setChildrenParent(),e){const t=e.markupFor(this);let n=null!==t[0]?t[0]:"";return n+=this._serialize(e),n+=null!==t[1]?t[1]:"",n}return this._serialize()}setChildrenParent(){for(const e of this.getChildren())e.parentNode=this,e.setChildrenParent()}getChildren(){return[]}_serializeToken(e,t){return e?t?t.serializeToken(e,this):e.serialize():""}toString(e=0){return" ".repeat(e)+this.constructor.name}toJSON(){return{}}}class Ze extends Ke{openToken=null;closeToken=null;serialize(e){let t="";if(e){const n=e.markupFor(this);t+=null!==n[0]?n[0]:""}if(t+=this._serializeToken(this.openToken,e),t+=this._serialize(e),t+=this._serializeToken(this.closeToken,e),e){const n=e.markupFor(this);t+=null!==n[1]?n[1]:""}return t}toString(e=0){const t=[super.toString(e)];return this.openToken&&t.push(this.openToken.toString(e+1)),this.closeToken&&t.push(this.closeToken.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{openToken:this.openToken?.toJSON(),closeToken:this.closeToken?.toJSON()})}}class Ye extends Ze{comments=[];whitespace="";separator=null;_prestr(e){return""}serialize(e){let t=this._prestr(e);for(const n of this.comments)t+=this._serializeToken(n,e);return t+=this.whitespace,t+=super.serialize(e),t+=this._serializeToken(this.separator,e),t}setComments(e){this.comments=e.comments,this.whitespace=e.whitespace}toString(e=0){const t=[super.toString(e)];for(const n of this.comments)t.push(n.toString(e+1));return""!==this.whitespace&&t.push(" ".repeat(e+1)+`whitespaces: ${this.whitespace.length}`),this.separator&&t.push(this.separator.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{comments:this.comments.map((e=>e.toJSON())),whitespace:this.whitespace,separator:this.separator?.toJSON()})}}class Xe extends Ye{rules;constructor(e){super(),this.rules=e}getChildren(){return this.rules}_serialize(e){return this.rules.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.rules)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{rules:this.rules.map((e=>e.toJSON()))})}}class Qe extends Ke{name;assign;type;constructor(e,t,n){super(),this.name=e,this.assign=t,this.type=n}getChildren(){return[this.name,this.type]}_serialize(e){let t=this.name.serialize(e);return t+=this._serializeToken(this.assign,e),t+=this.type.serialize(e),t}toString(e=0){return[super.toString(e),this.name.toString(e+1),this.assign.toString(e+1),this.type.toString(e+1)].join("\n")}toJSON(){return Object.assign(super.toJSON(),{name:this.name.toJSON(),assign:this.assign.toJSON(),type:this.type.toJSON()})}}class et extends Ye{occurrence;key;type;constructor(e,t,n){super(),this.occurrence=e,this.key=t,this.type=n}getChildren(){const e=[];return this.occurrence&&e.push(this.occurrence),this.key&&e.push(this.key),e.push(this.type),e}_serialize(e){let t="";return this.occurrence&&(t+=this.occurrence.serialize(e)),this.key&&(t+=this.key.serialize(e)),t+=this.type.serialize(e),t}isConvertibleToType(){return null===this.occurrence&&null===this.key&&(!(this.type instanceof tt)||this.type instanceof rt||this.type instanceof nt)}toString(e=0){const t=[super.toString(e)];return this.occurrence&&t.push(this.occurrence.toString(e+1)),this.key&&t.push(this.key.toString(e+1)),t.push(this.type.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{occurrence:this.occurrence?.toJSON(),key:this.key?.toJSON(),type:this.type.toJSON()})}}class tt extends Ye{groupChoices;constructor(e){super(),this.groupChoices=e}getChildren(){return this.groupChoices}_serialize(e){return this.groupChoices.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.groupChoices)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{groupChoices:this.groupChoices.map((e=>e.toJSON()))})}}let nt=class extends tt{},rt=class extends tt{};class st extends Ye{groupEntries;constructor(e){super(),this.groupEntries=e}getChildren(){return this.groupEntries}_serialize(e){return this.groupEntries.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.groupEntries)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{groupEntries:this.groupEntries.map((e=>e.toJSON()))})}}class it extends Ye{numericPart;typePart;constructor(e=null,t=null){super(),this.numericPart=e,this.typePart=t}getChildren(){return this.typePart?[this.typePart]:[]}_serialize(e){let t=this._serializeToken(new Je(He.HASH,""),e);return t+=this._serializeToken(this.numericPart,e),t+=this.typePart?this.typePart.serialize(e):"",t}toString(e=0){const t=[super.toString(e)+" (#)"];return this.numericPart&&t.push(this.numericPart.toString(e+1)),this.typePart&&t.push(this.typePart.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{numericPart:this.numericPart?.toJSON(),typePart:this.typePart?.toJSON()})}}class ot extends Ye{n;m;tokens;constructor(e,t,n=[]){super(),this.n=e,this.m=t,this.tokens=n}_serialize(e){return this.tokens.map((t=>this._serializeToken(t,e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.tokens)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{n:this.n,m:this.m,tokens:this.tokens.map((e=>e.toJSON()))})}}class at extends Ye{value;type;constructor(e,t){super(),this.value=e,this.type=t}_serialize(e){let t="",n="";return"text"===this.type?(t='"',n='"'):"bytes"===this.type?(t="'",n="'"):"hex"===this.type?(t="h'",n="'"):"base64"===this.type&&(t="b64'",n="'"),e?e.serializeValue(t,this.value,n,this):t+this.value+n}toString(e=0){return" ".repeat(e)+`${this.constructor.name} (${this.type}): ${this.value}`}toJSON(){return Object.assign(super.toJSON(),{value:this.value,type:this.type})}}class ct extends Ye{name;unwrapped;parameters;constructor(e,t,n=null){super(),this.name=e,this.unwrapped=t,this.parameters=n}getChildren(){return this.parameters?[this.parameters]:[]}_prestr(e){return this._serializeToken(this.unwrapped,e)}_serialize(e){let t="";return e?t+=e.serializeName(this.name,this):t=this.name,this.parameters&&(t+=this.parameters.serialize(e)),t}toString(e=0){const t=[super.toString(e)," ".repeat(e+1)+this.name];return this.unwrapped&&t.push(this.unwrapped.toString(e+1)),this.parameters&&t.push(this.parameters.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{name:this.name,unwrapped:this.unwrapped?.toJSON(),parameters:this.parameters?.toJSON()})}}class lt extends Ye{target;constructor(e){super(),this.target=e}getChildren(){return[this.target]}_serialize(e){let t=this._serializeToken(new Je(He.AMPERSAND,""),e);return t+=this.target.serialize(e),t}toString(e=0){return[super.toString(e)+" (&)",this.target.toString(e+1)].join("\n")}toJSON(){return Object.assign(super.toJSON(),{target:this.target.toJSON()})}}class ut extends Ye{min;max;rangeop;constructor(e,t,n){super(),this.min=e,this.max=t,this.rangeop=n}getChildren(){return[this.min,this.max]}_serialize(e){let t=this.min.serialize(e);return t+=this._serializeToken(this.rangeop,e),t+=this.max.serialize(e),t}toString(e=0){return[super.toString(e),this.min.toString(e+1),this.rangeop.toString(e+1),this.max.toString(e+1)].join("\n")}toJSON(){return Object.assign(super.toJSON(),{min:this.min.toJSON(),max:this.max.toJSON(),rangeop:this.rangeop.toJSON()})}}class dt extends Ye{type;name;controller;constructor(e,t,n){super(),this.type=e,this.name=t,this.controller=n}getChildren(){return[this.type,this.controller]}_serialize(e){let t=this.type.serialize(e);return t+=this._serializeToken(this.name,e),t+=this.controller.serialize(e),t}toString(e=0){return[super.toString(e),this.type.toString(e+1),this.name.toString(e+1),this.controller.toString(e+1)].join("\n")}toJSON(){return Object.assign(super.toJSON(),{type:this.type.toJSON(),name:this.name.toJSON(),controller:this.controller.toJSON()})}}class pt extends Ke{type;hasCut;hasColon;tokens;constructor(e,t,n,r=[]){super(),this.type=e,this.hasCut=t,this.hasColon=n,this.tokens=r}getChildren(){return[this.type]}_serialize(e){let t=this.type.serialize(e);return t+=this.tokens.map((t=>this._serializeToken(t,e))).join(""),t}toString(e=0){const t=[super.toString(e),this.type.toString(e+1)];for(const n of this.tokens)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{type:this.type.toJSON(),hasCut:this.hasCut,hasColon:this.hasColon,tokens:this.tokens.map((e=>e.toJSON()))})}}class ht extends Ye{types;constructor(e){super(),this.types=e}getChildren(){return this.types}_serialize(e){return this.types.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.types)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{types:this.types.map((e=>e.toJSON()))})}}class ft extends Ze{parameters;constructor(e){super(),this.parameters=e}getChildren(){return this.parameters}_serialize(e){return this.parameters.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.parameters)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{parameters:this.parameters.map((e=>e.toJSON()))})}}class mt extends Ze{parameters;constructor(e){super(),this.parameters=e}getChildren(){return this.parameters}_serialize(e){return this.parameters.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.parameters)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{parameters:this.parameters.map((e=>e.toJSON()))})}}class gt extends Error{constructor(e="A parsing error occurred"){super(e),this.name="ParserError"}}function bt(e){return function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"}(e)||"@_$".includes(e)}function yt(e){return e.length>0&&"123456789".includes(e[0])&&[...e].every((e=>"0123456789".includes(e)))}class wt{line;position;constructor(e=-1,t=-1){this.line=e,this.position=t}}class vt{input;position=0;readPosition=0;ch=0;constructor(e){this.input=e,this.readChar()}readChar(){this.readPosition>=this.input.length?this.ch=0:this.ch=this.input.charCodeAt(this.readPosition),this.position=this.readPosition,this.readPosition+=1}_peekAtNextChar(){return this.readPosition>=this.input.length?"":this.input[this.readPosition]}getLocation(){const e=this.position-2,t=this.input.split("\n");let n=0;for(let r=0;r<t.length;r++){const s=t[r].length;if(n+=s+1,n>e){return new wt(r,e-(n-s)+1)}}return new wt(0,0)}getLine(e){return this.input.split("\n")[e]}getLocationInfo(){const e=this.getLocation();let t=(e.line>=0?this.getLine(e.line):"")+"\n";return t+=" ".repeat(e.position>=0?e.position:0)+"^\n",t+=" ".repeat(e.position>=0?e.position:0)+"|\n",t}nextToken(){const e=this._readComments();let t="";e.length>0&&""===e[e.length-1].literal&&(t=e[e.length-1].whitespace,e.pop());let n=new Je(He.ILLEGAL,"");const r=String.fromCharCode(this.ch);let s=!1;if("="===r)">"===this._peekAtNextChar()?(this.readChar(),n=new Je(He.ARROWMAP,"",e,t)):n=new Je(He.ASSIGN,"",e,t);else if("("===r)n=new Je(He.LPAREN,"",e,t);else if(")"===r)n=new Je(He.RPAREN,"",e,t);else if("{"===r)n=new Je(He.LBRACE,"",e,t);else if("}"===r)n=new Je(He.RBRACE,"",e,t);else if("["===r)n=new Je(He.LBRACK,"",e,t);else if("]"===r)n=new Je(He.RBRACK,"",e,t);else if("<"===r)n=new Je(He.LT,"",e,t);else if(">"===r)n=new Je(He.GT,"",e,t);else if("+"===r)n=new Je(He.PLUS,"",e,t);else if(","===r)n=new Je(He.COMMA,"",e,t);else if("."===r)"."===this._peekAtNextChar()?(this.readChar(),n=new Je(He.INCLRANGE,"",e,t),"."===this._peekAtNextChar()&&(this.readChar(),n=new Je(He.EXCLRANGE,"",e,t))):bt(this._peekAtNextChar())&&(this.readChar(),n=new Je(He.CTLOP,this._readIdentifier(),e,t),s=!0);else if(":"===r)n=new Je(He.COLON,"",e,t);else if("?"===r)n=new Je(He.QUEST,"",e,t);else if("/"===r)"/"===this._peekAtNextChar()?(this.readChar(),n=new Je(He.GCHOICE,"",e,t),"="===this._peekAtNextChar()&&(this.readChar(),n=new Je(He.GCHOICEALT,"",e,t))):"="===this._peekAtNextChar()?(this.readChar(),n=new Je(He.TCHOICEALT,"",e,t)):n=new Je(He.TCHOICE,"",e,t);else if("*"===r)n=new Je(He.ASTERISK,"",e,t);else if("^"===r)n=new Je(He.CARET,"",e,t);else if("#"===r)n=new Je(He.HASH,"",e,t);else if("~"===r)n=new Je(He.TILDE,"",e,t);else if('"'===r)n=new Je(He.STRING,this._readString(),e,t);else if("'"===r)n=new Je(He.BYTES,this._readBytesString(),e,t);else if(";"===r)n=new Je(He.COMMENT,this._readComment(),e,t),s=!0;else if("&"===r)n=new Je(He.AMPERSAND,"",e,t);else if(0===this.ch)n=new Je(He.EOF,"",e,t);else if(bt(r))"b"===r&&"6"===this._peekAtNextChar()?(this.readChar(),this.readChar(),"4"===String.fromCharCode(this.ch)&&"'"===this._peekAtNextChar()?(this.readChar(),n=new Je(He.BASE64,this._readBytesString(),e,t)):(n=new Je(He.IDENT,this._readIdentifier("b6"),e,t),s=!0)):"h"===r&&"'"===this._peekAtNextChar()?(this.readChar(),n=new Je(He.HEX,this._readBytesString(),e,t)):(n=new Je(He.IDENT,this._readIdentifier(),e,t),s=!0);else if(this._isDigit(r)||"-"===r){const r=this._readNumberOrFloat();n=new Je(r.includes(".")?He.FLOAT:He.NUMBER,r,e,t),s=!0}return s||this.readChar(),n}_isDigit(e){return e>="0"&&e<="9"}_readIdentifier(e=""){const t=this.position;if(""===e&&!bt(String.fromCharCode(this.ch)))throw this._tokenError("expected identifier, got nothing");for(;bt(String.fromCharCode(this.ch))||this._isDigit(String.fromCharCode(this.ch))||"-. ".includes(String.fromCharCode(this.ch));){if(" "===String.fromCharCode(this.ch))break;this.readChar()}const n=e+this.input.substring(t,this.position);if(n.endsWith("-")||n.endsWith("."))throw this._tokenError(`identifier cannot end with \`-\` or \`.\`, got \`${n}\``);return n}_readComment(){const e=this.position;for(;this.ch&&"\n"!==String.fromCharCode(this.ch);)this.readChar();return this.input.substring(e,this.position)}_readString(){const e=this.position;for(this.readChar();'"'!==String.fromCharCode(this.ch);)if(this.ch>=32&&this.ch<=33||this.ch>=35&&this.ch<=91||this.ch>=93&&this.ch<=126||this.ch>=128&&this.ch<=1114109)this.readChar();else if("\\"===String.fromCharCode(this.ch)){if(this.readChar(),!(this.ch>=32&&this.ch<=126||this.ch>=128&&this.ch<=1114109))throw this._tokenError(`invalid escape character in text string \`${this.input.substring(e+1,this.position)}\``);this.readChar()}else if(10===this.ch)this.readChar();else{if(13!==this.ch||10!==this._peekAtNextChar().charCodeAt(0))throw this._tokenError(`invalid text string \`${this.input.substring(e+1,this.position)}\``);this.readChar(),this.readChar()}return this.input.substring(e+1,this.position)}_readBytesString(){const e=this.position;for(this.readChar();"'"!==String.fromCharCode(this.ch);)if(this.ch>=32&&this.ch<=38||this.ch>=40&&this.ch<=91||this.ch>=93&&this.ch<=1114109)this.readChar();else if("\\"===String.fromCharCode(this.ch)){if(this.readChar(),!(this.ch>=32&&this.ch<=126||this.ch>=128&&this.ch<=1114109))throw this._tokenError(`invalid escape character in byte string \`${this.input.substring(e+1,this.position)}\``);this.readChar()}else if(10===this.ch)this.readChar();else{if(13!==this.ch||10!==this._peekAtNextChar().charCodeAt(0))throw this._tokenError(`invalid byte string \`${this.input.substring(e+1,this.position)}\``);this.readChar(),this.readChar()}return this.input.substring(e+1,this.position)}_readNumberOrFloat(){const e=this.position;let t=!1;if("-"===String.fromCharCode(this.ch)&&this.readChar(),"0"===String.fromCharCode(this.ch)){if(this.readChar(),"x"===String.fromCharCode(this.ch)){if(this.readChar(),!"0123456789ABCDEF".includes(String.fromCharCode(this.ch).toUpperCase()))throw this._tokenError(`expected hex number to contain hex digits, got \`${this.input.substring(e,this.position)}\``);for(;"0123456789ABCDEF".includes(String.fromCharCode(this.ch).toUpperCase());)this.readChar();if("."===String.fromCharCode(this.ch)){if(t=!0,"."===this._peekAtNextChar())return this.input.substring(e,this.position);for(this.readChar();"0123456789ABCDEF".includes(String.fromCharCode(this.ch).toUpperCase());)this.readChar()}if(t&&"p"!==String.fromCharCode(this.ch))throw this._tokenError(`expected hex number with fraction to have an exponent, got \`${this.input.substring(e,this.position)}\``);if("p"===String.fromCharCode(this.ch)){if(this.readChar(),"+-".includes(String.fromCharCode(this.ch))&&this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected hex number with exponent to have a digit in exponent, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar()}}else if("b"===String.fromCharCode(this.ch)){if(this.readChar(),!"01".includes(String.fromCharCode(this.ch)))throw this._tokenError(`expected binary number to have binary digits, got \`${this.input.substring(e,this.position)}\``);for(;"01".includes(String.fromCharCode(this.ch));)this.readChar()}else if("."===String.fromCharCode(this.ch)){if("."===this._peekAtNextChar())return this.input.substring(e,this.position);if(this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected number with fraction to have digits in fraction part, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar();if("e"===String.fromCharCode(this.ch)){if(this.readChar(),"+-".includes(String.fromCharCode(this.ch))&&this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected number with exponent to have digits in exponent, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar()}}}else{for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar();if("."===String.fromCharCode(this.ch)){if("."===this._peekAtNextChar())return this.input.substring(e,this.position);if(this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected number with fraction to have digits in fraction part, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar()}if("e"===String.fromCharCode(this.ch)){if(this.readChar(),"+-".includes(String.fromCharCode(this.ch))&&this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected number with exponent to have digits in exponent, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar()}}return this.input.substring(e,this.position)}_readWhitespace(){const e=this.position;for(;" \t\n\r".includes(String.fromCharCode(this.ch));)this.readChar();return this.input.substring(e,this.position)}_readComments(){const e=[];for(;;){const t=this._readWhitespace();if(";"!==String.fromCharCode(this.ch)){if(""!==t){const n=new Je(He.COMMENT,"",[],t);e.push(n)}break}const n=new Je(He.COMMENT,this._readComment(),[],t);e.push(n)}return e}_tokenError(e){const t=this.getLocation();return new gt(`CDDL token error - line ${t.line+1}: ${e}`)}}const kt=new Je(He.ILLEGAL,"");const $t=/^[!#$%&'*+-.^`|~\w]+$/,xt=/[\u000A\u000D\u0009\u0020]/u,Ct=/^[\u0009\u{0020}-\{u0073}\u{0080}-\u{00FF}]+$/u;function St(e,t,n){(t&&""!==t&&!e.has(t)&&Ct.test(n)||null===n)&&e.set(t.toLowerCase(),n)}function _t(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Tt={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function Rt(e){Tt=e}var Et={exec:()=>null};function Lt(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),s=t[r];return s||(s=e(r),t[r]=s),s}}function At(e,t=""){let n="string"==typeof e?e:e.source,r={replace:(e,t)=>{let s="string"==typeof t?t:t.source;return s=s.replace(Nt.caret,"$1"),n=n.replace(e,s),r},getRegex:()=>new RegExp(n,t)};return r}var Pt=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),Nt={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Lt((e=>new RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`))),hrRegex:Lt((e=>new RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`))),fencesBeginRegex:Lt((e=>new RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`))),headingBeginRegex:Lt((e=>new RegExp(`^ {0,${e}}#`))),htmlBeginRegex:Lt((e=>new RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,"i"))),blockquoteBeginRegex:Lt((e=>new RegExp(`^ {0,${e}}>`)))},It=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Dt=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Ot=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,jt=At(Ot).replace(/bull/g,Dt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),zt=At(Ot).replace(/bull/g,Dt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Mt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,Ut=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,qt=At(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ut).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Wt=At(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Dt).getRegex(),Ft="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Bt=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Ht=At("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",Bt).replace("tag",Ft).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Gt=e=>At(Mt).replace("hr",It).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list",e).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ft).getRegex(),Vt=Gt(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),Jt=Gt(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),Kt={blockquote:At(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Jt).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:qt,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:It,html:Ht,lheading:jt,list:Wt,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:Vt,table:Et,text:/^[^\n]+/},Zt=At("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",It).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ft).getRegex(),Yt={...Kt,lheading:zt,table:Zt,paragraph:At(Mt).replace("hr",It).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Zt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ft).getRegex()},Xt={...Kt,html:At("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Bt).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Et,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:At(Mt).replace("hr",It).replace("heading"," *#{1,6} *[^\n]").replace("lheading",jt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Qt=/^( {2,}|\\)\n(?!\s*$)/,en=/[\p{P}\p{S}]/u,tn=/[\s\p{P}\p{S}]/u,nn=/[^\s\p{P}\p{S}]/u,rn=At(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,tn).getRegex(),sn=/(?!~)[\p{P}\p{S}]/u,on=At(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Pt?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),an=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,cn=At(an,"u").replace(/punct/g,en).getRegex(),ln=At(an,"u").replace(/punct/g,sn).getRegex(),un=At(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,"u").replace(/openQuote/g,/[\p{Pi}\p{Ps}"']/u).replace(/punct/g,en).getRegex(),dn="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",pn=At(dn,"gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),hn=At(dn,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,sn).getRegex(),fn=At("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),mn=At("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),gn=At("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),bn=At(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,en).getRegex(),yn=At("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),wn=At(/\\(punct)/,"gu").replace(/punct/g,en).getRegex(),vn=At(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),kn=At(Bt).replace("(?:--\x3e|$)","--\x3e").getRegex(),$n=At("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",kn).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),xn=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Cn=At(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",xn).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Sn=At(/^!?\[(label)\]\[(ref)\]/).replace("label",xn).replace("ref",Ut).getRegex(),_n=At(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ut).getRegex(),Tn=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Rn={_backpedal:Et,anyPunctuation:wn,autolink:vn,blockSkip:on,br:Qt,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:Et,delLDelim:Et,delRDelim:Et,emStrongLDelim:cn,emStrongRDelimAst:pn,emStrongRDelimUnd:mn,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:Cn,nolink:_n,punctuation:rn,reflink:Sn,reflinkSearch:At("reflink|nolink(?!\\()","g").replace("reflink",Sn).replace("nolink",_n).getRegex(),tag:$n,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:Et},En={...Rn,emStrongLDelim:un,emStrongRDelimAst:fn,emStrongRDelimUnd:gn,link:At(/^!?\[(label)\]\((.*?)\)/).replace("label",xn).getRegex(),reflink:At(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",xn).getRegex()},Ln={...Rn,emStrongRDelimAst:hn,emStrongLDelim:ln,delLDelim:bn,delRDelim:yn,url:At(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Tn).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:At(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Tn).getRegex()},An={...Ln,br:At(Qt).replace("{2,}","*").getRegex(),text:At(Ln.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Pn={normal:Kt,gfm:Yt,pedantic:Xt},Nn={normal:Rn,gfm:Ln,breaks:An,pedantic:En},In={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Dn=e=>In[e];function On(e,t){if(t){if(Nt.escapeTest.test(e))return e.replace(Nt.escapeReplace,Dn)}else if(Nt.escapeTestNoEncode.test(e))return e.replace(Nt.escapeReplaceNoEncode,Dn);return e}function jn(e){try{e=encodeURI(e).replace(Nt.percentDecode,"%")}catch{return null}return e}function zn(e,t){let n=e.replace(Nt.findPipe,((e,t,n)=>{let r=!1,s=t;for(;--s>=0&&"\\"===n[s];)r=!r;return r?"|":" |"})).split(Nt.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(Nt.slashPipe,"|");return n}function Mn(e,t,n){let r=e.length;if(0===r)return"";let s=0;for(;s<r;){if(e.charAt(r-s-1)!==t)break;s++}return e.slice(0,r-s)}function Un(e){let t=e.split("\n"),n=t.length-1;for(;n>=0&&Nt.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join("\n")}function qn(e,t=0){let n=t,r="";for(let t of e)if("\t"===t){let e=4-n%4;r+=" ".repeat(e),n+=e}else r+=t,n++;return r}function Wn(e,t,n,r,s){let i=t.href,o=t.title||null,a=e[1].replace(s.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:"!"===e[0].charAt(0)?"image":"link",raw:n,href:i,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,c}var Fn=class{options;rules;lexer;constructor(e){this.options=e||Tt}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:Un(t[0]),n=e.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e,codeBlockStyle:"indented",text:n}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=function(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(null===r)return t;let s=r[1];return t.split("\n").map((e=>{let t=e.match(n.other.beginningSpace);if(null===t)return e;let[r]=t;return r.length>=s.length?e.slice(s.length):e})).join("\n")}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=Mn(e,"#");(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:"heading",raw:Mn(t[0],"\n"),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:Mn(t[0],"\n")}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=Mn(t[0],"\n").split("\n"),n="",r="",s=[];for(;e.length>0;){let t,i=!1,o=[];for(t=0;t<e.length;t++)if(this.rules.other.blockquoteStart.test(e[t]))o.push(e[t]),i=!0;else{if(i)break;o.push(e[t])}e=e.slice(t);let a=o.join("\n"),c=a.replace(this.rules.other.blockquoteSetextReplace,"\n $1").replace(this.rules.other.blockquoteSetextReplace2,"");n=n?`${n}\n${a}`:a,r=r?`${r}\n${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,s,!0),this.lexer.state.top=l,0===e.length)break;let u=s.at(-1);if("code"===u?.type)break;if("blockquote"===u?.type){let t=u,i=e.join("\n"),o=t.raw+"\n"+i.replace(this.rules.other.blockquoteSetextReplace2,""),a=this.blockquote(o);s[s.length-1]=a,n=`${n}\n${i}`,r=r.substring(0,r.length-t.text.length)+a.text;break}if("list"!==u?.type);else{let t=u,i=t.raw+"\n"+e.join("\n"),o=this.list(i);s[s.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=i.substring(s.at(-1).raw.length).split("\n")}}return{type:"blockquote",raw:n,tokens:s,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,s={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let i=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r="",a="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=qn(t[2].split("\n",1)[0],t[1].length),l=e.split("\n",1)[0],u=!c.trim(),d=0;if(this.options.pedantic?(d=2,a=c.trimStart()):u?d=t[1].length+1:(d=c.search(this.rules.other.nonSpaceChar),d=d>4?1:d,a=c.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(l)&&(r+=l+"\n",e=e.substring(l.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),s=this.rules.other.fencesBeginRegex(d),i=this.rules.other.headingBeginRegex(d),o=this.rules.other.htmlBeginRegex(d),p=this.rules.other.blockquoteBeginRegex(d);for(;e;){let h,f=e.split("\n",1)[0];if(l=f,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting," "),h=l):h=l.replace(this.rules.other.tabCharGlobal," "),s.test(l)||i.test(l)||o.test(l)||p.test(l)||t.test(l)||n.test(l))break;if(h.search(this.rules.other.nonSpaceChar)>=d||!l.trim())a+="\n"+h.slice(d);else{if(u||c.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||s.test(c)||i.test(c)||n.test(c))break;a+="\n"+l}u=!l.trim(),r+=f+"\n",e=e.substring(f.length+1),c=h.slice(d)}}s.loose||(o?s.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0)),s.items.push({type:"list_item",raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(a),loose:!1,text:a,tokens:[]}),s.raw+=r}let a=s.items.at(-1);if(!a)return;a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd(),s.raw=s.raw.trimEnd();for(let e of s.items){this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]);let t=e.tokens[0];if(!e.task||"text"!==t?.type&&"paragraph"!==t?.type)e.task&&(e.task=!1);else{e.text=e.text.replace(this.rules.other.listReplaceTask,""),t.raw=t.raw.replace(this.rules.other.listReplaceTask,""),t.text=t.text.replace(this.rules.other.listReplaceTask,"");for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,"");break}let n=this.rules.other.listTaskCheckbox.exec(e.raw);if(n){let t={type:"checkbox",raw:n[0]+" ",checked:"[ ]"!==n[0]};e.checked=t.checked,s.loose?e.tokens[0]&&["paragraph","text"].includes(e.tokens[0].type)&&"tokens"in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:"paragraph",raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}if(!s.loose){let t=e.tokens.filter((e=>"space"===e.type)),n=t.length>0&&t.some((e=>this.rules.other.anyLine.test(e.raw)));s.loose=n}}if(s.loose)for(let e of s.items){e.loose=!0;for(let t of e.tokens)"text"===t.type&&(t.type="paragraph")}return s}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=Un(t[0]);return{type:"html",block:!0,raw:e,pre:"pre"===t[1]||"script"===t[1]||"style"===t[1],text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:Mn(t[0],"\n"),href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=zn(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split("\n"):[],i={type:"table",raw:Mn(t[0],"\n"),header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?i.align.push("right"):this.rules.other.tableAlignCenter.test(e)?i.align.push("center"):this.rules.other.tableAlignLeft.test(e)?i.align.push("left"):i.align.push(null);for(let e=0;e<n.length;e++)i.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:i.align[e]});for(let e of s)i.rows.push(zn(e,i.header.length).map(((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:i.align[t]}))));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:"heading",raw:Mn(t[0],"\n"),depth:"="===t[2].charAt(0)?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e="\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=Mn(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{let e=function(e,t){if(-1===e.indexOf(t[1]))return-1;let n=0;for(let r=0;r<e.length;r++)if("\\"===e[r])r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}(t[2],"()");if(-2===e)return;if(e>-1){let n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],r="";if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),Wn(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return Wn(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(r&&(r[1]||r[2]||r[3]||r[4])&&(!r[4]||!n.match(this.rules.other.unicodeAlphaNumeric))&&(!r[1]&&!r[3]||!n||this.rules.inline.punctuation.exec(n))){let s,i,o=[...r[0]].length-1,a=o,c=0,l=r[0][0],u=n===l,d="*"===l?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+o);null!==(r=d.exec(t));){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s)continue;if(i=[...s].length,r[3]||r[4]){a+=i;continue}if(r[5]||r[6]){if(o%3&&!((o+i)%3)){c+=i;continue}if(u)break}if(a-=i,a>0)continue;i=Math.min(i,i+a+c);let t=[...r[0]][0].length,n=e.slice(0,o+r.index+t+i);if(Math.min(o,i)%2){let e=n.slice(1,-1);return{type:"em",raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:"strong",raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n,s,i=[...r[0]].length-1,o=i,a=this.rules.inline.delRDelim;for(a.lastIndex=0,t=t.slice(-1*e.length+i);null!==(r=a.exec(t));){if(n=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!n||(s=[...n].length,s!==i))continue;if(r[3]||r[4]){o+=s;continue}if(o-=s,o>0)continue;s=Math.min(s,s+o);let t=[...r[0]][0].length,a=e.slice(0,i+r.index+t+s),c=a.slice(i,-i);return{type:"del",raw:a,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return"@"===t[2]?(e=t[1],n="mailto:"+e):(e=t[1],n=e),{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if("@"===t[2])e=t[0],n="mailto:"+e;else{let r;do{r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??""}while(r!==t[0]);e=t[0],n="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},Bn=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Tt,this.options.tokenizer=this.options.tokenizer||new Fn,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:Nt,block:Pn.normal,inline:Nn.normal};this.options.pedantic?(t.block=Pn.pedantic,t.inline=Nn.pedantic):this.options.gfm&&(t.block=Pn.gfm,this.options.breaks?t.inline=Nn.breaks:t.inline=Nn.gfm),this.tokenizer.rules=t}static get rules(){return{block:Pn,inline:Nn}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(Nt.carriageReturn,"\n"),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(Nt.tabCharGlobal," ").replace(Nt.spaceLine,""));let r=1/0;for(;e;){if(!(e.length<r)){this.infiniteLoopError(e.charCodeAt(0));break}let s;if(r=e.length,this.options.extensions?.block?.some((n=>!!(s=n.call({lexer:this},e,t))&&(e=e.substring(s.raw.length),t.push(s),!0))))continue;if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length);let n=t.at(-1);1===s.raw.length&&void 0!==n?n.raw+="\n":t.push(s);continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length);let n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+=(n.raw.endsWith("\n")?"":"\n")+s.raw,n.text+="\n"+s.text,this.inlineQueue.at(-1).src=n.text):t.push(s);continue}if(s=this.tokenizer.fences(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.heading(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.hr(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.blockquote(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.list(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.html(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length);let n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+=(n.raw.endsWith("\n")?"":"\n")+s.raw,n.text+="\n"+s.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title},t.push(s));continue}if(s=this.tokenizer.table(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.lheading(e)){e=e.substring(s.raw.length),t.push(s);continue}let i=e;if(this.options.extensions?.startBlock){let t,n=1/0,r=e.slice(1);this.options.extensions.startBlock.forEach((e=>{t=e.call({lexer:this},r),"number"==typeof t&&t>=0&&(n=Math.min(n,t))})),n<1/0&&n>=0&&(i=e.substring(0,n+1))}if(this.state.top&&(s=this.tokenizer.paragraph(i))){let r=t.at(-1);n&&"paragraph"===r?.type?(r.raw+=(r.raw.endsWith("\n")?"":"\n")+s.raw,r.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(s),n=i.length!==e.length,e=e.substring(s.raw.length)}else if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length);let n=t.at(-1);"text"===n?.type?(n.raw+=(n.raw.endsWith("\n")?"":"\n")+s.raw,n.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(s)}else if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e;if(this.tokens.links){let e=Object.keys(this.tokens.links);e.length>0&&(n=n.replace(this.tokenizer.rules.inline.reflinkSearch,(t=>e.includes(t.slice(t.lastIndexOf("[")+1,-1))?"["+"a".repeat(t.length-2)+"]":t)))}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,"++"),n=n.replace(this.tokenizer.rules.inline.blockSkip,((e,t,n)=>{let r=n?n.length:0;return e.slice(0,r)+"["+"a".repeat(e.length-r-2)+"]"})),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let r=!1,s="",i=1/0;for(;e;){if(!(e.length<i)){this.infiniteLoopError(e.charCodeAt(0));break}let o;if(i=e.length,r||(s=""),r=!1,this.options.extensions?.inline?.some((n=>!!(o=n.call({lexer:this},e,t))&&(e=e.substring(o.raw.length),t.push(o),!0))))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let n=t.at(-1);"text"===o.type&&"text"===n?.type?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,s)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,s)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let a=e;if(this.options.extensions?.startInline){let t,n=1/0,r=e.slice(1);this.options.extensions.startInline.forEach((e=>{t=e.call({lexer:this},r),"number"==typeof t&&t>=0&&(n=Math.min(n,t))})),n<1/0&&n>=0&&(a=e.substring(0,n+1))}if(o=this.tokenizer.inlineText(a)){e=e.substring(o.raw.length),"_"!==o.raw.slice(-1)&&(s=o.raw.slice(-1)),r=!0;let n=t.at(-1);"text"===n?.type?(n.raw+=o.raw,n.text+=o.text):t.push(o)}else if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(!this.options.silent)throw new Error(t);console.error(t)}},Hn=class{options;parser;constructor(e){this.options=e||Tt}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(Nt.notSpaceStart)?.[0],s=e.replace(Nt.endingNewline,"")+"\n";return r?'<pre><code class="language-'+On(r)+'">'+(n?s:On(s,!0))+"</code></pre>\n":"<pre><code>"+(n?s:On(s,!0))+"</code></pre>\n"}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return"<hr>\n"}list(e){let t=e.ordered,n=e.start,r="";for(let t=0;t<e.items.length;t++){let n=e.items[t];r+=this.listitem(n)}let s=t?"ol":"ul";return"<"+s+(t&&1!==n?' start="'+n+'"':"")+">\n"+r+"</"+s+">\n"}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t="",n="";for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r="";for(let t=0;t<e.rows.length;t++){let s=e.rows[t];n="";for(let e=0;e<s.length;e++)n+=this.tablecell(s[e]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),"<table>\n<thead>\n"+t+"</thead>\n"+r+"</table>\n"}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${On(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),s=jn(e);if(null===s)return r;let i='<a href="'+(e=s)+'"';return t&&(i+=' title="'+On(t)+'"'),i+=">"+r+"</a>",i}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let s=jn(e);if(null===s)return On(n);let i=`<img src="${e=s}" alt="${On(n)}"`;return t&&(i+=` title="${On(t)}"`),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:On(e.text)}},Gn=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},Vn=class e{options;renderer;textRenderer;constructor(e){this.options=e||Tt,this.options.renderer=this.options.renderer||new Hn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Gn}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t="";for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(!1!==n||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(e.type)){t+=n||"";continue}}let s=r;switch(s.type){case"space":t+=this.renderer.space(s);break;case"hr":t+=this.renderer.hr(s);break;case"heading":t+=this.renderer.heading(s);break;case"code":t+=this.renderer.code(s);break;case"table":t+=this.renderer.table(s);break;case"blockquote":t+=this.renderer.blockquote(s);break;case"list":t+=this.renderer.list(s);break;case"checkbox":t+=this.renderer.checkbox(s);break;case"html":t+=this.renderer.html(s);break;case"def":t+=this.renderer.def(s);break;case"paragraph":t+=this.renderer.paragraph(s);break;case"text":t+=this.renderer.text(s);break;default:{let e='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw new Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n="";for(let r=0;r<e.length;r++){let s=e[r];if(this.options.extensions?.renderers?.[s.type]){let e=this.options.extensions.renderers[s.type].call({parser:this},s);if(!1!==e||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(s.type)){n+=e||"";continue}}let i=s;switch(i.type){case"escape":case"text":n+=t.text(i);break;case"html":n+=t.html(i);break;case"link":n+=t.link(i);break;case"image":n+=t.image(i);break;case"checkbox":n+=t.checkbox(i);break;case"strong":n+=t.strong(i);break;case"em":n+=t.em(i);break;case"codespan":n+=t.codespan(i);break;case"br":n+=t.br(i);break;case"del":n+=t.del(i);break;default:{let e='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw new Error(e)}}}return n}},Jn=class{options;block;constructor(e){this.options=e||Tt}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?Bn.lex:Bn.lexInline}provideParser(e=this.block){return e?Vn.parse:Vn.parseInline}},Kn=new class{defaults={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Vn;Renderer=Hn;TextRenderer=Gn;Lexer=Bn;Tokenizer=Fn;Hooks=Jn;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case"table":{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case"list":{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach((r=>{let s=e[r].flat(1/0);n=n.concat(this.walkTokens(s,t))})):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach((e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if("renderer"in e){let n=t.renderers[e.name];t.renderers[e.name]=n?function(...t){let r=e.renderer.apply(this,t);return!1===r&&(r=n.apply(this,t)),r}:e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)})),n.extensions=t),e.renderer){let t=this.defaults.renderer||new Hn(this.defaults);for(let n in e.renderer){if(!(n in t))throw new Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;let r=n,s=e.renderer[r],i=t[r];t[r]=(...e)=>{let n=s.apply(t,e);return!1===n&&(n=i.apply(t,e)),n||""}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new Fn(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw new Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;let r=n,s=e.tokenizer[r],i=t[r];t[r]=(...e)=>{let n=s.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new Jn;for(let n in e.hooks){if(!(n in t))throw new Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;let r=n,s=e.hooks[r],i=t[r];Jn.passThroughHooks.has(n)?t[r]=e=>{if(this.defaults.async&&Jn.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await s.call(t,e);return i.call(t,n)})();let r=s.call(t,e);return i.call(t,r)}:t[r]=(...e)=>{if(this.defaults.async)return(async()=>{let n=await s.apply(t,e);return!1===n&&(n=await i.apply(t,e)),n})();let n=s.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}})),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Bn.lex(e,t??this.defaults)}parser(e,t){return Vn.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},s={...this.defaults,...r},i=this.onError(!!s.silent,!!s.async);if(!0===this.defaults.async&&!1===r.async)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||null===t)return i(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let n=s.hooks?await s.hooks.preprocess(t):t,r=await(s.hooks?await s.hooks.provideLexer(e):e?Bn.lex:Bn.lexInline)(n,s),i=s.hooks?await s.hooks.processAllTokens(r):r;s.walkTokens&&await Promise.all(this.walkTokens(i,s.walkTokens));let o=await(s.hooks?await s.hooks.provideParser(e):e?Vn.parse:Vn.parseInline)(i,s);return s.hooks?await s.hooks.postprocess(o):o})().catch(i);try{s.hooks&&(t=s.hooks.preprocess(t));let n=(s.hooks?s.hooks.provideLexer(e):e?Bn.lex:Bn.lexInline)(t,s);s.hooks&&(n=s.hooks.processAllTokens(n)),s.walkTokens&&this.walkTokens(n,s.walkTokens);let r=(s.hooks?s.hooks.provideParser(e):e?Vn.parse:Vn.parseInline)(n,s);return s.hooks&&(r=s.hooks.postprocess(r)),r}catch(e){return i(e)}}}onError(e,t){return n=>{if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",e){let e="<p>An error occurred:</p><pre>"+On(n.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function Zn(e,t){return Kn.parse(e,t)}function Yn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}Zn.options=Zn.setOptions=function(e){return Kn.setOptions(e),Zn.defaults=Kn.defaults,Rt(Zn.defaults),Zn},Zn.getDefaults=_t,Zn.defaults=Tt,Zn.use=function(...e){return Kn.use(...e),Zn.defaults=Kn.defaults,Rt(Zn.defaults),Zn},Zn.walkTokens=function(e,t){return Kn.walkTokens(e,t)},Zn.parseInline=Kn.parseInline,Zn.Parser=Vn,Zn.parser=Vn.parse,Zn.Renderer=Hn,Zn.TextRenderer=Gn,Zn.Lexer=Bn,Zn.lexer=Bn.lex,Zn.Tokenizer=Fn,Zn.Hooks=Jn,Zn.parse=Zn,Zn.options,Zn.setOptions,Zn.walkTokens,Zn.parseInline,Vn.parse,Bn.lex;var Xn,Qn={exports:{}};var er,tr=(Xn||(Xn=1,er=Qn,function(e,t){er.exports=t()}(0,(function(){var e=[],t=[],n={},r={},s={};function i(e){return"string"==typeof e?new RegExp("^"+e+"$","i"):e}function o(e,t){return e===t?t:e===e.toLowerCase()?t.toLowerCase():e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}function a(e,t){return e.replace(t[0],(function(n,r){var s,i,a=(s=t[1],i=arguments,s.replace(/\$(\d{1,2})/g,(function(e,t){return i[t]||""})));return o(""===n?e[r-1]:n,a)}))}function c(e,t,r){if(!e.length||n.hasOwnProperty(e))return t;for(var s=r.length;s--;){var i=r[s];if(i[0].test(t))return a(t,i)}return t}function l(e,t,n){return function(r){var s=r.toLowerCase();return t.hasOwnProperty(s)?o(r,s):e.hasOwnProperty(s)?o(r,e[s]):c(s,r,n)}}function u(e,t,n,r){return function(r){var s=r.toLowerCase();return!!t.hasOwnProperty(s)||!e.hasOwnProperty(s)&&c(s,s,n)===s}}function d(e,t,n){return(n?t+" ":"")+(1===t?d.singular(e):d.plural(e))}return d.plural=l(s,r,e),d.isPlural=u(s,r,e),d.singular=l(r,s,t),d.isSingular=u(r,s,t),d.addPluralRule=function(t,n){e.push([i(t),n])},d.addSingularRule=function(e,n){t.push([i(e),n])},d.addUncountableRule=function(e){"string"!=typeof e?(d.addPluralRule(e,"$0"),d.addSingularRule(e,"$0")):n[e.toLowerCase()]=!0},d.addIrregularRule=function(e,t){t=t.toLowerCase(),e=e.toLowerCase(),s[e]=t,r[t]=e},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach((function(e){return d.addIrregularRule(e[0],e[1])})),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach((function(e){return d.addPluralRule(e[0],e[1])})),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach((function(e){return d.addSingularRule(e[0],e[1])})),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(d.addUncountableRule),d}))),Qn.exports),nr=Yn(tr),rr=function(e){var t={};try{t.WeakMap=WeakMap}catch(u){t.WeakMap=function(e,t){var n=t.defineProperty,r=t.hasOwnProperty,s=i.prototype;return s.delete=function(e){return this.has(e)&&delete e[this._]},s.get=function(e){return this.has(e)?e[this._]:void 0},s.has=function(e){return r.call(e,this._)},s.set=function(e,t){return n(e,this._,{configurable:!0,value:t}),this},i;function i(t){n(this,"_",{value:"_@ungap/weakmap"+e++}),t&&t.forEach(o,this)}function o(e){this.set(e[0],e[1])}}(Math.random(),Object)}var n=t.WeakMap,r={};try{r.WeakSet=WeakSet}catch(u){!function(e,t){var n=s.prototype;function s(){t(this,"_",{value:"_@ungap/weakmap"+e++})}n.add=function(e){return this.has(e)||t(e,this._,{value:!0,configurable:!0}),this},n.has=function(e){return this.hasOwnProperty.call(e,this._)},n.delete=function(e){return this.has(e)&&delete e[this._]},r.WeakSet=s}(Math.random(),Object.defineProperty)}function s(e,t,n,r,s,i){for(var o=("selectedIndex"in t),a=o;r<s;){var c,l=e(n[r],1);t.insertBefore(l,i),o&&a&&l.selected&&(a=!a,c=t.selectedIndex,t.selectedIndex=c<0?r:d.call(t.querySelectorAll("option"),l)),r++}}function i(e,t){return e==t}function o(e){return e}function a(e,t,n,r,s,i,o){var a=i-s;if(a<1)return-1;for(;a<=n-t;){for(var c=t,l=s;c<n&&l<i&&o(e[c],r[l]);)c++,l++;if(l===i)return t;t=c+1}return-1}function c(e,t,n,r,s){return n<r?e(t[n],0):0<n?e(t[n-1],-0).nextSibling:s}function l(e,t,n,r){for(;n<r;)h(e(t[n++],-1))}var u=r.WeakSet,d=[].indexOf,p=function(e,t,n){for(var r=1,s=t;r<s;){var i=(r+s)/2>>>0;n<e[i]?s=i:r=1+i}return r},h=function(e){return(e.remove||function(){var e=this.parentNode;e&&e.removeChild(this)}).call(e)};function f(e,t,n,r){for(var u=(r=r||{}).compare||i,d=r.node||o,h=null==r.before?null:d(r.before,0),f=t.length,m=f,g=0,b=n.length,y=0;g<m&&y<b&&u(t[g],n[y]);)g++,y++;for(;g<m&&y<b&&u(t[m-1],n[b-1]);)m--,b--;var w=g===m,v=y===b;if(w&&v)return n;if(w&&y<b)return s(d,e,n,y,b,c(d,t,g,f,h)),n;if(v&&g<m)return l(d,t,g,m),n;var k=m-g,$=b-y,x=-1;if(k<$){if(-1<(x=a(n,y,b,t,g,m,u)))return s(d,e,n,y,x,d(t[g],0)),s(d,e,n,x+k,b,c(d,t,m,f,h)),n}else if($<k&&-1<(x=a(t,g,m,n,y,b,u)))return l(d,t,g,x),l(d,t,x+$,m),n;return k<2||$<2?(s(d,e,n,y,b,d(t[g],0)),l(d,t,g,m)):k==$&&function(e,t,n,r,s,i){for(;r<s&&i(n[r],e[t-1]);)r++,t--;return 0===t}(n,b,t,g,m,u)?s(d,e,n,y,b,c(d,t,m,f,h)):function(e,t,n,r,i,o,a,c,u,d,h,f,m){!function(e,t,n,r,i,o,a,c,u){for(var d=[],p=e.length,h=a,f=0;f<p;)switch(e[f++]){case 0:i++,h++;break;case 1:d.push(r[i]),s(t,n,r,i++,i,h<c?t(o[h],0):u);break;case-1:h++}for(f=0;f<p;)switch(e[f++]){case 0:a++;break;case-1:-1<d.indexOf(o[a])?a++:l(t,o,a++,a)}}(function(e,t,n,r,s,i,o){var a,c,l,u,d,p,h=n+i,f=[];e:for(b=0;b<=h;b++){if(50<b)return null;for(p=b-1,u=b?f[b-1]:[0,0],d=f[b]=[],a=-b;a<=b;a+=2){for(c=(l=a===-b||a!==b&&u[p+a-1]<u[p+a+1]?u[p+a+1]:u[p+a-1]+1)-a;l<i&&c<n&&o(r[s+l],e[t+c]);)l++,c++;if(l===i&&c===n)break e;d[b+a]=l}}for(var m=Array(b/2+h/2),g=m.length-1,b=f.length-1;0<=b;b--){for(;0<l&&0<c&&o(r[s+l-1],e[t+c-1]);)m[g--]=0,l--,c--;if(!b)break;p=b-1,u=b?f[b-1]:[0,0],(a=l-c)==-b||a!==b&&u[p+a-1]<u[p+a+1]?(c--,m[g--]=1):(l--,m[g--]=-1)}return m}(n,r,o,a,c,d,f)||function(e,t,n,r,s,i,o,a){var c=0,l=r<a?r:a,u=Array(l++),d=Array(l);d[0]=-1;for(var h=1;h<l;h++)d[h]=o;for(var f=s.slice(i,o),m=t;m<n;m++){var g,b=f.indexOf(e[m]);-1<b&&-1<(c=p(d,l,g=b+i))&&(d[c]=g,u[c]={newi:m,oldi:g,prev:u[c-1]})}for(c=--l,--o;d[c]>o;)--c;l=a+r-c;var y=Array(l),w=u[c];for(--n;w;){for(var v=w.newi,k=w.oldi;v<n;)y[--l]=1,--n;for(;k<o;)y[--l]=-1,--o;y[--l]=0,--n,--o,w=w.prev}for(;t<=n;)y[--l]=1,--n;for(;i<=o;)y[--l]=-1,--o;return y}(n,r,i,o,a,c,u,d),e,t,n,r,a,c,h,m)}(d,e,n,y,b,$,t,g,m,k,f,u,h),n}var m={};function g(t,n){n=n||{};var r=e.createEvent("CustomEvent");return r.initCustomEvent(t,!!n.bubbles,!!n.cancelable,n.detail),r}m.CustomEvent="function"==typeof CustomEvent?CustomEvent:(g["prototype"]=new g("").constructor.prototype,g);var b=m.CustomEvent,y={};try{y.Map=Map}catch(u){y.Map=function(){var e=0,t=[],n=[];return{delete:function(s){var i=r(s);return i&&(t.splice(e,1),n.splice(e,1)),i},forEach:function(e,r){t.forEach((function(t,s){e.call(r,n[s],t,this)}),this)},get:function(t){return r(t)?n[e]:void 0},has:r,set:function(s,i){return n[r(s)?e:t.push(s)-1]=i,this}};function r(n){return-1<(e=t.indexOf(n))}}}var w=y.Map;function v(){return this}function k(e,t){var n="_"+e+"$";return{get:function(){return this[n]||$(this,n,t.call(this,e))},set:function(e){$(this,n,e)}}}var $=function(e,t,n){return Object.defineProperty(e,t,{configurable:!0,value:"function"==typeof n?function(){return e._wire$=n.apply(this,arguments)}:n})[t]};Object.defineProperties(v.prototype,{ELEMENT_NODE:{value:1},nodeType:{value:-1}});var x,C,S,_,T,R,E={},L={},A=[],P=L.hasOwnProperty,N=0,I={attributes:E,define:function(e,t){e.indexOf("-")<0?(e in L||(N=A.push(e)),L[e]=t):E[e]=t},invoke:function(e,t){for(var n=0;n<N;n++){var r=A[n];if(P.call(e,r))return L[r](e[r],t)}}},D=Array.isArray||(C=(x={}.toString).call([]),function(e){return x.call(e)===C}),O=(S=e,_="fragment",R="content"in z(T="template")?function(e){var t=z(T);return t.innerHTML=e,t.content}:function(e){var t,n=z(_),r=z(T);return j(n,/^[^\S]*?<(col(?:group)?|t(?:head|body|foot|r|d|h))/i.test(e)?(t=RegExp.$1,r.innerHTML="<table>"+e+"</table>",r.querySelectorAll(t)):(r.innerHTML=e,r.childNodes)),n},function(e,t){return("svg"===t?function(e){var t=z(_),n=z("div");return n.innerHTML='<svg xmlns="http://www.w3.org/2000/svg">'+e+"</svg>",j(t,n.firstChild.childNodes),t}:R)(e)});function j(e,t){for(var n=t.length;n--;)e.appendChild(t[0])}function z(e){return e===_?S.createDocumentFragment():S.createElementNS("http://www.w3.org/1999/xhtml",e)}var M,U,q,W,F,B,H,G,V,J=(U="appendChild",q="cloneNode",W="createTextNode",B=(F="importNode")in(M=e),(H=M.createDocumentFragment())[U](M[W]("g")),H[U](M[W]("")),(B?M[F](H,!0):H[q](!0)).childNodes.length<2?function e(t,n){for(var r=t[q](),s=t.childNodes||[],i=s.length,o=0;n&&o<i;o++)r[U](e(s[o],n));return r}:B?M[F]:function(e,t){return e[q](!!t)}),K="".trim||function(){return String(this).replace(/^\s+|\s+/g,"")},Z="-"+Math.random().toFixed(6)+"%",Y=!1;try{G=e.createElement("template"),V="tabindex","content"in G&&(G.innerHTML="<p "+V+'="'+Z+'"></p>',G.content.childNodes[0].getAttribute(V)==Z)||(Z="_dt: "+Z.slice(1,-1)+";",Y=!0)}catch(u){}var X="\x3c!--"+Z+"--\x3e",Q=8,ee=1,te=3,ne=/^(?:style|textarea)$/i,re=/^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i,se=" \\f\\n\\r\\t",ie="[^"+se+"\\/>\"'=]+",oe="["+se+"]+"+ie,ae="<([A-Za-z]+[A-Za-z0-9:._-]*)((?:",ce="(?:\\s*=\\s*(?:'[^']*?'|\"[^\"]*?\"|<[^>]*?>|"+ie.replace("\\/","")+"))?)",le=new RegExp(ae+oe+ce+"+)(["+se+"]*/?>)","g"),ue=new RegExp(ae+oe+ce+"*)(["+se+"]*/>)","g"),de=new RegExp("("+oe+"\\s*=\\s*)(['\"]?)"+X+"\\2","gi");function pe(e,t,n,r){return"<"+t+n.replace(de,he)+r}function he(e,t,n){return t+(n||'"')+Z+(n||'"')}function fe(e,t,n){return re.test(t)?e:"<"+t+n+"></"+t+">"}var me=Y?function(e,t){var n=t.join(" ");return t.slice.call(e,0).sort((function(e,t){return n.indexOf(e.name)<=n.indexOf(t.name)?-1:1}))}:function(e,t){return t.slice.call(e,0)};function ge(t,n,r,s){for(var i=t.childNodes,o=i.length,a=0;a<o;){var c=i[a];switch(c.nodeType){case ee:var l=s.concat(a);!function(t,n,r,s){for(var i,o=t.attributes,a=[],c=[],l=me(o,r),u=l.length,d=0;d<u;){var p=l[d++],h=p.value===Z;if(h||1<(i=p.value.split(X)).length){var f=p.name;if(a.indexOf(f)<0){a.push(f);var m=r.shift().replace(h?/^(?:|[\S\s]*?\s)(\S+?)\s*=\s*('|")?$/:new RegExp("^(?:|[\\S\\s]*?\\s)("+f+")\\s*=\\s*('|\")[\\S\\s]*","i"),"$1"),g=o[m]||o[m.toLowerCase()];if(h)n.push(be(g,s,m,null));else{for(var b=i.length-2;b--;)r.shift();n.push(be(g,s,m,i))}}c.push(p)}}for(var y=((d=0)<(u=c.length)&&Y&&!("ownerSVGElement"in t));d<u;){var w=c[d++];y&&(w.value=""),t.removeAttribute(w.name)}var v=t.nodeName;if(/^script$/i.test(v)){var k=e.createElement(v);for(u=o.length,d=0;d<u;)k.setAttributeNode(o[d++].cloneNode(!0));k.textContent=t.textContent,t.parentNode.replaceChild(k,t)}}(c,n,r,l),ge(c,n,r,l);break;case Q:var u=c.textContent;if(u===Z)r.shift(),n.push(ne.test(t.nodeName)?ye(t,s):{type:"any",node:c,path:s.concat(a)});else switch(u.slice(0,2)){case"/*":if("*/"!==u.slice(-2))break;case"👻":t.removeChild(c),a--,o--}break;case te:ne.test(t.nodeName)&&K.call(c.textContent)===X&&(r.shift(),n.push(ye(t,s)))}a++}}function be(e,t,n,r){return{type:"attr",node:e,path:t,name:n,sparse:r}}function ye(e,t){return{type:"text",node:e,path:t}}var we,ve=(we=new n,{get:function(e){return we.get(e)},set:function(e,t){return we.set(e,t),t}});function ke(e,t){var n=(e.convert||function(e){return e.join(X).replace(ue,fe).replace(le,pe)})(t),r=e.transform;r&&(n=r(n));var s=O(n,e.type);xe(s);var i=[];return ge(s,i,t.slice(0),[]),{content:s,updates:function(n){for(var r=[],s=i.length,o=0,a=0;o<s;){var c=i[o++],l=function(e,t){for(var n=t.length,r=0;r<n;)e=e.childNodes[t[r++]];return e}(n,c.path);switch(c.type){case"any":r.push({fn:e.any(l,[]),sparse:!1});break;case"attr":var u=c.sparse,d=e.attribute(l,c.name,c.node);null===u?r.push({fn:d,sparse:!1}):(a+=u.length-2,r.push({fn:d,sparse:!0,values:u}));break;case"text":r.push({fn:e.text(l),sparse:!1}),l.textContent=""}}return s+=a,function(){var e=arguments.length;if(s!==e-1)throw new Error(e-1+" values instead of "+s+"\n"+t.join("${value}"));for(var i=1,o=1;i<e;){var a=r[i-o];if(a.sparse){var c=a.values,l=c[0],u=1,d=c.length;for(o+=d-2;u<d;)l+=arguments[i++]+c[u++];a.fn(l)}else a.fn(arguments[i++])}return n}}}}var $e=[];function xe(e){for(var t=e.childNodes,n=t.length;n--;){var r=t[n];1!==r.nodeType&&0===K.call(r.textContent).length&&e.removeChild(r)}}var Ce,Se,_e=(Ce=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,Se=/([^A-Z])([A-Z]+)/g,function(e,t){return"ownerSVGElement"in e?function(e,t){var n;return(n=t?t.cloneNode(!0):(e.setAttribute("style","--hyper:style;"),e.getAttributeNode("style"))).value="",e.setAttributeNode(n),Re(n,!0)}(e,t):Re(e.style,!1)});function Te(e,t,n){return t+"-"+n.toLowerCase()}function Re(e,t){var n,r;return function(s){var i,o,a,c;switch(typeof s){case"object":if(s){if("object"===n){if(!t&&r!==s)for(o in r)o in s||(e[o]="")}else t?e.value="":e.cssText="";for(o in i=t?{}:e,s)a="number"!=typeof(c=s[o])||Ce.test(o)?c:c+"px",!t&&/^--/.test(o)?i.setProperty(o,a):i[o]=a;n="object",t?e.value=function(e){var t,n=[];for(t in e)n.push(t.replace(Se,Te),":",e[t],";");return n.join("")}(r=i):r=s;break}default:r!=s&&(n="string",r=s,t?e.value=s||"":e.cssText=s||"")}}}var Ee,Le,Ae=(Ee=[].slice,(Le=Pe.prototype).ELEMENT_NODE=1,Le.nodeType=111,Le.remove=function(e){var t,n=this.childNodes,r=this.firstChild,s=this.lastChild;return this._=null,e&&2===n.length?s.parentNode.removeChild(s):((t=this.ownerDocument.createRange()).setStartBefore(e?n[1]:r),t.setEndAfter(s),t.deleteContents()),r},Le.valueOf=function(e){var t=this._,n=null==t;if(n&&(t=this._=this.ownerDocument.createDocumentFragment()),n||e)for(var r=this.childNodes,s=0,i=r.length;s<i;s++)t.appendChild(r[s]);return t},Pe);function Pe(e){var t=this.childNodes=Ee.call(e,0);this.firstChild=t[0],this.lastChild=t[t.length-1],this.ownerDocument=t[0].ownerDocument,this._=null}function Ne(e){return{html:e}}function Ie(e,t){switch(e.nodeType){case Be:return 1/t<0?t?e.remove(!0):e.lastChild:t?e.valueOf(!0):e.firstChild;case Fe:return Ie(e.render(),t);default:return e}}function De(e,t){t(e.placeholder),"text"in e?Promise.resolve(e.text).then(String).then(t):"any"in e?Promise.resolve(e.any).then(t):"html"in e?Promise.resolve(e.html).then(Ne).then(t):Promise.resolve(I.invoke(e,t)).then(t)}function Oe(e){return null!=e&&"then"in e}var je,ze,Me,Ue,qe,We="ownerSVGElement",Fe=v.prototype.nodeType,Be=Ae.prototype.nodeType,He=(ze=(je={Event:b,WeakSet:u}).Event,Me=je.WeakSet,Ue=!0,qe=null,function(e){return Ue&&(Ue=!Ue,qe=new Me,function(e){var t=new Me,n=new Me;try{new MutationObserver(o).observe(e,{subtree:!0,childList:!0})}catch(t){var r=0,s=[],i=function(e){s.push(e),clearTimeout(r),r=setTimeout((function(){o(s.splice(r=0,s.length))}),0)};e.addEventListener("DOMNodeRemoved",(function(e){i({addedNodes:[],removedNodes:[e.target]})}),!0),e.addEventListener("DOMNodeInserted",(function(e){i({addedNodes:[e.target],removedNodes:[]})}),!0)}function o(e){for(var r,s=e.length,i=0;i<s;i++)a((r=e[i]).removedNodes,"disconnected",n,t),a(r.addedNodes,"connected",t,n)}function a(e,t,n,r){for(var s,i=new ze(t),o=e.length,a=0;a<o;1===(s=e[a++]).nodeType&&function e(t,n,r,s,i){qe.has(t)&&!s.has(t)&&(i.delete(t),s.add(t),t.dispatchEvent(n));for(var o=t.children||[],a=o.length,c=0;c<a;e(o[c++],n,r,s,i));}(s,i,t,n,r));}}(e.ownerDocument)),qe.add(e),e}),Ge=/^(?:form|list)$/i,Ve=[].slice;function Je(t){return this.type=t,function(t){var n=$e,r=xe;return function(s){var i,o,a;return n!==s&&(i=t,o=n=s,a=ve.get(o)||ve.set(o,ke(i,o)),r=a.updates(J.call(e,a.content,!0))),r.apply(null,arguments)}}(this)}var Ke=!(Je.prototype={attribute:function(e,t,n){var r,s=We in e;if("style"===t)return _e(e,n,s);if("."===t.slice(0,1))return l=e,u=t.slice(1),s?function(e){try{l[u]=e}catch(t){l.setAttribute(u,e)}}:function(e){l[u]=e};if("?"===t.slice(0,1))return o=e,a=t.slice(1),function(e){c!==!!e&&((c=!!e)?o.setAttribute(a,""):o.removeAttribute(a))};if(/^on/.test(t)){var i=t.slice(2);return"connected"===i||"disconnected"===i?He(e):t.toLowerCase()in e&&(i=i.toLowerCase()),function(t){r!==t&&(r&&e.removeEventListener(i,r,!1),(r=t)&&e.addEventListener(i,t,!1))}}if("data"===t||!s&&t in e&&!Ge.test(t))return function(n){r!==n&&(r=n,e[t]!==n&&null==n?(e[t]="",e.removeAttribute(t)):e[t]=n)};if(t in I.attributes)return function(n){var s=I.attributes[t](e,n);r!==s&&(null==(r=s)?e.removeAttribute(t):e.setAttribute(t,s))};var o,a,c,l,u,d=!1,p=n.cloneNode(!0);return function(t){r!==t&&(r=t,p.value!==t&&(null==t?(d&&(d=!1,e.removeAttributeNode(p)),p.value=t):(p.value=t,d||(d=!0,e.setAttributeNode(p)))))}},any:function(e,t){var n,r={node:Ie,before:e},s=We in e?"svg":"html",i=!1;return function o(a){switch(typeof a){case"string":case"number":case"boolean":i?n!==a&&(n=a,t[0].textContent=a):(i=!0,n=a,t=f(e.parentNode,t,[(c=a,e.ownerDocument.createTextNode(c))],r));break;case"function":o(a(e));break;case"object":case"undefined":if(null==a){i=!1,t=f(e.parentNode,t,[],r);break}default:if(i=!1,D(n=a))if(0===a.length)t.length&&(t=f(e.parentNode,t,[],r));else switch(typeof a[0]){case"string":case"number":case"boolean":o({html:a});break;case"object":if(D(a[0])&&(a=a.concat.apply([],a)),Oe(a[0])){Promise.all(a).then(o);break}default:t=f(e.parentNode,t,a,r)}else"ELEMENT_NODE"in a?t=f(e.parentNode,t,11===a.nodeType?Ve.call(a.childNodes):[a],r):Oe(a)?a.then(o):"placeholder"in a?De(a,o):"text"in a?o(String(a.text)):"any"in a?o(a.any):"html"in a?t=f(e.parentNode,t,Ve.call(O([].concat(a.html).join(""),s).childNodes),r):o("length"in a?Ve.call(a):I.invoke(a,o))}var c}},text:function(e){var t;return function n(r){var s;t!==r&&("object"==(s=typeof(t=r))&&r?Oe(r)?r.then(n):"placeholder"in r?De(r,n):n("text"in r?String(r.text):"any"in r?r.any:"html"in r?[].concat(r.html).join(""):"length"in r?Ve.call(r).join(""):I.invoke(r,n)):"function"==s?n(r(e)):e.textContent=null==r?"":r)}}}),Ze=function(t){var r,s,i,o,a=(r=(e.defaultView.navigator||{}).userAgent,/(Firefox|Safari)\/(\d+)/.test(r)&&!/(Chrom[eium]+|Android)\/(\d+)/.test(r)),c=!("raw"in t)||t.propertyIsEnumerable("raw")||!Object.isFrozen(t.raw);return a||c?(s={},i=function(e){for(var t=".",n=0;n<e.length;n++)t+=e[n].length+"."+e[n];return s[t]||(s[t]=e)},Ze=c?i:(o=new n,function(e){return o.get(e)||(n=i(t=e),o.set(t,n),n);var t,n})):Ke=!0,Ye(t)};function Ye(e){return Ke?e:Ze(e)}function Xe(e){for(var t=arguments.length,n=[Ye(e)],r=1;r<t;)n.push(arguments[r++]);return n}var Qe=new n,et=function(e){var t,n,r;return function(){var s=Xe.apply(null,arguments);return r!==s[0]?(r=s[0],n=new Je(e),t=nt(n.apply(n,s))):n.apply(n,s),t}},tt=function(e,t){var n=t.indexOf(":"),r=Qe.get(e),s=t;return-1<n&&(s=t.slice(n+1),t=t.slice(0,n)||"html"),r||Qe.set(e,r={}),r[s]||(r[s]=et(t))},nt=function(e){var t=e.childNodes,n=t.length;return 1===n?t[0]:n?new Ae(t):e},rt=new n;function st(){var e=rt.get(this),t=Xe.apply(null,arguments);return e&&e.template===t[0]?e.tagger.apply(null,t):function(e){var t=new Je(We in this?"svg":"html");rt.set(this,{tagger:t,template:e}),this.textContent="",this.appendChild(t.apply(null,arguments))}.apply(this,t),this}var it,ot,at,ct,lt=I.define,ut=Je.prototype;function dt(e){return arguments.length<2?null==e?et("html"):"string"==typeof e?dt.wire(null,e):"raw"in e?et("html")(e):"nodeType"in e?dt.bind(e):tt(e,"html"):("raw"in e?et("html"):dt.wire).apply(null,arguments)}return dt.Component=v,dt.bind=function(e){return st.bind(e)},dt.define=lt,dt.diff=f,(dt.hyper=dt).observe=He,dt.tagger=ut,dt.wire=function(e,t){return null==e?et(t||"html"):tt(e,t||"html")},dt._={WeakMap:n,WeakSet:u},it=et,ot=new n,at=Object.create,ct=function(e,t){var n={w:null,p:null};return t.set(e,n),n},Object.defineProperties(v,{for:{configurable:!0,value:function(e,t){return function(e,t,r,s){var i,o,a,c=t.get(e)||ct(e,t);switch(typeof s){case"object":case"function":var l=c.w||(c.w=new n);return l.get(s)||(i=l,o=s,a=new e(r),i.set(o,a),a);default:var u=c.p||(c.p=at(null));return u[s]||(u[s]=new e(r))}}(this,ot.get(e)||(r=e,s=new w,ot.set(r,s),s),e,null==t?"default":t);var r,s}}}),Object.defineProperties(v.prototype,{handleEvent:{value:function(e){var t=e.currentTarget;this["getAttribute"in t&&t.getAttribute("data-call")||"on"+e.type](e)}},html:k("html",it),svg:k("svg",it),state:k("state",(function(){return this.defaultState})),defaultState:{get:function(){return{}}},dispatch:{value:function(e,t){var n=this._wire$;if(n){var r=new b(e,{bubbles:!0,cancelable:!0,detail:t});return r.component=this,(n.dispatchEvent?n:n.firstChild).dispatchEvent(r)}return!1}},setState:{value:function(e,t){var n=this.state,r="function"==typeof e?e.call(this,n):e;for(var s in r)n[s]=r[s];return!1!==t&&this.render(),this}}}),dt}(document);const{Component:sr,bind:ir,define:or,diff:ar,hyper:cr,wire:lr}=rr,ur=rr,dr=R,pr=Zn,hr=class{constructor(e){const{type:t,subtype:n,params:r}=function(e){if(e=e.trim(),!e)throw new TypeError("Invalid input.");let t="",n="",r="",s=null,i=new Map,o="type",a=Array.from(e);for(let e=0;e<a.length;e++){const c=a[e];switch(o){case"type":if("/"===c){o="subtype";continue}t+=c;break;case"subtype":if(";"===c){o="param-start";continue}n+=c;break;case"param-start":if(xt.test(c)||";"===c)continue;r+=c,o="param-name";break;case"param-name":if("="===c||";"===c){if("="===c){o="param-value",s=null;continue}i.set(r.toLowerCase(),null),r="";continue}r+=c;break;case"param-value":if('"'==c){o="collect-quoted-string";continue}if(";"===c){s=s.trimEnd(),o="param-start",St(i,r,s),r="";continue}s="string"==typeof s?s+c:c;break;case"collect-quoted-string":if('"'===c){St(i,r,s),o="ignore-input-until-next-param",r="",s=null;continue}if("\\"===c)continue;s="string"==typeof s?s+c:c;break;case"ignore-input-until-next-param":if(";"!==c)continue;o="param-start";break;default:throw new Error(`State machine error - unknown parser mode: ${o} `)}}r&&St(i,r,s);if(""===t.trim()||!$t.test(t))throw new TypeError("Invalid type");if(""===n.trim()||!$t.test(n))throw new TypeError("Invalid subtype");return{type:t,subtype:n,params:Object.fromEntries(i.entries())}}(e);this.type=t.trim().toLowerCase(),this.subtype=n.trimEnd().toLowerCase(),this.parameters=new Map(Object.entries(r))}get essence(){return`${this.type}/${this.subtype}`}toString(){return function(e){const{parameters:t,essence:n}=e;if(!t.size)return n;let r=";";for(const[e,n]of t.entries())r+=e,null!==n?$t.test(n)?r+=`=${n}`:r+=`="${n}"`:r+='=""',r+=";";return e.essence+r.slice(0,-1)}(this)}},fr=nr,mr=Ge,gr=class{lexer;curToken=kt;peekToken=kt;getCurToken(){return this.curToken}getPeekToken(){return this.peekToken}constructor(e){this.lexer=new vt(e),this._nextToken(),this._nextToken()}parse(){const e=[];for(;this.getCurToken().type!==He.EOF;){const t=this._parseRule();e.push(t)}const t=new Xe(e);return t.separator=this._nextToken(),t.setChildrenParent(),this._convertGroupDefinitions(t),t}_parseRule(){const e=this._parseTypename(!0,null),t=this._nextToken();let n;if(t.type===He.ASSIGN||t.type===He.GCHOICEALT){const r=this._parseGroupEntry();n=new Qe(e,t,r)}else{if(t.type!==He.TCHOICEALT)throw this._parserError(`expected assignment (\`=\`, \`/=\`, \`//=\`) after \`${e.serialize().trim()}\`, got \`${t.serialize().trim()}\``);{const r=this._parseType();if(!(r instanceof ht))throw new Error("Expected Type instance");n=new Qe(e,t,r)}}return n}_parseGroupEntry(){const e=this._parseOccurrence(),t=this._parseType(!0);let n;if(t instanceof pt){const r=this._parseType(!1);if(!(r instanceof ht))throw new Error("Expected Type instance");n=new et(e,t,r)}else n=new et(e,null,t);return n}_parseType(e=!1){const t=[];let n=this._parseType1(e);if(t.push(n),e&&this.getCurToken().type===He.CARET){const e=[];if(e.push(this._nextToken()),this.getCurToken().type!==He.ARROWMAP)throw this._parserError("expected arrow map (`=>`), got `#{(this.getCurToken().serialize() + this.getPeekToken().serialize()).trim()}`");e.push(this._nextToken());return new pt(n,!0,!1,e)}if(e&&this.getCurToken().type===He.ARROWMAP){return new pt(n,!1,!1,[this._nextToken()])}if(e&&this.getCurToken().type===He.COLON){return new pt(n,!0,!0,[this._nextToken()])}for(;this.getCurToken().type===He.TCHOICE;)n.separator=this._nextToken(),n=this._parseType1(),t.push(n);return new ht(t)}_parseType1(e=!1){const t=this._parseType2(e);let n;if(this.getCurToken().type===He.INCLRANGE||this.getCurToken().type===He.EXCLRANGE){const e=this._nextToken(),r=this._parseType2();if(!(t instanceof at||t instanceof ct))throw this._parserError(`expected range min to be a value or a typename, got \`${t.serialize().trim()}\``);if(!(r instanceof at||r instanceof ct))throw this._parserError(`expected range max to be a value or a typename, got \`${r.serialize().trim()}\``);n=new ut(t,r,e)}else if(this.getCurToken().type===He.CTLOP){const e=this._nextToken(),r=this._parseType2();n=new dt(t,e,r)}else n=t;return n}_parseType2(e=!1){let t;if(this.getCurToken().type===He.LPAREN){const n=this._nextToken();if(e)t=this._parseGroup(!1);else{const e=this._parseType();if(!(e instanceof ht))throw new Error("Expected Type instance");t=e}if(t.openToken=n,this.getCurToken().type!==He.RPAREN)throw this._parserError(`expected right parenthesis, got \`${this.getCurToken().serialize().trim()}\``);t.closeToken=this._nextToken()}else if(this.getCurToken().type===He.LBRACE){const e=this._nextToken();if(t=this._parseGroup(!0),t.openToken=e,this.getCurToken().type!==He.RBRACE)throw this._parserError(`expected right brace, got \`${this.getCurToken().serialize()}\``);t.closeToken=this._nextToken()}else if(this.getCurToken().type===He.LBRACK){const e=this._nextToken(),n=this._parseGroup(!1);if(t=new rt(n.groupChoices),t.openToken=e,this.getCurToken().type!==He.RBRACK)throw this._parserError(`expected right bracket, got \`${this.getCurToken().serialize().trim()}\``);t.closeToken=this._nextToken()}else if(this.getCurToken().type===He.TILDE){const e=this._nextToken();t=this._parseTypename(!1,e)}else if(this.getCurToken().type===He.AMPERSAND){const e=this._nextToken();if(this.getCurToken().type===He.LPAREN){const e=this._nextToken(),n=this._parseGroup(!1);if(n.openToken=e,this.getCurToken().type!==He.RPAREN)throw this._parserError(`expected right parenthesis, got \`${this.getCurToken().serialize().trim()}\``);n.closeToken=this._nextToken(),t=new lt(n)}else{const e=this._parseTypename(!1,null);t=new lt(e)}t.setComments(e)}else if(this.getCurToken().type===He.HASH){const e=this._nextToken();if(this.getCurToken().type!==He.NUMBER&&this.getCurToken().type!==He.FLOAT||this.getCurToken().startWithSpaces())t=new it;else{const e=this._nextToken();if(e.literal.length>1&&("."!==e.literal[1]||e.literal.includes("e")))throw this._parserError(`expected data item after "#" to match \`DIGIT ["." uint]\`, got \`${this.getCurToken().serialize().trim()}\``);if("6"!==e.literal[0]||this.getCurToken().type!==He.LPAREN||this.getCurToken().startWithSpaces())t=new it(e);else{const n=this._parseType2();if(!(n instanceof ht))throw new Error("Expected Type instance");t=new it(e,n)}}t.setComments(e)}else if(this.getCurToken().type===He.IDENT)t=this._parseTypename(!1,null);else if(this.getCurToken().type===He.STRING){const e=this._nextToken();t=new at(e.literal,"text"),t.setComments(e)}else if(this.getCurToken().type===He.BYTES){const e=this._nextToken();t=new at(e.literal,"bytes"),t.setComments(e)}else if(this.getCurToken().type===He.HEX){const e=this._nextToken();t=new at(e.literal,"hex"),t.setComments(e)}else if(this.getCurToken().type===He.BASE64){const e=this._nextToken();t=new at(e.literal,"base64"),t.setComments(e)}else if(this.getCurToken().type===He.NUMBER){const e=this._nextToken();t=new at(e.literal,"number"),t.setComments(e)}else{if(this.getCurToken().type!==He.FLOAT)throw this._parserError(`invalid type2 production, got \`${this.getCurToken().serialize().trim()}\``);{const e=this._nextToken();t=new at(e.literal,"number"),t.setComments(e)}}return t}_parseGroup(e=!1){const t=[];for(;this.getCurToken().type!==He.RPAREN&&this.getCurToken().type!==He.RBRACE&&this.getCurToken().type!==He.RBRACK;){const e=[];for(;this.getCurToken().type!==He.GCHOICE;){const t=this._parseGroupEntry();if(e.push(t),this.getCurToken().type===He.COMMA&&(t.separator=this._nextToken()),this.getCurToken().type===He.RPAREN||this.getCurToken().type===He.RBRACE||this.getCurToken().type===He.RBRACK)break}const n=new st(e);if(t.push(n),this.getCurToken().type===He.RPAREN||this.getCurToken().type===He.RBRACE||this.getCurToken().type===He.RBRACK)break;n.separator=this._nextToken()}let n;return n=e?new nt(t):new tt(t),n}_parseOccurrence(){const e=[];let t=null;if(this.getCurToken().type===He.QUEST||this.getCurToken().type===He.ASTERISK||this.getCurToken().type===He.PLUS){const n=this.getCurToken().type===He.PLUS?1:0;let r=1/0;this.getCurToken().type===He.ASTERISK&&this.getPeekToken().type===He.NUMBER&&yt(this.getPeekToken().literal)&&!this.getPeekToken().startWithSpaces()&&(e.push(this._nextToken()),r=parseInt(this.getCurToken().literal)),e.push(this._nextToken()),t=new ot(n,r,e)}else if(this.getCurToken().type===He.NUMBER&&yt(this.getCurToken().literal)&&this.getPeekToken().type===He.ASTERISK&&!this.getPeekToken().startWithSpaces()){const n=parseInt(this.getCurToken().literal);let r=1/0;e.push(this._nextToken()),e.push(this._nextToken()),this.getCurToken().type===He.NUMBER&&yt(this.getCurToken().literal)&&!this.getCurToken().startWithSpaces()&&(r=parseInt(this.getCurToken().literal),e.push(this._nextToken())),t=new ot(n,r,e)}return t}_parseTypename(e=!1,t=null){if(this.getCurToken().type!==He.IDENT)throw this._parserError(`expected group identifier, got \`${this.getCurToken().serialize().trim()}\``);const n=this._nextToken();let r;r=e?this._parseGenericParameters():this._parseGenericArguments();const s=new ct(n.literal,t,r);return s.setComments(n),s}_parseGenericParameters(){if(this.getCurToken().type!==He.LT||this.getCurToken().startWithSpaces())return null;const e=this._nextToken(),t=[];let n=this._parseTypename();for(t.push(n);this.getCurToken().type===He.COMMA;)n.separator=this._nextToken(),n=this._parseTypename(),t.push(n);const r=new ft(t);if(r.openToken=e,this.getCurToken().type!==He.GT)throw this._parserError(`expected \`>\` character to end generic production, got \`${this.getCurToken().serialize().trim()}\``);return r.closeToken=this._nextToken(),r}_parseGenericArguments(){if(this.getCurToken().type!==He.LT||this.getCurToken().startWithSpaces())return null;const e=this._nextToken(),t=[];let n=this._parseType1();for(t.push(n);this.getCurToken().type===He.COMMA;)n.separator=this._nextToken(),n=this._parseType1(),t.push(n);const r=new mt(t);if(r.openToken=e,this.getCurToken().type!==He.GT)throw this._parserError(`expected \`>\` character to end generic production, got \`${this.getCurToken().serialize().trim()}\``);return r.closeToken=this._nextToken(),r}_convertGroupDefinitions(e){const t=new Set,n=new Set,r=new Set,s=e=>{if(e instanceof at||e instanceof nt||e instanceof rt||e instanceof lt||e instanceof it)return"type";if(e instanceof ut)return s(e.min);if(e instanceof dt)return s(e.type);if(e instanceof ct){const t=e.name;if(n.has(t)||this._isPreludeType(t))return"type";if(r.has(t))return"group"}return"unknown"};for(const s of e.rules)t.add(s.name.name),0===n.size&&n.add(s.name.name),s.type instanceof ht?n.add(s.name.name):(s.assign.type===He.TCHOICEALT&&n.add(s.name.name),s.assign.type===He.GCHOICEALT&&r.add(s.name.name),s.type.type.types.length>1&&null===s.type.type.openToken&&n.add(s.name.name),null!==s.type.occurrence&&r.add(s.name.name),null!==s.type.key&&r.add(s.name.name));const i=e=>{e instanceof et&&null!==e.key&&e.key.type instanceof ct&&!e.key.hasColon&&t.has(e.key.type.name)&&n.add(e.key.type.name);for(const t of e.getChildren())i(t)};i(e);let o=!0;for(;o;){o=!1;for(const i of e.rules)if(i.type instanceof ht)for(const e of i.type.types)e instanceof ct&&t.has(e.name)&&(n.has(e.name)||(o=!0,n.add(e.name)));else{if(n.has(i.name.name))for(const e of i.type.type.types)e instanceof ct&&t.has(e.name)&&(n.has(e.name)||(o=!0,n.add(e.name)));if(r.has(i.name.name))for(const e of i.type.type.types)e instanceof ct&&t.has(e.name)&&(r.has(e.name)||(o=!0,r.add(e.name)));if(i.assign.type===He.ASSIGN){const e=new Set(i.type.type.types.map((e=>s(e))));if(e.has("type")&&e.has("group"))throw new gt(`CDDL semantic error - rule \`${i.name.name}\` targets a mix of type and group rules`);e.has("type")?n.has(i.name.name)||(o=!0,n.add(i.name.name)):e.has("group")&&(r.has(i.name.name)||(o=!0,r.add(i.name.name)))}}}const a=[...n].filter((e=>r.has(e)));if(a.length>0){const e=a.join(", ");throw new gt(`CDDL semantic error - mix of type and group definitions for ${e}`)}for(const t of e.rules)if(!(t.type instanceof ht)&&n.has(t.name.name)){if(!t.type.isConvertibleToType())throw new gt(`CDDL semantic error - rule \`${t.name.name}\` is a type definition but uses a group entry`);t.type=t.type.type}}_isPreludeType(e){return["any","uint","nint","int","bstr","bytes","tstr","text","tdate","time","number","biguint","bignint","bigint","integer","unsigned","decfrac","bigfloat","eb64url","eb64legacy","eb16","encoded-cbor","uri","b64url","b64legacy","regexp","mime-message","cbor-any","float16","float32","float64","float16-32","float32-64","float","false","true","bool","nil","null","undefined"].includes(e)}_nextToken(){const e=this.curToken;return this.curToken=this.peekToken,this.peekToken=this.lexer.nextToken(),e}_parserError(e){const t=this.lexer.getLocation();return new gt(`CDDL syntax error - line ${t.line+1}: ${e}`)}},br=class{serializeToken(e,t){return e.serialize()}serializeValue(e,t,n,r){return e+t+n}serializeName(e,t){return e}markupFor(e){return[null,null]}},yr=Qe,wr=pt,vr=ft,kr=mt,$r=ht,xr=ot,Cr=/['\u2019]s$/,Sr=/-/g,_r=RegExp.escape??(e=>e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"));const Tr=new Intl.DateTimeFormat(["sv-SE"],{timeZone:"UTC",year:"numeric",month:"2-digit",day:"2-digit"}),Rr="en"===r||r.startsWith("en-")?"en-AU":r,Er=new Intl.DateTimeFormat(Rr,{timeZone:"UTC",year:"numeric",month:"long",day:"en-AU"===Rr?"2-digit":"numeric"}),Lr=".informative, .note, .issue, .example, .ednote, .practice, .introductory";function Ar(e){const t=new URL(e.href,document.baseURI),n=document.createElement("link");let{href:r}=t;switch(n.rel=e.hint,n.rel){case"dns-prefetch":case"preconnect":r=t.origin,(e.corsMode||t.origin!==document.location.origin)&&(n.crossOrigin=e.corsMode||"anonymous");break;case"preload":"as"in e&&n.setAttribute("as",e.as||""),e.corsMode&&(n.crossOrigin=e.corsMode)}return n.href=r,e.dontRemove||n.classList.add("removeOnSave"),n}function Pr(e){e.querySelectorAll(".remove, script[data-requiremodule]").forEach((e=>{e.remove()}))}function Nr(e,t="long"){const n=new Intl.ListFormat(r,{style:t,type:e});return(e,t)=>{let r=0;return n.formatToParts(e).map((({type:n,value:s})=>"element"===n&&t?t(s,r++,e):s))}}const Ir=Nr("conjunction"),Dr=Nr("disjunction");function Or(e,t){return Ir(e,t).join("")}function jr(e,t){return Dr(e,t).join("")}function zr(e){return e.replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/</g,"&lt;")}function Mr(e){return e.trim().replace(/\s+/g," ")}function Ur(e,t=r){return t=t.toLowerCase(),new Proxy(e,{get(e,n){const r=qr(e,n,t)||e.en[n];if(!r)throw new Error(`No l10n data for key: "${n}"`);return r}})}function qr(e,t,n=r){n=n.toLowerCase();const s=n.match(/^(\w{2,3})-.+$/)?.[1]??"";return e[n]?.[t]||e[s]?.[t]}function Wr(e,t=""){return Tr.format(e).replace(Sr,t)}function Fr(e,t,...n){const r=[this,e,...n];if(t){const n=t.split(/\s+/);for(const t of n){const n=window[t];if(n)try{e=n.apply(this,r)}catch(e){ls(`call to \`${t}()\` failed with: ${e}.`,"utils/runTransforms",{hint:"See developer console for stack trace.",cause:e})}}}return e}async function Br(e,t=864e5){const n=new Request(e),r=new URL(n.url);let s,i;if("caches"in window)try{if(s=await caches.open(r.origin),i=await s.match(n),i&&new Date(i.headers.get("Expires")??"")>new Date)return i}catch(e){console.error("Failed to use Cache API.",e)}const o=await fetch(n);if(!o.ok&&i)return console.warn(`Returning a stale cached response for ${r}`),i;if(s&&o.ok){const e=o.clone(),r=new Headers(o.headers),i=new Date(Date.now()+t);r.set("Expires",i.toISOString());const a=new Response(await e.blob(),{headers:r});await s.put(n,a).catch(console.error)}return o}function Hr(e,t=(e=>e)){const n=e.map(t),r=n.slice(0,-1).map((e=>ur`${e}, `));return ur`${r}${n[n.length-1]}`}function Gr(e,t){return[].concat(Ir(e,t)).map((e=>"string"==typeof e?ur`${e}`:e))}function Vr(e,t=""){const n=function(e){let t=0;for(const n of e)t=Math.imul(31,t)+n.charCodeAt(0)|0;return String(t)}(Mr(e.textContent));return Kr(e,t,n)}function Jr(e,t=!1){return(t?e:e.toLowerCase()).trim().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\W+/gim,"-").replace(/^-+/,"").replace(/-+$/,"")}function Kr(e,t="",n="",r=!1){if(e.id)return e.id;n||(n=(e.title?e.title:e.textContent).trim());let s=Jr(n,r);if(s?!/\.$/.test(s)&&/^[a-z]/i.test(t||s)||(s=`x${s}`):s="generatedID",t&&(s=`${t}-${s}`),e.ownerDocument.getElementById(s)){let t=0,n=`${s}-${t}`;for(;e.ownerDocument.getElementById(n);)t+=1,n=`${s}-${t}`;s=n}return e.id=s,s}function Zr(e){const t=new Set,n="ltNodefault"in e.dataset?"":Mr(e.textContent),r=e.children[0];if(e.dataset.lt?e.dataset.lt.split("|").map((e=>Mr(e))).forEach((e=>t.add(e))):1===e.childNodes.length&&1===e.getElementsByTagName("abbr").length&&r&&r.title?t.add(r.title):'""'===e.textContent&&t.add("the-empty-string"),t.add(n),t.delete(""),e.dataset.localLt){e.dataset.localLt.split("|").forEach((e=>t.add(Mr(e))))}return[...t]}function Yr(e,t,n={copyAttributes:!0}){if(e.localName===t)return e;const r=e.ownerDocument.createElement(t);if(n.copyAttributes)for(const{name:t,value:n}of e.attributes)r.setAttribute(t,n);return r.append(...e.childNodes),e.replaceWith(r),r}function Xr(e,t){const n=t.closest(Lr);let r=!1;if(n&&(r=!t.closest(".normative")||!n.querySelector(".normative")),e.startsWith("!")){if(r)return{type:"informative",illegal:!0};r=!1}else e.startsWith("?")&&(r=!0);return{type:r?"informative":"normative",illegal:!1}}function Qr(e,t){return t.append(...e.childNodes),e.appendChild(t),e}function es(e){const t=[];for(const n of function*(e){let t=e;for(;t.previousElementSibling;)t=t.previousElementSibling,yield t}(e))"section"===n.localName&&t.push(n);return t}function ts(e){const{previousSibling:t}=e;if(!t||t.nodeType!==Node.TEXT_NODE)return"";const n=(t.textContent??"").lastIndexOf("\n");if(-1===n)return"";const r=(t.textContent??"").slice(n+1);return/\S/.test(r)?"":r}class ns extends Set{constructor(e=[]){super();for(const t of e)this.add(t)}add(e){return this.has(e)||this.getCanonicalKey(e)?this:super.add(e)}has(e){return super.has(e)||[...this.keys()].some((t=>t.toLowerCase()===e.toLowerCase()))}delete(e){return super.has(e)?super.delete(e):super.delete(this.getCanonicalKey(e)??e)}getCanonicalKey(e){return super.has(e)?e:[...this.keys()].find((t=>t.toLowerCase()===e.toLowerCase()))}}function rs(e){const t=e.cloneNode(!0);return t.querySelectorAll("[id]").forEach((e=>e.removeAttribute("id"))),t.querySelectorAll("dfn").forEach((e=>{Yr(e,"span",{copyAttributes:!1})})),t.hasAttribute("id")&&t.removeAttribute("id"),ss(t),t}function ss(e){const t=document.createTreeWalker(e,NodeFilter.SHOW_COMMENT);for(const e of[...is(t)])e.remove()}function*is(e){for(;e.nextNode();)yield e.currentNode}class os extends Map{constructor(e=[]){return super(),e.forEach((([e,t])=>{this.set(e,t)})),this}set(e,t){return super.set(e.toLowerCase(),t),this}get(e){return super.get(e.toLowerCase())}has(e){return super.has(e.toLowerCase())}delete(e){return super.delete(e.toLowerCase())}}class as extends Error{constructor(e,t,n){super(e,{...n.cause&&{cause:n.cause}});const r=n.isWarning?"ReSpecWarning":"ReSpecError";Object.assign(this,{message:e,plugin:t,name:r,...n}),n.elements&&n.elements.forEach((t=>function(e,t,n){e.classList.add("respec-offending-element"),e.hasAttribute("title")||e.setAttribute("title",n||t),e.id||Kr(e,"respec-offender")}(t,e,n.title)))}toJSON(){const{message:e,name:t,stack:n}=this,{plugin:r,hint:s,elements:i,title:o,details:a}=this;return{message:e,name:t,plugin:r,hint:s,elements:i,title:o,details:a,stack:n,...this.cause instanceof Error&&{cause:{name:this.cause.name,message:this.cause.message,stack:this.cause.stack}}}}}function cs(e,t,n={}){const r={...n,isWarning:!1};ys("error",new as(e,t,r))}function ls(e,t,n={}){const r={...n,isWarning:!0};ys("warn",new as(e,t,r))}function us(e){return{amendConfiguration:e=>ys("amend-user-config",e),showError:(t,n)=>cs(t,e,n),showWarning:(t,n)=>ls(t,e,n)}}function ds(e){return e?`\`${e}\``:""}function ps(e,{quotes:t}={quotes:!1}){return jr(e,t?e=>ds(fs(e)):ds)}function hs(e,{quotes:t}={quotes:!1}){return Or(e,t?e=>ds(fs(e)):ds)}function fs(e){return String(e)?`"${e}"`:""}function ms(e,...t){return gs(e.map(((e,n)=>{const r=t[n];if(!r)return e;if(!r.startsWith("[")&&!r.endsWith("]"))return e+r;const[s,i]=r.slice(1,-1).split("|");if(i){return`${e}[${s}](${new URL(i,"https://respec.org/docs/")})`}return`${e}[\`${s}\`](https://respec.org/docs/#${s})`})).join(""))}function gs(e){if(!e)return e;const t=e.trimEnd().split("\n");for(;t.length&&!t[0].trim();)t.shift();const n=t.filter((e=>e.trim())).map((e=>e.search(/[^\s]/))),r=Math.min(...n);return t.map((e=>e.slice(r))).join("\n")}const bs=new EventTarget;function ys(e,t){if(bs.dispatchEvent(new CustomEvent(e,{detail:t})),window.parent===window.self)return;const n=String(JSON.stringify(t?.stack||t));window.parent.postMessage({topic:e,args:n},window.parent.location.origin)}function ws(e,t,n={once:!1}){bs.addEventListener(e,(async n=>{try{await t(n.detail)}catch(t){const n=t;cs(`Error in handler for topic "${e}": ${n.message}`,`sub:${e}`,{cause:n})}}),n)}const vs=["githubToken","githubUser"];const ks=new Map([["text/html","html"],["application/xml","xml"]]);function $s(e,t=document){const n=ks.get(e);if(!n){const t=[...ks.values()].join(", ");throw new TypeError(`Invalid format: ${e}. Expected one of: ${t}.`)}const r=xs(n,t);return`data:${e};charset=utf-8,${encodeURIComponent(r)}`}function xs(e,t){const n=t.cloneNode(!0);!function(e){const{head:t,body:n,documentElement:r}=e;ss(e),e.querySelectorAll(".removeOnSave, #toc-nav").forEach((e=>e.remove())),n.classList.remove("toc-sidebar","toc-inline"),Pr(r);const s=e.createDocumentFragment(),i=e.querySelector("meta[name='viewport']");i&&t.firstChild!==i&&s.appendChild(i);const o=e.querySelector("meta[charset], meta[content*='charset=']")||ur`<meta charset="utf-8" />`;s.appendChild(o);const a=`ReSpec ${window.respecVersion||"Developer Channel"}`,c=ur`
1
+ window.respecVersion="37.3.4",function(){"use strict";var e="undefined"!=typeof document?document.currentScript:null;const t=document.documentElement;t?.hasAttribute("lang")||(t.lang="en",t.hasAttribute("dir")||(t.dir="ltr"));const n={},r=t?.lang??"en";var s=Object.freeze({__proto__:null,l10n:n,lang:r,name:"core/l10n",run:function(e){e.l10n=n[r]||n.en}});const i=(e,t)=>t.some((t=>e instanceof t));let o,a;const c=new WeakMap,l=new WeakMap,u=new WeakMap;let d={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return c.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return m(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function p(e){d=e(d)}function h(e){return(a||(a=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(g(this),t),m(this.request)}:function(...t){return m(e.apply(g(this),t))}}function f(e){return"function"==typeof e?h(e):(e instanceof IDBTransaction&&function(e){if(c.has(e))return;const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("complete",s),e.removeEventListener("error",i),e.removeEventListener("abort",i)},s=()=>{t(),r()},i=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",s),e.addEventListener("error",i),e.addEventListener("abort",i)}));c.set(e,t)}(e),i(e,o||(o=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,d):e)}function m(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("success",s),e.removeEventListener("error",i)},s=()=>{t(m(e.result)),r()},i=()=>{n(e.error),r()};e.addEventListener("success",s),e.addEventListener("error",i)}));return u.set(t,e),t}(e);if(l.has(e))return l.get(e);const t=f(e);return t!==e&&(l.set(e,t),u.set(t,e)),t}const g=e=>u.get(e);const b=["get","getKey","getAll","getAllKeys","count"],y=["put","add","delete","clear"],w=new Map;function v(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(w.get(t))return w.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,s=y.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!s&&!b.includes(n))return;const i=async function(e,...t){const i=this.transaction(e,s?"readwrite":"readonly");let o=i.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),s&&i.done]))[0]};return w.set(t,i),i}p((e=>({...e,get:(t,n,r)=>v(t,n)||e.get(t,n,r),has:(t,n)=>!!v(t,n)||e.has(t,n)})));const k=["continue","continuePrimaryKey","advance"],$={},x=new WeakMap,C=new WeakMap,S={get(e,t){if(!k.includes(t))return e[t];let n=$[t];return n||(n=$[t]=function(...e){x.set(this,C.get(this)[t](...e))}),n}};async function*_(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const n=new Proxy(t,S);for(C.set(n,t),u.set(n,g(t));t;)yield n,t=await(x.get(n)||t.continue()),x.delete(n)}function T(e,t){return t===Symbol.asyncIterator&&i(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&i(e,[IDBIndex,IDBObjectStore])}p((e=>({...e,get:(t,n,r)=>T(t,n)?_:e.get(t,n,r),has:(t,n)=>T(t,n)||e.has(t,n)})));var R=Object.freeze({__proto__:null,deleteDB:function(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),m(n).then((()=>{}))},openDB:function(e,t,{blocked:n,upgrade:r,blocking:s,terminated:i}={}){const o=indexedDB.open(e,t),a=m(o);return r&&o.addEventListener("upgradeneeded",(e=>{r(m(o.result),e.oldVersion,e.newVersion,m(o.transaction),e)})),n&&o.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),a.then((e=>{i&&e.addEventListener("close",(()=>i())),s&&e.addEventListener("versionchange",(e=>s(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),a},unwrap:g,wrap:m});function E(e,t,n,r,s,{level:i="error",autofix:o,ruleName:a}={}){function c(n){return n>0?e.slice(t,t+n):e.slice(Math.max(t+n,0),t)}function l(n,{precedes:r}={}){const s=n.map((e=>e.trivia+e.value)).join(""),i=e[t];return"eof"===i.type?s:r?s+i.trivia:s.slice(i.trivia.length)}const u="eof"!==e[t].type?e[t].line:e.length>1?e[t-1].line:1,d=function(e){const t=e.split("\n");return t[t.length-1]}(l(c(-5),{precedes:!0})),p=c(5),h=l(p),f=d+h.split("\n")[0]+"\n"+(" ".repeat(d.length)+"^"),m="Syntax"===s?"since":"inside",g=`${s} error at line ${u}${e.name?` in ${e.name}`:""}${n&&n.name?`, ${m} \`${n.partial?"partial ":""}${function(e){const t=[e];for(;e&&e.parent;){const{parent:n}=e;t.unshift(n),e=n}return t.map((e=>function(e,t){let n=e;return t&&(n+=` ${t}`),n}(e.type,e.name))).join(" -> ")}(n)}\``:""}:\n${f}`;return{message:`${g} ${r}`,bareMessage:r,context:g,line:u,sourceName:e.name,level:i,ruleName:a,autofix:o,input:h,tokens:p}}function L(e,t,n,r){return E(e,t,n,r,"Syntax")}function A(e,t,n,r,s={}){return s.ruleName=n,E(t.source,e.index,t,r,"Validation",s)}class P{constructor({source:e,tokens:t}){Object.defineProperties(this,{source:{value:e},tokens:{value:t,writable:!0},parent:{value:null,writable:!0},this:{value:this}})}toJSON(){const e={type:void 0,name:void 0,inheritance:void 0};let t=this;for(;t!==Object.prototype;){const n=Object.getOwnPropertyDescriptors(t);for(const[t,r]of Object.entries(n))(r.enumerable||r.get)&&(e[t]=this[t]);t=Object.getPrototypeOf(t)}return e}}function N(e,t,{useNullableInner:n}={}){if(!e.union){const r=t.unique.get(e.idlType);if(!r)return;if("typedef"===r.type){const{typedefIncludesDictionary:n}=t.cache;if(n.has(r))return n.get(r);t.cache.typedefIncludesDictionary.set(r,void 0);const s=N(r.idlType,t);if(t.cache.typedefIncludesDictionary.set(r,s),s)return{reference:e,dictionary:s.dictionary}}if("dictionary"===r.type&&(n||!e.nullable))return{reference:e,dictionary:r}}for(const n of e.subtype){const e=N(n,t);if(e)return n.union?e:{reference:n,dictionary:e.dictionary}}}function I(e,t){if(t.cache.dictionaryIncludesRequiredField.has(e))return t.cache.dictionaryIncludesRequiredField.get(e);t.cache.dictionaryIncludesRequiredField.set(e,void 0);let n=e.members.some((e=>e.required));if(!n&&e.inheritance){const r=t.unique.get(e.inheritance);r?I(r,t)&&(n=!0):n=!0}return t.cache.dictionaryIncludesRequiredField.set(e,n),n}class D extends Array{constructor({source:e,tokens:t}){super(),Object.defineProperties(this,{source:{value:e},tokens:{value:t},parent:{value:null,writable:!0}})}}class O extends P{static parser(e,t){return()=>{const n=e.consumeKind(t);if(n)return new O({source:e.source,tokens:{value:n}})}}get value(){return ee(this.tokens.value.value)}write(e){return e.ts.wrap([e.token(this.tokens.value),e.token(this.tokens.separator)])}}class j extends O{static parse(e){const t=e.consumeKind("eof");if(t)return new j({source:e.source,tokens:{value:t}})}get type(){return"eof"}}function z(e,t){return te(e,{parser:O.parser(e,t),listName:t+" list"})}const M=["identifier","decimal","integer","string"],U=new Map([...["NoInterfaceObject","LenientSetter","LenientThis","TreatNonObjectAsNull","Unforgeable"].map((e=>[e,`Legacy${e}`])),["NamedConstructor","LegacyFactoryFunction"],["OverrideBuiltins","LegacyOverrideBuiltIns"],["TreatNullAs","LegacyNullToEmptyString"]]);function q(e){for(const t of M){const n=z(e,t);if(n.length)return n}e.error("Expected identifiers, strings, decimals, or integers but none found")}class W extends P{static parse(e){const t={assign:e.consume("=")},n=pe(new W({source:e.source,tokens:t}));if(n.list=[],t.assign){if(t.asterisk=e.consume("*"),t.asterisk)return n.this;t.secondaryName=e.consumeKind(...M)}return t.open=e.consume("("),t.open?(n.list=n.rhsIsList?q(e):ie(e),t.close=e.consume(")")||e.error("Unexpected token in extended attribute argument list")):t.assign&&!t.secondaryName&&e.error("No right hand side to extended attribute assignment"),n.this}get rhsIsList(){return this.tokens.assign&&!this.tokens.asterisk&&!this.tokens.secondaryName}get rhsType(){return this.rhsIsList?this.list[0].tokens.value.type+"-list":this.tokens.asterisk?"*":this.tokens.secondaryName?this.tokens.secondaryName.type:null}write(e){const{rhsType:t}=this;return e.ts.wrap([e.token(this.tokens.assign),e.token(this.tokens.asterisk),e.reference_token(this.tokens.secondaryName,this.parent),e.token(this.tokens.open),...this.list.map((n=>"identifier-list"===t?e.identifier(n,this.parent):n.write(e))),e.token(this.tokens.close)])}}class F extends P{static parse(e){const t=e.consumeKind("identifier");if(t)return new F({source:e.source,tokens:{name:t},params:W.parse(e)})}constructor({source:e,tokens:t,params:n}){super({source:e,tokens:t}),n.parent=this,Object.defineProperty(this,"params",{value:n})}get type(){return"extended-attribute"}get name(){return this.tokens.name.value}get rhs(){const{rhsType:e,tokens:t,list:n}=this.params;if(!e)return null;return{type:e,value:this.params.rhsIsList?n:this.params.tokens.secondaryName?ee(t.secondaryName.value):null}}get arguments(){const{rhsIsList:e,list:t}=this.params;return!t||e?[]:t}*validate(e){const{name:t}=this;if("LegacyNoInterfaceObject"===t){const e="`[LegacyNoInterfaceObject]` extended attribute is an undesirable feature that may be removed from Web IDL in the future. Refer to the [relevant upstream PR](https://github.com/whatwg/webidl/pull/609) for more information.";yield A(this.tokens.name,this,"no-nointerfaceobject",e,{level:"warning"})}else if(U.has(t)){const e=`\`[${t}]\` extended attribute is a legacy feature that is now renamed to \`[${U.get(t)}]\`. Refer to the [relevant upstream PR](https://github.com/whatwg/webidl/pull/870) for more information.`;yield A(this.tokens.name,this,"renamed-legacy",e,{level:"warning",autofix:(n=this,()=>{const{name:e}=n;n.tokens.name.value=U.get(e),"TreatNullAs"===e&&(n.params.tokens={})})})}var n;for(const t of this.arguments)yield*t.validate(e)}write(e){return e.ts.wrap([e.ts.trivia(this.tokens.name.trivia),e.ts.extendedAttribute(e.ts.wrap([e.ts.extendedAttributeReference(this.name),this.params.write(e)])),e.token(this.tokens.separator)])}}class B extends D{static parse(e){const t={};t.open=e.consume("[");const n=new B({source:e.source,tokens:t});return t.open?(n.push(...te(e,{parser:F.parse,listName:"extended attribute"})),t.close=e.consume("]")||e.error("Expected a closing token for the extended attribute list"),n.length||(e.unconsume(t.close.index),e.error("An extended attribute list must not be empty")),e.probe("[")&&e.error("Illegal double extended attribute lists, consider merging them"),n):n}*validate(e){for(const t of this)yield*t.validate(e)}write(e){return this.length?e.ts.wrap([e.token(this.tokens.open),...this.map((t=>t.write(e))),e.token(this.tokens.close)]):""}}function H(e,t){const n=e.consume("?");n&&(t.tokens.nullable=n),e.probe("?")&&e.error("Can't nullable more than once")}function G(e,t){let n=function(e,t){const n=e.consume("FrozenArray","ObservableArray","Promise","async_sequence","sequence","record");if(!n)return;const r=pe(new V({source:e.source,tokens:{base:n}}));switch(r.tokens.open=e.consume("<")||e.error(`No opening bracket after ${n.value}`),n.value){case"Promise":{e.probe("[")&&e.error("Promise type cannot have extended attribute");const n=ae(e,t)||e.error("Missing Promise subtype");r.subtype.push(n);break}case"async_sequence":case"sequence":case"FrozenArray":case"ObservableArray":{const s=oe(e,t)||e.error(`Missing ${n.value} subtype`);r.subtype.push(s);break}case"record":{e.probe("[")&&e.error("Record key cannot have extended attribute");const n=e.consume(...me)||e.error(`Record key must be one of: ${me.join(", ")}`),s=new V({source:e.source,tokens:{base:n}});s.tokens.separator=e.consume(",")||e.error("Missing comma after record key type"),s.type=t;const i=oe(e,t)||e.error("Error parsing generic type record");r.subtype.push(s,i);break}}return r.idlType||e.error(`Error parsing generic type ${n.value}`),r.tokens.close=e.consume(">")||e.error(`Missing closing bracket after ${n.value}`),r.this}(e,t)||se(e);if(!n){const t=e.consumeKind("identifier")||e.consume(...me,...fe);if(!t)return;n=new V({source:e.source,tokens:{base:t}}),e.probe("<")&&e.error(`Unsupported generic type ${t.value}`)}return"Promise"===n.generic&&e.probe("?")&&e.error("Promise type cannot be nullable"),n.type=t||null,H(e,n),n.nullable&&"any"===n.idlType&&e.error("Type `any` cannot be made nullable"),n}let V=class extends P{static parse(e,t){return G(e,t)||function(e,t){const n={};if(n.open=e.consume("("),!n.open)return;const r=pe(new V({source:e.source,tokens:n}));for(r.type=t||null;;){const n=oe(e,t)||e.error("No type after open parenthesis or 'or' in union type");"any"===n.idlType&&e.error("Type `any` cannot be included in a union type"),"Promise"===n.generic&&e.error("Type `Promise` cannot be included in a union type"),r.subtype.push(n);const s=e.consume("or");if(!s)break;n.tokens.separator=s}return r.idlType.length<2&&e.error("At least two types are expected in a union type but found less"),n.close=e.consume(")")||e.error("Unterminated union type"),H(e,r),r.this}(e,t)}constructor({source:e,tokens:t}){super({source:e,tokens:t}),Object.defineProperty(this,"subtype",{value:[],writable:!0}),this.extAttrs=new B({source:e,tokens:{}})}get generic(){return this.subtype.length&&this.tokens.base?this.tokens.base.value:""}get nullable(){return Boolean(this.tokens.nullable)}get union(){return Boolean(this.subtype.length)&&!this.tokens.base}get idlType(){if(this.subtype.length)return this.subtype;return ee([this.tokens.prefix,this.tokens.base,this.tokens.postfix].filter((e=>e)).map((e=>e.value)).join(" "))}*validate(e){if(yield*this.extAttrs.validate(e),"BufferSource"===this.idlType)for(const e of[this.extAttrs,this.parent?.extAttrs])for(const t of e){if("AllowShared"!==t.name)continue;const n="`[AllowShared] BufferSource` is now replaced with AllowSharedBufferSource.";yield A(this.tokens.base,this,"migrate-allowshared",n,{autofix:J(this,t,e)})}if("void"===this.idlType){const e="`void` is now replaced by `undefined`. Refer to the [relevant GitHub issue](https://github.com/whatwg/webidl/issues/60) for more information.";yield A(this.tokens.base,this,"replace-void",e,{autofix:(t=this,()=>{t.tokens.base.value="undefined"})})}var t;const n=!this.union&&e.unique.get(this.idlType),r=this.union?this:n&&"typedef"===n.type?n.idlType:void 0;if(r&&this.nullable){const{reference:t}=N(r,e)||{};if(t){const e=(this.union?t:this).tokens.base,n="Nullable union cannot include a dictionary type.";yield A(e,this,"no-nullable-union-dict",n)}}else for(const t of this.subtype)yield*t.validate(e)}write(e){return e.ts.wrap([this.extAttrs.write(e),(()=>{if(this.union||this.generic)return e.ts.wrap([e.token(this.tokens.base,e.ts.generic),e.token(this.tokens.open),...this.subtype.map((t=>t.write(e))),e.token(this.tokens.close)]);const t=this.tokens.prefix||this.tokens.base,n=this.tokens.prefix?[this.tokens.prefix.value,e.ts.trivia(this.tokens.base.trivia)]:[],r=e.reference(e.ts.wrap([...n,this.tokens.base.value,e.token(this.tokens.postfix)]),{unescaped:this.idlType,context:this});return e.ts.wrap([e.ts.trivia(t.trivia),r])})(),e.token(this.tokens.nullable),e.token(this.tokens.separator)])}};function J(e,t,n){return()=>{const r=n.indexOf(t);n.splice(r,1),!n.length&&e.tokens.base.trivia.match(/^\s$/)&&(e.tokens.base.trivia=""),e.tokens.base.value="AllowSharedBufferSource"}}class K extends P{static parse(e){const t=e.consume("=");if(!t)return null;const n=ne(e)||e.consumeKind("string")||e.consume("null","[","{")||e.error("No value for default"),r=[n];if("["===n.value){const t=e.consume("]")||e.error("Default sequence value must be empty");r.push(t)}else if("{"===n.value){const t=e.consume("}")||e.error("Default dictionary value must be empty");r.push(t)}return new K({source:e.source,tokens:{assign:t},expression:r})}constructor({source:e,tokens:t,expression:n}){super({source:e,tokens:t}),n.parent=this,Object.defineProperty(this,"expression",{value:n})}get type(){return re(this.expression[0]).type}get value(){return re(this.expression[0]).value}get negative(){return re(this.expression[0]).negative}write(e){return e.ts.wrap([e.token(this.tokens.assign),...this.expression.map((t=>e.token(t)))])}}class Z extends P{static parse(e){const t=e.position,n={},r=pe(new Z({source:e.source,tokens:n}));return r.extAttrs=B.parse(e),n.optional=e.consume("optional"),r.idlType=oe(e,"argument-type"),r.idlType?(n.optional||(n.variadic=e.consume("...")),n.name=e.consumeKind("identifier")||e.consume(...ge),n.name?(r.default=n.optional?K.parse(e):null,r.this):e.unconsume(t)):e.unconsume(t)}get type(){return"argument"}get optional(){return!!this.tokens.optional}get variadic(){return!!this.tokens.variadic}get name(){return ee(this.tokens.name.value)}*validate(e){yield*this.extAttrs.validate(e),yield*this.idlType.validate(e);const t=N(this.idlType,e,{useNullableInner:!0});if(t)if(this.idlType.nullable){const e="Dictionary arguments cannot be nullable.";yield A(this.tokens.name,this,"no-nullable-dict-arg",e)}else if(this.optional){if(!this.default){const e="Optional dictionary arguments must have a default value of `{}`.";yield A(this.tokens.name,this,"dict-arg-default",e,{autofix:Y(this)})}}else if(this.parent&&!I(t.dictionary,e)&&function(e){const t=e.parent.arguments||e.parent.list,n=t.indexOf(e),r=t.slice(n+1).some((e=>!e.optional));return!r}(this)){const e="Dictionary argument must be optional if it has no required fields";yield A(this.tokens.name,this,"dict-arg-optional",e,{autofix:(n=this,()=>{const e=de(n.idlType);n.tokens.optional={...e,type:"optional",value:"optional"},e.trivia=" ",Y(n)()})})}var n}write(e){return e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.optional),e.ts.type(this.idlType.write(e)),e.token(this.tokens.variadic),e.name_token(this.tokens.name,{data:this}),this.default?this.default.write(e):"",e.token(this.tokens.separator)])}}function Y(e){return()=>{e.default=K.parse(new ve(" = {}"))}}class X extends P{static parse(e,{special:t,regular:n}={}){const r={special:t},s=pe(new X({source:e.source,tokens:r}));return t&&"stringifier"===t.value&&(r.termination=e.consume(";"),r.termination)?(s.arguments=[],s):(t||n||(r.special=e.consume("getter","setter","deleter")),s.idlType=ae(e)||e.error("Missing return type"),r.name=e.consumeKind("identifier")||e.consume("includes"),r.open=e.consume("(")||e.error("Invalid operation"),s.arguments=ie(e),r.close=e.consume(")")||e.error("Unterminated operation"),r.termination=e.consume(";")||e.error("Unterminated operation, expected `;`"),s.this)}get type(){return"operation"}get name(){const{name:e}=this.tokens;return e?ee(e.value):""}get special(){return this.tokens.special?this.tokens.special.value:""}*validate(e){if(yield*this.extAttrs.validate(e),!this.name&&["","static"].includes(this.special)){const e="Regular or static operations must have both a return type and an identifier.";yield A(this.tokens.open,this,"incomplete-op",e)}if(this.idlType){if("async_sequence"===this.idlType.generic){const e="async_sequence types cannot be returned by an operation.";yield A(this.idlType.tokens.base,this,"async-sequence-idl-to-js",e)}yield*this.idlType.validate(e)}for(const t of this.arguments)yield*t.validate(e)}write(e){const{parent:t}=this,n=this.idlType?[e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this,parent:t}),e.token(this.tokens.open),e.ts.wrap(this.arguments.map((t=>t.write(e)))),e.token(this.tokens.close)]:[];return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),this.tokens.name?e.token(this.tokens.special):e.token(this.tokens.special,e.ts.nameless,{data:this,parent:t}),...n,e.token(this.tokens.termination)]),{data:this,parent:t})}}class Q extends P{static parse(e,{special:t,noInherit:n=!1,readonly:r=!1}={}){const s=e.position,i={special:t},o=pe(new Q({source:e.source,tokens:i}));if(t||n||(i.special=e.consume("inherit")),"inherit"===o.special&&e.probe("readonly")&&e.error("Inherited attributes cannot be read-only"),i.readonly=e.consume("readonly"),r&&!i.readonly&&e.probe("attribute")&&e.error("Attributes must be readonly in this context"),i.base=e.consume("attribute"),i.base)return o.idlType=oe(e,"attribute-type")||e.error("Attribute lacks a type"),i.name=e.consumeKind("identifier")||e.consume("async","required")||e.error("Attribute lacks a name"),i.termination=e.consume(";")||e.error("Unterminated attribute, expected `;`"),o.this;e.unconsume(s)}get type(){return"attribute"}get special(){return this.tokens.special?this.tokens.special.value:""}get readonly(){return!!this.tokens.readonly}get name(){return ee(this.tokens.name.value)}*validate(e){if(yield*this.extAttrs.validate(e),yield*this.idlType.validate(e),["async_sequence","sequence","record"].includes(this.idlType.generic)){const e=`Attributes cannot accept ${this.idlType.generic} types.`;yield A(this.tokens.name,this,"attr-invalid-type",e)}{const{reference:t}=N(this.idlType,e)||{};if(t){const e=(this.idlType.union?t:this.idlType).tokens.base,n="Attributes cannot accept dictionary types.";yield A(e,this,"attr-invalid-type",n)}}if(this.readonly&&function(e,t){if(e.union)return!1;if(e.extAttrs.some((e=>"EnforceRange"===e.name)))return!0;const n=t.unique.get(e.idlType);return"typedef"===n?.type&&n.idlType.extAttrs.some((e=>"EnforceRange"===e.name))}(this.idlType,e)){const e=this.idlType.tokens.base,t="Readonly attributes cannot accept [EnforceRange] extended attribute.";yield A(e,this,"attr-invalid-type",t)}}write(e){const{parent:t}=this;return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.special),e.token(this.tokens.readonly),e.token(this.tokens.base),e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this,parent:t}),e.token(this.tokens.termination)]),{data:this,parent:t})}}function ee(e){return e.startsWith("_")?e.slice(1):e}function te(e,{parser:t,allowDangler:n,listName:r="list"}){const s=t(e);if(!s)return[];s.tokens.separator=e.consume(",");const i=[s];for(;s.tokens.separator;){const s=t(e);if(!s){n||e.error(`Trailing comma in ${r}`);break}if(s.tokens.separator=e.consume(","),i.push(s),!s.tokens.separator)break}return i}function ne(e){return e.consumeKind("decimal","integer")||e.consume("true","false","Infinity","-Infinity","NaN")}function re({type:e,value:t}){switch(e){case"decimal":case"integer":return{type:"number",value:t};case"string":return{type:"string",value:t.slice(1,-1)}}switch(t){case"true":case"false":return{type:"boolean",value:"true"===t};case"Infinity":case"-Infinity":return{type:"Infinity",negative:t.startsWith("-")};case"[":return{type:"sequence",value:[]};case"{":return{type:"dictionary"};default:return{type:t}}}function se(e){const{source:t}=e,n=function(){const n=e.consume("unsigned"),r=e.consume("short","long");if(r){const s=e.consume("long");return new V({source:t,tokens:{prefix:n,base:r,postfix:s}})}n&&e.error("Failed to parse integer type")}()||function(){const n=e.consume("unrestricted"),r=e.consume("float","double");if(r)return new V({source:t,tokens:{prefix:n,base:r}});n&&e.error("Failed to parse float type")}();if(n)return n;const r=e.consume("bigint","boolean","byte","octet","undefined");return r?new V({source:t,tokens:{base:r}}):void 0}function ie(e){return te(e,{parser:Z.parse,listName:"arguments list"})}function oe(e,t){const n=B.parse(e),r=V.parse(e,t);return r&&(pe(r).extAttrs=n),r}function ae(e,t){const n=V.parse(e,t||"return-type");if(n)return n;const r=e.consume("void");if(r){const t=new V({source:e.source,tokens:{base:r}});return t.type="return-type",t}}function ce(e){const t=e.consume("stringifier");if(!t)return;return Q.parse(e,{special:t})||X.parse(e,{special:t})||e.error("Unterminated stringifier")}function le(e){const t=e.split("\n");if(t.length){const e=t[t.length-1].match(/^\s+/);if(e)return e[0]}return""}function ue(e){return()=>{if(e.extAttrs.length){const t=new ve("Exposed=Window,"),n=F.parse(t);n.tokens.separator=t.consume(",");const r=e.extAttrs[0];/^\s/.test(r.tokens.name.trivia)||(r.tokens.name.trivia=` ${r.tokens.name.trivia}`),e.extAttrs.unshift(n)}else{pe(e).extAttrs=B.parse(new ve("[Exposed=Window]"));const t=e.tokens.base.trivia;e.extAttrs.tokens.open.trivia=t,e.tokens.base.trivia=`\n${le(t)}`}}}function de(e){if(e.extAttrs.length)return e.extAttrs.tokens.open;if("operation"===e.type&&!e.special)return de(e.idlType);const t=Object.values(e.tokens).sort(((e,t)=>e.index-t.index));return t[0]}function pe(e,t){if(t||(t=e),!e)return e;return new Proxy(e,{get(e,t){const n=e[t];return Array.isArray(n)&&"source"!==t?pe(n,e):n},set(e,n,r){if(e[n]=r,!r)return!0;if(Array.isArray(r))for(const e of r)void 0!==e.parent&&(e.parent=t);else void 0!==r.parent&&(r.parent=t);return!0}})}const he={decimal:/-?(?=[0-9]*\.|[0-9]+[eE])(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][-+]?[0-9]+)?|[0-9]+[Ee][-+]?[0-9]+)/y,integer:/-?(0([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*)/y,identifier:/[_-]?[A-Za-z][0-9A-Z_a-z-]*/y,string:/"[^"]*"/y,whitespace:/[\t\n\r ]+/y,comment:/\/\/.*|\/\*[\s\S]*?\*\//y,other:/[^\t\n\r 0-9A-Za-z]/y},fe=["ArrayBuffer","SharedArrayBuffer","DataView","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray","BigInt64Array","BigUint64Array","Float16Array","Float32Array","Float64Array","any","object","symbol"],me=["ByteString","DOMString","USVString"],ge=["async","attribute","callback","const","constructor","deleter","dictionary","enum","getter","includes","inherit","interface","iterable","maplike","namespace","partial","required","setlike","setter","static","stringifier","typedef","unrestricted"],be=["-Infinity","FrozenArray","Infinity","NaN","ObservableArray","Promise","async_iterable","async_sequence","bigint","boolean","byte","double","false","float","long","mixin","null","octet","optional","or","readonly","record","sequence","short","true","undefined","unsigned","void"].concat(ge,me,fe),ye=["(",")",",","...",":",";","<","=",">","?","*","[","]","{","}"],we=["_constructor","toString","_toString"];class ve{constructor(e){this.source=function(e){const t=[];let n=0,r="",s=1,i=0;for(;n<e.length;){const a=e.charAt(n);let c=-1;if(/[\t\n\r ]/.test(a)?c=o("whitespace",{noFlushTrivia:!0}):"/"===a&&(c=o("comment",{noFlushTrivia:!0})),-1!==c){const e=t.pop().value;s+=(e.match(/\n/g)||[]).length,r+=e,i-=1}else if(/[-0-9.A-Z_a-z]/.test(a)){if(c=o("decimal"),-1===c&&(c=o("integer")),-1===c){c=o("identifier");const e=t.length-1,n=t[e];if(-1!==c){if(we.includes(n.value)){const r=`${ee(n.value)} is a reserved identifier and must not be used.`;throw new ke(L(t,e,null,r))}be.includes(n.value)&&(n.type="inline")}}}else'"'===a&&(c=o("string"));for(const o of ye)if(e.startsWith(o,n)){t.push({type:"inline",value:o,trivia:r,line:s,index:i}),r="",n+=o.length,c=n;break}if(-1===c&&(c=o("other")),-1===c)throw new Error("Token stream not progressing");n=c,i+=1}return t.push({type:"eof",value:"",trivia:r,line:s,index:i}),t;function o(o,{noFlushTrivia:a}={}){const c=he[o];c.lastIndex=n;const l=c.exec(e);return l?(t.push({type:o,value:l[0],trivia:r,line:s,index:i}),a||(r=""),c.lastIndex):-1}}(e),this.position=0}error(e){throw new ke(L(this.source,this.position,this.current,e))}probeKind(e){return this.source.length>this.position&&this.source[this.position].type===e}probe(e){return this.probeKind("inline")&&this.source[this.position].value===e}consumeKind(...e){for(const t of e){if(!this.probeKind(t))continue;const e=this.source[this.position];return this.position++,e}}consume(...e){if(!this.probeKind("inline"))return;const t=this.source[this.position];for(const n of e)if(t.value===n)return this.position++,t}consumeIdentifier(e){if(this.probeKind("identifier")&&this.source[this.position].value===e)return this.consumeKind("identifier")}unconsume(e){this.position=e}}class ke extends Error{constructor({message:e,bareMessage:t,context:n,line:r,sourceName:s,input:i,tokens:o}){super(e),this.name="WebIDLParseError",this.bareMessage=t,this.context=n,this.line=r,this.sourceName=s,this.input=i,this.tokens=o}}class $e extends O{static parse(e){const t=e.consumeKind("string");if(t)return new $e({source:e.source,tokens:{value:t}})}get type(){return"enum-value"}get value(){return super.value.slice(1,-1)}write(e){const{parent:t}=this;return e.ts.wrap([e.ts.trivia(this.tokens.value.trivia),e.ts.definition(e.ts.wrap(['"',e.ts.name(this.value,{data:this,parent:t}),'"']),{data:this,parent:t}),e.token(this.tokens.separator)])}}class xe extends P{static parse(e){const t={};if(t.base=e.consume("enum"),!t.base)return;t.name=e.consumeKind("identifier")||e.error("No name for enum");const n=pe(new xe({source:e.source,tokens:t}));return e.current=n.this,t.open=e.consume("{")||e.error("Bodyless enum"),n.values=te(e,{parser:$e.parse,allowDangler:!0,listName:"enumeration"}),e.probeKind("string")&&e.error("No comma between enum values"),t.close=e.consume("}")||e.error("Unexpected value in enum"),n.values.length||e.error("No value in enum"),t.termination=e.consume(";")||e.error("No semicolon after enum"),n.this}get type(){return"enum"}get name(){return ee(this.tokens.name.value)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base),e.name_token(this.tokens.name,{data:this}),e.token(this.tokens.open),e.ts.wrap(this.values.map((t=>t.write(e)))),e.token(this.tokens.close),e.token(this.tokens.termination)]),{data:this})}}class Ce extends P{static parse(e){const t=e.consumeKind("identifier");if(!t)return;const n={target:t};if(n.includes=e.consume("includes"),n.includes)return n.mixin=e.consumeKind("identifier")||e.error("Incomplete includes statement"),n.termination=e.consume(";")||e.error("No terminating ; for includes statement"),new Ce({source:e.source,tokens:n});e.unconsume(t.index)}get type(){return"includes"}get target(){return ee(this.tokens.target.value)}get includes(){return ee(this.tokens.mixin.value)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.reference_token(this.tokens.target,this),e.token(this.tokens.includes),e.reference_token(this.tokens.mixin,this),e.token(this.tokens.termination)]),{data:this})}}class Se extends P{static parse(e){const t={},n=pe(new Se({source:e.source,tokens:t}));if(t.base=e.consume("typedef"),t.base)return n.idlType=oe(e,"typedef-type")||e.error("Typedef lacks a type"),t.name=e.consumeKind("identifier")||e.error("Typedef lacks a name"),e.current=n.this,t.termination=e.consume(";")||e.error("Unterminated typedef, expected `;`"),n.this}get type(){return"typedef"}get name(){return ee(this.tokens.name.value)}*validate(e){yield*this.idlType.validate(e)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base),e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this}),e.token(this.tokens.termination)]),{data:this})}}class _e extends P{static parse(e,t){const n={base:t},r=pe(new _e({source:e.source,tokens:n}));return n.name=e.consumeKind("identifier")||e.error("Callback lacks a name"),e.current=r.this,n.assign=e.consume("=")||e.error("Callback lacks an assignment"),r.idlType=ae(e)||e.error("Callback lacks a return type"),n.open=e.consume("(")||e.error("Callback lacks parentheses for arguments"),r.arguments=ie(e),n.close=e.consume(")")||e.error("Unterminated callback"),n.termination=e.consume(";")||e.error("Unterminated callback, expected `;`"),r.this}get type(){return"callback"}get name(){return ee(this.tokens.name.value)}*validate(e){yield*this.extAttrs.validate(e);for(const t of this.arguments)if(yield*t.validate(e),"async_sequence"===t.idlType.generic){const e="async_sequence types cannot be returned as a callback argument.";yield A(t.tokens.name,t,"async-sequence-idl-to-js",e)}yield*this.idlType.validate(e)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base),e.name_token(this.tokens.name,{data:this}),e.token(this.tokens.assign),e.ts.type(this.idlType.write(e)),e.token(this.tokens.open),...this.arguments.map((t=>t.write(e))),e.token(this.tokens.close),e.token(this.tokens.termination)]),{data:this})}}class Te extends P{static parse(e,t,{inheritable:n,allowedMembers:r}){const{tokens:s,type:i}=t;for(s.name=e.consumeKind("identifier")||e.error(`Missing name in ${i}`),e.current=t,t=pe(t),n&&Object.assign(s,function(e){const t=e.consume(":");return t?{colon:t,inheritance:e.consumeKind("identifier")||e.error("Inheritance lacks a type")}:{}}(e)),s.open=e.consume("{")||e.error(`Bodyless ${i}`),t.members=[];;){if(s.close=e.consume("}"),s.close)return s.termination=e.consume(";")||e.error(`Missing semicolon after ${i}`),t.this;const n=B.parse(e);let o;for(const[t,...n]of r)if(o=pe(t(e,...n)),o)break;o||e.error("Unknown member"),o.extAttrs=n,t.members.push(o.this)}}get partial(){return!!this.tokens.partial}get name(){return ee(this.tokens.name.value)}get inheritance(){return this.tokens.inheritance?ee(this.tokens.inheritance.value):null}*validate(e){for(const t of this.members)t.validate&&(yield*t.validate(e))}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.callback),e.token(this.tokens.partial),e.token(this.tokens.base),e.token(this.tokens.mixin),e.name_token(this.tokens.name,{data:this}),(()=>this.tokens.inheritance?e.ts.wrap([e.token(this.tokens.colon),e.ts.trivia(this.tokens.inheritance.trivia),e.ts.inheritance(e.reference(this.tokens.inheritance.value,{context:this}))]):"")(),e.token(this.tokens.open),e.ts.wrap(this.members.map((t=>t.write(e)))),e.token(this.tokens.close),e.token(this.tokens.termination)]),{data:this})}}class Re extends P{static parse(e){const t={};if(t.base=e.consume("const"),!t.base)return;let n=se(e);if(!n){const t=e.consumeKind("identifier")||e.error("Const lacks a type");n=new V({source:e.source,tokens:{base:t}})}e.probe("?")&&e.error("Unexpected nullable constant type"),n.type="const-type",t.name=e.consumeKind("identifier")||e.error("Const lacks a name"),t.assign=e.consume("=")||e.error("Const lacks value assignment"),t.value=ne(e)||e.error("Const lacks a value"),t.termination=e.consume(";")||e.error("Unterminated const, expected `;`");const r=new Re({source:e.source,tokens:t});return pe(r).idlType=n,r}get type(){return"const"}get name(){return ee(this.tokens.name.value)}get value(){return re(this.tokens.value)}write(e){const{parent:t}=this;return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base),e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this,parent:t}),e.token(this.tokens.assign),e.token(this.tokens.value),e.token(this.tokens.termination)]),{data:this,parent:t})}}class Ee extends P{static parse(e){const t=e.position,n=pe(new Ee({source:e.source,tokens:{}})),{tokens:r}=n;if(r.readonly=e.consume("readonly"),r.readonly||(r.async=e.consume("async")),r.base=r.readonly?e.consume("maplike","setlike"):r.async?e.consume("iterable"):e.consume("iterable","async_iterable","maplike","setlike"),!r.base)return void e.unconsume(t);const{type:s}=n,i="maplike"===s,o=i||"iterable"===s||"async_iterable"===s,a="async_iterable"===s||n.async&&"iterable"===s;r.open=e.consume("<")||e.error(`Missing less-than sign \`<\` in ${s} declaration`);const c=oe(e)||e.error(`Missing a type argument in ${s} declaration`);return n.idlType=[c],n.arguments=[],o&&(c.tokens.separator=e.consume(","),c.tokens.separator?n.idlType.push(oe(e)):i&&e.error(`Missing second type argument in ${s} declaration`)),r.close=e.consume(">")||e.error(`Missing greater-than sign \`>\` in ${s} declaration`),e.probe("(")&&(a?(r.argsOpen=e.consume("("),n.arguments.push(...ie(e)),r.argsClose=e.consume(")")||e.error("Unterminated async iterable argument list")):e.error("Arguments are only allowed for `async iterable`")),r.termination=e.consume(";")||e.error(`Missing semicolon after ${s} declaration`),n.this}get type(){return this.tokens.base.value}get readonly(){return!!this.tokens.readonly}get async(){return!!this.tokens.async}*validate(e){if(this.async&&"iterable"===this.type){const e="`async iterable` is now changed to `async_iterable`.";yield A(this.tokens.async,this,"obsolete-async-iterable-syntax",e,{autofix:(t=this,()=>{const e=t.tokens.async;t.tokens.base={...e,type:"async_iterable",value:"async_iterable"},delete t.tokens.async})})}var t;for(const t of this.idlType)yield*t.validate(e);for(const t of this.arguments)yield*t.validate(e)}write(e){return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.readonly),e.token(this.tokens.async),e.token(this.tokens.base,e.ts.generic),e.token(this.tokens.open),e.ts.wrap(this.idlType.map((t=>t.write(e)))),e.token(this.tokens.close),e.token(this.tokens.argsOpen),e.ts.wrap(this.arguments.map((t=>t.write(e)))),e.token(this.tokens.argsClose),e.token(this.tokens.termination)]),{data:this,parent:this.parent})}}class Le extends P{static parse(e){const t=e.consume("constructor");if(!t)return;const n={base:t};n.open=e.consume("(")||e.error("No argument list in constructor");const r=ie(e);n.close=e.consume(")")||e.error("Unterminated constructor"),n.termination=e.consume(";")||e.error("No semicolon after constructor");const s=new Le({source:e.source,tokens:n});return pe(s).arguments=r,s}get type(){return"constructor"}*validate(e){for(const t of this.arguments)yield*t.validate(e)}write(e){const{parent:t}=this;return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.base,e.ts.nameless,{data:this,parent:t}),e.token(this.tokens.open),e.ts.wrap(this.arguments.map((t=>t.write(e)))),e.token(this.tokens.close),e.token(this.tokens.termination)]),{data:this,parent:t})}}function Ae(e){const t=e.consume("static");if(!t)return;return Q.parse(e,{special:t})||X.parse(e,{special:t})||e.error("No body in static member")}class Pe extends Te{static parse(e,t,{extMembers:n=[],partial:r=null}={}){const s={partial:r,base:t};return Te.parse(e,new Pe({source:e.source,tokens:s}),{inheritable:!r,allowedMembers:[...n,[Re.parse],[Le.parse],[Ae],[ce],[Ee.parse],[Q.parse],[X.parse]]})}get type(){return"interface"}*validate(e){if(yield*this.extAttrs.validate(e),!this.partial&&this.extAttrs.every((e=>"Exposed"!==e.name))){const e="Interfaces must have `[Exposed]` extended attribute. To fix, add, for example, `[Exposed=Window]`. Please also consider carefully if your interface should also be exposed in a Worker scope. Refer to the [WebIDL spec section on Exposed](https://heycam.github.io/webidl/#Exposed) for more information.";yield A(this.tokens.name,this,"require-exposed",e,{autofix:ue(this)})}const t=this.extAttrs.filter((e=>"Constructor"===e.name));for(const e of t){const t="Constructors should now be represented as a `constructor()` operation on the interface instead of `[Constructor]` extended attribute. Refer to the [WebIDL spec section on constructor operations](https://heycam.github.io/webidl/#idl-constructors) for more information.";yield A(e.tokens.name,this,"constructor-member",t,{autofix:Ne(this,e)})}if(this.extAttrs.some((e=>"Global"===e.name))){const e=this.extAttrs.filter((e=>"LegacyFactoryFunction"===e.name));for(const t of e){const e="Interfaces marked as `[Global]` cannot have factory functions.";yield A(t.tokens.name,this,"no-constructible-global",e)}const t=this.members.filter((e=>"constructor"===e.type));for(const e of t){const t="Interfaces marked as `[Global]` cannot have constructors.";yield A(e.tokens.base,this,"no-constructible-global",t)}}yield*super.validate(e),this.partial||(yield*function*(e,t){const n=function(e){const t=o(e);return{statics:new Set(t.filter((e=>"static"===e.special)).map((e=>e.name))),nonstatics:new Set(t.filter((e=>"static"!==e.special)).map((e=>e.name)))}}(t),r=e.partials.get(t.name)||[],s=e.mixinMap.get(t.name)||[];for(const e of[...r,...s]){const r=o(e),s=r.filter((e=>"static"===e.special)),a=r.filter((e=>"static"!==e.special));yield*i(s,n.statics,e,t),yield*i(a,n.nonstatics,e,t),s.forEach((e=>n.statics.add(e.name))),a.forEach((e=>n.nonstatics.add(e.name)))}function*i(e,t,n,r){for(const s of e){const{name:e}=s;if(e&&t.has(e)){const t=`The ${"static"===s.special?"static ":""}operation "${e}" has already been defined for the base interface "${r.name}" either in itself or in a mixin`;yield A(s.tokens.name,n,"no-cross-overload",t)}}}function o(e){return e.members.filter((({type:e})=>"operation"===e))}}(e,this))}}function Ne(e,t){return e=pe(e),()=>{const n=le(e.extAttrs.tokens.open.trivia),r=e.members.length?le(de(e.members[0]).trivia):function(e){const t=le(e),n=t.includes("\t")?"\t":" ";return t+n}(n),s=Le.parse(new ve(`\n${r}constructor();`));s.extAttrs=new B({source:e.source,tokens:{}}),pe(s).arguments=t.arguments;const i=function(e,t){const n=e.slice().reverse().findIndex(t);return-1===n?n:e.length-n-1}(e.members,(e=>"constructor"===e.type));e.members.splice(i+1,0,s);const{close:o}=e.tokens;o.trivia.includes("\n")||(o.trivia+=`\n${n}`);const{extAttrs:a}=e,c=a.indexOf(t),l=a.splice(c,1);a.length?a.length===c?a[c-1].tokens.separator=void 0:a[c].tokens.name.trivia.trim()||(a[c].tokens.name.trivia=l[0].tokens.name.trivia):a.tokens.open=a.tokens.close=void 0}}class Ie extends Te{static parse(e,t,{extMembers:n=[],partial:r}={}){const s={partial:r,base:t};if(s.mixin=e.consume("mixin"),s.mixin)return Te.parse(e,new Ie({source:e.source,tokens:s}),{allowedMembers:[...n,[Re.parse],[ce],[Q.parse,{noInherit:!0}],[X.parse,{regular:!0}]]})}get type(){return"interface mixin"}}class De extends P{static parse(e){const t={},n=pe(new De({source:e.source,tokens:t}));return n.extAttrs=B.parse(e),t.required=e.consume("required"),n.idlType=oe(e,"dictionary-type")||e.error("Dictionary member lacks a type"),t.name=e.consumeKind("identifier")||e.error("Dictionary member lacks a name"),n.default=K.parse(e),t.required&&n.default&&e.error("Required member must not have a default"),t.termination=e.consume(";")||e.error("Unterminated dictionary member, expected `;`"),n.this}get type(){return"field"}get name(){return ee(this.tokens.name.value)}get required(){return!!this.tokens.required}*validate(e){yield*this.idlType.validate(e)}write(e){const{parent:t}=this;return e.ts.definition(e.ts.wrap([this.extAttrs.write(e),e.token(this.tokens.required),e.ts.type(this.idlType.write(e)),e.name_token(this.tokens.name,{data:this,parent:t}),this.default?this.default.write(e):"",e.token(this.tokens.termination)]),{data:this,parent:t})}}class Oe extends Te{static parse(e,{extMembers:t=[],partial:n}={}){const r={partial:n};if(r.base=e.consume("dictionary"),r.base)return Te.parse(e,new Oe({source:e.source,tokens:r}),{inheritable:!n,allowedMembers:[...t,[De.parse]]})}get type(){return"dictionary"}}class je extends Te{static parse(e,{extMembers:t=[],partial:n}={}){const r={partial:n};if(r.base=e.consume("namespace"),r.base)return Te.parse(e,new je({source:e.source,tokens:r}),{allowedMembers:[...t,[Q.parse,{noInherit:!0,readonly:!0}],[Re.parse],[X.parse,{regular:!0}]]})}get type(){return"namespace"}*validate(e){if(!this.partial&&this.extAttrs.every((e=>"Exposed"!==e.name))){const e="Namespaces must have [Exposed] extended attribute. To fix, add, for example, [Exposed=Window]. Please also consider carefully if your namespace should also be exposed in a Worker scope. Refer to the [WebIDL spec section on Exposed](https://heycam.github.io/webidl/#Exposed) for more information.";yield A(this.tokens.name,this,"require-exposed",e,{autofix:ue(this)})}yield*super.validate(e)}}class ze extends Te{static parse(e,t,{extMembers:n=[]}={}){const r={callback:t};if(r.base=e.consume("interface"),r.base)return Te.parse(e,new ze({source:e.source,tokens:r}),{allowedMembers:[...n,[Re.parse],[X.parse,{regular:!0}]]})}get type(){return"callback interface"}}function Me(e,t){const n=e.source;function r(t){e.error(t)}function s(...t){return e.consume(...t)}function i(n){const i=s("interface");if(i)return Ie.parse(e,i,{...n,...t?.extensions?.mixin})||Pe.parse(e,i,{...n,...t?.extensions?.interface})||r("Interface has no proper body")}function o(){if(t.productions)for(const n of t.productions){const t=n(e);if(t)return t}return function(){const n=s("callback");if(n)return e.probe("interface")?ze.parse(e,n,{...t?.extensions?.callbackInterface}):_e.parse(e,n)}()||i()||function(){const n=s("partial");if(n)return Oe.parse(e,{partial:n,...t?.extensions?.dictionary})||i({partial:n})||je.parse(e,{partial:n,...t?.extensions?.namespace})||r("Partial doesn't apply to anything")}()||Oe.parse(e,t?.extensions?.dictionary)||xe.parse(e)||Se.parse(e)||Ce.parse(e)||je.parse(e,t?.extensions?.namespace)}const a=function(){if(!n.length)return[];const s=[];for(;;){const t=B.parse(e),n=o();if(!n){t.length&&r("Stray extended attributes");break}pe(n).extAttrs=t,s.push(n)}const i=j.parse(e);return t.concrete&&s.push(i),s}();return e.position<n.length&&r("Unrecognised tokens"),a}function Ue(e){return e}const qe={wrap:e=>e.join(""),trivia:Ue,name:Ue,reference:Ue,type:Ue,generic:Ue,nameless:Ue,inheritance:Ue,definition:Ue,extendedAttribute:Ue,extendedAttributeReference:Ue};class We{constructor(e){this.ts=Object.assign({},qe,e)}reference(e,{unescaped:t,context:n}){return t||(t=e.startsWith("_")?e.slice(1):e),this.ts.reference(e,t,n)}token(e,t=Ue,...n){if(!e)return"";const r=t(e.value,...n);return this.ts.wrap([this.ts.trivia(e.trivia),r])}reference_token(e,t){return this.token(e,this.reference.bind(this),{context:t})}name_token(e,t){return this.token(e,this.ts.name,t)}identifier(e,t){return this.ts.wrap([this.reference_token(e.tokens.value,t),this.token(e.tokens.separator)])}}function Fe(e,t){const n=new Map,r=e.filter((e=>"includes"===e.type));for(const e of r){const r=t.get(e.includes);if(!r)continue;const s=n.get(e.target);s?s.push(r):n.set(e.target,[r])}return n}function*Be(e){const t=function(e){const t=new Map,n=new Set,r=new Map;for(const s of e)if(s.partial){const e=r.get(s.name);e?e.push(s):r.set(s.name,[s])}else s.name&&(t.has(s.name)?n.add(s):t.set(s.name,s));return{all:e,unique:t,partials:r,duplicates:n,mixinMap:Fe(e,t),cache:{typedefIncludesDictionary:new WeakMap,dictionaryIncludesRequiredField:new WeakMap}}}(e);for(const e of t.all)e.validate&&(yield*e.validate(t));yield*function*({unique:e,duplicates:t}){for(const n of t){const{name:t}=n,r=`The name "${t}" of type "${e.get(t).type}" was already seen`;yield A(n.tokens.name,n,"no-duplicate",r)}}(t)}var He,Ge=Object.freeze({__proto__:null,WebIDLParseError:ke,parse:function(e,t={}){const n=new ve(e);return void 0!==t.sourceName&&(n.source.name=t.sourceName),Me(n,t)},validate:function(e){return[...Be((t=e,t.flat?t.flat():[].concat(...t)))];var t},write:function(e,{templates:t=qe}={}){t=Object.assign({},qe,t);const n=new We(t);return t.wrap(e.map((e=>e.write(n))))}});!function(e){e.ILLEGAL="ILLEGAL",e.EOF="EOF",e.NL="\n",e.SPACE=" ",e.UNDERSCORE="_",e.DOLLAR="$",e.ATSIGN="@",e.CARET="^",e.HASH="#",e.TILDE="~",e.AMPERSAND="&",e.IDENT="IDENT",e.COMMENT="COMMENT",e.STRING="STRING",e.NUMBER="NUMBER",e.FLOAT="FLOAT",e.CTLOP="CTLOP",e.BYTES="BYTES",e.HEX="HEX",e.BASE64="BASE64",e.ASSIGN="=",e.ARROWMAP="=>",e.TCHOICE="/",e.GCHOICE="//",e.TCHOICEALT="/=",e.GCHOICEALT="//=",e.PLUS="+",e.MINUS="-",e.QUEST="?",e.ASTERISK="*",e.INCLRANGE="..",e.EXCLRANGE="...",e.COMMA=",",e.DOT=".",e.COLON=":",e.SEMICOLON=";",e.LPAREN="(",e.RPAREN=")",e.LBRACE="{",e.RBRACE="}",e.LBRACK="[",e.RBRACK="]",e.LT="<",e.GT=">",e.QUOT='"'}(He||(He={}));const Ve=Object.entries(He).reduce(((e,[t,n])=>(e[n]=t,e)),{});class Je{type;literal;comments;whitespace;constructor(e,t,n=[],r=""){this.type=e,this.literal=t,this.comments=n,this.whitespace=r}serialize(){let e="";for(const t of this.comments)e+=t.serialize();switch(e+=this.whitespace,this.type){case He.IDENT:case He.COMMENT:case He.NUMBER:case He.FLOAT:e+=this.literal;break;case He.STRING:e+='"'+this.literal+'"';break;case He.CTLOP:e+="."+this.literal;break;case He.BYTES:e+="'"+this.literal+"'";break;case He.HEX:e+="h'"+this.literal+"'";break;case He.BASE64:e+="b64'"+this.literal+"'";break;case He.EOF:break;default:e+=this.type.valueOf()}return e}startWithSpaces(){return""!==this.whitespace||this.comments.length>0}toString(e=0){const t=[`${" ".repeat(e)}${this.constructor.name}: ${Ve[this.type]} (${this.type})`];""!==this.whitespace&&t.push(" ".repeat(e+1)+`whitespaces: ${this.whitespace.length}`),""!==this.literal&&t.push(" ".repeat(e+1)+`literal: ${this.literal}`);for(const n of this.comments)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return{type:this.type,literal:this.literal,comments:this.comments?.map((e=>e.toJSON())),whitespace:this.whitespace}}}class Ke{parentNode=null;serialize(e){if(this.setChildrenParent(),e){const t=e.markupFor(this);let n=null!==t[0]?t[0]:"";return n+=this._serialize(e),n+=null!==t[1]?t[1]:"",n}return this._serialize()}setChildrenParent(){for(const e of this.getChildren())e.parentNode=this,e.setChildrenParent()}getChildren(){return[]}_serializeToken(e,t){return e?t?t.serializeToken(e,this):e.serialize():""}toString(e=0){return" ".repeat(e)+this.constructor.name}toJSON(){return{}}}class Ze extends Ke{openToken=null;closeToken=null;serialize(e){let t="";if(e){const n=e.markupFor(this);t+=null!==n[0]?n[0]:""}if(t+=this._serializeToken(this.openToken,e),t+=this._serialize(e),t+=this._serializeToken(this.closeToken,e),e){const n=e.markupFor(this);t+=null!==n[1]?n[1]:""}return t}toString(e=0){const t=[super.toString(e)];return this.openToken&&t.push(this.openToken.toString(e+1)),this.closeToken&&t.push(this.closeToken.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{openToken:this.openToken?.toJSON(),closeToken:this.closeToken?.toJSON()})}}class Ye extends Ze{comments=[];whitespace="";separator=null;_prestr(e){return""}serialize(e){let t=this._prestr(e);for(const n of this.comments)t+=this._serializeToken(n,e);return t+=this.whitespace,t+=super.serialize(e),t+=this._serializeToken(this.separator,e),t}setComments(e){this.comments=e.comments,this.whitespace=e.whitespace}toString(e=0){const t=[super.toString(e)];for(const n of this.comments)t.push(n.toString(e+1));return""!==this.whitespace&&t.push(" ".repeat(e+1)+`whitespaces: ${this.whitespace.length}`),this.separator&&t.push(this.separator.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{comments:this.comments.map((e=>e.toJSON())),whitespace:this.whitespace,separator:this.separator?.toJSON()})}}class Xe extends Ye{rules;constructor(e){super(),this.rules=e}getChildren(){return this.rules}_serialize(e){return this.rules.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.rules)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{rules:this.rules.map((e=>e.toJSON()))})}}class Qe extends Ke{name;assign;type;constructor(e,t,n){super(),this.name=e,this.assign=t,this.type=n}getChildren(){return[this.name,this.type]}_serialize(e){let t=this.name.serialize(e);return t+=this._serializeToken(this.assign,e),t+=this.type.serialize(e),t}toString(e=0){return[super.toString(e),this.name.toString(e+1),this.assign.toString(e+1),this.type.toString(e+1)].join("\n")}toJSON(){return Object.assign(super.toJSON(),{name:this.name.toJSON(),assign:this.assign.toJSON(),type:this.type.toJSON()})}}class et extends Ye{occurrence;key;type;constructor(e,t,n){super(),this.occurrence=e,this.key=t,this.type=n}getChildren(){const e=[];return this.occurrence&&e.push(this.occurrence),this.key&&e.push(this.key),e.push(this.type),e}_serialize(e){let t="";return this.occurrence&&(t+=this.occurrence.serialize(e)),this.key&&(t+=this.key.serialize(e)),t+=this.type.serialize(e),t}isConvertibleToType(){return null===this.occurrence&&null===this.key&&(!(this.type instanceof tt)||this.type instanceof rt||this.type instanceof nt)}toString(e=0){const t=[super.toString(e)];return this.occurrence&&t.push(this.occurrence.toString(e+1)),this.key&&t.push(this.key.toString(e+1)),t.push(this.type.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{occurrence:this.occurrence?.toJSON(),key:this.key?.toJSON(),type:this.type.toJSON()})}}class tt extends Ye{groupChoices;constructor(e){super(),this.groupChoices=e}getChildren(){return this.groupChoices}_serialize(e){return this.groupChoices.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.groupChoices)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{groupChoices:this.groupChoices.map((e=>e.toJSON()))})}}let nt=class extends tt{},rt=class extends tt{};class st extends Ye{groupEntries;constructor(e){super(),this.groupEntries=e}getChildren(){return this.groupEntries}_serialize(e){return this.groupEntries.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.groupEntries)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{groupEntries:this.groupEntries.map((e=>e.toJSON()))})}}class it extends Ye{numericPart;typePart;constructor(e=null,t=null){super(),this.numericPart=e,this.typePart=t}getChildren(){return this.typePart?[this.typePart]:[]}_serialize(e){let t=this._serializeToken(new Je(He.HASH,""),e);return t+=this._serializeToken(this.numericPart,e),t+=this.typePart?this.typePart.serialize(e):"",t}toString(e=0){const t=[super.toString(e)+" (#)"];return this.numericPart&&t.push(this.numericPart.toString(e+1)),this.typePart&&t.push(this.typePart.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{numericPart:this.numericPart?.toJSON(),typePart:this.typePart?.toJSON()})}}class ot extends Ye{n;m;tokens;constructor(e,t,n=[]){super(),this.n=e,this.m=t,this.tokens=n}_serialize(e){return this.tokens.map((t=>this._serializeToken(t,e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.tokens)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{n:this.n,m:this.m,tokens:this.tokens.map((e=>e.toJSON()))})}}class at extends Ye{value;type;constructor(e,t){super(),this.value=e,this.type=t}_serialize(e){let t="",n="";return"text"===this.type?(t='"',n='"'):"bytes"===this.type?(t="'",n="'"):"hex"===this.type?(t="h'",n="'"):"base64"===this.type&&(t="b64'",n="'"),e?e.serializeValue(t,this.value,n,this):t+this.value+n}toString(e=0){return" ".repeat(e)+`${this.constructor.name} (${this.type}): ${this.value}`}toJSON(){return Object.assign(super.toJSON(),{value:this.value,type:this.type})}}class ct extends Ye{name;unwrapped;parameters;constructor(e,t,n=null){super(),this.name=e,this.unwrapped=t,this.parameters=n}getChildren(){return this.parameters?[this.parameters]:[]}_prestr(e){return this._serializeToken(this.unwrapped,e)}_serialize(e){let t="";return e?t+=e.serializeName(this.name,this):t=this.name,this.parameters&&(t+=this.parameters.serialize(e)),t}toString(e=0){const t=[super.toString(e)," ".repeat(e+1)+this.name];return this.unwrapped&&t.push(this.unwrapped.toString(e+1)),this.parameters&&t.push(this.parameters.toString(e+1)),t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{name:this.name,unwrapped:this.unwrapped?.toJSON(),parameters:this.parameters?.toJSON()})}}class lt extends Ye{target;constructor(e){super(),this.target=e}getChildren(){return[this.target]}_serialize(e){let t=this._serializeToken(new Je(He.AMPERSAND,""),e);return t+=this.target.serialize(e),t}toString(e=0){return[super.toString(e)+" (&)",this.target.toString(e+1)].join("\n")}toJSON(){return Object.assign(super.toJSON(),{target:this.target.toJSON()})}}class ut extends Ye{min;max;rangeop;constructor(e,t,n){super(),this.min=e,this.max=t,this.rangeop=n}getChildren(){return[this.min,this.max]}_serialize(e){let t=this.min.serialize(e);return t+=this._serializeToken(this.rangeop,e),t+=this.max.serialize(e),t}toString(e=0){return[super.toString(e),this.min.toString(e+1),this.rangeop.toString(e+1),this.max.toString(e+1)].join("\n")}toJSON(){return Object.assign(super.toJSON(),{min:this.min.toJSON(),max:this.max.toJSON(),rangeop:this.rangeop.toJSON()})}}class dt extends Ye{type;name;controller;constructor(e,t,n){super(),this.type=e,this.name=t,this.controller=n}getChildren(){return[this.type,this.controller]}_serialize(e){let t=this.type.serialize(e);return t+=this._serializeToken(this.name,e),t+=this.controller.serialize(e),t}toString(e=0){return[super.toString(e),this.type.toString(e+1),this.name.toString(e+1),this.controller.toString(e+1)].join("\n")}toJSON(){return Object.assign(super.toJSON(),{type:this.type.toJSON(),name:this.name.toJSON(),controller:this.controller.toJSON()})}}class pt extends Ke{type;hasCut;hasColon;tokens;constructor(e,t,n,r=[]){super(),this.type=e,this.hasCut=t,this.hasColon=n,this.tokens=r}getChildren(){return[this.type]}_serialize(e){let t=this.type.serialize(e);return t+=this.tokens.map((t=>this._serializeToken(t,e))).join(""),t}toString(e=0){const t=[super.toString(e),this.type.toString(e+1)];for(const n of this.tokens)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{type:this.type.toJSON(),hasCut:this.hasCut,hasColon:this.hasColon,tokens:this.tokens.map((e=>e.toJSON()))})}}class ht extends Ye{types;constructor(e){super(),this.types=e}getChildren(){return this.types}_serialize(e){return this.types.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.types)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{types:this.types.map((e=>e.toJSON()))})}}class ft extends Ze{parameters;constructor(e){super(),this.parameters=e}getChildren(){return this.parameters}_serialize(e){return this.parameters.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.parameters)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{parameters:this.parameters.map((e=>e.toJSON()))})}}class mt extends Ze{parameters;constructor(e){super(),this.parameters=e}getChildren(){return this.parameters}_serialize(e){return this.parameters.map((t=>t.serialize(e))).join("")}toString(e=0){const t=[super.toString(e)];for(const n of this.parameters)t.push(n.toString(e+1));return t.join("\n")}toJSON(){return Object.assign(super.toJSON(),{parameters:this.parameters.map((e=>e.toJSON()))})}}class gt extends Error{constructor(e="A parsing error occurred"){super(e),this.name="ParserError"}}function bt(e){return function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"}(e)||"@_$".includes(e)}function yt(e){return e.length>0&&"123456789".includes(e[0])&&[...e].every((e=>"0123456789".includes(e)))}class wt{line;position;constructor(e=-1,t=-1){this.line=e,this.position=t}}class vt{input;position=0;readPosition=0;ch=0;constructor(e){this.input=e,this.readChar()}readChar(){this.readPosition>=this.input.length?this.ch=0:this.ch=this.input.charCodeAt(this.readPosition),this.position=this.readPosition,this.readPosition+=1}_peekAtNextChar(){return this.readPosition>=this.input.length?"":this.input[this.readPosition]}getLocation(){const e=this.position-2,t=this.input.split("\n");let n=0;for(let r=0;r<t.length;r++){const s=t[r].length;if(n+=s+1,n>e){return new wt(r,e-(n-s)+1)}}return new wt(0,0)}getLine(e){return this.input.split("\n")[e]}getLocationInfo(){const e=this.getLocation();let t=(e.line>=0?this.getLine(e.line):"")+"\n";return t+=" ".repeat(e.position>=0?e.position:0)+"^\n",t+=" ".repeat(e.position>=0?e.position:0)+"|\n",t}nextToken(){const e=this._readComments();let t="";e.length>0&&""===e[e.length-1].literal&&(t=e[e.length-1].whitespace,e.pop());let n=new Je(He.ILLEGAL,"");const r=String.fromCharCode(this.ch);let s=!1;if("="===r)">"===this._peekAtNextChar()?(this.readChar(),n=new Je(He.ARROWMAP,"",e,t)):n=new Je(He.ASSIGN,"",e,t);else if("("===r)n=new Je(He.LPAREN,"",e,t);else if(")"===r)n=new Je(He.RPAREN,"",e,t);else if("{"===r)n=new Je(He.LBRACE,"",e,t);else if("}"===r)n=new Je(He.RBRACE,"",e,t);else if("["===r)n=new Je(He.LBRACK,"",e,t);else if("]"===r)n=new Je(He.RBRACK,"",e,t);else if("<"===r)n=new Je(He.LT,"",e,t);else if(">"===r)n=new Je(He.GT,"",e,t);else if("+"===r)n=new Je(He.PLUS,"",e,t);else if(","===r)n=new Je(He.COMMA,"",e,t);else if("."===r)"."===this._peekAtNextChar()?(this.readChar(),n=new Je(He.INCLRANGE,"",e,t),"."===this._peekAtNextChar()&&(this.readChar(),n=new Je(He.EXCLRANGE,"",e,t))):bt(this._peekAtNextChar())&&(this.readChar(),n=new Je(He.CTLOP,this._readIdentifier(),e,t),s=!0);else if(":"===r)n=new Je(He.COLON,"",e,t);else if("?"===r)n=new Je(He.QUEST,"",e,t);else if("/"===r)"/"===this._peekAtNextChar()?(this.readChar(),n=new Je(He.GCHOICE,"",e,t),"="===this._peekAtNextChar()&&(this.readChar(),n=new Je(He.GCHOICEALT,"",e,t))):"="===this._peekAtNextChar()?(this.readChar(),n=new Je(He.TCHOICEALT,"",e,t)):n=new Je(He.TCHOICE,"",e,t);else if("*"===r)n=new Je(He.ASTERISK,"",e,t);else if("^"===r)n=new Je(He.CARET,"",e,t);else if("#"===r)n=new Je(He.HASH,"",e,t);else if("~"===r)n=new Je(He.TILDE,"",e,t);else if('"'===r)n=new Je(He.STRING,this._readString(),e,t);else if("'"===r)n=new Je(He.BYTES,this._readBytesString(),e,t);else if(";"===r)n=new Je(He.COMMENT,this._readComment(),e,t),s=!0;else if("&"===r)n=new Je(He.AMPERSAND,"",e,t);else if(0===this.ch)n=new Je(He.EOF,"",e,t);else if(bt(r))"b"===r&&"6"===this._peekAtNextChar()?(this.readChar(),this.readChar(),"4"===String.fromCharCode(this.ch)&&"'"===this._peekAtNextChar()?(this.readChar(),n=new Je(He.BASE64,this._readBytesString(),e,t)):(n=new Je(He.IDENT,this._readIdentifier("b6"),e,t),s=!0)):"h"===r&&"'"===this._peekAtNextChar()?(this.readChar(),n=new Je(He.HEX,this._readBytesString(),e,t)):(n=new Je(He.IDENT,this._readIdentifier(),e,t),s=!0);else if(this._isDigit(r)||"-"===r){const r=this._readNumberOrFloat();n=new Je(r.includes(".")?He.FLOAT:He.NUMBER,r,e,t),s=!0}return s||this.readChar(),n}_isDigit(e){return e>="0"&&e<="9"}_readIdentifier(e=""){const t=this.position;if(""===e&&!bt(String.fromCharCode(this.ch)))throw this._tokenError("expected identifier, got nothing");for(;bt(String.fromCharCode(this.ch))||this._isDigit(String.fromCharCode(this.ch))||"-. ".includes(String.fromCharCode(this.ch));){if(" "===String.fromCharCode(this.ch))break;this.readChar()}const n=e+this.input.substring(t,this.position);if(n.endsWith("-")||n.endsWith("."))throw this._tokenError(`identifier cannot end with \`-\` or \`.\`, got \`${n}\``);return n}_readComment(){const e=this.position;for(;this.ch&&"\n"!==String.fromCharCode(this.ch);)this.readChar();return this.input.substring(e,this.position)}_readString(){const e=this.position;for(this.readChar();'"'!==String.fromCharCode(this.ch);)if(this.ch>=32&&this.ch<=33||this.ch>=35&&this.ch<=91||this.ch>=93&&this.ch<=126||this.ch>=128&&this.ch<=1114109)this.readChar();else if("\\"===String.fromCharCode(this.ch)){if(this.readChar(),!(this.ch>=32&&this.ch<=126||this.ch>=128&&this.ch<=1114109))throw this._tokenError(`invalid escape character in text string \`${this.input.substring(e+1,this.position)}\``);this.readChar()}else if(10===this.ch)this.readChar();else{if(13!==this.ch||10!==this._peekAtNextChar().charCodeAt(0))throw this._tokenError(`invalid text string \`${this.input.substring(e+1,this.position)}\``);this.readChar(),this.readChar()}return this.input.substring(e+1,this.position)}_readBytesString(){const e=this.position;for(this.readChar();"'"!==String.fromCharCode(this.ch);)if(this.ch>=32&&this.ch<=38||this.ch>=40&&this.ch<=91||this.ch>=93&&this.ch<=1114109)this.readChar();else if("\\"===String.fromCharCode(this.ch)){if(this.readChar(),!(this.ch>=32&&this.ch<=126||this.ch>=128&&this.ch<=1114109))throw this._tokenError(`invalid escape character in byte string \`${this.input.substring(e+1,this.position)}\``);this.readChar()}else if(10===this.ch)this.readChar();else{if(13!==this.ch||10!==this._peekAtNextChar().charCodeAt(0))throw this._tokenError(`invalid byte string \`${this.input.substring(e+1,this.position)}\``);this.readChar(),this.readChar()}return this.input.substring(e+1,this.position)}_readNumberOrFloat(){const e=this.position;let t=!1;if("-"===String.fromCharCode(this.ch)&&this.readChar(),"0"===String.fromCharCode(this.ch)){if(this.readChar(),"x"===String.fromCharCode(this.ch)){if(this.readChar(),!"0123456789ABCDEF".includes(String.fromCharCode(this.ch).toUpperCase()))throw this._tokenError(`expected hex number to contain hex digits, got \`${this.input.substring(e,this.position)}\``);for(;"0123456789ABCDEF".includes(String.fromCharCode(this.ch).toUpperCase());)this.readChar();if("."===String.fromCharCode(this.ch)){if(t=!0,"."===this._peekAtNextChar())return this.input.substring(e,this.position);for(this.readChar();"0123456789ABCDEF".includes(String.fromCharCode(this.ch).toUpperCase());)this.readChar()}if(t&&"p"!==String.fromCharCode(this.ch))throw this._tokenError(`expected hex number with fraction to have an exponent, got \`${this.input.substring(e,this.position)}\``);if("p"===String.fromCharCode(this.ch)){if(this.readChar(),"+-".includes(String.fromCharCode(this.ch))&&this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected hex number with exponent to have a digit in exponent, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar()}}else if("b"===String.fromCharCode(this.ch)){if(this.readChar(),!"01".includes(String.fromCharCode(this.ch)))throw this._tokenError(`expected binary number to have binary digits, got \`${this.input.substring(e,this.position)}\``);for(;"01".includes(String.fromCharCode(this.ch));)this.readChar()}else if("."===String.fromCharCode(this.ch)){if("."===this._peekAtNextChar())return this.input.substring(e,this.position);if(this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected number with fraction to have digits in fraction part, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar();if("e"===String.fromCharCode(this.ch)){if(this.readChar(),"+-".includes(String.fromCharCode(this.ch))&&this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected number with exponent to have digits in exponent, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar()}}}else{for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar();if("."===String.fromCharCode(this.ch)){if("."===this._peekAtNextChar())return this.input.substring(e,this.position);if(this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected number with fraction to have digits in fraction part, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar()}if("e"===String.fromCharCode(this.ch)){if(this.readChar(),"+-".includes(String.fromCharCode(this.ch))&&this.readChar(),!this._isDigit(String.fromCharCode(this.ch)))throw this._tokenError(`expected number with exponent to have digits in exponent, got \`${this.input.substring(e,this.position)}\``);for(;this._isDigit(String.fromCharCode(this.ch));)this.readChar()}}return this.input.substring(e,this.position)}_readWhitespace(){const e=this.position;for(;" \t\n\r".includes(String.fromCharCode(this.ch));)this.readChar();return this.input.substring(e,this.position)}_readComments(){const e=[];for(;;){const t=this._readWhitespace();if(";"!==String.fromCharCode(this.ch)){if(""!==t){const n=new Je(He.COMMENT,"",[],t);e.push(n)}break}const n=new Je(He.COMMENT,this._readComment(),[],t);e.push(n)}return e}_tokenError(e){const t=this.getLocation();return new gt(`CDDL token error - line ${t.line+1}: ${e}`)}}const kt=new Je(He.ILLEGAL,"");const $t=/^[!#$%&'*+-.^`|~\w]+$/,xt=/[\u000A\u000D\u0009\u0020]/u,Ct=/^[\u0009\u{0020}-\{u0073}\u{0080}-\u{00FF}]+$/u;function St(e,t,n){(t&&""!==t&&!e.has(t)&&Ct.test(n)||null===n)&&e.set(t.toLowerCase(),n)}function _t(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Tt={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function Rt(e){Tt=e}var Et={exec:()=>null};function Lt(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),s=t[r];return s||(s=e(r),t[r]=s),s}}function At(e,t=""){let n="string"==typeof e?e:e.source,r={replace:(e,t)=>{let s="string"==typeof t?t:t.source;return s=s.replace(Nt.caret,"$1"),n=n.replace(e,s),r},getRegex:()=>new RegExp(n,t)};return r}var Pt=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),Nt={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Lt((e=>new RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`))),hrRegex:Lt((e=>new RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`))),fencesBeginRegex:Lt((e=>new RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`))),headingBeginRegex:Lt((e=>new RegExp(`^ {0,${e}}#`))),htmlBeginRegex:Lt((e=>new RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,"i"))),blockquoteBeginRegex:Lt((e=>new RegExp(`^ {0,${e}}>`)))},It=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Dt=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Ot=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,jt=At(Ot).replace(/bull/g,Dt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),zt=At(Ot).replace(/bull/g,Dt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Mt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,Ut=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,qt=At(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ut).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Wt=At(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Dt).getRegex(),Ft="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Bt=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Ht=At("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",Bt).replace("tag",Ft).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Gt=e=>At(Mt).replace("hr",It).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",e).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ft).getRegex(),Vt=Gt(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),Jt=Gt(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),Kt={blockquote:At(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Jt).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:qt,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:It,html:Ht,lheading:jt,list:Wt,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:Vt,table:Et,text:/^[^\n]+/},Zt=At("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",It).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ft).getRegex(),Yt={...Kt,lheading:zt,table:Zt,paragraph:At(Mt).replace("hr",It).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Zt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ft).getRegex()},Xt={...Kt,html:At("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Bt).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Et,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:At(Mt).replace("hr",It).replace("heading"," *#{1,6} *[^\n]").replace("lheading",jt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Qt=/^( {2,}|\\)\n(?!\s*$)/,en=/[\p{P}\p{S}]/u,tn=/[\s\p{P}\p{S}]/u,nn=/[^\s\p{P}\p{S}]/u,rn=At(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,tn).getRegex(),sn=/(?!~)[\p{P}\p{S}]/u,on=At(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Pt?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),an=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,cn=At(an,"u").replace(/punct/g,en).getRegex(),ln=At(an,"u").replace(/punct/g,sn).getRegex(),un=At(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,"u").replace(/openQuote/g,/[\p{Pi}\p{Ps}"']/u).replace(/punct/g,en).getRegex(),dn="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",pn=At(dn,"gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),hn=At(dn,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,sn).getRegex(),fn=At("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),mn=At("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),gn=At("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),bn=At(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,en).getRegex(),yn=At("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,nn).replace(/punctSpace/g,tn).replace(/punct/g,en).getRegex(),wn=At(/\\(punct)/,"gu").replace(/punct/g,en).getRegex(),vn=At(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),kn=At(Bt).replace("(?:--\x3e|$)","--\x3e").getRegex(),$n=At("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",kn).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),xn=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Cn=At(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",xn).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Sn=At(/^!?\[(label)\]\[(ref)\]/).replace("label",xn).replace("ref",Ut).getRegex(),_n=At(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ut).getRegex(),Tn=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Rn={_backpedal:Et,anyPunctuation:wn,autolink:vn,blockSkip:on,br:Qt,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:Et,delLDelim:Et,delRDelim:Et,emStrongLDelim:cn,emStrongRDelimAst:pn,emStrongRDelimUnd:mn,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:Cn,nolink:_n,punctuation:rn,reflink:Sn,reflinkSearch:At("reflink|nolink(?!\\()","g").replace("reflink",Sn).replace("nolink",_n).getRegex(),tag:$n,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:Et},En={...Rn,emStrongLDelim:un,emStrongRDelimAst:fn,emStrongRDelimUnd:gn,link:At(/^!?\[(label)\]\((.*?)\)/).replace("label",xn).getRegex(),reflink:At(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",xn).getRegex()},Ln={...Rn,emStrongRDelimAst:hn,emStrongLDelim:ln,delLDelim:bn,delRDelim:yn,url:At(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Tn).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:At(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Tn).getRegex()},An={...Ln,br:At(Qt).replace("{2,}","*").getRegex(),text:At(Ln.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Pn={normal:Kt,gfm:Yt,pedantic:Xt},Nn={normal:Rn,gfm:Ln,breaks:An,pedantic:En},In={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Dn=e=>In[e];function On(e,t){if(t){if(Nt.escapeTest.test(e))return e.replace(Nt.escapeReplace,Dn)}else if(Nt.escapeTestNoEncode.test(e))return e.replace(Nt.escapeReplaceNoEncode,Dn);return e}function jn(e){try{e=encodeURI(e).replace(Nt.percentDecode,"%")}catch{return null}return e}function zn(e,t){let n=e.replace(Nt.findPipe,((e,t,n)=>{let r=!1,s=t;for(;--s>=0&&"\\"===n[s];)r=!r;return r?"|":" |"})).split(Nt.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(Nt.slashPipe,"|");return n}function Mn(e,t,n){let r=e.length;if(0===r)return"";let s=0;for(;s<r;){if(e.charAt(r-s-1)!==t)break;s++}return e.slice(0,r-s)}function Un(e){let t=e.split("\n"),n=t.length-1;for(;n>=0&&Nt.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join("\n")}function qn(e,t=0){let n=t,r="";for(let t of e)if("\t"===t){let e=4-n%4;r+=" ".repeat(e),n+=e}else r+=t,n++;return r}function Wn(e,t,n,r,s){let i=t.href,o=t.title||null,a=e[1].replace(s.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:"!"===e[0].charAt(0)?"image":"link",raw:n,href:i,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,c}var Fn=class{options;rules;lexer;constructor(e){this.options=e||Tt}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:Un(t[0]),n=e.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e,codeBlockStyle:"indented",text:n}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=function(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(null===r)return t;let s=r[1];return t.split("\n").map((e=>{let t=e.match(n.other.beginningSpace);if(null===t)return e;let[r]=t;return r.length>=s.length?e.slice(s.length):e})).join("\n")}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=Mn(e,"#");(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:"heading",raw:Mn(t[0],"\n"),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:Mn(t[0],"\n")}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=Mn(t[0],"\n").split("\n"),n="",r="",s=[];for(;e.length>0;){let t,i=!1,o=[];for(t=0;t<e.length;t++)if(this.rules.other.blockquoteStart.test(e[t]))o.push(e[t]),i=!0;else{if(i)break;o.push(e[t])}e=e.slice(t);let a=o.join("\n"),c=a.replace(this.rules.other.blockquoteSetextReplace,"\n $1").replace(this.rules.other.blockquoteSetextReplace2,"");n=n?`${n}\n${a}`:a,r=r?`${r}\n${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,s,!0),this.lexer.state.top=l,0===e.length)break;let u=s.at(-1);if("code"===u?.type)break;if("blockquote"===u?.type){let t=u,i=e.join("\n"),o=t.raw+"\n"+i.replace(this.rules.other.blockquoteSetextReplace2,""),a=this.blockquote(o);s[s.length-1]=a,n=`${n}\n${i}`,r=r.substring(0,r.length-t.text.length)+a.text;break}if("list"!==u?.type);else{let t=u,i=t.raw+"\n"+e.join("\n"),o=this.list(i);s[s.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=i.substring(s.at(-1).raw.length).split("\n")}}return{type:"blockquote",raw:n,tokens:s,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,s={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let i=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r="",a="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=qn(t[2].split("\n",1)[0],t[1].length),l=e.split("\n",1)[0],u=!c.trim(),d=0;if(this.options.pedantic?(d=2,a=c.trimStart()):u?d=t[1].length+1:(d=c.search(this.rules.other.nonSpaceChar),d=d>4?1:d,a=c.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(l)&&(r+=l+"\n",e=e.substring(l.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),s=this.rules.other.fencesBeginRegex(d),i=this.rules.other.headingBeginRegex(d),o=this.rules.other.htmlBeginRegex(d),p=this.rules.other.blockquoteBeginRegex(d);for(;e;){let h,f=e.split("\n",1)[0];if(l=f,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting," "),h=l):h=l.replace(this.rules.other.tabCharGlobal," "),s.test(l)||i.test(l)||o.test(l)||p.test(l)||t.test(l)||n.test(l))break;if(h.search(this.rules.other.nonSpaceChar)>=d||!l.trim())a+="\n"+h.slice(d);else{if(u||c.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||s.test(c)||i.test(c)||n.test(c))break;a+="\n"+l}u=!l.trim(),r+=f+"\n",e=e.substring(f.length+1),c=h.slice(d)}}s.loose||(o?s.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0)),s.items.push({type:"list_item",raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(a),loose:!1,text:a,tokens:[]}),s.raw+=r}let a=s.items.at(-1);if(!a)return;a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd(),s.raw=s.raw.trimEnd();for(let e of s.items)if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),!s.loose){let t=e.tokens.filter((e=>"space"===e.type)),n=t.length>0&&t.some((e=>this.rules.other.anyLine.test(e.raw)));s.loose=n}for(let e of s.items){let t=e.tokens[0];if(!e.task||"text"!==t?.type&&"paragraph"!==t?.type)e.task&&(e.task=!1);else{e.text=e.text.replace(this.rules.other.listReplaceTask,""),t.raw=t.raw.replace(this.rules.other.listReplaceTask,""),t.text=t.text.replace(this.rules.other.listReplaceTask,"");for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,"");break}let n=this.rules.other.listTaskCheckbox.exec(e.raw);if(n){let t={type:"checkbox",raw:n[0]+" ",checked:"[ ]"!==n[0]};e.checked=t.checked,s.loose?e.tokens[0]&&["paragraph","text"].includes(e.tokens[0].type)&&"tokens"in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:"paragraph",raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}}if(s.loose)for(let e of s.items){e.loose=!0;for(let t of e.tokens)"text"===t.type&&(t.type="paragraph")}return s}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=Un(t[0]);return{type:"html",block:!0,raw:e,pre:"pre"===t[1]||"script"===t[1]||"style"===t[1],text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:Mn(t[0],"\n"),href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=zn(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split("\n"):[],i={type:"table",raw:Mn(t[0],"\n"),header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?i.align.push("right"):this.rules.other.tableAlignCenter.test(e)?i.align.push("center"):this.rules.other.tableAlignLeft.test(e)?i.align.push("left"):i.align.push(null);for(let e=0;e<n.length;e++)i.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:i.align[e]});for(let e of s)i.rows.push(zn(e,i.header.length).map(((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:i.align[t]}))));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:"heading",raw:Mn(t[0],"\n"),depth:"="===t[2].charAt(0)?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e="\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=Mn(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{let e=function(e,t){if(-1===e.indexOf(t[1]))return-1;let n=0;for(let r=0;r<e.length;r++)if("\\"===e[r])r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}(t[2],"()");if(-2===e)return;if(e>-1){let n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],r="";if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),Wn(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return Wn(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(r&&(r[1]||r[2]||r[3]||r[4])&&(!r[4]||!n.match(this.rules.other.unicodeAlphaNumeric))&&(!r[1]&&!r[3]||!n||this.rules.inline.punctuation.exec(n))){let s,i,o=[...r[0]].length-1,a=o,c=0,l=r[0][0],u=n===l,d="*"===l?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+o);null!==(r=d.exec(t));){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s)continue;if(i=[...s].length,r[3]||r[4]){a+=i;continue}if(r[5]||r[6]){if(o%3&&!((o+i)%3)){c+=i;continue}if(u)break}if(a-=i,a>0)continue;i=Math.min(i,i+a+c);let t=[...r[0]][0].length,n=e.slice(0,o+r.index+t+i);if(Math.min(o,i)%2){let e=n.slice(1,-1);return{type:"em",raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:"strong",raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n,s,i=[...r[0]].length-1,o=i,a=this.rules.inline.delRDelim;for(a.lastIndex=0,t=t.slice(-1*e.length+i);null!==(r=a.exec(t));){if(n=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!n||(s=[...n].length,s!==i))continue;if(r[3]||r[4]){o+=s;continue}if(o-=s,o>0)continue;s=Math.min(s,s+o);let t=[...r[0]][0].length,a=e.slice(0,i+r.index+t+s),c=a.slice(i,-i);return{type:"del",raw:a,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return"@"===t[2]?(e=t[1],n="mailto:"+e):(e=t[1],n=e),{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if("@"===t[2])e=t[0],n="mailto:"+e;else{let r;do{r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??""}while(r!==t[0]);e=t[0],n="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},Bn=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Tt,this.options.tokenizer=this.options.tokenizer||new Fn,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:Nt,block:Pn.normal,inline:Nn.normal};this.options.pedantic?(t.block=Pn.pedantic,t.inline=Nn.pedantic):this.options.gfm&&(t.block=Pn.gfm,this.options.breaks?t.inline=Nn.breaks:t.inline=Nn.gfm),this.tokenizer.rules=t}static get rules(){return{block:Pn,inline:Nn}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(Nt.carriageReturn,"\n"),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(Nt.tabCharGlobal," ").replace(Nt.spaceLine,""));let r=1/0;for(;e;){if(!(e.length<r)){this.infiniteLoopError(e.charCodeAt(0));break}let s;if(r=e.length,this.options.extensions?.block?.some((n=>!!(s=n.call({lexer:this},e,t))&&(e=e.substring(s.raw.length),t.push(s),!0))))continue;if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length);let n=t.at(-1);1===s.raw.length&&void 0!==n?n.raw+="\n":t.push(s);continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length);let n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+=(n.raw.endsWith("\n")?"":"\n")+s.raw,n.text+="\n"+s.text,this.inlineQueue.at(-1).src=n.text):t.push(s);continue}if(s=this.tokenizer.fences(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.heading(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.hr(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.blockquote(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.list(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.html(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length);let n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+=(n.raw.endsWith("\n")?"":"\n")+s.raw,n.text+="\n"+s.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title},t.push(s));continue}if(s=this.tokenizer.table(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.lheading(e)){e=e.substring(s.raw.length),t.push(s);continue}let i=e;if(this.options.extensions?.startBlock){let t,n=1/0,r=e.slice(1);this.options.extensions.startBlock.forEach((e=>{t=e.call({lexer:this},r),"number"==typeof t&&t>=0&&(n=Math.min(n,t))})),n<1/0&&n>=0&&(i=e.substring(0,n+1))}if(this.state.top&&(s=this.tokenizer.paragraph(i))){let r=t.at(-1);n&&"paragraph"===r?.type?(r.raw+=(r.raw.endsWith("\n")?"":"\n")+s.raw,r.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(s),n=i.length!==e.length,e=e.substring(s.raw.length)}else if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length);let n=t.at(-1);"text"===n?.type?(n.raw+=(n.raw.endsWith("\n")?"":"\n")+s.raw,n.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(s)}else if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e;if(this.tokens.links){let e=Object.keys(this.tokens.links);e.length>0&&(n=n.replace(this.tokenizer.rules.inline.reflinkSearch,(t=>e.includes(t.slice(t.lastIndexOf("[")+1,-1))?"["+"a".repeat(t.length-2)+"]":t)))}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,(e=>"+".repeat(e.length))),n=n.replace(this.tokenizer.rules.inline.blockSkip,((e,t,n)=>{let r=n?n.length:0;return e.slice(0,r)+"["+"a".repeat(e.length-r-2)+"]"})),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let r=!1,s="",i=1/0;for(;e;){if(!(e.length<i)){this.infiniteLoopError(e.charCodeAt(0));break}let o;if(i=e.length,r||(s=""),r=!1,this.options.extensions?.inline?.some((n=>!!(o=n.call({lexer:this},e,t))&&(e=e.substring(o.raw.length),t.push(o),!0))))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let n=t.at(-1);"text"===o.type&&"text"===n?.type?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,s)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,s)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let a=e;if(this.options.extensions?.startInline){let t,n=1/0,r=e.slice(1);this.options.extensions.startInline.forEach((e=>{t=e.call({lexer:this},r),"number"==typeof t&&t>=0&&(n=Math.min(n,t))})),n<1/0&&n>=0&&(a=e.substring(0,n+1))}if(o=this.tokenizer.inlineText(a)){e=e.substring(o.raw.length),"_"!==o.raw.slice(-1)&&(s=o.raw.slice(-1)),r=!0;let n=t.at(-1);"text"===n?.type?(n.raw+=o.raw,n.text+=o.text):t.push(o)}else if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(!this.options.silent)throw new Error(t);console.error(t)}},Hn=class{options;parser;constructor(e){this.options=e||Tt}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(Nt.notSpaceStart)?.[0],s=e.replace(Nt.endingNewline,"")+"\n";return r?'<pre><code class="language-'+On(r)+'">'+(n?s:On(s,!0))+"</code></pre>\n":"<pre><code>"+(n?s:On(s,!0))+"</code></pre>\n"}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return"<hr>\n"}list(e){let t=e.ordered,n=e.start,r="";for(let t=0;t<e.items.length;t++){let n=e.items[t];r+=this.listitem(n)}let s=t?"ol":"ul";return"<"+s+(t&&1!==n?' start="'+n+'"':"")+">\n"+r+"</"+s+">\n"}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t="",n="";for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r="";for(let t=0;t<e.rows.length;t++){let s=e.rows[t];n="";for(let e=0;e<s.length;e++)n+=this.tablecell(s[e]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),"<table>\n<thead>\n"+t+"</thead>\n"+r+"</table>\n"}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${On(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),s=jn(e);if(null===s)return r;let i='<a href="'+(e=s)+'"';return t&&(i+=' title="'+On(t)+'"'),i+=">"+r+"</a>",i}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let s=jn(e);if(null===s)return On(n);let i=`<img src="${e=s}" alt="${On(n)}"`;return t&&(i+=` title="${On(t)}"`),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:On(e.text)}},Gn=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},Vn=class e{options;renderer;textRenderer;constructor(e){this.options=e||Tt,this.options.renderer=this.options.renderer||new Hn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Gn}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t="";for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(!1!==n||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(e.type)){t+=n||"";continue}}let s=r;switch(s.type){case"space":t+=this.renderer.space(s);break;case"hr":t+=this.renderer.hr(s);break;case"heading":t+=this.renderer.heading(s);break;case"code":t+=this.renderer.code(s);break;case"table":t+=this.renderer.table(s);break;case"blockquote":t+=this.renderer.blockquote(s);break;case"list":t+=this.renderer.list(s);break;case"checkbox":t+=this.renderer.checkbox(s);break;case"html":t+=this.renderer.html(s);break;case"def":t+=this.renderer.def(s);break;case"paragraph":t+=this.renderer.paragraph(s);break;case"text":t+=this.renderer.text(s);break;default:{let e='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw new Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n="";for(let r=0;r<e.length;r++){let s=e[r];if(this.options.extensions?.renderers?.[s.type]){let e=this.options.extensions.renderers[s.type].call({parser:this},s);if(!1!==e||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(s.type)){n+=e||"";continue}}let i=s;switch(i.type){case"escape":case"text":n+=t.text(i);break;case"html":n+=t.html(i);break;case"link":n+=t.link(i);break;case"image":n+=t.image(i);break;case"checkbox":n+=t.checkbox(i);break;case"strong":n+=t.strong(i);break;case"em":n+=t.em(i);break;case"codespan":n+=t.codespan(i);break;case"br":n+=t.br(i);break;case"del":n+=t.del(i);break;default:{let e='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw new Error(e)}}}return n}},Jn=class{options;block;constructor(e){this.options=e||Tt}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?Bn.lex:Bn.lexInline}provideParser(e=this.block){return e?Vn.parse:Vn.parseInline}},Kn=new class{defaults={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Vn;Renderer=Hn;TextRenderer=Gn;Lexer=Bn;Tokenizer=Fn;Hooks=Jn;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case"table":{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case"list":{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach((r=>{let s=e[r].flat(1/0);n=n.concat(this.walkTokens(s,t))})):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach((e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if("renderer"in e){let n=t.renderers[e.name];t.renderers[e.name]=n?function(...t){let r=e.renderer.apply(this,t);return!1===r&&(r=n.apply(this,t)),r}:e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)})),n.extensions=t),e.renderer){let t=this.defaults.renderer||new Hn(this.defaults);for(let n in e.renderer){if(!(n in t))throw new Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;let r=n,s=e.renderer[r],i=t[r];t[r]=(...e)=>{let n=s.apply(t,e);return!1===n&&(n=i.apply(t,e)),n||""}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new Fn(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw new Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;let r=n,s=e.tokenizer[r],i=t[r];t[r]=(...e)=>{let n=s.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new Jn;for(let n in e.hooks){if(!(n in t))throw new Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;let r=n,s=e.hooks[r],i=t[r];Jn.passThroughHooks.has(n)?t[r]=e=>{if(this.defaults.async&&Jn.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await s.call(t,e);return i.call(t,n)})();let r=s.call(t,e);return i.call(t,r)}:t[r]=(...e)=>{if(this.defaults.async)return(async()=>{let n=await s.apply(t,e);return!1===n&&(n=await i.apply(t,e)),n})();let n=s.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}})),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Bn.lex(e,t??this.defaults)}parser(e,t){return Vn.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},s={...this.defaults,...r},i=this.onError(!!s.silent,!!s.async);if(!0===this.defaults.async&&!1===r.async)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||null===t)return i(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let n=s.hooks?await s.hooks.preprocess(t):t,r=await(s.hooks?await s.hooks.provideLexer(e):e?Bn.lex:Bn.lexInline)(n,s),i=s.hooks?await s.hooks.processAllTokens(r):r;s.walkTokens&&await Promise.all(this.walkTokens(i,s.walkTokens));let o=await(s.hooks?await s.hooks.provideParser(e):e?Vn.parse:Vn.parseInline)(i,s);return s.hooks?await s.hooks.postprocess(o):o})().catch(i);try{s.hooks&&(t=s.hooks.preprocess(t));let n=(s.hooks?s.hooks.provideLexer(e):e?Bn.lex:Bn.lexInline)(t,s);s.hooks&&(n=s.hooks.processAllTokens(n)),s.walkTokens&&this.walkTokens(n,s.walkTokens);let r=(s.hooks?s.hooks.provideParser(e):e?Vn.parse:Vn.parseInline)(n,s);return s.hooks&&(r=s.hooks.postprocess(r)),r}catch(e){return i(e)}}}onError(e,t){return n=>{if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",e){let e="<p>An error occurred:</p><pre>"+On(n.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function Zn(e,t){return Kn.parse(e,t)}function Yn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}Zn.options=Zn.setOptions=function(e){return Kn.setOptions(e),Zn.defaults=Kn.defaults,Rt(Zn.defaults),Zn},Zn.getDefaults=_t,Zn.defaults=Tt,Zn.use=function(...e){return Kn.use(...e),Zn.defaults=Kn.defaults,Rt(Zn.defaults),Zn},Zn.walkTokens=function(e,t){return Kn.walkTokens(e,t)},Zn.parseInline=Kn.parseInline,Zn.Parser=Vn,Zn.parser=Vn.parse,Zn.Renderer=Hn,Zn.TextRenderer=Gn,Zn.Lexer=Bn,Zn.lexer=Bn.lex,Zn.Tokenizer=Fn,Zn.Hooks=Jn,Zn.parse=Zn,Zn.options,Zn.setOptions,Zn.walkTokens,Zn.parseInline,Vn.parse,Bn.lex;var Xn,Qn={exports:{}};var er,tr=(Xn||(Xn=1,er=Qn,function(e,t){er.exports=t()}(0,(function(){var e=[],t=[],n={},r={},s={};function i(e){return"string"==typeof e?new RegExp("^"+e+"$","i"):e}function o(e,t){return e===t?t:e===e.toLowerCase()?t.toLowerCase():e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}function a(e,t){return e.replace(t[0],(function(n,r){var s,i,a=(s=t[1],i=arguments,s.replace(/\$(\d{1,2})/g,(function(e,t){return i[t]||""})));return o(""===n?e[r-1]:n,a)}))}function c(e,t,r){if(!e.length||n.hasOwnProperty(e))return t;for(var s=r.length;s--;){var i=r[s];if(i[0].test(t))return a(t,i)}return t}function l(e,t,n){return function(r){var s=r.toLowerCase();return t.hasOwnProperty(s)?o(r,s):e.hasOwnProperty(s)?o(r,e[s]):c(s,r,n)}}function u(e,t,n,r){return function(r){var s=r.toLowerCase();return!!t.hasOwnProperty(s)||!e.hasOwnProperty(s)&&c(s,s,n)===s}}function d(e,t,n){return(n?t+" ":"")+(1===t?d.singular(e):d.plural(e))}return d.plural=l(s,r,e),d.isPlural=u(s,r,e),d.singular=l(r,s,t),d.isSingular=u(r,s,t),d.addPluralRule=function(t,n){e.push([i(t),n])},d.addSingularRule=function(e,n){t.push([i(e),n])},d.addUncountableRule=function(e){"string"!=typeof e?(d.addPluralRule(e,"$0"),d.addSingularRule(e,"$0")):n[e.toLowerCase()]=!0},d.addIrregularRule=function(e,t){t=t.toLowerCase(),e=e.toLowerCase(),s[e]=t,r[t]=e},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach((function(e){return d.addIrregularRule(e[0],e[1])})),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach((function(e){return d.addPluralRule(e[0],e[1])})),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach((function(e){return d.addSingularRule(e[0],e[1])})),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(d.addUncountableRule),d}))),Qn.exports),nr=Yn(tr),rr=function(e){var t={};try{t.WeakMap=WeakMap}catch(u){t.WeakMap=function(e,t){var n=t.defineProperty,r=t.hasOwnProperty,s=i.prototype;return s.delete=function(e){return this.has(e)&&delete e[this._]},s.get=function(e){return this.has(e)?e[this._]:void 0},s.has=function(e){return r.call(e,this._)},s.set=function(e,t){return n(e,this._,{configurable:!0,value:t}),this},i;function i(t){n(this,"_",{value:"_@ungap/weakmap"+e++}),t&&t.forEach(o,this)}function o(e){this.set(e[0],e[1])}}(Math.random(),Object)}var n=t.WeakMap,r={};try{r.WeakSet=WeakSet}catch(u){!function(e,t){var n=s.prototype;function s(){t(this,"_",{value:"_@ungap/weakmap"+e++})}n.add=function(e){return this.has(e)||t(e,this._,{value:!0,configurable:!0}),this},n.has=function(e){return this.hasOwnProperty.call(e,this._)},n.delete=function(e){return this.has(e)&&delete e[this._]},r.WeakSet=s}(Math.random(),Object.defineProperty)}function s(e,t,n,r,s,i){for(var o=("selectedIndex"in t),a=o;r<s;){var c,l=e(n[r],1);t.insertBefore(l,i),o&&a&&l.selected&&(a=!a,c=t.selectedIndex,t.selectedIndex=c<0?r:d.call(t.querySelectorAll("option"),l)),r++}}function i(e,t){return e==t}function o(e){return e}function a(e,t,n,r,s,i,o){var a=i-s;if(a<1)return-1;for(;a<=n-t;){for(var c=t,l=s;c<n&&l<i&&o(e[c],r[l]);)c++,l++;if(l===i)return t;t=c+1}return-1}function c(e,t,n,r,s){return n<r?e(t[n],0):0<n?e(t[n-1],-0).nextSibling:s}function l(e,t,n,r){for(;n<r;)h(e(t[n++],-1))}var u=r.WeakSet,d=[].indexOf,p=function(e,t,n){for(var r=1,s=t;r<s;){var i=(r+s)/2>>>0;n<e[i]?s=i:r=1+i}return r},h=function(e){return(e.remove||function(){var e=this.parentNode;e&&e.removeChild(this)}).call(e)};function f(e,t,n,r){for(var u=(r=r||{}).compare||i,d=r.node||o,h=null==r.before?null:d(r.before,0),f=t.length,m=f,g=0,b=n.length,y=0;g<m&&y<b&&u(t[g],n[y]);)g++,y++;for(;g<m&&y<b&&u(t[m-1],n[b-1]);)m--,b--;var w=g===m,v=y===b;if(w&&v)return n;if(w&&y<b)return s(d,e,n,y,b,c(d,t,g,f,h)),n;if(v&&g<m)return l(d,t,g,m),n;var k=m-g,$=b-y,x=-1;if(k<$){if(-1<(x=a(n,y,b,t,g,m,u)))return s(d,e,n,y,x,d(t[g],0)),s(d,e,n,x+k,b,c(d,t,m,f,h)),n}else if($<k&&-1<(x=a(t,g,m,n,y,b,u)))return l(d,t,g,x),l(d,t,x+$,m),n;return k<2||$<2?(s(d,e,n,y,b,d(t[g],0)),l(d,t,g,m)):k==$&&function(e,t,n,r,s,i){for(;r<s&&i(n[r],e[t-1]);)r++,t--;return 0===t}(n,b,t,g,m,u)?s(d,e,n,y,b,c(d,t,m,f,h)):function(e,t,n,r,i,o,a,c,u,d,h,f,m){!function(e,t,n,r,i,o,a,c,u){for(var d=[],p=e.length,h=a,f=0;f<p;)switch(e[f++]){case 0:i++,h++;break;case 1:d.push(r[i]),s(t,n,r,i++,i,h<c?t(o[h],0):u);break;case-1:h++}for(f=0;f<p;)switch(e[f++]){case 0:a++;break;case-1:-1<d.indexOf(o[a])?a++:l(t,o,a++,a)}}(function(e,t,n,r,s,i,o){var a,c,l,u,d,p,h=n+i,f=[];e:for(b=0;b<=h;b++){if(50<b)return null;for(p=b-1,u=b?f[b-1]:[0,0],d=f[b]=[],a=-b;a<=b;a+=2){for(c=(l=a===-b||a!==b&&u[p+a-1]<u[p+a+1]?u[p+a+1]:u[p+a-1]+1)-a;l<i&&c<n&&o(r[s+l],e[t+c]);)l++,c++;if(l===i&&c===n)break e;d[b+a]=l}}for(var m=Array(b/2+h/2),g=m.length-1,b=f.length-1;0<=b;b--){for(;0<l&&0<c&&o(r[s+l-1],e[t+c-1]);)m[g--]=0,l--,c--;if(!b)break;p=b-1,u=b?f[b-1]:[0,0],(a=l-c)==-b||a!==b&&u[p+a-1]<u[p+a+1]?(c--,m[g--]=1):(l--,m[g--]=-1)}return m}(n,r,o,a,c,d,f)||function(e,t,n,r,s,i,o,a){var c=0,l=r<a?r:a,u=Array(l++),d=Array(l);d[0]=-1;for(var h=1;h<l;h++)d[h]=o;for(var f=s.slice(i,o),m=t;m<n;m++){var g,b=f.indexOf(e[m]);-1<b&&-1<(c=p(d,l,g=b+i))&&(d[c]=g,u[c]={newi:m,oldi:g,prev:u[c-1]})}for(c=--l,--o;d[c]>o;)--c;l=a+r-c;var y=Array(l),w=u[c];for(--n;w;){for(var v=w.newi,k=w.oldi;v<n;)y[--l]=1,--n;for(;k<o;)y[--l]=-1,--o;y[--l]=0,--n,--o,w=w.prev}for(;t<=n;)y[--l]=1,--n;for(;i<=o;)y[--l]=-1,--o;return y}(n,r,i,o,a,c,u,d),e,t,n,r,a,c,h,m)}(d,e,n,y,b,$,t,g,m,k,f,u,h),n}var m={};function g(t,n){n=n||{};var r=e.createEvent("CustomEvent");return r.initCustomEvent(t,!!n.bubbles,!!n.cancelable,n.detail),r}m.CustomEvent="function"==typeof CustomEvent?CustomEvent:(g["prototype"]=new g("").constructor.prototype,g);var b=m.CustomEvent,y={};try{y.Map=Map}catch(u){y.Map=function(){var e=0,t=[],n=[];return{delete:function(s){var i=r(s);return i&&(t.splice(e,1),n.splice(e,1)),i},forEach:function(e,r){t.forEach((function(t,s){e.call(r,n[s],t,this)}),this)},get:function(t){return r(t)?n[e]:void 0},has:r,set:function(s,i){return n[r(s)?e:t.push(s)-1]=i,this}};function r(n){return-1<(e=t.indexOf(n))}}}var w=y.Map;function v(){return this}function k(e,t){var n="_"+e+"$";return{get:function(){return this[n]||$(this,n,t.call(this,e))},set:function(e){$(this,n,e)}}}var $=function(e,t,n){return Object.defineProperty(e,t,{configurable:!0,value:"function"==typeof n?function(){return e._wire$=n.apply(this,arguments)}:n})[t]};Object.defineProperties(v.prototype,{ELEMENT_NODE:{value:1},nodeType:{value:-1}});var x,C,S,_,T,R,E={},L={},A=[],P=L.hasOwnProperty,N=0,I={attributes:E,define:function(e,t){e.indexOf("-")<0?(e in L||(N=A.push(e)),L[e]=t):E[e]=t},invoke:function(e,t){for(var n=0;n<N;n++){var r=A[n];if(P.call(e,r))return L[r](e[r],t)}}},D=Array.isArray||(C=(x={}.toString).call([]),function(e){return x.call(e)===C}),O=(S=e,_="fragment",R="content"in z(T="template")?function(e){var t=z(T);return t.innerHTML=e,t.content}:function(e){var t,n=z(_),r=z(T);return j(n,/^[^\S]*?<(col(?:group)?|t(?:head|body|foot|r|d|h))/i.test(e)?(t=RegExp.$1,r.innerHTML="<table>"+e+"</table>",r.querySelectorAll(t)):(r.innerHTML=e,r.childNodes)),n},function(e,t){return("svg"===t?function(e){var t=z(_),n=z("div");return n.innerHTML='<svg xmlns="http://www.w3.org/2000/svg">'+e+"</svg>",j(t,n.firstChild.childNodes),t}:R)(e)});function j(e,t){for(var n=t.length;n--;)e.appendChild(t[0])}function z(e){return e===_?S.createDocumentFragment():S.createElementNS("http://www.w3.org/1999/xhtml",e)}var M,U,q,W,F,B,H,G,V,J=(U="appendChild",q="cloneNode",W="createTextNode",B=(F="importNode")in(M=e),(H=M.createDocumentFragment())[U](M[W]("g")),H[U](M[W]("")),(B?M[F](H,!0):H[q](!0)).childNodes.length<2?function e(t,n){for(var r=t[q](),s=t.childNodes||[],i=s.length,o=0;n&&o<i;o++)r[U](e(s[o],n));return r}:B?M[F]:function(e,t){return e[q](!!t)}),K="".trim||function(){return String(this).replace(/^\s+|\s+/g,"")},Z="-"+Math.random().toFixed(6)+"%",Y=!1;try{G=e.createElement("template"),V="tabindex","content"in G&&(G.innerHTML="<p "+V+'="'+Z+'"></p>',G.content.childNodes[0].getAttribute(V)==Z)||(Z="_dt: "+Z.slice(1,-1)+";",Y=!0)}catch(u){}var X="\x3c!--"+Z+"--\x3e",Q=8,ee=1,te=3,ne=/^(?:style|textarea)$/i,re=/^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i,se=" \\f\\n\\r\\t",ie="[^"+se+"\\/>\"'=]+",oe="["+se+"]+"+ie,ae="<([A-Za-z]+[A-Za-z0-9:._-]*)((?:",ce="(?:\\s*=\\s*(?:'[^']*?'|\"[^\"]*?\"|<[^>]*?>|"+ie.replace("\\/","")+"))?)",le=new RegExp(ae+oe+ce+"+)(["+se+"]*/?>)","g"),ue=new RegExp(ae+oe+ce+"*)(["+se+"]*/>)","g"),de=new RegExp("("+oe+"\\s*=\\s*)(['\"]?)"+X+"\\2","gi");function pe(e,t,n,r){return"<"+t+n.replace(de,he)+r}function he(e,t,n){return t+(n||'"')+Z+(n||'"')}function fe(e,t,n){return re.test(t)?e:"<"+t+n+"></"+t+">"}var me=Y?function(e,t){var n=t.join(" ");return t.slice.call(e,0).sort((function(e,t){return n.indexOf(e.name)<=n.indexOf(t.name)?-1:1}))}:function(e,t){return t.slice.call(e,0)};function ge(t,n,r,s){for(var i=t.childNodes,o=i.length,a=0;a<o;){var c=i[a];switch(c.nodeType){case ee:var l=s.concat(a);!function(t,n,r,s){for(var i,o=t.attributes,a=[],c=[],l=me(o,r),u=l.length,d=0;d<u;){var p=l[d++],h=p.value===Z;if(h||1<(i=p.value.split(X)).length){var f=p.name;if(a.indexOf(f)<0){a.push(f);var m=r.shift().replace(h?/^(?:|[\S\s]*?\s)(\S+?)\s*=\s*('|")?$/:new RegExp("^(?:|[\\S\\s]*?\\s)("+f+")\\s*=\\s*('|\")[\\S\\s]*","i"),"$1"),g=o[m]||o[m.toLowerCase()];if(h)n.push(be(g,s,m,null));else{for(var b=i.length-2;b--;)r.shift();n.push(be(g,s,m,i))}}c.push(p)}}for(var y=((d=0)<(u=c.length)&&Y&&!("ownerSVGElement"in t));d<u;){var w=c[d++];y&&(w.value=""),t.removeAttribute(w.name)}var v=t.nodeName;if(/^script$/i.test(v)){var k=e.createElement(v);for(u=o.length,d=0;d<u;)k.setAttributeNode(o[d++].cloneNode(!0));k.textContent=t.textContent,t.parentNode.replaceChild(k,t)}}(c,n,r,l),ge(c,n,r,l);break;case Q:var u=c.textContent;if(u===Z)r.shift(),n.push(ne.test(t.nodeName)?ye(t,s):{type:"any",node:c,path:s.concat(a)});else switch(u.slice(0,2)){case"/*":if("*/"!==u.slice(-2))break;case"👻":t.removeChild(c),a--,o--}break;case te:ne.test(t.nodeName)&&K.call(c.textContent)===X&&(r.shift(),n.push(ye(t,s)))}a++}}function be(e,t,n,r){return{type:"attr",node:e,path:t,name:n,sparse:r}}function ye(e,t){return{type:"text",node:e,path:t}}var we,ve=(we=new n,{get:function(e){return we.get(e)},set:function(e,t){return we.set(e,t),t}});function ke(e,t){var n=(e.convert||function(e){return e.join(X).replace(ue,fe).replace(le,pe)})(t),r=e.transform;r&&(n=r(n));var s=O(n,e.type);xe(s);var i=[];return ge(s,i,t.slice(0),[]),{content:s,updates:function(n){for(var r=[],s=i.length,o=0,a=0;o<s;){var c=i[o++],l=function(e,t){for(var n=t.length,r=0;r<n;)e=e.childNodes[t[r++]];return e}(n,c.path);switch(c.type){case"any":r.push({fn:e.any(l,[]),sparse:!1});break;case"attr":var u=c.sparse,d=e.attribute(l,c.name,c.node);null===u?r.push({fn:d,sparse:!1}):(a+=u.length-2,r.push({fn:d,sparse:!0,values:u}));break;case"text":r.push({fn:e.text(l),sparse:!1}),l.textContent=""}}return s+=a,function(){var e=arguments.length;if(s!==e-1)throw new Error(e-1+" values instead of "+s+"\n"+t.join("${value}"));for(var i=1,o=1;i<e;){var a=r[i-o];if(a.sparse){var c=a.values,l=c[0],u=1,d=c.length;for(o+=d-2;u<d;)l+=arguments[i++]+c[u++];a.fn(l)}else a.fn(arguments[i++])}return n}}}}var $e=[];function xe(e){for(var t=e.childNodes,n=t.length;n--;){var r=t[n];1!==r.nodeType&&0===K.call(r.textContent).length&&e.removeChild(r)}}var Ce,Se,_e=(Ce=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,Se=/([^A-Z])([A-Z]+)/g,function(e,t){return"ownerSVGElement"in e?function(e,t){var n;return(n=t?t.cloneNode(!0):(e.setAttribute("style","--hyper:style;"),e.getAttributeNode("style"))).value="",e.setAttributeNode(n),Re(n,!0)}(e,t):Re(e.style,!1)});function Te(e,t,n){return t+"-"+n.toLowerCase()}function Re(e,t){var n,r;return function(s){var i,o,a,c;switch(typeof s){case"object":if(s){if("object"===n){if(!t&&r!==s)for(o in r)o in s||(e[o]="")}else t?e.value="":e.cssText="";for(o in i=t?{}:e,s)a="number"!=typeof(c=s[o])||Ce.test(o)?c:c+"px",!t&&/^--/.test(o)?i.setProperty(o,a):i[o]=a;n="object",t?e.value=function(e){var t,n=[];for(t in e)n.push(t.replace(Se,Te),":",e[t],";");return n.join("")}(r=i):r=s;break}default:r!=s&&(n="string",r=s,t?e.value=s||"":e.cssText=s||"")}}}var Ee,Le,Ae=(Ee=[].slice,(Le=Pe.prototype).ELEMENT_NODE=1,Le.nodeType=111,Le.remove=function(e){var t,n=this.childNodes,r=this.firstChild,s=this.lastChild;return this._=null,e&&2===n.length?s.parentNode.removeChild(s):((t=this.ownerDocument.createRange()).setStartBefore(e?n[1]:r),t.setEndAfter(s),t.deleteContents()),r},Le.valueOf=function(e){var t=this._,n=null==t;if(n&&(t=this._=this.ownerDocument.createDocumentFragment()),n||e)for(var r=this.childNodes,s=0,i=r.length;s<i;s++)t.appendChild(r[s]);return t},Pe);function Pe(e){var t=this.childNodes=Ee.call(e,0);this.firstChild=t[0],this.lastChild=t[t.length-1],this.ownerDocument=t[0].ownerDocument,this._=null}function Ne(e){return{html:e}}function Ie(e,t){switch(e.nodeType){case Be:return 1/t<0?t?e.remove(!0):e.lastChild:t?e.valueOf(!0):e.firstChild;case Fe:return Ie(e.render(),t);default:return e}}function De(e,t){t(e.placeholder),"text"in e?Promise.resolve(e.text).then(String).then(t):"any"in e?Promise.resolve(e.any).then(t):"html"in e?Promise.resolve(e.html).then(Ne).then(t):Promise.resolve(I.invoke(e,t)).then(t)}function Oe(e){return null!=e&&"then"in e}var je,ze,Me,Ue,qe,We="ownerSVGElement",Fe=v.prototype.nodeType,Be=Ae.prototype.nodeType,He=(ze=(je={Event:b,WeakSet:u}).Event,Me=je.WeakSet,Ue=!0,qe=null,function(e){return Ue&&(Ue=!Ue,qe=new Me,function(e){var t=new Me,n=new Me;try{new MutationObserver(o).observe(e,{subtree:!0,childList:!0})}catch(t){var r=0,s=[],i=function(e){s.push(e),clearTimeout(r),r=setTimeout((function(){o(s.splice(r=0,s.length))}),0)};e.addEventListener("DOMNodeRemoved",(function(e){i({addedNodes:[],removedNodes:[e.target]})}),!0),e.addEventListener("DOMNodeInserted",(function(e){i({addedNodes:[e.target],removedNodes:[]})}),!0)}function o(e){for(var r,s=e.length,i=0;i<s;i++)a((r=e[i]).removedNodes,"disconnected",n,t),a(r.addedNodes,"connected",t,n)}function a(e,t,n,r){for(var s,i=new ze(t),o=e.length,a=0;a<o;1===(s=e[a++]).nodeType&&function e(t,n,r,s,i){qe.has(t)&&!s.has(t)&&(i.delete(t),s.add(t),t.dispatchEvent(n));for(var o=t.children||[],a=o.length,c=0;c<a;e(o[c++],n,r,s,i));}(s,i,t,n,r));}}(e.ownerDocument)),qe.add(e),e}),Ge=/^(?:form|list)$/i,Ve=[].slice;function Je(t){return this.type=t,function(t){var n=$e,r=xe;return function(s){var i,o,a;return n!==s&&(i=t,o=n=s,a=ve.get(o)||ve.set(o,ke(i,o)),r=a.updates(J.call(e,a.content,!0))),r.apply(null,arguments)}}(this)}var Ke=!(Je.prototype={attribute:function(e,t,n){var r,s=We in e;if("style"===t)return _e(e,n,s);if("."===t.slice(0,1))return l=e,u=t.slice(1),s?function(e){try{l[u]=e}catch(t){l.setAttribute(u,e)}}:function(e){l[u]=e};if("?"===t.slice(0,1))return o=e,a=t.slice(1),function(e){c!==!!e&&((c=!!e)?o.setAttribute(a,""):o.removeAttribute(a))};if(/^on/.test(t)){var i=t.slice(2);return"connected"===i||"disconnected"===i?He(e):t.toLowerCase()in e&&(i=i.toLowerCase()),function(t){r!==t&&(r&&e.removeEventListener(i,r,!1),(r=t)&&e.addEventListener(i,t,!1))}}if("data"===t||!s&&t in e&&!Ge.test(t))return function(n){r!==n&&(r=n,e[t]!==n&&null==n?(e[t]="",e.removeAttribute(t)):e[t]=n)};if(t in I.attributes)return function(n){var s=I.attributes[t](e,n);r!==s&&(null==(r=s)?e.removeAttribute(t):e.setAttribute(t,s))};var o,a,c,l,u,d=!1,p=n.cloneNode(!0);return function(t){r!==t&&(r=t,p.value!==t&&(null==t?(d&&(d=!1,e.removeAttributeNode(p)),p.value=t):(p.value=t,d||(d=!0,e.setAttributeNode(p)))))}},any:function(e,t){var n,r={node:Ie,before:e},s=We in e?"svg":"html",i=!1;return function o(a){switch(typeof a){case"string":case"number":case"boolean":i?n!==a&&(n=a,t[0].textContent=a):(i=!0,n=a,t=f(e.parentNode,t,[(c=a,e.ownerDocument.createTextNode(c))],r));break;case"function":o(a(e));break;case"object":case"undefined":if(null==a){i=!1,t=f(e.parentNode,t,[],r);break}default:if(i=!1,D(n=a))if(0===a.length)t.length&&(t=f(e.parentNode,t,[],r));else switch(typeof a[0]){case"string":case"number":case"boolean":o({html:a});break;case"object":if(D(a[0])&&(a=a.concat.apply([],a)),Oe(a[0])){Promise.all(a).then(o);break}default:t=f(e.parentNode,t,a,r)}else"ELEMENT_NODE"in a?t=f(e.parentNode,t,11===a.nodeType?Ve.call(a.childNodes):[a],r):Oe(a)?a.then(o):"placeholder"in a?De(a,o):"text"in a?o(String(a.text)):"any"in a?o(a.any):"html"in a?t=f(e.parentNode,t,Ve.call(O([].concat(a.html).join(""),s).childNodes),r):o("length"in a?Ve.call(a):I.invoke(a,o))}var c}},text:function(e){var t;return function n(r){var s;t!==r&&("object"==(s=typeof(t=r))&&r?Oe(r)?r.then(n):"placeholder"in r?De(r,n):n("text"in r?String(r.text):"any"in r?r.any:"html"in r?[].concat(r.html).join(""):"length"in r?Ve.call(r).join(""):I.invoke(r,n)):"function"==s?n(r(e)):e.textContent=null==r?"":r)}}}),Ze=function(t){var r,s,i,o,a=(r=(e.defaultView.navigator||{}).userAgent,/(Firefox|Safari)\/(\d+)/.test(r)&&!/(Chrom[eium]+|Android)\/(\d+)/.test(r)),c=!("raw"in t)||t.propertyIsEnumerable("raw")||!Object.isFrozen(t.raw);return a||c?(s={},i=function(e){for(var t=".",n=0;n<e.length;n++)t+=e[n].length+"."+e[n];return s[t]||(s[t]=e)},Ze=c?i:(o=new n,function(e){return o.get(e)||(n=i(t=e),o.set(t,n),n);var t,n})):Ke=!0,Ye(t)};function Ye(e){return Ke?e:Ze(e)}function Xe(e){for(var t=arguments.length,n=[Ye(e)],r=1;r<t;)n.push(arguments[r++]);return n}var Qe=new n,et=function(e){var t,n,r;return function(){var s=Xe.apply(null,arguments);return r!==s[0]?(r=s[0],n=new Je(e),t=nt(n.apply(n,s))):n.apply(n,s),t}},tt=function(e,t){var n=t.indexOf(":"),r=Qe.get(e),s=t;return-1<n&&(s=t.slice(n+1),t=t.slice(0,n)||"html"),r||Qe.set(e,r={}),r[s]||(r[s]=et(t))},nt=function(e){var t=e.childNodes,n=t.length;return 1===n?t[0]:n?new Ae(t):e},rt=new n;function st(){var e=rt.get(this),t=Xe.apply(null,arguments);return e&&e.template===t[0]?e.tagger.apply(null,t):function(e){var t=new Je(We in this?"svg":"html");rt.set(this,{tagger:t,template:e}),this.textContent="",this.appendChild(t.apply(null,arguments))}.apply(this,t),this}var it,ot,at,ct,lt=I.define,ut=Je.prototype;function dt(e){return arguments.length<2?null==e?et("html"):"string"==typeof e?dt.wire(null,e):"raw"in e?et("html")(e):"nodeType"in e?dt.bind(e):tt(e,"html"):("raw"in e?et("html"):dt.wire).apply(null,arguments)}return dt.Component=v,dt.bind=function(e){return st.bind(e)},dt.define=lt,dt.diff=f,(dt.hyper=dt).observe=He,dt.tagger=ut,dt.wire=function(e,t){return null==e?et(t||"html"):tt(e,t||"html")},dt._={WeakMap:n,WeakSet:u},it=et,ot=new n,at=Object.create,ct=function(e,t){var n={w:null,p:null};return t.set(e,n),n},Object.defineProperties(v,{for:{configurable:!0,value:function(e,t){return function(e,t,r,s){var i,o,a,c=t.get(e)||ct(e,t);switch(typeof s){case"object":case"function":var l=c.w||(c.w=new n);return l.get(s)||(i=l,o=s,a=new e(r),i.set(o,a),a);default:var u=c.p||(c.p=at(null));return u[s]||(u[s]=new e(r))}}(this,ot.get(e)||(r=e,s=new w,ot.set(r,s),s),e,null==t?"default":t);var r,s}}}),Object.defineProperties(v.prototype,{handleEvent:{value:function(e){var t=e.currentTarget;this["getAttribute"in t&&t.getAttribute("data-call")||"on"+e.type](e)}},html:k("html",it),svg:k("svg",it),state:k("state",(function(){return this.defaultState})),defaultState:{get:function(){return{}}},dispatch:{value:function(e,t){var n=this._wire$;if(n){var r=new b(e,{bubbles:!0,cancelable:!0,detail:t});return r.component=this,(n.dispatchEvent?n:n.firstChild).dispatchEvent(r)}return!1}},setState:{value:function(e,t){var n=this.state,r="function"==typeof e?e.call(this,n):e;for(var s in r)n[s]=r[s];return!1!==t&&this.render(),this}}}),dt}(document);const{Component:sr,bind:ir,define:or,diff:ar,hyper:cr,wire:lr}=rr,ur=rr,dr=R,pr=Zn,hr=class{constructor(e){const{type:t,subtype:n,params:r}=function(e){if(e=e.trim(),!e)throw new TypeError("Invalid input.");let t="",n="",r="",s=null,i=new Map,o="type",a=Array.from(e);for(let e=0;e<a.length;e++){const c=a[e];switch(o){case"type":if("/"===c){o="subtype";continue}t+=c;break;case"subtype":if(";"===c){o="param-start";continue}n+=c;break;case"param-start":if(xt.test(c)||";"===c)continue;r+=c,o="param-name";break;case"param-name":if("="===c||";"===c){if("="===c){o="param-value",s=null;continue}i.set(r.toLowerCase(),null),r="";continue}r+=c;break;case"param-value":if('"'==c){o="collect-quoted-string";continue}if(";"===c){s=s.trimEnd(),o="param-start",St(i,r,s),r="";continue}s="string"==typeof s?s+c:c;break;case"collect-quoted-string":if('"'===c){St(i,r,s),o="ignore-input-until-next-param",r="",s=null;continue}if("\\"===c)continue;s="string"==typeof s?s+c:c;break;case"ignore-input-until-next-param":if(";"!==c)continue;o="param-start";break;default:throw new Error(`State machine error - unknown parser mode: ${o} `)}}r&&St(i,r,s);if(""===t.trim()||!$t.test(t))throw new TypeError("Invalid type");if(""===n.trim()||!$t.test(n))throw new TypeError("Invalid subtype");return{type:t,subtype:n,params:Object.fromEntries(i.entries())}}(e);this.type=t.trim().toLowerCase(),this.subtype=n.trimEnd().toLowerCase(),this.parameters=new Map(Object.entries(r))}get essence(){return`${this.type}/${this.subtype}`}toString(){return function(e){const{parameters:t,essence:n}=e;if(!t.size)return n;let r=";";for(const[e,n]of t.entries())r+=e,null!==n?$t.test(n)?r+=`=${n}`:r+=`="${n}"`:r+='=""',r+=";";return e.essence+r.slice(0,-1)}(this)}},fr=nr,mr=Ge,gr=class{lexer;curToken=kt;peekToken=kt;getCurToken(){return this.curToken}getPeekToken(){return this.peekToken}constructor(e){this.lexer=new vt(e),this._nextToken(),this._nextToken()}parse(){const e=[];for(;this.getCurToken().type!==He.EOF;){const t=this._parseRule();e.push(t)}const t=new Xe(e);return t.separator=this._nextToken(),t.setChildrenParent(),this._convertGroupDefinitions(t),t}_parseRule(){const e=this._parseTypename(!0,null),t=this._nextToken();let n;if(t.type===He.ASSIGN||t.type===He.GCHOICEALT){const r=this._parseGroupEntry();n=new Qe(e,t,r)}else{if(t.type!==He.TCHOICEALT)throw this._parserError(`expected assignment (\`=\`, \`/=\`, \`//=\`) after \`${e.serialize().trim()}\`, got \`${t.serialize().trim()}\``);{const r=this._parseType();if(!(r instanceof ht))throw new Error("Expected Type instance");n=new Qe(e,t,r)}}return n}_parseGroupEntry(){const e=this._parseOccurrence(),t=this._parseType(!0);let n;if(t instanceof pt){const r=this._parseType(!1);if(!(r instanceof ht))throw new Error("Expected Type instance");n=new et(e,t,r)}else n=new et(e,null,t);return n}_parseType(e=!1){const t=[];let n=this._parseType1(e);if(t.push(n),e&&this.getCurToken().type===He.CARET){const e=[];if(e.push(this._nextToken()),this.getCurToken().type!==He.ARROWMAP)throw this._parserError("expected arrow map (`=>`), got `#{(this.getCurToken().serialize() + this.getPeekToken().serialize()).trim()}`");e.push(this._nextToken());return new pt(n,!0,!1,e)}if(e&&this.getCurToken().type===He.ARROWMAP){return new pt(n,!1,!1,[this._nextToken()])}if(e&&this.getCurToken().type===He.COLON){return new pt(n,!0,!0,[this._nextToken()])}for(;this.getCurToken().type===He.TCHOICE;)n.separator=this._nextToken(),n=this._parseType1(),t.push(n);return new ht(t)}_parseType1(e=!1){const t=this._parseType2(e);let n;if(this.getCurToken().type===He.INCLRANGE||this.getCurToken().type===He.EXCLRANGE){const e=this._nextToken(),r=this._parseType2();if(!(t instanceof at||t instanceof ct))throw this._parserError(`expected range min to be a value or a typename, got \`${t.serialize().trim()}\``);if(!(r instanceof at||r instanceof ct))throw this._parserError(`expected range max to be a value or a typename, got \`${r.serialize().trim()}\``);n=new ut(t,r,e)}else if(this.getCurToken().type===He.CTLOP){const e=this._nextToken(),r=this._parseType2();n=new dt(t,e,r)}else n=t;return n}_parseType2(e=!1){let t;if(this.getCurToken().type===He.LPAREN){const n=this._nextToken();if(e)t=this._parseGroup(!1);else{const e=this._parseType();if(!(e instanceof ht))throw new Error("Expected Type instance");t=e}if(t.openToken=n,this.getCurToken().type!==He.RPAREN)throw this._parserError(`expected right parenthesis, got \`${this.getCurToken().serialize().trim()}\``);t.closeToken=this._nextToken()}else if(this.getCurToken().type===He.LBRACE){const e=this._nextToken();if(t=this._parseGroup(!0),t.openToken=e,this.getCurToken().type!==He.RBRACE)throw this._parserError(`expected right brace, got \`${this.getCurToken().serialize()}\``);t.closeToken=this._nextToken()}else if(this.getCurToken().type===He.LBRACK){const e=this._nextToken(),n=this._parseGroup(!1);if(t=new rt(n.groupChoices),t.openToken=e,this.getCurToken().type!==He.RBRACK)throw this._parserError(`expected right bracket, got \`${this.getCurToken().serialize().trim()}\``);t.closeToken=this._nextToken()}else if(this.getCurToken().type===He.TILDE){const e=this._nextToken();t=this._parseTypename(!1,e)}else if(this.getCurToken().type===He.AMPERSAND){const e=this._nextToken();if(this.getCurToken().type===He.LPAREN){const e=this._nextToken(),n=this._parseGroup(!1);if(n.openToken=e,this.getCurToken().type!==He.RPAREN)throw this._parserError(`expected right parenthesis, got \`${this.getCurToken().serialize().trim()}\``);n.closeToken=this._nextToken(),t=new lt(n)}else{const e=this._parseTypename(!1,null);t=new lt(e)}t.setComments(e)}else if(this.getCurToken().type===He.HASH){const e=this._nextToken();if(this.getCurToken().type!==He.NUMBER&&this.getCurToken().type!==He.FLOAT||this.getCurToken().startWithSpaces())t=new it;else{const e=this._nextToken();if(e.literal.length>1&&("."!==e.literal[1]||e.literal.includes("e")))throw this._parserError(`expected data item after "#" to match \`DIGIT ["." uint]\`, got \`${this.getCurToken().serialize().trim()}\``);if("6"!==e.literal[0]||this.getCurToken().type!==He.LPAREN||this.getCurToken().startWithSpaces())t=new it(e);else{const n=this._parseType2();if(!(n instanceof ht))throw new Error("Expected Type instance");t=new it(e,n)}}t.setComments(e)}else if(this.getCurToken().type===He.IDENT)t=this._parseTypename(!1,null);else if(this.getCurToken().type===He.STRING){const e=this._nextToken();t=new at(e.literal,"text"),t.setComments(e)}else if(this.getCurToken().type===He.BYTES){const e=this._nextToken();t=new at(e.literal,"bytes"),t.setComments(e)}else if(this.getCurToken().type===He.HEX){const e=this._nextToken();t=new at(e.literal,"hex"),t.setComments(e)}else if(this.getCurToken().type===He.BASE64){const e=this._nextToken();t=new at(e.literal,"base64"),t.setComments(e)}else if(this.getCurToken().type===He.NUMBER){const e=this._nextToken();t=new at(e.literal,"number"),t.setComments(e)}else{if(this.getCurToken().type!==He.FLOAT)throw this._parserError(`invalid type2 production, got \`${this.getCurToken().serialize().trim()}\``);{const e=this._nextToken();t=new at(e.literal,"number"),t.setComments(e)}}return t}_parseGroup(e=!1){const t=[];for(;this.getCurToken().type!==He.RPAREN&&this.getCurToken().type!==He.RBRACE&&this.getCurToken().type!==He.RBRACK;){const e=[];for(;this.getCurToken().type!==He.GCHOICE;){const t=this._parseGroupEntry();if(e.push(t),this.getCurToken().type===He.COMMA&&(t.separator=this._nextToken()),this.getCurToken().type===He.RPAREN||this.getCurToken().type===He.RBRACE||this.getCurToken().type===He.RBRACK)break}const n=new st(e);if(t.push(n),this.getCurToken().type===He.RPAREN||this.getCurToken().type===He.RBRACE||this.getCurToken().type===He.RBRACK)break;n.separator=this._nextToken()}let n;return n=e?new nt(t):new tt(t),n}_parseOccurrence(){const e=[];let t=null;if(this.getCurToken().type===He.QUEST||this.getCurToken().type===He.ASTERISK||this.getCurToken().type===He.PLUS){const n=this.getCurToken().type===He.PLUS?1:0;let r=1/0;this.getCurToken().type===He.ASTERISK&&this.getPeekToken().type===He.NUMBER&&yt(this.getPeekToken().literal)&&!this.getPeekToken().startWithSpaces()&&(e.push(this._nextToken()),r=parseInt(this.getCurToken().literal)),e.push(this._nextToken()),t=new ot(n,r,e)}else if(this.getCurToken().type===He.NUMBER&&yt(this.getCurToken().literal)&&this.getPeekToken().type===He.ASTERISK&&!this.getPeekToken().startWithSpaces()){const n=parseInt(this.getCurToken().literal);let r=1/0;e.push(this._nextToken()),e.push(this._nextToken()),this.getCurToken().type===He.NUMBER&&yt(this.getCurToken().literal)&&!this.getCurToken().startWithSpaces()&&(r=parseInt(this.getCurToken().literal),e.push(this._nextToken())),t=new ot(n,r,e)}return t}_parseTypename(e=!1,t=null){if(this.getCurToken().type!==He.IDENT)throw this._parserError(`expected group identifier, got \`${this.getCurToken().serialize().trim()}\``);const n=this._nextToken();let r;r=e?this._parseGenericParameters():this._parseGenericArguments();const s=new ct(n.literal,t,r);return s.setComments(n),s}_parseGenericParameters(){if(this.getCurToken().type!==He.LT||this.getCurToken().startWithSpaces())return null;const e=this._nextToken(),t=[];let n=this._parseTypename();for(t.push(n);this.getCurToken().type===He.COMMA;)n.separator=this._nextToken(),n=this._parseTypename(),t.push(n);const r=new ft(t);if(r.openToken=e,this.getCurToken().type!==He.GT)throw this._parserError(`expected \`>\` character to end generic production, got \`${this.getCurToken().serialize().trim()}\``);return r.closeToken=this._nextToken(),r}_parseGenericArguments(){if(this.getCurToken().type!==He.LT||this.getCurToken().startWithSpaces())return null;const e=this._nextToken(),t=[];let n=this._parseType1();for(t.push(n);this.getCurToken().type===He.COMMA;)n.separator=this._nextToken(),n=this._parseType1(),t.push(n);const r=new mt(t);if(r.openToken=e,this.getCurToken().type!==He.GT)throw this._parserError(`expected \`>\` character to end generic production, got \`${this.getCurToken().serialize().trim()}\``);return r.closeToken=this._nextToken(),r}_convertGroupDefinitions(e){const t=new Set,n=new Set,r=new Set,s=e=>{if(e instanceof at||e instanceof nt||e instanceof rt||e instanceof lt||e instanceof it)return"type";if(e instanceof ut)return s(e.min);if(e instanceof dt)return s(e.type);if(e instanceof ct){const t=e.name;if(n.has(t)||this._isPreludeType(t))return"type";if(r.has(t))return"group"}return"unknown"};for(const s of e.rules)t.add(s.name.name),0===n.size&&n.add(s.name.name),s.type instanceof ht?n.add(s.name.name):(s.assign.type===He.TCHOICEALT&&n.add(s.name.name),s.assign.type===He.GCHOICEALT&&r.add(s.name.name),s.type.type.types.length>1&&null===s.type.type.openToken&&n.add(s.name.name),null!==s.type.occurrence&&r.add(s.name.name),null!==s.type.key&&r.add(s.name.name));const i=e=>{e instanceof et&&null!==e.key&&e.key.type instanceof ct&&!e.key.hasColon&&t.has(e.key.type.name)&&n.add(e.key.type.name);for(const t of e.getChildren())i(t)};i(e);let o=!0;for(;o;){o=!1;for(const i of e.rules)if(i.type instanceof ht)for(const e of i.type.types)e instanceof ct&&t.has(e.name)&&(n.has(e.name)||(o=!0,n.add(e.name)));else{if(n.has(i.name.name))for(const e of i.type.type.types)e instanceof ct&&t.has(e.name)&&(n.has(e.name)||(o=!0,n.add(e.name)));if(r.has(i.name.name))for(const e of i.type.type.types)e instanceof ct&&t.has(e.name)&&(r.has(e.name)||(o=!0,r.add(e.name)));if(i.assign.type===He.ASSIGN){const e=new Set(i.type.type.types.map((e=>s(e))));if(e.has("type")&&e.has("group"))throw new gt(`CDDL semantic error - rule \`${i.name.name}\` targets a mix of type and group rules`);e.has("type")?n.has(i.name.name)||(o=!0,n.add(i.name.name)):e.has("group")&&(r.has(i.name.name)||(o=!0,r.add(i.name.name)))}}}const a=[...n].filter((e=>r.has(e)));if(a.length>0){const e=a.join(", ");throw new gt(`CDDL semantic error - mix of type and group definitions for ${e}`)}for(const t of e.rules)if(!(t.type instanceof ht)&&n.has(t.name.name)){if(!t.type.isConvertibleToType())throw new gt(`CDDL semantic error - rule \`${t.name.name}\` is a type definition but uses a group entry`);t.type=t.type.type}}_isPreludeType(e){return["any","uint","nint","int","bstr","bytes","tstr","text","tdate","time","number","biguint","bignint","bigint","integer","unsigned","decfrac","bigfloat","eb64url","eb64legacy","eb16","encoded-cbor","uri","b64url","b64legacy","regexp","mime-message","cbor-any","float16","float32","float64","float16-32","float32-64","float","false","true","bool","nil","null","undefined"].includes(e)}_nextToken(){const e=this.curToken;return this.curToken=this.peekToken,this.peekToken=this.lexer.nextToken(),e}_parserError(e){const t=this.lexer.getLocation();return new gt(`CDDL syntax error - line ${t.line+1}: ${e}`)}},br=class{serializeToken(e,t){return e.serialize()}serializeValue(e,t,n,r){return e+t+n}serializeName(e,t){return e}markupFor(e){return[null,null]}},yr=Qe,wr=pt,vr=ft,kr=mt,$r=ht,xr=ot,Cr=/['\u2019]s$/,Sr=/-/g,_r=RegExp.escape??(e=>e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"));const Tr=new Intl.DateTimeFormat(["sv-SE"],{timeZone:"UTC",year:"numeric",month:"2-digit",day:"2-digit"}),Rr="en"===r||r.startsWith("en-")?"en-AU":r,Er=new Intl.DateTimeFormat(Rr,{timeZone:"UTC",year:"numeric",month:"long",day:"en-AU"===Rr?"2-digit":"numeric"}),Lr=".informative, .note, .issue, .example, .ednote, .practice, .introductory";function Ar(e){const t=new URL(e.href,document.baseURI),n=document.createElement("link");let{href:r}=t;switch(n.rel=e.hint,n.rel){case"dns-prefetch":case"preconnect":r=t.origin,(e.corsMode||t.origin!==document.location.origin)&&(n.crossOrigin=e.corsMode||"anonymous");break;case"preload":"as"in e&&n.setAttribute("as",e.as||""),e.corsMode&&(n.crossOrigin=e.corsMode)}return n.href=r,e.dontRemove||n.classList.add("removeOnSave"),n}function Pr(e){e.querySelectorAll(".remove, script[data-requiremodule]").forEach((e=>{e.remove()}))}function Nr(e,t="long"){const n=new Intl.ListFormat(r,{style:t,type:e});return(e,t)=>{let r=0;return n.formatToParts(e).map((({type:n,value:s})=>"element"===n&&t?t(s,r++,e):s))}}const Ir=Nr("conjunction"),Dr=Nr("disjunction");function Or(e,t){return Ir(e,t).join("")}function jr(e,t){return Dr(e,t).join("")}function zr(e){return e.replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/</g,"&lt;")}function Mr(e){return e.trim().replace(/\s+/g," ")}function Ur(e,t=r){return t=t.toLowerCase(),new Proxy(e,{get(e,n){const r=qr(e,n,t)||e.en[n];if(!r)throw new Error(`No l10n data for key: "${n}"`);return r}})}function qr(e,t,n=r){n=n.toLowerCase();const s=n.match(/^(\w{2,3})-.+$/)?.[1]??"";return e[n]?.[t]||e[s]?.[t]}function Wr(e,t=""){return Tr.format(e).replace(Sr,t)}function Fr(e,t,...n){const r=[this,e,...n];if(t){const n=t.split(/\s+/);for(const t of n){const n=window[t];if(n)try{e=n.apply(this,r)}catch(e){ls(`call to \`${t}()\` failed with: ${e}.`,"utils/runTransforms",{hint:"See developer console for stack trace.",cause:e})}}}return e}async function Br(e,t=864e5){const n=new Request(e),r=new URL(n.url);let s,i;if("caches"in window)try{if(s=await caches.open(r.origin),i=await s.match(n),i&&new Date(i.headers.get("Expires")??"")>new Date)return i}catch(e){console.error("Failed to use Cache API.",e)}const o=await fetch(n);if(!o.ok&&i)return console.warn(`Returning a stale cached response for ${r}`),i;if(s&&o.ok){const e=o.clone(),r=new Headers(o.headers),i=new Date(Date.now()+t);r.set("Expires",i.toISOString());const a=new Response(await e.blob(),{headers:r});await s.put(n,a).catch(console.error)}return o}function Hr(e,t=(e=>e)){const n=e.map(t),r=n.slice(0,-1).map((e=>ur`${e}, `));return ur`${r}${n[n.length-1]}`}function Gr(e,t){return[].concat(Ir(e,t)).map((e=>"string"==typeof e?ur`${e}`:e))}function Vr(e,t=""){const n=function(e){let t=0;for(const n of e)t=Math.imul(31,t)+n.charCodeAt(0)|0;return String(t)}(Mr(e.textContent));return Kr(e,t,n)}function Jr(e,t=!1){return(t?e:e.toLowerCase()).trim().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\W+/gim,"-").replace(/^-+/,"").replace(/-+$/,"")}function Kr(e,t="",n="",r=!1){if(e.id)return e.id;n||(n=(e.title?e.title:e.textContent).trim());let s=Jr(n,r);if(s?!/\.$/.test(s)&&/^[a-z]/i.test(t||s)||(s=`x${s}`):s="generatedID",t&&(s=`${t}-${s}`),e.ownerDocument.getElementById(s)){let t=0,n=`${s}-${t}`;for(;e.ownerDocument.getElementById(n);)t+=1,n=`${s}-${t}`;s=n}return e.id=s,s}function Zr(e){const t=new Set,n="ltNodefault"in e.dataset?"":Mr(e.textContent),r=e.children[0];if(e.dataset.lt?e.dataset.lt.split("|").map((e=>Mr(e))).forEach((e=>t.add(e))):1===e.childNodes.length&&1===e.getElementsByTagName("abbr").length&&r&&r.title?t.add(r.title):'""'===e.textContent&&t.add("the-empty-string"),t.add(n),t.delete(""),e.dataset.localLt){e.dataset.localLt.split("|").forEach((e=>t.add(Mr(e))))}return[...t]}function Yr(e,t,n={copyAttributes:!0}){if(e.localName===t)return e;const r=e.ownerDocument.createElement(t);if(n.copyAttributes)for(const{name:t,value:n}of e.attributes)r.setAttribute(t,n);return r.append(...e.childNodes),e.replaceWith(r),r}function Xr(e,t){const n=t.closest(Lr);let r=!1;if(n&&(r=!t.closest(".normative")||!n.querySelector(".normative")),e.startsWith("!")){if(r)return{type:"informative",illegal:!0};r=!1}else e.startsWith("?")&&(r=!0);return{type:r?"informative":"normative",illegal:!1}}function Qr(e,t){return t.append(...e.childNodes),e.appendChild(t),e}function es(e){const t=[];for(const n of function*(e){let t=e;for(;t.previousElementSibling;)t=t.previousElementSibling,yield t}(e))"section"===n.localName&&t.push(n);return t}function ts(e){const{previousSibling:t}=e;if(!t||t.nodeType!==Node.TEXT_NODE)return"";const n=(t.textContent??"").lastIndexOf("\n");if(-1===n)return"";const r=(t.textContent??"").slice(n+1);return/\S/.test(r)?"":r}class ns extends Set{constructor(e=[]){super();for(const t of e)this.add(t)}add(e){return this.has(e)||this.getCanonicalKey(e)?this:super.add(e)}has(e){return super.has(e)||[...this.keys()].some((t=>t.toLowerCase()===e.toLowerCase()))}delete(e){return super.has(e)?super.delete(e):super.delete(this.getCanonicalKey(e)??e)}getCanonicalKey(e){return super.has(e)?e:[...this.keys()].find((t=>t.toLowerCase()===e.toLowerCase()))}}function rs(e){const t=e.cloneNode(!0);return t.querySelectorAll("[id]").forEach((e=>e.removeAttribute("id"))),t.querySelectorAll("dfn").forEach((e=>{Yr(e,"span",{copyAttributes:!1})})),t.hasAttribute("id")&&t.removeAttribute("id"),ss(t),t}function ss(e){const t=document.createTreeWalker(e,NodeFilter.SHOW_COMMENT);for(const e of[...is(t)])e.remove()}function*is(e){for(;e.nextNode();)yield e.currentNode}class os extends Map{constructor(e=[]){return super(),e.forEach((([e,t])=>{this.set(e,t)})),this}set(e,t){return super.set(e.toLowerCase(),t),this}get(e){return super.get(e.toLowerCase())}has(e){return super.has(e.toLowerCase())}delete(e){return super.delete(e.toLowerCase())}}class as extends Error{constructor(e,t,n){super(e,{...n.cause&&{cause:n.cause}});const r=n.isWarning?"ReSpecWarning":"ReSpecError";Object.assign(this,{message:e,plugin:t,name:r,...n}),n.elements&&n.elements.forEach((t=>function(e,t,n){e.classList.add("respec-offending-element"),e.hasAttribute("title")||e.setAttribute("title",n||t),e.id||Kr(e,"respec-offender")}(t,e,n.title)))}toJSON(){const{message:e,name:t,stack:n}=this,{plugin:r,hint:s,elements:i,title:o,details:a}=this;return{message:e,name:t,plugin:r,hint:s,elements:i,title:o,details:a,stack:n,...this.cause instanceof Error&&{cause:{name:this.cause.name,message:this.cause.message,stack:this.cause.stack}}}}}function cs(e,t,n={}){const r={...n,isWarning:!1};ys("error",new as(e,t,r))}function ls(e,t,n={}){const r={...n,isWarning:!0};ys("warn",new as(e,t,r))}function us(e){return{amendConfiguration:e=>ys("amend-user-config",e),showError:(t,n)=>cs(t,e,n),showWarning:(t,n)=>ls(t,e,n)}}function ds(e){return e?`\`${e}\``:""}function ps(e,{quotes:t}={quotes:!1}){return jr(e,t?e=>ds(fs(e)):ds)}function hs(e,{quotes:t}={quotes:!1}){return Or(e,t?e=>ds(fs(e)):ds)}function fs(e){return String(e)?`"${e}"`:""}function ms(e,...t){return gs(e.map(((e,n)=>{const r=t[n];if(!r)return e;if(!r.startsWith("[")&&!r.endsWith("]"))return e+r;const[s,i]=r.slice(1,-1).split("|");if(i){return`${e}[${s}](${new URL(i,"https://respec.org/docs/")})`}return`${e}[\`${s}\`](https://respec.org/docs/#${s})`})).join(""))}function gs(e){if(!e)return e;const t=e.trimEnd().split("\n");for(;t.length&&!t[0].trim();)t.shift();const n=t.filter((e=>e.trim())).map((e=>e.search(/[^\s]/))),r=Math.min(...n);return t.map((e=>e.slice(r))).join("\n")}const bs=new EventTarget;function ys(e,t){if(bs.dispatchEvent(new CustomEvent(e,{detail:t})),window.parent===window.self)return;const n=String(JSON.stringify(t?.stack||t));window.parent.postMessage({topic:e,args:n},window.parent.location.origin)}function ws(e,t,n={once:!1}){bs.addEventListener(e,(async n=>{try{await t(n.detail)}catch(t){const n=t;cs(`Error in handler for topic "${e}": ${n.message}`,`sub:${e}`,{cause:n})}}),n)}const vs=["githubToken","githubUser"];const ks=new Map([["text/html","html"],["application/xml","xml"]]);function $s(e,t=document){const n=ks.get(e);if(!n){const t=[...ks.values()].join(", ");throw new TypeError(`Invalid format: ${e}. Expected one of: ${t}.`)}const r=xs(n,t);return`data:${e};charset=utf-8,${encodeURIComponent(r)}`}function xs(e,t){const n=t.cloneNode(!0);!function(e){const{head:t,body:n,documentElement:r}=e;ss(e),e.querySelectorAll(".removeOnSave, #toc-nav").forEach((e=>e.remove())),n.classList.remove("toc-sidebar","toc-inline"),Pr(r);const s=e.createDocumentFragment(),i=e.querySelector("meta[name='viewport']");i&&t.firstChild!==i&&s.appendChild(i);const o=e.querySelector("meta[charset], meta[content*='charset=']")||ur`<meta charset="utf-8" />`;s.appendChild(o);const a=`ReSpec ${window.respecVersion||"Developer Channel"}`,c=ur`
2
2
  <meta name="generator" content="${a}" />
3
- `;s.appendChild(c),t.prepend(s),ys("beforesave",r)}(n);let r="";if("xml"===e)r=(new XMLSerializer).serializeToString(n);else!function(e){e.querySelectorAll("style").forEach((e=>{e.innerHTML=`\n${e.innerHTML}\n`})),e.querySelectorAll("head > *").forEach((e=>{e.outerHTML=`\n${e.outerHTML}`}))}(n),n.doctype&&(r+=(new XMLSerializer).serializeToString(n.doctype)),r+=n.documentElement.outerHTML;return r}async function Cs(t){const n=await fetch(new URL(`../../${t}`,e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("respec-w3c.js",document.baseURI).href));return await n.text()}const Ss=new URL("respec-highlight.js",e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("respec-w3c.js",document.baseURI).href).href,_s=Ar({hint:"preload",href:Ss,as:"script"});async function Ts(){try{return(await Promise.resolve().then((function(){return hi}))).default}catch{return Cs("worker/respec-worker.js")}}async function Rs(){try{const e=await fetch(Ss);if(e.ok)return await e.text()}catch{}return null}document.head.appendChild(_s);const Es=async function(){const[e,t]=await Promise.all([Ts(),Rs()]),n=new Blob([null!==t?`${t}\n`:'self.RESPEC_HIGHLIGHT_URL = "https://www.w3.org/Tools/respec/respec-highlight";\n',e],{type:"application/javascript"});return new Worker(URL.createObjectURL(n))}();class Ls{constructor(){this._respecDonePromise=new Promise((e=>{ws("end-all",(()=>e()),{once:!0})})),this.errors=[],this.warnings=[],ws("error",(e=>{console.error(e,e.toJSON()),this.errors.push(e)})),ws("warn",(e=>{console.warn(e,e.toJSON()),this.warnings.push(e)}))}get version(){return window.respecVersion}get ready(){return this._respecDonePromise}get worker(){return Es}async toHTML(){return xs("html",document)}}const As="core/post-process",Ps=15e3;function Ns(e,t){return new Promise(((n,r)=>{const s=setTimeout((()=>{r(new Error(`${t} timed out.`))}),Ps);Promise.resolve(e).then(n,r).finally((()=>{clearTimeout(s)}))}))}const Is="core/pre-process",Ds=15e3;const Os="core/base-runner";async function js(e){!function(){const e=new Ls;Object.defineProperty(document,"respec",{value:e})}(),ys("start-all",respecConfig),function(e){const t={},n=e=>Object.assign(t,e);n(e),ws("amend-user-config",n),ws("end-all",(()=>{const e=document.createElement("script");e.id="initialUserConfig",e.type="application/json";for(const e of vs)e in t&&delete t[e];e.innerHTML=JSON.stringify(t,null,2),document.head.appendChild(e)}))}(respecConfig),function(e){const t=new URLSearchParams(document.location.search),n=Array.from(t).filter((([e,t])=>!!e&&!!t)).map((([e,t])=>{const n=decodeURIComponent(e),r=decodeURIComponent(t.replace(/%3D/g,"="));let s;try{s=JSON.parse(r)}catch{s=r}return[n,s]})),r=Object.fromEntries(n);Object.assign(e,r),ys("amend-user-config",r)}(respecConfig),performance.mark(`${Os}-start`),await async function(e){if(Array.isArray(e.preProcess)){const t=e.preProcess.filter((e=>{const t="function"==typeof e;return t||cs("Every item in `preProcess` must be a JS function.",Is),t}));for(const[n,r]of t.entries()){const t=`${Is}/${r.name||`[${n}]`}`,s=us(t);try{await new Promise(((n,i)=>{const o=setTimeout((()=>{i(new Error(`preProcess function "${t}" timed out.`))}),Ds);Promise.resolve().then((()=>r(e,document,s))).then(n,i).finally((()=>{clearTimeout(o)}))}))}catch(e){cs(`Function ${t} threw an error during \`preProcess\`.`,Is,{hint:"See developer console.",cause:e})}}}}(respecConfig);const t=e.filter((e=>{return(t=e)&&(t.run||t.Plugin);var t}));t.forEach((e=>!e.name&&console.warn("Plugin lacks name:",e))),await async function(e,t){for(const n of e.filter((e=>e.prepare)))try{await(n.prepare?.(t))}catch(e){console.error(e)}}(t,respecConfig),await async function(e,t){for(const n of e){const e=n.name||"";try{await new Promise((async(r,s)=>{const i=setTimeout((()=>{const t=`Plugin ${e} took too long.`;console.error(t,n),s(new Error(t))}),15e3);performance.mark(`${e}-start`);try{n.Plugin?(await new n.Plugin(t).run(),r(void 0)):n.run&&(await n.run(t),r(void 0))}catch(e){s(e)}finally{clearTimeout(i),performance.mark(`${e}-end`),performance.measure(e,`${e}-start`,`${e}-end`)}}))}catch(e){console.error(e)}}}(t,respecConfig),ys("plugins-done",respecConfig),await async function(e){if(Array.isArray(e.postProcess)){const t=e.postProcess.filter((e=>{const t="function"==typeof e;return t||cs("Every item in `postProcess` must be a JS function.",As),t}));for(const[n,r]of t.entries()){const t=`${As}/${r.name||`[${n}]`}`,s=us(t);try{await Ns(r(e,document,s),`postProcess function "${t}"`)}catch(e){cs(`Function ${t} threw an error during \`postProcess\`.`,As,{hint:"See developer console.",cause:e})}}}if("function"==typeof e.afterEnd)try{await Ns(e.afterEnd(e,document),"config.afterEnd")}catch(e){cs("Function afterEnd threw an error.",As,{hint:"See developer console.",cause:e})}}(respecConfig),ys("end-all",void 0),Pr(document),performance.mark(`${Os}-end`),performance.measure(Os,`${Os}-start`,`${Os}-end`)}var zs=String.raw`.respec-modal .close-button{position:absolute;z-index:inherit;padding:.2em;font-weight:700;cursor:pointer;margin-left:5px;border:none;background:0 0}
3
+ `;s.appendChild(c),t.prepend(s),ys("beforesave",r)}(n);let r="";if("xml"===e)r=(new XMLSerializer).serializeToString(n);else!function(e){e.querySelectorAll("style").forEach((e=>{e.innerHTML=`\n${e.innerHTML}\n`})),e.querySelectorAll("head > *").forEach((e=>{e.outerHTML=`\n${e.outerHTML}`}))}(n),n.doctype&&(r+=(new XMLSerializer).serializeToString(n.doctype)),r+=n.documentElement.outerHTML;return r}async function Cs(t){const n=await fetch(new URL(`../../${t}`,e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("respec-w3c.js",document.baseURI).href));return await n.text()}const Ss=(e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("respec-w3c.js",document.baseURI).href).endsWith("/src/core/worker.js")?new URL("../../builds/respec-highlight.js",e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("respec-w3c.js",document.baseURI).href).href:new URL("respec-highlight.js",e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("respec-w3c.js",document.baseURI).href).href,_s=Ar({hint:"preload",href:Ss,as:"script"});async function Ts(){try{return(await Promise.resolve().then((function(){return hi}))).default}catch{return Cs("worker/respec-worker.js")}}async function Rs(){try{const e=await fetch(Ss);if(e.ok)return await e.text()}catch{}return null}document.head.appendChild(_s);const Es=async function(){const[e,t]=await Promise.all([Ts(),Rs()]),n=new Blob([null!==t?`${t}\n`:'self.RESPEC_HIGHLIGHT_URL = "https://www.w3.org/Tools/respec/respec-highlight";\n',e],{type:"application/javascript"});return new Worker(URL.createObjectURL(n))}();class Ls{constructor(){this._respecDonePromise=new Promise((e=>{ws("end-all",(()=>e()),{once:!0})})),this.errors=[],this.warnings=[],ws("error",(e=>{console.error(e,e.toJSON()),this.errors.push(e)})),ws("warn",(e=>{console.warn(e,e.toJSON()),this.warnings.push(e)}))}get version(){return window.respecVersion}get ready(){return this._respecDonePromise}get worker(){return Es}async toHTML(){return xs("html",document)}}const As="core/post-process",Ps=15e3;function Ns(e,t){return new Promise(((n,r)=>{const s=setTimeout((()=>{r(new Error(`${t} timed out.`))}),Ps);Promise.resolve(e).then(n,r).finally((()=>{clearTimeout(s)}))}))}const Is="core/pre-process",Ds=15e3;const Os="core/base-runner";async function js(e){!function(){const e=new Ls;Object.defineProperty(document,"respec",{value:e})}(),ys("start-all",respecConfig),function(e){const t={},n=e=>Object.assign(t,e);n(e),ws("amend-user-config",n),ws("end-all",(()=>{const e=document.createElement("script");e.id="initialUserConfig",e.type="application/json";for(const e of vs)e in t&&delete t[e];e.innerHTML=JSON.stringify(t,null,2),document.head.appendChild(e)}))}(respecConfig),function(e){const t=new URLSearchParams(document.location.search),n=Array.from(t).filter((([e,t])=>!!e&&!!t)).map((([e,t])=>{const n=decodeURIComponent(e),r=decodeURIComponent(t.replace(/%3D/g,"="));let s;try{s=JSON.parse(r)}catch{s=r}return[n,s]})),r=Object.fromEntries(n);Object.assign(e,r),ys("amend-user-config",r)}(respecConfig),performance.mark(`${Os}-start`),await async function(e){if(Array.isArray(e.preProcess)){const t=e.preProcess.filter((e=>{const t="function"==typeof e;return t||cs("Every item in `preProcess` must be a JS function.",Is),t}));for(const[n,r]of t.entries()){const t=`${Is}/${r.name||`[${n}]`}`,s=us(t);try{await new Promise(((n,i)=>{const o=setTimeout((()=>{i(new Error(`preProcess function "${t}" timed out.`))}),Ds);Promise.resolve().then((()=>r(e,document,s))).then(n,i).finally((()=>{clearTimeout(o)}))}))}catch(e){cs(`Function ${t} threw an error during \`preProcess\`.`,Is,{hint:"See developer console.",cause:e})}}}}(respecConfig);const t=e.filter((e=>{return(t=e)&&(t.run||t.Plugin);var t}));t.forEach((e=>!e.name&&console.warn("Plugin lacks name:",e))),await async function(e,t){for(const n of e.filter((e=>e.prepare)))try{await(n.prepare?.(t))}catch(e){console.error(e)}}(t,respecConfig),await async function(e,t){for(const n of e){const e=n.name||"";try{await new Promise((async(r,s)=>{const i=setTimeout((()=>{const t=`Plugin ${e} took too long.`;console.error(t,n),s(new Error(t))}),15e3);performance.mark(`${e}-start`);try{n.Plugin?(await new n.Plugin(t).run(),r(void 0)):n.run&&(await n.run(t),r(void 0))}catch(e){s(e)}finally{clearTimeout(i),performance.mark(`${e}-end`),performance.measure(e,`${e}-start`,`${e}-end`)}}))}catch(e){console.error(e)}}}(t,respecConfig),ys("plugins-done",respecConfig),await async function(e){if(Array.isArray(e.postProcess)){const t=e.postProcess.filter((e=>{const t="function"==typeof e;return t||cs("Every item in `postProcess` must be a JS function.",As),t}));for(const[n,r]of t.entries()){const t=`${As}/${r.name||`[${n}]`}`,s=us(t);try{await Ns(r(e,document,s),`postProcess function "${t}"`)}catch(e){cs(`Function ${t} threw an error during \`postProcess\`.`,As,{hint:"See developer console.",cause:e})}}}if("function"==typeof e.afterEnd)try{await Ns(e.afterEnd(e,document),"config.afterEnd")}catch(e){cs("Function afterEnd threw an error.",As,{hint:"See developer console.",cause:e})}}(respecConfig),ys("end-all",void 0),Pr(document),performance.mark(`${Os}-end`),performance.measure(Os,`${Os}-start`,`${Os}-end`)}var zs=String.raw`.respec-modal .close-button{position:absolute;z-index:inherit;padding:.2em;font-weight:700;cursor:pointer;margin-left:5px;border:none;background:0 0}
4
4
  #respec-ui{position:fixed;display:flex;flex-direction:row-reverse;top:20px;right:20px;width:202px;text-align:right;z-index:9000}
5
5
  #respec-pill,.respec-info-button{height:2.4em;background:#fff;background:var(--bg,#fff);color:#787878;color:var(--tocnav-normal-text,#787878);border:1px solid #ccc;box-shadow:1px 1px 8px 0 rgba(100,100,100,.5);box-shadow:1px 1px 8px 0 var(--tocsidebar-shadow,rgba(100,100,100,.5));padding:.2em 0}
6
6
  .respec-info-button{border:none;opacity:.75;border-radius:2em;margin-right:1em;min-width:3.5em;will-change:opacity}
@@ -94,7 +94,7 @@ p:is(.respec-hint,.respec-occurrences){display:block;margin-top:.5em}
94
94
  ${Ys}
95
95
  <h3 id="${s}">${e}</h3>
96
96
  <div class="inside">${t}</div>
97
- </div>`;const i=new Map([["labelledby",s]]);Js(Xs,i),document.body.append(Qs,Xs),Qs.addEventListener("click",(()=>this.closeModal(n))),Qs.classList.toggle("respec-show-overlay"),Xs.hidden=!1,ii(Xs)}};function li(e){if("string"==typeof e)return e;const t=e.plugin?`<p class="respec-plugin">(plugin: "${e.plugin}")</p>`:"",n=e.hint?`\n${Fs(`<p class="respec-hint"><strong>How to fix:</strong> ${gs(e.hint)}`,{inline:!e.hint.includes("\n")})}\n`:"",r=Array.isArray(e.elements)?`<p class="respec-occurrences">Occurred <strong>${e.elements.length}</strong> times at:</p>\n ${Fs(e.elements.map(ui).join("\n"))}`:"",s=e.details?`\n\n<details>\n${e.details}\n</details>\n`:"";return`${Fs(`**${zr(e.message)}**`,{inline:!0})}${n}${r}${s}${t}`}function ui(e){return`* [\`<${e.localName}>\`](#${e.id}) element`}async function di(e){try{ci.show(),await async function(){"loading"===document.readyState&&await new Promise((e=>document.addEventListener("DOMContentLoaded",e)))}(),await js(e)}finally{ci.enable()}}document.addEventListener("keydown",(e=>{"Escape"===e.key&&ci.closeModal()})),window.respecUI=ci,ws("error",(e=>ci.error(e))),ws("warn",(e=>ci.warning(e))),window.addEventListener("error",(e=>{console.error(e.error,e.message,e)}));const pi=[Promise.resolve().then((function(){return fi})),Promise.resolve().then((function(){return s})),Promise.resolve().then((function(){return yi})),Promise.resolve().then((function(){return ho})),Promise.resolve().then((function(){return yo})),Promise.resolve().then((function(){return xo})),Promise.resolve().then((function(){return Eo})),Promise.resolve().then((function(){return jo})),Promise.resolve().then((function(){return Vs})),Promise.resolve().then((function(){return zo})),Promise.resolve().then((function(){return qo})),Promise.resolve().then((function(){return Bo})),Promise.resolve().then((function(){return oo})),Promise.resolve().then((function(){return Vo})),Promise.resolve().then((function(){return Jo})),Promise.resolve().then((function(){return Yo})),Promise.resolve().then((function(){return Qo})),Promise.resolve().then((function(){return dc})),Promise.resolve().then((function(){return fc})),Promise.resolve().then((function(){return Cc})),Promise.resolve().then((function(){return Sc})),Promise.resolve().then((function(){return Ec})),Promise.resolve().then((function(){return Ic})),Promise.resolve().then((function(){return Mc})),Promise.resolve().then((function(){return Wc})),Promise.resolve().then((function(){return Bc})),Promise.resolve().then((function(){return fl})),Promise.resolve().then((function(){return $l})),Promise.resolve().then((function(){return Ea})),Promise.resolve().then((function(){return Wl})),Promise.resolve().then((function(){return iu})),Promise.resolve().then((function(){return Pl})),Promise.resolve().then((function(){return fu})),Promise.resolve().then((function(){return Ma})),Promise.resolve().then((function(){return Tu})),Promise.resolve().then((function(){return Eu})),Promise.resolve().then((function(){return No})),Promise.resolve().then((function(){return Lu})),Promise.resolve().then((function(){return Au})),Promise.resolve().then((function(){return Nu})),Promise.resolve().then((function(){return qu})),Promise.resolve().then((function(){return Fu})),Promise.resolve().then((function(){return Hu})),Promise.resolve().then((function(){return Yu})),Promise.resolve().then((function(){return md})),Promise.resolve().then((function(){return Cd})),Promise.resolve().then((function(){return Rd})),Promise.resolve().then((function(){return Pd})),Promise.resolve().then((function(){return Od})),Promise.resolve().then((function(){return Wd})),Promise.resolve().then((function(){return Fd})),Promise.resolve().then((function(){return Kd})),Promise.resolve().then((function(){return ep})),Promise.resolve().then((function(){return tl})),Promise.resolve().then((function(){return ap})),Promise.resolve().then((function(){return pp})),Promise.resolve().then((function(){return fp})),Promise.resolve().then((function(){return gp})),Promise.resolve().then((function(){return Cp})),Promise.resolve().then((function(){return Tp})),Promise.resolve().then((function(){return Pp})),Promise.resolve().then((function(){return Np})),Promise.resolve().then((function(){return Ip})),Promise.resolve().then((function(){return Op})),Promise.resolve().then((function(){return Mp})),Promise.resolve().then((function(){return Bp})),Promise.resolve().then((function(){return Vp})),Promise.resolve().then((function(){return Yp})),Promise.resolve().then((function(){return eh})),Promise.resolve().then((function(){return ih})),Promise.resolve().then((function(){return ch})),Promise.resolve().then((function(){return dh})),Promise.resolve().then((function(){return gh})),Promise.resolve().then((function(){return $h})),Promise.resolve().then((function(){return Sh})),Promise.resolve().then((function(){return Rh})),Promise.resolve().then((function(){return Ph})),Promise.resolve().then((function(){return Oh}))];Promise.all(pi).then((e=>di(e))).catch((e=>console.error(e)));var hi=Object.freeze({__proto__:null,default:'// ReSpec Worker\n"use strict";\n// hljs is either inlined by core/worker.js (preferred) or loaded below via\n// importScripts as a fallback when the inline fetch was not possible.\nif (typeof self.hljs === "undefined" && self.RESPEC_HIGHLIGHT_URL) {\n try {\n importScripts(self.RESPEC_HIGHLIGHT_URL);\n } catch (err) {\n console.error("Network error loading highlighter", err);\n }\n}\n\nself.addEventListener("message", ({ data }) => {\n switch (data.action) {\n case "highlight-load-lang": {\n const { langURL, langScript, propName, lang } = data;\n console.warn(\n `[ReSpec] The "highlight-load-lang" worker action is deprecated ` +\n `and will be removed in a future version. ` +\n `To migrate, fetch your language script in the main thread and ` +\n `send the text as "langScript" instead of "langURL". ` +\n `The "langURL" path may fail in Firefox. ` +\n `See https://github.com/speced/respec/issues/5228`\n );\n try {\n if (langScript) {\n const blob = new Blob([langScript], {\n type: "application/javascript",\n });\n const objectURL = URL.createObjectURL(blob);\n try {\n importScripts(objectURL);\n } finally {\n URL.revokeObjectURL(objectURL);\n }\n } else if (langURL) {\n const { protocol, hostname } = new URL(langURL);\n const isSecure =\n protocol === "https:" ||\n (protocol === "http:" &&\n (hostname === "localhost" ||\n hostname === "127.0.0.1" ||\n hostname === "[::1]"));\n if (!isSecure) {\n throw new Error(\n `langURL must be https: or http: on localhost, got "${langURL}"`\n );\n }\n importScripts(langURL);\n } else {\n throw new Error(\n `No langScript or langURL provided for language "${lang}"`\n );\n }\n if (typeof self[propName] === "function") {\n self.hljs.registerLanguage(lang, self[propName]);\n } else {\n throw new Error(\n `Language definer "${propName}" is not a function on self`\n );\n }\n } catch (err) {\n console.error("Failed to load or register language", lang, err);\n }\n delete data.langScript;\n delete data.langURL;\n break;\n }\n case "highlight": {\n const { code } = data;\n const langs = data.languages?.length ? data.languages : undefined;\n try {\n const { value, language } = self.hljs.highlightAuto(code, langs);\n Object.assign(data, { value, language });\n } catch (err) {\n console.error("Could not transform some code?", err);\n Object.assign(data, { value: code, language: "" });\n }\n break;\n }\n }\n self.postMessage(data);\n});\n'});var fi=Object.freeze({__proto__:null,name:"core/location-hash",run:function(){window.location.hash&&document.respec.ready.then((()=>{let e=decodeURIComponent(window.location.hash).slice(1);const t=document.getElementById(e),n=/\W/.test(e);if(!t&&n){const t=e.replace(/[\W]+/gim,"-").replace(/^-+/,"").replace(/-+$/,"");document.getElementById(t)&&(e=t)}window.location.hash=`#${e}`}))}});const mi="w3c/group",gi="https://respec.org/w3c/groups/";async function bi(e){let t="",n=e;e.includes("/")&&([t,n]=e.split("/",2));const r=new URL(`${n}/${t}`,gi),s=await Br(r.href);if(s.ok){const e=await s.json(),{id:t,name:n,patentURI:r,patentPolicy:i,type:o,wgURI:a}=e;return{wg:n,wgId:t,wgURI:a,wgPatentURI:r,wgPatentPolicy:i,groupType:o}}const i=await s.text();let o,a=`Failed to fetch group details (HTTP: ${s.status}).`;409===s.status?[a,o]=i.split("\n",2):404===s.status&&(o=ms`See the list of [supported group names](https://respec.org/w3c/groups/) to use with the ${"[group]"} configuration option.`),cs(a,mi,{hint:o})}var yi=Object.freeze({__proto__:null,name:mi,run:async function(e){if(!e.group)return;const{group:t}=e,n=Array.isArray(t)?await async function(e){const t=await Promise.all(e.map(bi)),n={wg:[],wgId:[],wgURI:[],wgPatentURI:[],wgPatentPolicy:[],groupType:[]};for(const e of t.filter(Boolean))for(const t of Object.keys(n))n[t].push(e[t]);return n}(t):await bi(t);Object.assign(e,n)}});function wi(e){if(!e.key){const t="Found a link without `key` attribute in the configuration. See dev console.";return ls(t,"core/templates/show-link"),void console.warn(t,e)}return ur`
97
+ </div>`;const i=new Map([["labelledby",s]]);Js(Xs,i),document.body.append(Qs,Xs),Qs.addEventListener("click",(()=>this.closeModal(n))),Qs.classList.toggle("respec-show-overlay"),Xs.hidden=!1,ii(Xs)}};function li(e){if("string"==typeof e)return e;const t=e.plugin?`<p class="respec-plugin">(plugin: "${e.plugin}")</p>`:"",n=e.hint?`\n${Fs(`<p class="respec-hint"><strong>How to fix:</strong> ${gs(e.hint)}`,{inline:!e.hint.includes("\n")})}\n`:"",r=Array.isArray(e.elements)?`<p class="respec-occurrences">Occurred <strong>${e.elements.length}</strong> times at:</p>\n ${Fs(e.elements.map(ui).join("\n"))}`:"",s=e.details?`\n\n<details>\n${e.details}\n</details>\n`:"";return`${Fs(`**${zr(e.message)}**`,{inline:!0})}${n}${r}${s}${t}`}function ui(e){return`* [\`<${e.localName}>\`](#${e.id}) element`}async function di(e){try{ci.show(),await async function(){"loading"===document.readyState&&await new Promise((e=>document.addEventListener("DOMContentLoaded",e)))}(),await js(e)}finally{ci.enable()}}document.addEventListener("keydown",(e=>{"Escape"===e.key&&ci.closeModal()})),window.respecUI=ci,ws("error",(e=>ci.error(e))),ws("warn",(e=>ci.warning(e))),window.addEventListener("error",(e=>{console.error(e.error,e.message,e)}));const pi=[Promise.resolve().then((function(){return fi})),Promise.resolve().then((function(){return s})),Promise.resolve().then((function(){return yi})),Promise.resolve().then((function(){return fo})),Promise.resolve().then((function(){return wo})),Promise.resolve().then((function(){return Co})),Promise.resolve().then((function(){return Lo})),Promise.resolve().then((function(){return zo})),Promise.resolve().then((function(){return Vs})),Promise.resolve().then((function(){return Mo})),Promise.resolve().then((function(){return Wo})),Promise.resolve().then((function(){return Ho})),Promise.resolve().then((function(){return oo})),Promise.resolve().then((function(){return Jo})),Promise.resolve().then((function(){return Ko})),Promise.resolve().then((function(){return Xo})),Promise.resolve().then((function(){return ea})),Promise.resolve().then((function(){return pc})),Promise.resolve().then((function(){return mc})),Promise.resolve().then((function(){return Sc})),Promise.resolve().then((function(){return _c})),Promise.resolve().then((function(){return Lc})),Promise.resolve().then((function(){return Dc})),Promise.resolve().then((function(){return Uc})),Promise.resolve().then((function(){return Fc})),Promise.resolve().then((function(){return Hc})),Promise.resolve().then((function(){return ml})),Promise.resolve().then((function(){return xl})),Promise.resolve().then((function(){return La})),Promise.resolve().then((function(){return Fl})),Promise.resolve().then((function(){return ou})),Promise.resolve().then((function(){return Nl})),Promise.resolve().then((function(){return mu})),Promise.resolve().then((function(){return Ua})),Promise.resolve().then((function(){return Ru})),Promise.resolve().then((function(){return Lu})),Promise.resolve().then((function(){return Io})),Promise.resolve().then((function(){return Au})),Promise.resolve().then((function(){return Pu})),Promise.resolve().then((function(){return Iu})),Promise.resolve().then((function(){return Wu})),Promise.resolve().then((function(){return Bu})),Promise.resolve().then((function(){return Gu})),Promise.resolve().then((function(){return Xu})),Promise.resolve().then((function(){return gd})),Promise.resolve().then((function(){return Sd})),Promise.resolve().then((function(){return Ed})),Promise.resolve().then((function(){return Nd})),Promise.resolve().then((function(){return jd})),Promise.resolve().then((function(){return Fd})),Promise.resolve().then((function(){return Bd})),Promise.resolve().then((function(){return Zd})),Promise.resolve().then((function(){return tp})),Promise.resolve().then((function(){return nl})),Promise.resolve().then((function(){return cp})),Promise.resolve().then((function(){return hp})),Promise.resolve().then((function(){return mp})),Promise.resolve().then((function(){return bp})),Promise.resolve().then((function(){return Sp})),Promise.resolve().then((function(){return Rp})),Promise.resolve().then((function(){return Np})),Promise.resolve().then((function(){return Ip})),Promise.resolve().then((function(){return Dp})),Promise.resolve().then((function(){return jp})),Promise.resolve().then((function(){return Up})),Promise.resolve().then((function(){return Hp})),Promise.resolve().then((function(){return Jp})),Promise.resolve().then((function(){return Xp})),Promise.resolve().then((function(){return th})),Promise.resolve().then((function(){return oh})),Promise.resolve().then((function(){return lh})),Promise.resolve().then((function(){return ph})),Promise.resolve().then((function(){return bh})),Promise.resolve().then((function(){return xh})),Promise.resolve().then((function(){return _h})),Promise.resolve().then((function(){return Eh})),Promise.resolve().then((function(){return Nh})),Promise.resolve().then((function(){return jh}))];Promise.all(pi).then((e=>di(e))).catch((e=>console.error(e)));var hi=Object.freeze({__proto__:null,default:'// ReSpec Worker\n"use strict";\n// hljs is either inlined by core/worker.js (preferred) or loaded below via\n// importScripts as a fallback when the inline fetch was not possible.\nif (typeof self.hljs === "undefined" && self.RESPEC_HIGHLIGHT_URL) {\n try {\n importScripts(self.RESPEC_HIGHLIGHT_URL);\n } catch (err) {\n console.error("Network error loading highlighter", err);\n }\n}\n\nself.addEventListener("message", ({ data }) => {\n switch (data.action) {\n case "highlight-load-lang": {\n const { langURL, langScript, propName, lang } = data;\n console.warn(\n `[ReSpec] The "highlight-load-lang" worker action is deprecated ` +\n `and will be removed in a future version. ` +\n `To migrate, fetch your language script in the main thread and ` +\n `send the text as "langScript" instead of "langURL". ` +\n `The "langURL" path may fail in Firefox. ` +\n `See https://github.com/speced/respec/issues/5228`\n );\n try {\n if (langScript) {\n const blob = new Blob([langScript], {\n type: "application/javascript",\n });\n const objectURL = URL.createObjectURL(blob);\n try {\n importScripts(objectURL);\n } finally {\n URL.revokeObjectURL(objectURL);\n }\n } else if (langURL) {\n const { protocol, hostname } = new URL(langURL);\n const isSecure =\n protocol === "https:" ||\n (protocol === "http:" &&\n (hostname === "localhost" ||\n hostname === "127.0.0.1" ||\n hostname === "[::1]"));\n if (!isSecure) {\n throw new Error(\n `langURL must be https: or http: on localhost, got "${langURL}"`\n );\n }\n importScripts(langURL);\n } else {\n throw new Error(\n `No langScript or langURL provided for language "${lang}"`\n );\n }\n if (typeof self[propName] === "function") {\n self.hljs.registerLanguage(lang, self[propName]);\n } else {\n throw new Error(\n `Language definer "${propName}" is not a function on self`\n );\n }\n } catch (err) {\n console.error("Failed to load or register language", lang, err);\n }\n delete data.langScript;\n delete data.langURL;\n break;\n }\n case "highlight": {\n const { code } = data;\n const langs = data.languages?.length ? data.languages : undefined;\n try {\n const { value, language } = self.hljs.highlightAuto(code, langs);\n Object.assign(data, { value, language });\n } catch (err) {\n console.error("Could not transform some code?", err);\n Object.assign(data, { value: code, language: "" });\n }\n break;\n }\n }\n self.postMessage(data);\n});\n'});var fi=Object.freeze({__proto__:null,name:"core/location-hash",run:function(){window.location.hash&&document.respec.ready.then((()=>{let e=decodeURIComponent(window.location.hash).slice(1);const t=document.getElementById(e),n=/\W/.test(e);if(!t&&n){const t=e.replace(/[\W]+/gim,"-").replace(/^-+/,"").replace(/-+$/,"");document.getElementById(t)&&(e=t)}window.location.hash=`#${e}`}))}});const mi="w3c/group",gi="https://respec.org/w3c/groups/";async function bi(e){let t="",n=e;e.includes("/")&&([t,n]=e.split("/",2));const r=new URL(`${n}/${t}`,gi),s=await Br(r.href);if(s.ok){const e=await s.json(),{id:t,name:n,patentURI:r,patentPolicy:i,type:o,wgURI:a}=e;return{wg:n,wgId:t,wgURI:a,wgPatentURI:r,wgPatentPolicy:i,groupType:o}}const i=await s.text();let o,a=`Failed to fetch group details (HTTP: ${s.status}).`;409===s.status?[a,o]=i.split("\n",2):404===s.status&&(o=ms`See the list of [supported group names](https://respec.org/w3c/groups/) to use with the ${"[group]"} configuration option.`),cs(a,mi,{hint:o})}var yi=Object.freeze({__proto__:null,name:mi,run:async function(e){if(!e.group)return;const{group:t}=e,n=Array.isArray(t)?await async function(e){const t=await Promise.all(e.map(bi)),n={wg:[],wgId:[],wgURI:[],wgPatentURI:[],wgPatentPolicy:[],groupType:[]};for(const e of t.filter(Boolean))for(const t of Object.keys(n))n[t].push(e[t]);return n}(t):await bi(t);Object.assign(e,n)}});function wi(e){if(!e.key){const t="Found a link without `key` attribute in the configuration. See dev console.";return ls(t,"core/templates/show-link"),void console.warn(t,e)}return ur`
98
98
  <dt class="${e.class?e.class:null}">${e.key}</dt>
99
99
  ${e.data?e.data.map(vi):vi(e)}
100
100
  `}function vi(e){return ur`<dd class="${e.class?e.class:null}">
@@ -697,8 +697,8 @@ p:is(.respec-hint,.respec-occurrences){display:block;margin-top:.5em}
697
697
  </p>`}(e,t):""}
698
698
  ${e.sotdAfterWGinfo?t.additionalContent:""}
699
699
  ${t.additionalSections}
700
- `;const qi="w3c/headers";function Wi(e){return new URL(e,"https://www.w3.org/").href}const Fi={LS:"WD",LD:"WD",FPWD:"WD","Member-SUBM":"SUBM"},Bi={DNOTE:"Group Note Draft",NOTE:"Group Note",STMT:"Statement","Member-SUBM":"Member Submission",MO:"Member-Only Document",ED:"Editor's Draft",LS:"Living Standard",LD:"Living Document",FPWD:"First Public Working Draft",WD:"Working Draft",CR:"Candidate Recommendation",CRD:"Candidate Recommendation",PR:"Proposed Recommendation",REC:"Recommendation",DISC:"Discontinued Draft",RSCND:"Rescinded Recommendation",DRY:"Registry Draft",CRYD:"Candidate Registry",CRY:"Candidate Registry",RY:"Registry",unofficial:"Unofficial Draft",UD:"Unofficial Draft",base:"",finding:"TAG Finding","draft-finding":"Draft TAG Finding","editor-draft-finding":"Draft TAG Finding","CG-DRAFT":"Draft Community Group Report","CG-FINAL":"Final Community Group Report","BG-DRAFT":"Draft Business Group Report","BG-FINAL":"Final Business Group Report"},Hi={...Bi,CR:"Candidate Recommendation Snapshot",CRD:"Candidate Recommendation Draft",CRY:"Candidate Registry Snapshot",CRYD:"Candidate Registry Draft"},Gi={DNOTE:"Note",NOTE:"Note",STMT:"Note","WG-NOTE":"Note","IG-NOTE":"Note",FPWD:"Recommendation",WD:"Recommendation",CR:"Recommendation",CRD:"Recommendation",PR:"Recommendation",REC:"Recommendation",DISC:"Recommendation",RSCND:"Recommendation",DRY:"Registry",CRYD:"Registry",CRY:"Registry",RY:"Registry"},Vi=["DNOTE","NOTE","STMT"],Ji=["CR","CRD","DISC","FPWD","PR","REC","RSCND","WD"],Ki=["DRY","CRY","CRYD","RY"],Zi=["draft-finding","finding","editor-draft-finding"],Yi=["CG-DRAFT","CG-FINAL"],Xi=["BG-DRAFT","BG-FINAL"],Qi=[...Yi,...Xi],eo=[...Vi,...Ji,...Ki],to=["base",...Yi,...Xi,"editor-draft-finding","draft-finding","finding","MO","unofficial"],no=new Map([["cc0",{name:"Creative Commons 0 Public Domain Dedication",short:"CC0",url:"https://creativecommons.org/publicdomain/zero/1.0/"}],["w3c-software",{name:"W3C Software Notice and License",short:"W3C Software",url:"https://www.w3.org/copyright/software-license-2002/"}],["w3c-software-doc",{name:"W3C Software and Document Notice and License",short:"permissive document license",url:"https://www.w3.org/copyright/software-license-2023/"}],["cc-by",{name:"Creative Commons Attribution 4.0 International Public License",short:"CC-BY",url:"https://creativecommons.org/licenses/by/4.0/legalcode"}],["document",{name:"W3C Document License",short:"document use",url:"https://www.w3.org/copyright/document-license/"}],["dual",{name:"W3C Dual License",short:"dual license",url:"https://www.w3.org/Consortium/Legal/2013/copyright-documents-dual.html"}]]),ro=["PP2017","PP2020"];function so(e,t,n=new Date){const r=e[t]?new Date(e[t]):new Date(n);if(Number.isFinite(r.valueOf())){const e=Tr.format(r);return new Date(e)}return cs(ms`${t} is not a valid date: "${e[t]}". Expected format 'YYYY-MM-DD'.`,qi),new Date(Tr.format(new Date))}function io(e,{isTagFinding:t=!1}){const n=e.cloneNode(!0),r=document.createDocumentFragment();for(;n.hasChildNodes()&&(n.nodeType!==Node.ELEMENT_NODE||"section"!==n.firstChild.localName);)r.appendChild(n.firstChild);if(t&&!r.hasChildNodes()){ls(ms`ReSpec does not support automated SotD generation for TAG findings.`,qi,{hint:"Please add the prerequisite content in the 'sotd' section."})}return{additionalContent:r,additionalSections:n.childNodes}}var oo=Object.freeze({__proto__:null,W3CNotes:Vi,bgStatus:Xi,cgStatus:Yi,cgbgStatus:Qi,licenses:no,name:qi,noTrackStatus:to,recTrackStatus:Ji,registryTrackStatus:Ki,run:async function(e){const t=e.specStatus??"";if(e.isBasic="base"===t,e.isCGBG=Qi.includes(t),e.isCGFinal=e.isCGBG&&t.endsWith("G-FINAL"),e.isCR="CR"===t||"CRD"===t,e.isCRDraft="CRD"===t,e.isCRY="CRY"===t||"CRYD"===t,e.isEd="ED"===t,e.isMemberSubmission="Member-SUBM"===t,e.isMO="MO"===t,e.isNote=Vi.includes(t),e.isNoTrack=to.includes(t),e.isPR="PR"===t,e.isRecTrack=Ji.includes(t),e.isRec=e.isRecTrack&&"REC"===t,e.isRegistry=Ki.includes(t),e.isRegular=!e.isCGBG&&!e.isBasic,e.isTagEditorFinding="editor-draft-finding"===t,e.isTagFinding=Zi.includes(t),e.isUnofficial="unofficial"===t,e.licenseInfo=function(e){let t;if("string"==typeof e.license){const n=e.license.toLowerCase();if(no.has(n))t=n;else{const t=`The license "\`${e.license}\`" is not supported.`,n=ps([...no.keys()].filter((e=>e)),{quotes:!0}),r=ms`Please set
701
- ${"[license]"} to one of: ${n}. If in doubt, remove \`license\` and let ReSpec pick one for you.`;cs(t,qi,{hint:r})}}if(e.isUnofficial&&!t&&(t="cc-by"),!e.isUnofficial&&["cc-by","cc0"].includes(t)){const t=ms`Please set ${"[license]"} to \`"w3c-software-doc"\` instead.`;cs(ms`License "\`${e.license}\`" is not allowed for W3C Specifications.`,qi,{hint:t})}return void 0===t?{name:"unlicensed",url:null,short:"UNLICENSED"}:no.get(t)}(e),e.prependW3C=!e.isBasic&&!e.isUnofficial,e.longStatus=Hi[t],e.textStatus=Bi[t],e.showPreviousVersion=!1,e.isRegular&&!e.shortName){const e=ms`Please set ${"[shortName]"} to a short name for the specification.`;cs(ms`The ${"[shortName]"} configuration option is required for this kind of document.`,qi,{hint:e})}if(e.publishDate=so(e,"publishDate",document.lastModified),e.publishYear=e.publishDate.getUTCFullYear(),e.modificationDate&&(e.modificationDate=so(e,"modificationDate",document.lastModified)),e.isRecTrack&&!e.github&&!e.wgPublicList){const e=ms`Use the ${"[github]"} configuration option to add a link to a repository. Alternatively use ${"[wgPublicList]"} to link to a mailing list.`;cs("W3C Process requires a either a link to a public repository or mailing list.",qi,{hint:e})}if(e.isEd&&!e.edDraftURI){const e=ms`Please set ${"[edDraftURI]"} to the URL of the Editor's Draft. Alternatively, use the set ${"[github]"} option, which automatically sets it for you.`;ls(ms`Editor's Drafts should set ${"[edDraftURI]"} configuration option.`,qi,{hint:e})}const n=function(e){const{specStatus:t,group:n}=e;if(e.isNoTrack&&!e.isCGBG&&!e.isTagFinding)return"";const r=e.groupType,s="wg"===r||Array.isArray(r)&&r.includes("wg");if(eo.includes(t??"")||s)return"/TR";switch(t){case"CG-FINAL":case"BG-FINAL":return`/community/reports/${n}`;case"finding":case"draft-finding":return"/2001/tag/doc";case"Member-SUBM":return"/Submission"}if(("tag"===e.group||"ab"===e.group)&&"TR"===e.canonicalURI)return"/TR";return""}(e);if(n&&!e.thisVersion){const r=Fi[t]||t,{shortName:s,publishDate:i}=e,o=`${r}-${s}-${Wr(i)}`,a=[...eo,"Member-SUBM"].includes(t)?`${i.getUTCFullYear()}/`:"";e.thisVersion=Wi(`${n}/${a}${o}/`)}e.isEd&&(e.thisVersion=e.edDraftURI),e.isCGBG&&function(e){const t=Bi[e.specStatus],n=e.latestVersion?new URL(Wi(e.latestVersion)):null;if(!e.wg){return void cs(ms`The ${"[group]"} configuration option is required for this kind of document (${t}).`,qi)}if(e.isCGFinal){if(!1===("https://www.w3.org"===n?.origin||"https://w3.org/"===n?.origin)){cs(ms`For ${t}, the ${"[latestVersion]"} URL must point to somewhere at https://www.w3.org/.`,qi,{hint:"Ask a W3C Team Member for a W3C URL where the report can be published."})}}}(e),null!==e.latestVersion&&(e.latestVersion=e.latestVersion?Wi(e.latestVersion):n?Wi(`${n}/${e.shortName}/`):""),e.latestVersion&&function(e){const t=new URL(e.latestVersion);if(("https://www.w3.org"===t.origin||"https://w3.org/"===t.origin)&&t.pathname.startsWith("/TR/")&&!1===["ED",...eo].includes(e.specStatus)){const t=ms`Ask a W3C Team Member for a W3C URL where the report can be published and change ${"[latestVersion]"} to something else.`;cs(ms`Documents with a status of \`"${e.specStatus}"\` can't be published on the W3C's /TR/ (Technical Report) space.`,qi,{hint:t})}}(e);const r=`${n}/${e.shortName}`;if(e.previousPublishDate){if(!e.previousMaturity&&!e.isTagFinding){cs(ms`${"[`previousPublishDate`]"} is set, but missing ${"[`previousMaturity`]"}.`,qi)}e.previousPublishDate=so(e,"previousPublishDate");const t=Fi[e.previousMaturity]??e.previousMaturity;if(e.isTagFinding&&e.latestVersion){const t=Tr.format(e.publishDate);e.thisVersion=Wi(`${r}-${t}`);const n=Tr.format(e.previousPublishDate);e.prevVersion=Wi(`${r}-${n}`)}else if(e.isCGBG||e.isBasic)e.prevVersion=e.prevVersion||"";else{const r=e.previousPublishDate.getUTCFullYear(),{shortName:s}=e,i=Wr(e.previousPublishDate);e.prevVersion=Wi(`${n}/${r}/${t}-${s}-${i}/`)}}e.prevRecShortname&&!e.prevRecURI&&(e.prevRecURI=Wi(`${n}/${e.prevRecShortname}`));const s=e.editors??[],i=e.formerEditors??[];for(let e=0;e<s.length;e++){const t=s[e];"retiredDate"in t&&(i.push(t),s.splice(e--,1))}if(e.editors=s,e.formerEditors=i,0===s.length){const e=ms`Add one or more editors using the ${"[editors]"} configuration option.`;cs("At least one editor is required.",qi,{hint:e})}else s.length&&e.isRecTrack&&s.forEach(((e,t)=>{if(e.w3cid)return;const n=ms`See ${"[w3cid]"} for instructions for how to retrieve it and add it.`;cs(ms`Editor ${e.name?`"${e.name}"`:`number ${t+1}`} is missing their ${"[w3cid]"}.`,qi,{hint:n})}));if(e.alternateFormats?.some((({uri:e,label:t})=>!e||!t))){cs(ms`Every ${"[`alternateFormats`]"} entry must have a \`uri\` and a \`label\`.`,qi)}e.copyrightStart==e.publishYear&&(e.copyrightStart=""),e.dashDate=Tr.format(e.publishDate),e.publishISODate=e.publishDate.toISOString(),e.shortISODate=Tr.format(e.publishDate),function(e){if(!e.wgPatentPolicy)return;const t=new Set([].concat(e.wgPatentPolicy));if(t.size&&![...t].every((e=>ro.includes(e)))){const e=ms`Invalid ${"[wgPatentPolicy]"} value(s): ${hs([...t].filter((e=>!ro.includes(e))))}.`,n=`Please use one of: ${ps(ro)}.`;cs(e,qi,{hint:n})}if(1!==t.size){const e="When collaborating across multiple groups, they must use the same patent policy.",n=ms`For ${"[wgPatentPolicy]"}, please check the patent policies of each group. The patent policies were: ${[...t].join(", ")}.`;cs(e,qi,{hint:n})}e.wgPatentPolicy=[...t][0]}(e),await async function(e){if(!e.shortName||null===e.historyURI||!e.latestVersion)return;const t=e.isEd||eo.includes(e.specStatus);if(e.historyURI&&!t){const t=ms`Please remove ${"[historyURI]"}.`;return cs(ms`The ${"[historyURI]"} can't be used with non /TR/ documents.`,qi,{hint:t}),void(e.historyURI=null)}const n=new URL(e.historyURI??`${e.shortName}/`,"https://www.w3.org/standards/history/");t&&(e.historyURI=n.href)}(e),e.isTagEditorFinding&&(delete e.thisVersion,delete e.latestVersion),e.isTagFinding&&(e.showPreviousVersion=!!e.previousPublishDate);const o={get multipleAlternates(){return!!(e.alternateFormats&&e.alternateFormats.length>1)},get alternatesHTML(){return e.alternateFormats&&Gr(e.alternateFormats.map((({label:e})=>e)),((t,n)=>{const r=e.alternateFormats[n];return ur`<a
700
+ `;const qi="w3c/headers";function Wi(e){return new URL(e,"https://www.w3.org/").href}const Fi={LS:"WD",LD:"WD",FPWD:"WD","Member-SUBM":"SUBM"},Bi={DNOTE:"Group Note Draft",NOTE:"Group Note",STMT:"Statement","Member-SUBM":"Member Submission",MO:"Member-Only Document",ED:"Editor's Draft",LS:"Living Standard",LD:"Living Document",FPWD:"First Public Working Draft",WD:"Working Draft",CR:"Candidate Recommendation",CRD:"Candidate Recommendation",PR:"Proposed Recommendation",REC:"Recommendation",DISC:"Discontinued Draft",RSCND:"Rescinded Recommendation",DRY:"Registry Draft",CRYD:"Candidate Registry",CRY:"Candidate Registry",RY:"Registry",unofficial:"Unofficial Draft",UD:"Unofficial Draft",base:"",finding:"TAG Finding","draft-finding":"Draft TAG Finding","editor-draft-finding":"Draft TAG Finding","CG-DRAFT":"Draft Community Group Report","CG-FINAL":"Final Community Group Report","BG-DRAFT":"Draft Business Group Report","BG-FINAL":"Final Business Group Report"},Hi={...Bi,CR:"Candidate Recommendation Snapshot",CRD:"Candidate Recommendation Draft",CRY:"Candidate Registry Snapshot",CRYD:"Candidate Registry Draft"},Gi={DNOTE:"Note",NOTE:"Note",STMT:"Note","WG-NOTE":"Note","IG-NOTE":"Note",FPWD:"Recommendation",WD:"Recommendation",CR:"Recommendation",CRD:"Recommendation",PR:"Recommendation",REC:"Recommendation",DISC:"Recommendation",RSCND:"Recommendation",DRY:"Registry",CRYD:"Registry",CRY:"Registry",RY:"Registry"},Vi=["DNOTE","NOTE","STMT"],Ji=["CR","CRD","DISC","FPWD","PR","REC","RSCND","WD"],Ki=["DRY","CRY","CRYD","RY"],Zi=["draft-finding","finding","editor-draft-finding"],Yi=["CG-DRAFT","CG-FINAL"],Xi=["BG-DRAFT","BG-FINAL"],Qi=[...Yi,...Xi],eo=[...Vi,...Ji,...Ki],to=["base",...Yi,...Xi,"editor-draft-finding","draft-finding","finding","MO","unofficial"],no=new Map([["cc0",{name:"Creative Commons 0 Public Domain Dedication",short:"CC0",url:"https://creativecommons.org/publicdomain/zero/1.0/"}],["w3c-software",{name:"W3C Software Notice and License",short:"W3C Software",url:"https://www.w3.org/copyright/software-license-2002/"}],["w3c-software-doc",{name:"W3C Software and Document Notice and License",short:"permissive document license",url:"https://www.w3.org/copyright/software-license-2023/"}],["cc-by",{name:"Creative Commons Attribution 4.0 International Public License",short:"CC-BY",url:"https://creativecommons.org/licenses/by/4.0/legalcode"}],["document",{name:"W3C Document License",short:"document use",url:"https://www.w3.org/copyright/document-license/"}],["dual",{name:"W3C Dual License",short:"dual license",url:"https://www.w3.org/Consortium/Legal/2013/copyright-documents-dual.html"}]]),ro=["PP2017","PP2020"];function so(e,t,n=new Date){const r=e[t]?new Date(e[t]):new Date(n);if(Number.isFinite(r.valueOf())){const e=Tr.format(r);return new Date(e)}return cs(ms`${t} is not a valid date: "${e[t]}". Expected format 'YYYY-MM-DD'.`,qi),new Date(Tr.format(new Date))}function io(e,{isTagFinding:t=!1}){const n=e.cloneNode(!0),r=document.createDocumentFragment();for(;n.hasChildNodes()&&(n.nodeType!==Node.ELEMENT_NODE||"section"!==n.firstChild.localName);)r.appendChild(n.firstChild);if(t&&!r.hasChildNodes()){ls(ms`ReSpec does not support automated SotD generation for TAG findings.`,qi,{hint:"Please add the prerequisite content in the 'sotd' section."})}return{additionalContent:r,additionalSections:n.childNodes}}var oo=Object.freeze({__proto__:null,W3CNotes:Vi,bgStatus:Xi,cgStatus:Yi,cgbgStatus:Qi,licenses:no,name:qi,noTrackStatus:to,recTrackStatus:Ji,registryTrackStatus:Ki,run:async function(e){const t=e.specStatus??"";if(e.isBasic="base"===t,e.isCGBG=Qi.includes(t),e.isCGFinal=e.isCGBG&&t.endsWith("G-FINAL"),e.isCR="CR"===t||"CRD"===t,e.isCRDraft="CRD"===t,e.isCRY="CRY"===t||"CRYD"===t,e.isEd="ED"===t,e.isMemberSubmission="Member-SUBM"===t,e.isMO="MO"===t,e.isNote=Vi.includes(t),e.isNoTrack=to.includes(t),e.isPR="PR"===t,e.isRecTrack=Ji.includes(t),e.isRec=e.isRecTrack&&"REC"===t,e.isRegistry=Ki.includes(t),e.isRegular=!e.isCGBG&&!e.isBasic,e.isTagEditorFinding="editor-draft-finding"===t,e.isTagFinding=Zi.includes(t),e.isUnofficial="unofficial"===t,e.licenseInfo=function(e){let t;if("string"==typeof e.license){const n=e.license.toLowerCase();if(no.has(n))t=n;else{const t=`The license "\`${e.license}\`" is not supported.`,n=ms`Please set
701
+ ${"[license]"} to one of: ${ps([...no.keys()].filter((e=>e)),{quotes:!0})}. If in doubt, remove \`license\` and let ReSpec pick one for you.`;cs(t,qi,{hint:n})}}if(e.isUnofficial&&!t&&(t="cc-by"),!e.isUnofficial&&["cc-by","cc0"].includes(t)){const t=ms`Please set ${"[license]"} to \`"w3c-software-doc"\` instead.`;cs(ms`License "\`${e.license}\`" is not allowed for W3C Specifications.`,qi,{hint:t})}return void 0===t?{name:"unlicensed",url:null,short:"UNLICENSED"}:no.get(t)}(e),e.prependW3C=!e.isBasic&&!e.isUnofficial,e.longStatus=Hi[t],e.textStatus=Bi[t],e.showPreviousVersion=!1,e.isRegular&&!e.shortName){const e=ms`Please set ${"[shortName]"} to a short name for the specification.`;cs(ms`The ${"[shortName]"} configuration option is required for this kind of document.`,qi,{hint:e})}if(e.publishDate=so(e,"publishDate",document.lastModified),e.publishYear=e.publishDate.getUTCFullYear(),e.modificationDate&&(e.modificationDate=so(e,"modificationDate",document.lastModified)),e.isRecTrack&&!e.github&&!e.wgPublicList){const e=ms`Use the ${"[github]"} configuration option to add a link to a repository. Alternatively use ${"[wgPublicList]"} to link to a mailing list.`;cs("W3C Process requires a either a link to a public repository or mailing list.",qi,{hint:e})}if(e.isEd&&!e.edDraftURI){const e=ms`Please set ${"[edDraftURI]"} to the URL of the Editor's Draft. Alternatively, use the set ${"[github]"} option, which automatically sets it for you.`;ls(ms`Editor's Drafts should set ${"[edDraftURI]"} configuration option.`,qi,{hint:e})}const n=function(e){const{specStatus:t,group:n}=e;if(e.isNoTrack&&!e.isCGBG&&!e.isTagFinding)return"";const r=e.groupType,s="wg"===r||Array.isArray(r)&&r.includes("wg");if(eo.includes(t??"")||s)return"/TR";switch(t){case"CG-FINAL":case"BG-FINAL":return`/community/reports/${n}`;case"finding":case"draft-finding":return"/2001/tag/doc";case"Member-SUBM":return"/Submission"}if(("tag"===e.group||"ab"===e.group)&&"TR"===e.canonicalURI)return"/TR";return""}(e);if(n&&!e.thisVersion){const r=Fi[t]||t,{shortName:s,publishDate:i}=e,o=`${r}-${s}-${Wr(i)}`,a=[...eo,"Member-SUBM"].includes(t)?`${i.getUTCFullYear()}/`:"";e.thisVersion=Wi(`${n}/${a}${o}/`)}e.isEd&&(e.thisVersion=e.edDraftURI),e.isCGBG&&function(e){const t=Bi[e.specStatus],n=e.latestVersion?new URL(Wi(e.latestVersion)):null;if(!e.wg){return void cs(ms`The ${"[group]"} configuration option is required for this kind of document (${t}).`,qi)}if(e.isCGFinal){if(!1===("https://www.w3.org"===n?.origin||"https://w3.org/"===n?.origin)){cs(ms`For ${t}, the ${"[latestVersion]"} URL must point to somewhere at https://www.w3.org/.`,qi,{hint:"Ask a W3C Team Member for a W3C URL where the report can be published."})}}}(e),null!==e.latestVersion&&(e.latestVersion=e.latestVersion?Wi(e.latestVersion):n?Wi(`${n}/${e.shortName}/`):""),e.latestVersion&&function(e){const t=new URL(e.latestVersion);if(("https://www.w3.org"===t.origin||"https://w3.org/"===t.origin)&&t.pathname.startsWith("/TR/")&&!1===["ED",...eo].includes(e.specStatus)){const t=ms`Ask a W3C Team Member for a W3C URL where the report can be published and change ${"[latestVersion]"} to something else.`;cs(ms`Documents with a status of \`"${e.specStatus}"\` can't be published on the W3C's /TR/ (Technical Report) space.`,qi,{hint:t})}}(e);const r=`${n}/${e.shortName}`;if(e.previousPublishDate){if(!e.previousMaturity&&!e.isTagFinding){cs(ms`${"[`previousPublishDate`]"} is set, but missing ${"[`previousMaturity`]"}.`,qi)}e.previousPublishDate=so(e,"previousPublishDate");const t=Fi[e.previousMaturity]??e.previousMaturity;if(e.isTagFinding&&e.latestVersion){const t=Tr.format(e.publishDate);e.thisVersion=Wi(`${r}-${t}`);const n=Tr.format(e.previousPublishDate);e.prevVersion=Wi(`${r}-${n}`)}else if(e.isCGBG||e.isBasic)e.prevVersion=e.prevVersion||"";else{const r=e.previousPublishDate.getUTCFullYear(),{shortName:s}=e,i=Wr(e.previousPublishDate);e.prevVersion=Wi(`${n}/${r}/${t}-${s}-${i}/`)}}e.prevRecShortname&&!e.prevRecURI&&(e.prevRecURI=Wi(`${n}/${e.prevRecShortname}`));const s=e.editors??[],i=e.formerEditors??[];for(let e=0;e<s.length;e++){const t=s[e];"retiredDate"in t&&(i.push(t),s.splice(e--,1))}if(e.editors=s,e.formerEditors=i,0===s.length){const e=ms`Add one or more editors using the ${"[editors]"} configuration option.`;cs("At least one editor is required.",qi,{hint:e})}else s.length&&e.isRecTrack&&s.forEach(((e,t)=>{if(e.w3cid)return;const n=ms`See ${"[w3cid]"} for instructions for how to retrieve it and add it.`;cs(ms`Editor ${e.name?`"${e.name}"`:`number ${t+1}`} is missing their ${"[w3cid]"}.`,qi,{hint:n})}));if(e.alternateFormats?.some((({uri:e,label:t})=>!e||!t))){cs(ms`Every ${"[`alternateFormats`]"} entry must have a \`uri\` and a \`label\`.`,qi)}e.copyrightStart==e.publishYear&&(e.copyrightStart=""),e.dashDate=Tr.format(e.publishDate),e.publishISODate=e.publishDate.toISOString(),e.shortISODate=Tr.format(e.publishDate),function(e){if(!e.wgPatentPolicy)return;const t=new Set([].concat(e.wgPatentPolicy));if(t.size&&![...t].every((e=>ro.includes(e)))){const e=ms`Invalid ${"[wgPatentPolicy]"} value(s): ${hs([...t].filter((e=>!ro.includes(e))))}.`,n=`Please use one of: ${ps(ro)}.`;cs(e,qi,{hint:n})}if(1!==t.size){const e="When collaborating across multiple groups, they must use the same patent policy.",n=ms`For ${"[wgPatentPolicy]"}, please check the patent policies of each group. The patent policies were: ${[...t].join(", ")}.`;cs(e,qi,{hint:n})}e.wgPatentPolicy=[...t][0]}(e),await async function(e){if(!e.shortName||null===e.historyURI||!e.latestVersion)return;const t=e.isEd||eo.includes(e.specStatus);if(e.historyURI&&!t){const t=ms`Please remove ${"[historyURI]"}.`;return cs(ms`The ${"[historyURI]"} can't be used with non /TR/ documents.`,qi,{hint:t}),void(e.historyURI=null)}const n=new URL(e.historyURI??`${e.shortName}/`,"https://www.w3.org/standards/history/");t&&(e.historyURI=n.href)}(e),e.isTagEditorFinding&&(delete e.thisVersion,delete e.latestVersion),e.isTagFinding&&(e.showPreviousVersion=!!e.previousPublishDate);const o={get multipleAlternates(){return!!(e.alternateFormats&&e.alternateFormats.length>1)},get alternatesHTML(){return e.alternateFormats&&Gr(e.alternateFormats.map((({label:e})=>e)),((t,n)=>{const r=e.alternateFormats[n];return ur`<a
702
702
  rel="alternate"
703
703
  href="${r.uri}"
704
704
  hreflang="${r?.lang??null}"
@@ -707,7 +707,7 @@ p:is(.respec-hint,.respec-occurrences){display:block;margin-top:.5em}
707
707
  >`}))}},a=(e.isCGBG?Ni:Li)(e,o);document.body.prepend(a),document.body.classList.add("h-entry");const c=document.getElementById("sotd")||document.createElement("section");if((e.isCGBG||!e.isNoTrack||e.isTagFinding)&&!c.id){cs("A Status of This Document must include at least on custom paragraph.",qi,{elements:[c],hint:"Add a `<p>` in the 'sotd' section that reflects the status of this specification."})}c.id=c.id||"sotd",c.classList.add("introductory");const l=[e.wg,e.wgURI,e.wgPatentURI];if(l.some((e=>Array.isArray(e)))&&!l.every((e=>Array.isArray(e)))){const e=ms`Use the ${"[group]"} option with an array instead.`;cs(ms`If one of ${"[wg]"}, ${"[wgURI]"}, or ${"[wgPatentURI]"} is an array, they all have to be.`,qi,{hint:e})}if(Array.isArray(e.wg)?(e.multipleWGs=e.wg.length>1,e.wgPatentHTML=Gr(e.wg,((t,n)=>ur`a
708
708
  <a href="${e.wgPatentURI[n]}" rel="disclosure"
709
709
  >public list of any patent disclosures (${t})</a
710
- >`))):e.multipleWGs=!1,e.isPR&&!e.crEnd){cs(ms`${"[specStatus]"} is "PR" but no ${"[crEnd]"} is specified in the ${"[respecConfig]"} (needed to indicate end of previous CR).`,qi)}if(e.isCR&&!e.isCRDraft&&!e.crEnd){cs(ms`${"[specStatus]"} is "CR", but no ${"[crEnd]"} is specified in the ${"[respecConfig]"}.`,qi)}if(e.crEnd=so(e,"crEnd"),e.isPR&&!e.prEnd){cs(ms`${"[specStatus]"} is "PR" but no ${"[prEnd]"} is specified in the ${"[respecConfig]"}.`,qi)}e.prEnd=so(e,"prEnd");const u=c.classList.contains("updateable-rec"),d=null!==document.querySelector(".correction:not(.proposed)"),p=null!==document.querySelector(".correction.proposed"),h=null!==document.querySelector(".addition:not(.proposed)"),f=null!==document.querySelector(".addition.proposed"),m=d||h||f||p;if(e.isRec&&!e.errata&&!m){const e=ms`Add an ${"[errata]"} URL to your ${"[respecConfig]"}.`;cs("Recommendations must have an errata link.",qi,{hint:e})}if(e.isRec&&!u&&(h||d||f||p)){cs(ms`${"[specStatus]"} is "REC" with amendments, but the Recommendation is not marked as allowing revisions.`,qi)}if(e.isRec&&u&&(f||p)&&!e.revisedRecEnd){cs(ms`${"[specStatus]"} is "REC" with proposed corrections or additions but no ${"[revisedRecEnd]"} is specified in the ${"[respecConfig]"}.`,qi)}if(e.revisedRecEnd=so(e,"revisedRecEnd"),e.noRecTrack&&Ji.includes(t)){const e=ms`Document configured as ${"[noRecTrack]"}, but its status ("${t}") puts it on the W3C Rec Track.`,n=ps(Ji,{quotes:!0});cs(e,qi,{hint:`Status **can't** be any of: ${n}.`})}if(c.classList.contains("override")||ur.bind(c)`${function(e,t){const n={...io(t,e),get mailToWGPublicList(){return`mailto:${e.wgPublicList}@w3.org`},get mailToWGPublicListWithSubject(){const t=e.subjectPrefix?`?subject=${encodeURIComponent(e.subjectPrefix)}`:"";return this.mailToWGPublicList+t},get mailToWGPublicListSubscription(){return`mailto:${e.wgPublicList}-request@w3.org?subject=subscribe`}},r=e.isCGBG?Ui:ji;return r(e,n)}(e,c)}`,!e.implementationReportURI&&e.isCR){const e=ms`CR documents must have an ${"[implementationReportURI]"} that describes the [implementation experience](https://www.w3.org/policies/process/#implementation-experience).`;cs(ms`Missing ${"[implementationReportURI]"} configuration option in ${"[respecConfig]"}.`,qi,{hint:e})}if(!e.implementationReportURI&&e.isPR){ls(ms`PR documents should include an ${"[implementationReportURI]"}, which needs to link to a document that describes the [implementation experience](https://www.w3.org/policies/process-20190301/#implementation-experience).`,qi)}ys("amend-user-config",{publishISODate:e.publishISODate,generatedSubtitle:Mr(document.getElementById("w3c-state")?.textContent??"")})},status2text:Bi,status2track:Gi,tagStatus:Zi,trStatus:eo});const ao={lint:{"no-headingless-sections":!0,"no-http-props":!0,"no-unused-vars":!1,"check-punctuation":!1,"local-refs-exist":!0,"check-internal-slots":!1,"check-charset":!1,"privsec-section":!1,"no-dfn-in-abstract":!1},pluralize:!0,specStatus:"base",highlightVars:!0,addSectionLinks:!0},co="w3c/defaults",lo={src:"https://www.w3.org/StyleSheets/TR/2021/logos/W3C",alt:"W3C",height:48,width:72,url:"https://www.w3.org/"},uo={alt:"W3C Member Submission",href:"https://www.w3.org/Submission/",src:"https://www.w3.org/Icons/member_subm-v.svg",width:"211",height:"48"},po={lint:{"privsec-section":!1,"required-sections":!0,"wpt-tests-exist":!1,"informative-dfn":"warn","no-unused-dfns":"warn",a11y:!1},doJsonLd:!1,logos:[],xref:!0,wgId:"",otherLinks:[],excludeGithubLinks:!0,subtitle:"",prevVersion:"",formerEditors:[],editors:[],authors:[]};var ho=Object.freeze({__proto__:null,name:co,run:function(e){const t=!1!==e.lint&&{...ao.lint,...po.lint,...e.lint};Object.assign(e,{...ao,...po,...e,lint:t}),"unofficial"===e.specStatus||e.hasOwnProperty("license")||(e.license="w3c-software-doc"),function(e){const{specStatus:t,groupType:n,group:r}=e;if(!t){const t=ms`Select an appropriate status from ${"[specStatus]"} based on your W3C group. If in doubt, use \`"unofficial"\`.`;return cs(ms`The ${"[specStatus]"} configuration option is required.`,co,{hint:t}),void(e.specStatus="base")}if(void 0===Bi[t]){const n=ms`The ${"[specStatus]"} "\`${t}\`" is not supported at for this type of document.`,r=ms`set ${"[specStatus]"} to one of: ${ps(Object.keys(Bi),{quotes:!0})}.`;return cs(n,co,{hint:r}),void(e.specStatus="base")}switch(n){case"cg":if(![...Yi,"unofficial","UD"].includes(t)){const n=ms`W3C Community Group documents can't use \`"${t}"\` for the ${"[specStatus]"} configuration option.`,r=ps(Yi,{quotes:!0});cs(n,co,{hint:`Please use one of: ${r}. Automatically falling back to \`"CG-DRAFT"\`.`}),e.specStatus="CG-DRAFT"}break;case"bg":if(![...Xi,"unofficial","UD"].includes(t)){const n=ms`W3C Business Group documents can't use \`"${t}"\` for the ${"[specStatus]"} configuration option.`,r=ps(Xi,{quotes:!0});cs(n,co,{hint:`Please use one of: ${r}. Automatically falling back to \`"BG-DRAFT"\`.`}),e.specStatus="BG-DRAFT"}break;case"wg":if(![...eo,"unofficial","UD","ED"].includes(t)){const e=ms`Pleas see ${"[specStatus]"} for appropriate status for W3C Working Group documents.`;cs(ms`W3C Working Group documents can't use \`"${t}"\` for the ${"[specStatus]"} configuration option.`,co,{hint:e})}break;case"other":if("tag"===r&&!["ED",...eo,...Zi].includes(t)){const n=ms`The W3C Technical Architecture Group's documents can't use \`"${t}"\` for the ${"[specStatus]"} configuration option.`,r=ps(["ED",...eo,...Zi],{quotes:!0});cs(n,co,{hint:`Please use one of: ${r}. Automatically falling back to \`"unofficial"\`.`}),e.specStatus="unofficial"}break;default:if(!e.wgId&&!["unofficial","base","UD","Member-SUBM"].includes(t)){const t="Document is not associated with a [W3C group](https://respec.org/w3c/groups/). Defaulting to 'base' status.",n=ms`Use the ${"[group]"} configuration option to associated this document with a W3C group.`;e.specStatus="base",cs(t,co,{hint:n})}}}(e),function(e){const{specStatus:t,wg:n}=e,r=[...Ji,...Ki,...Vi,...Zi,"ED"].includes(t),s=n&&n.length&&r,i=["Member-SUBM"].includes(t);(s||i)&&(e.logos.unshift(lo),"Member-SUBM"===t&&e.logos.push(uo))}(e)}});const fo=String.raw,mo=String.raw`color-mix(in srgb, #eaf3ff 15%, transparent)`;var go=fo`@keyframes pop{
710
+ >`))):e.multipleWGs=!1,e.isPR&&!e.crEnd){cs(ms`${"[specStatus]"} is "PR" but no ${"[crEnd]"} is specified in the ${"[respecConfig]"} (needed to indicate end of previous CR).`,qi)}if(e.isCR&&!e.isCRDraft&&!e.crEnd){cs(ms`${"[specStatus]"} is "CR", but no ${"[crEnd]"} is specified in the ${"[respecConfig]"}.`,qi)}if(e.crEnd=so(e,"crEnd"),e.isPR&&!e.prEnd){cs(ms`${"[specStatus]"} is "PR" but no ${"[prEnd]"} is specified in the ${"[respecConfig]"}.`,qi)}e.prEnd=so(e,"prEnd");const u=c.classList.contains("updateable-rec"),d=null!==document.querySelector(".correction:not(.proposed)"),p=null!==document.querySelector(".correction.proposed"),h=null!==document.querySelector(".addition:not(.proposed)"),f=null!==document.querySelector(".addition.proposed"),m=d||h||f||p;if(e.isRec&&!e.errata&&!m){const e=ms`Add an ${"[errata]"} URL to your ${"[respecConfig]"}.`;cs("Recommendations must have an errata link.",qi,{hint:e})}if(e.isRec&&!u&&(h||d||f||p)){cs(ms`${"[specStatus]"} is "REC" with amendments, but the Recommendation is not marked as allowing revisions.`,qi)}if(e.isRec&&u&&(f||p)&&!e.revisedRecEnd){cs(ms`${"[specStatus]"} is "REC" with proposed corrections or additions but no ${"[revisedRecEnd]"} is specified in the ${"[respecConfig]"}.`,qi)}if(e.revisedRecEnd=so(e,"revisedRecEnd"),e.noRecTrack&&Ji.includes(t)){const e=ms`Document configured as ${"[noRecTrack]"}, but its status ("${t}") puts it on the W3C Rec Track.`,n=ps(Ji,{quotes:!0});cs(e,qi,{hint:`Status **can't** be any of: ${n}.`})}if(c.classList.contains("override")||ur.bind(c)`${function(e,t){const n={...io(t,e),get mailToWGPublicList(){return`mailto:${e.wgPublicList}@w3.org`},get mailToWGPublicListWithSubject(){const t=e.subjectPrefix?`?subject=${encodeURIComponent(e.subjectPrefix)}`:"";return this.mailToWGPublicList+t},get mailToWGPublicListSubscription(){return`mailto:${e.wgPublicList}-request@w3.org?subject=subscribe`}},r=e.isCGBG?Ui:ji;return r(e,n)}(e,c)}`,!e.implementationReportURI&&e.isCR){const e=ms`CR documents must have an ${"[implementationReportURI]"} that describes the [implementation experience](https://www.w3.org/policies/process/#implementation-experience).`;cs(ms`Missing ${"[implementationReportURI]"} configuration option in ${"[respecConfig]"}.`,qi,{hint:e})}if(!e.implementationReportURI&&e.isPR){ls(ms`PR documents should include an ${"[implementationReportURI]"}, which needs to link to a document that describes the [implementation experience](https://www.w3.org/policies/process-20190301/#implementation-experience).`,qi)}ys("amend-user-config",{publishISODate:e.publishISODate,generatedSubtitle:Mr(document.getElementById("w3c-state")?.textContent??"")})},status2text:Bi,status2track:Gi,tagStatus:Zi,trStatus:eo});const ao="core/defaults",co={lint:{"no-headingless-sections":!0,"no-http-props":!0,"no-unused-vars":!1,"check-punctuation":!1,"local-refs-exist":!0,"check-internal-slots":!1,"check-charset":!1,"privsec-section":!1,"no-dfn-in-abstract":!1},pluralize:!0,specStatus:"base",highlightVars:!0,addSectionLinks:!0};const lo="w3c/defaults",uo={src:"https://www.w3.org/StyleSheets/TR/2021/logos/W3C",alt:"W3C",height:48,width:72,url:"https://www.w3.org/"},po={alt:"W3C Member Submission",href:"https://www.w3.org/Submission/",src:"https://www.w3.org/Icons/member_subm-v.svg",width:"211",height:"48"},ho={lint:{"privsec-section":!1,"required-sections":!0,"wpt-tests-exist":!1,"informative-dfn":"warn","no-unused-dfns":"warn",a11y:!1},doJsonLd:!1,logos:[],xref:!0,wgId:"",otherLinks:[],excludeGithubLinks:!0,subtitle:"",prevVersion:"",formerEditors:[],editors:[],authors:[]};var fo=Object.freeze({__proto__:null,name:lo,run:function(e){const t=!1!==e.lint&&{...co.lint,...ho.lint,...e.lint};Object.assign(e,{...co,...ho,...e,lint:t}),function(e){if(!e.hasOwnProperty("noToc"))return;e.noTOC??=e.noToc;const t=ms`Please use ${"[noTOC]"} instead.`;ls("The `noToc` configuration option is deprecated.",ao,{hint:t})}(e),"unofficial"===e.specStatus||e.hasOwnProperty("license")||(e.license="w3c-software-doc"),function(e){const{specStatus:t,groupType:n,group:r}=e;if(!t){const t=ms`Select an appropriate status from ${"[specStatus]"} based on your W3C group. If in doubt, use \`"unofficial"\`.`;return cs(ms`The ${"[specStatus]"} configuration option is required.`,lo,{hint:t}),void(e.specStatus="base")}if(void 0===Bi[t]){const n=ms`The ${"[specStatus]"} "\`${t}\`" is not supported at for this type of document.`,r=ms`set ${"[specStatus]"} to one of: ${ps(Object.keys(Bi),{quotes:!0})}.`;return cs(n,lo,{hint:r}),void(e.specStatus="base")}switch(n){case"cg":if(![...Yi,"unofficial","UD"].includes(t)){const n=ms`W3C Community Group documents can't use \`"${t}"\` for the ${"[specStatus]"} configuration option.`,r=ps(Yi,{quotes:!0});cs(n,lo,{hint:`Please use one of: ${r}. Automatically falling back to \`"CG-DRAFT"\`.`}),e.specStatus="CG-DRAFT"}break;case"bg":if(![...Xi,"unofficial","UD"].includes(t)){const n=ms`W3C Business Group documents can't use \`"${t}"\` for the ${"[specStatus]"} configuration option.`,r=ps(Xi,{quotes:!0});cs(n,lo,{hint:`Please use one of: ${r}. Automatically falling back to \`"BG-DRAFT"\`.`}),e.specStatus="BG-DRAFT"}break;case"wg":if(![...eo,"unofficial","UD","ED"].includes(t)){const e=ms`Pleas see ${"[specStatus]"} for appropriate status for W3C Working Group documents.`;cs(ms`W3C Working Group documents can't use \`"${t}"\` for the ${"[specStatus]"} configuration option.`,lo,{hint:e})}break;case"other":if("tag"===r&&!["ED",...eo,...Zi].includes(t)){const n=ms`The W3C Technical Architecture Group's documents can't use \`"${t}"\` for the ${"[specStatus]"} configuration option.`,r=ps(["ED",...eo,...Zi],{quotes:!0});cs(n,lo,{hint:`Please use one of: ${r}. Automatically falling back to \`"unofficial"\`.`}),e.specStatus="unofficial"}break;default:if(!e.wgId&&!["unofficial","base","UD","Member-SUBM"].includes(t)){const t="Document is not associated with a [W3C group](https://respec.org/w3c/groups/). Defaulting to 'base' status.",n=ms`Use the ${"[group]"} configuration option to associated this document with a W3C group.`;e.specStatus="base",cs(t,lo,{hint:n})}}}(e),function(e){const{specStatus:t,wg:n}=e,r=[...Ji,...Ki,...Vi,...Zi,"ED"].includes(t),s=n&&n.length&&r,i=["Member-SUBM"].includes(t);(s||i)&&(e.logos.unshift(uo),"Member-SUBM"===t&&e.logos.push(po))}(e)}});const mo=String.raw,go=String.raw`color-mix(in srgb, #eaf3ff 15%, transparent)`;var bo=mo`@keyframes pop{
711
711
  0%{transform:scale(1,1)}
712
712
  25%{transform:scale(1.25,1.25);opacity:.75}
713
713
  100%{transform:scale(1,1)}
@@ -723,9 +723,9 @@ a.bibref{text-decoration:none}
723
723
  }
724
724
  #references :target{background:#eaf3ff;animation:pop .4s ease-in-out 0s 1}
725
725
  @media (prefers-color-scheme:dark){
726
- #references :target{background:${mo}}
726
+ #references :target{background:${go}}
727
727
  }
728
- body:has(input[name=color-scheme][value=dark]:checked) #references :target{background:${mo}}
728
+ body:has(input[name=color-scheme][value=dark]:checked) #references :target{background:${go}}
729
729
  cite .bibref{font-style:italic}
730
730
  a[href].orcid{padding-left:4px;padding-right:4px}
731
731
  a[href].orcid>svg{margin-bottom:-2px}
@@ -743,10 +743,10 @@ details.respec-tests-details>li{padding-left:1em}
743
743
  aside.example .marker>a.self-link{color:inherit}
744
744
  .header-wrapper{display:flex;align-items:baseline}
745
745
  :is(h2,h3,h4,h5,h6):not(#toc>h2,#abstract>h2,#sotd>h2,.head>h2):has(+a.self-link){position:relative;left:-.5em}
746
- :is(h2,h3,h4,h5,h6):not(#toch2)+a.self-link{color:inherit;order:-1;position:relative;left:-1.1em;font-size:1rem;opacity:.5}
747
- :is(h2,h3,h4,h5,h6)+a.self-link::before{content:"§";text-decoration:none;color:var(--heading-text)}
746
+ :is(h2,h3,h4,h5,h6):not(#toch2)+a.self-link{color:inherit;order:-1;position:relative;left:-1.1em;font-size:1rem;opacity:.8;text-decoration:none}
747
+ :is(h2,h3,h4,h5,h6)+a.self-link::before{content:"§"}
748
748
  :is(h2,h3)+a.self-link{top:-.2em}
749
- :is(h4,h5,h6)+a.self-link::before{color:#000}
749
+ :is(h2,h3)+a.self-link::before{color:var(--heading-text)}
750
750
  @media (max-width:767px){
751
751
  dd{margin-left:0}
752
752
  }
@@ -754,79 +754,78 @@ dd{margin-left:0}
754
754
  .removeOnSave{display:none}
755
755
  }
756
756
  body:has(input[name=color-scheme][value=light]:checked),head:not(:has(meta[name=color-scheme][content~=dark]))+body{color-scheme:light}
757
- body:has(input[name=color-scheme][value=dark]:checked){color-scheme:dark}`;const bo=function(){const e=document.createElement("style");return e.id="respec-mainstyle",e.textContent=go,document.head.appendChild(e),e}();var yo=Object.freeze({__proto__:null,name:"core/style",run:function(e){e.noReSpecCSS&&bo.remove()}});function wo(){const e=document.createElement("script");e.src="https://www.w3.org/scripts/TR/2021/fixup.js",location.hash&&e.addEventListener("load",(()=>{window.location.href=location.hash}),{once:!0}),document.body.appendChild(e)}const vo=function(){const e=[{hint:"preconnect",href:"https://www.w3.org"},{hint:"preload",href:"https://www.w3.org/scripts/TR/2021/fixup.js",as:"script"},{hint:"preload",href:$o("base.css").href,as:"style"},{hint:"preload",href:$o("dark.css").href,as:"style"},{hint:"preload",href:"https://www.w3.org/StyleSheets/TR/2021/logos/W3C",as:"image",corsMode:"anonymous"}],t=document.createDocumentFragment();for(const n of e.map(Ar))t.appendChild(n);return t}();function ko(e){return t=>{const n=t.querySelector(`head link[href="${e}"]`);n&&t.querySelector("head")?.append(n)}}function $o(e="base.css"){return new URL(`/StyleSheets/TR/2021/${e}`,"https://www.w3.org/")}vo.appendChild(ur`<link
757
+ body:has(input[name=color-scheme][value=dark]:checked){color-scheme:dark}`;const yo=function(){const e=document.createElement("style");return e.id="respec-mainstyle",e.textContent=bo,document.head.appendChild(e),e}();var wo=Object.freeze({__proto__:null,name:"core/style",run:function(e){e.noReSpecCSS&&yo.remove()}});function vo(){const e=document.createElement("script");e.src="https://www.w3.org/scripts/TR/2021/fixup.js",location.hash&&e.addEventListener("load",(()=>{window.location.href=location.hash}),{once:!0}),document.body.appendChild(e)}const ko=function(){const e=[{hint:"preconnect",href:"https://www.w3.org"},{hint:"preload",href:"https://www.w3.org/scripts/TR/2021/fixup.js",as:"script"},{hint:"preload",href:xo("base.css").href,as:"style"},{hint:"preload",href:xo("dark.css").href,as:"style"},{hint:"preload",href:"https://www.w3.org/StyleSheets/TR/2021/logos/W3C",as:"image",corsMode:"anonymous"}],t=document.createDocumentFragment();for(const n of e.map(Ar))t.appendChild(n);return t}();function $o(e){return t=>{const n=t.querySelector(`head link[href="${e}"]`);n&&t.querySelector("head")?.append(n)}}function xo(e="base.css"){return new URL(`/StyleSheets/TR/2021/${e}`,"https://www.w3.org/")}ko.appendChild(ur`<link
758
758
  rel="stylesheet"
759
759
  href="https://www.w3.org/StyleSheets/TR/2021/base.css"
760
760
  class="removeOnSave"
761
- />`),document.head.querySelector("meta[name=viewport]")||vo.prepend(ur`<meta
761
+ />`),document.head.querySelector("meta[name=viewport]")||ko.prepend(ur`<meta
762
762
  name="viewport"
763
763
  content="width=device-width, initial-scale=1, shrink-to-fit=no"
764
- />`),document.head.prepend(vo);var xo=Object.freeze({__proto__:null,name:"w3c/style",run:function(e){e.noToc||ws("end-all",wo,{once:!0});const t=$o(function(e){const t=e.specStatus?.toUpperCase()??"";let n;const r=[...Ji,...Ki,...Vi,"ED","MEMBER-SUBM"].includes(t)&&e.wgId;switch(t){case"WD":case"FPWD":n=r?"W3C-WD":"base.css";break;case"CG-DRAFT":case"CG-FINAL":case"BG-DRAFT":case"BG-FINAL":n=t.toLowerCase();break;case"UD":case"UNOFFICIAL":n="W3C-UD";break;case"FINDING":case"DRAFT-FINDING":case"EDITOR-DRAFT-FINDING":case"BASE":n="base.css";break;case"MEMBER-SUBM":n="W3C-Member-SUBM";break;default:n=r?`W3C-${e.specStatus}`:"base.css"}return n}(e));document.head.appendChild(ur`<link rel="stylesheet" href="${t.href}" />`),ws("beforesave",ko(t));let n=document.querySelector("head meta[name=color-scheme]");if(n||(n=ur`<meta name="color-scheme" content="light" />`,document.head.appendChild(n)),n?.content.includes("dark")){const e=$o("dark.css");document.head.appendChild(ur`<link
765
- rel="stylesheet"
766
- href="${e.href}"
767
- media="(prefers-color-scheme: dark)"
768
- />`),ws("beforesave",ko(e))}}});const Co="core/github";let So,_o;const To=new Promise(((e,t)=>{So=e,_o=e=>{cs(e,Co),t(new Error(e))}})),Ro=Ur({en:{file_a_bug:"File an issue",participate:"Participate:",commit_history:"Commit history"},ko:{participate:"참여"},zh:{file_a_bug:"反馈错误",participate:"参与:"},ja:{commit_history:"変更履歴",file_a_bug:"問題報告",participate:"参加方法:"},nl:{commit_history:"Revisiehistorie",file_a_bug:"Dien een melding in",participate:"Doe mee:"},es:{commit_history:"Historia de cambios",file_a_bug:"Nota un bug",participate:"Participe:"},de:{commit_history:"Revisionen",file_a_bug:"Fehler melden",participate:"Mitmachen:"}});var Eo=Object.freeze({__proto__:null,github:To,name:Co,run:async function(e){if(!e.hasOwnProperty("github")||!e.github)return void So(null);if("object"==typeof e.github&&!e.github.hasOwnProperty("repoURL")){const e=ms`Config option ${"[github]"} is missing property \`repoURL\`.`;return void _o(e)}const t="string"==typeof e.github?{}:e.github;let n,r=t.repoURL||String(e.github);r.endsWith("/")||(r+="/");try{n=new URL(r,"https://github.com")}catch{const e=ms`${"[github]"} configuration option is not a valid URL? (${r}).`;return void _o(e)}if("https://github.com"!==n.origin){const e=ms`${"[github]"} configuration option must be HTTPS and pointing to GitHub. (${n.href}).`;return void _o(e)}const[s,i]=n.pathname.split("/").filter((e=>e));if(!s||!i){const e=ms`${"[github]"} URL needs a path. For example, "w3c/my-spec".`;return void _o(e)}const o=t.branch||"gh-pages",a=new URL("./issues/",n).href,c=new URL("./new/choose",a).href;let l,u;if(l="object"==typeof e.github&&e.github.hasOwnProperty("pullsURL")?e.github.pullsURL:new URL("./pulls/",n).href,l)try{const e=new URL(l);if("https://github.com"!==e.origin){const e=ms`${"[github.pullsURL]"} must be HTTPS and pointing to GitHub. (${l}).`;return void _o(e)}if(!e.pathname.includes("/pulls")){const e=ms`${"[github.pullsURL]"} must point to pull requests. (${l}).`;return void _o(e)}}catch{const e=ms`${"[github.pullsURL]"} is not a valid URL. (${l}).`;return void _o(e)}if(u="object"==typeof e.github&&e.github.hasOwnProperty("commitHistoryURL")?e.github.commitHistoryURL:new URL(`./commits/${t.branch??""}`,n.href).href,u)try{const e=new URL(u);if("https://github.com"!==e.origin){const e=ms`${"[github.commitHistoryURL]"} must be HTTPS and pointing to GitHub. (${u}).`;return void _o(e)}if(!e.pathname.includes("/commits")){const e=ms`${"[github.commitHistoryURL]"} must point to commits. (${u}).`;return void _o(e)}}catch{const e=ms`${"[github.commitHistoryURL]"} is not a valid URL. (${u}).`;return void _o(e)}const d={edDraftURI:`https://${s.toLowerCase()}.github.io/${i}/`,githubToken:void 0,githubUser:void 0,issueBase:a,atRiskBase:a,otherLinks:[],pullBase:l,shortName:i};let p="https://respec.org/github";if(e.githubAPI)if(new URL(e.githubAPI).hostname===window.parent.location.hostname)p=e.githubAPI;else{ls("The `githubAPI` configuration option is private and should not be added manually.",Co)}if(!e.excludeGithubLinks){const t={key:Ro.participate,data:[{value:`GitHub ${s}/${i}`,href:n},{value:"All issues",href:a},{value:Ro.file_a_bug,href:c},{value:Ro.commit_history,href:u},{value:"Pull requests",href:l}]};e.otherLinks||(e.otherLinks=[]),e.otherLinks.unshift(t)}const h={branch:o,repoURL:n.href,apiBase:p,fullName:`${s}/${i}`,issuesURL:a,pullsURL:l,newIssuesURL:c,commitHistoryURL:u};So(h);const f={...d,...e,github:h,githubAPI:p};Object.assign(e,f)}});class Lo{constructor(e){this.doc=e,this.root=e.createDocumentFragment(),this.stack=[this.root],this.current=this.root}static sectionClasses=new Set(["appendix","informative","notoc"]);findPosition(e){return parseInt(e.tagName.charAt(1),10)}findParent(e){let t;for(;e>0;)if(e--,t=this.stack[e],t)return t}findHeader({firstChild:e}){for(;e;){if(/H[1-6]/.test(e.tagName))return e;e=e.nextSibling}return null}addHeader(e){const t=this.doc.createElement("section"),n=this.findPosition(e);t.appendChild(e),this.findParent(n).appendChild(t),this.stack[n]=t,this.stack.length=n+1,this.current=t,this.processHeader(e,t)}processHeader(e,t){Lo.sectionClasses.intersection(new Set(e.classList)).forEach((e=>{t.classList.add(e)}))}addSection(e){const t=this.findHeader(e),n=t?this.findPosition(t):1,r=this.findParent(n);t&&e.removeChild(t),e.appendChild(Ao(e)),t&&e.prepend(t),r.appendChild(e),this.current=r}addElement(e){this.current.appendChild(e)}}function Ao(e){const t=new Lo(e.ownerDocument);for(;e.firstChild;){const n=e.firstChild;switch(n.localName){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":t.addHeader(n);break;case"section":t.addSection(n);break;default:t.addElement(n)}}return t.root}function Po(e){const t=Ao(e);if("section"===t.firstElementChild.localName&&"section"===e.localName){const n=t.firstElementChild;n.remove(),e.append(...n.childNodes)}else e.textContent="";e.appendChild(t)}var No=Object.freeze({__proto__:null,name:"core/sections",restructure:Po,run:function(){Po(document.body)}});const Io="core/data-include";function Do(e,t,n){const r=document.querySelector(`[data-include-id=${t}]`);if(!r)return;const s=Fr(e,r.dataset.oninclude,n),i="string"==typeof r.dataset.includeReplace;!function(e,t,{replace:n}){const{includeFormat:r}=e.dataset;let s=t;"markdown"===r&&(s=Fs(s)),"text"===r?e.textContent=s:e.innerHTML=s,"markdown"===r&&Po(e),n&&e.replaceWith(...e.childNodes)}(r,s,{replace:i}),i||function(e){["data-include","data-include-format","data-include-replace","data-include-id","data-oninclude"].forEach((t=>e.removeAttribute(t)))}(r)}async function Oo(e,t){const n=e.querySelectorAll("[data-include]"),r=Array.from(n).map((async e=>{const n=e.dataset.include;if(!n)return;const r=`include-${String(Math.random()).slice(2)}`;e.dataset.includeId=r;try{const s=await fetch(n);if(!s.ok)throw new Error(`Fetching \`${n}\` failed with status code ${s.status} (${s.statusText}).`);Do(await s.text(),r,n),t<3&&await Oo(e,t+1)}catch(t){const r=t;cs(`\`data-include\` failed: \`${n}\` (${r.message}). Please check that the URL is correct and reachable.`,Io,{elements:[e],cause:r})}}));await Promise.all(r)}var jo=Object.freeze({__proto__:null,name:Io,run:async function(){await Oo(document,1)}});var zo=Object.freeze({__proto__:null,name:"core/reindent",run:function(){for(const e of document.getElementsByTagName("pre"))e.innerHTML=gs(e.innerHTML)}});const Mo="core/title",Uo=Ur({en:{default_title:"No Title"},de:{default_title:"Kein Titel"},zh:{default_title:"无标题"},cs:{default_title:"Bez názvu"},fr:{default_title:"Sans titre"}});var qo=Object.freeze({__proto__:null,name:Mo,run:function(e){const t=document.querySelector("h1#title")||ur`<h1 id="title"></h1>`;if(t.isConnected&&""===t.textContent.trim()){cs('The document is missing a title, so using a default title. To fix this, please give your document a `<title>`. If you need special markup in the document\'s title, please use a `<h1 id="title">`.',Mo,{title:"Document is missing a title",elements:[t]})}t.id||(t.id="title"),t.classList.add("title"),function(e,t){t.isConnected||(t.textContent=document.title||`${Uo.default_title}`);const n=document.createElement("h1");n.innerHTML=t.innerHTML.replace(/:<br>/g,": ").replace(/<br>/g," - ");let r=Mr(n.textContent);if(e.isPreview&&e.prNumber){const n=e.prUrl||`${e.github.repoURL}pull/${e.prNumber}`,{childNodes:s}=ur`
764
+ />`),document.head.prepend(ko);var Co=Object.freeze({__proto__:null,name:"w3c/style",run:function(e){e.noTOC||ws("end-all",vo,{once:!0});const t=xo(function(e){const t=e.specStatus?.toUpperCase()??"";let n;const r=[...Ji,...Ki,...Vi,"ED","MEMBER-SUBM"].includes(t)&&e.wgId;switch(t){case"WD":case"FPWD":n=r?"W3C-WD":"base.css";break;case"CG-DRAFT":case"CG-FINAL":case"BG-DRAFT":case"BG-FINAL":n=t.toLowerCase();break;case"UD":case"UNOFFICIAL":n="W3C-UD";break;case"FINDING":case"DRAFT-FINDING":case"EDITOR-DRAFT-FINDING":case"BASE":n="base.css";break;case"MEMBER-SUBM":n="W3C-Member-SUBM";break;default:n=r?`W3C-${e.specStatus}`:"base.css"}return n}(e));document.head.appendChild(ur`<link rel="stylesheet" href="${t.href}" />`),ws("beforesave",$o(t));let n=document.querySelector("head meta[name=color-scheme]");n||(n=ur`<meta name="color-scheme" content="light" />`,document.head.appendChild(n));const r=xo("dark.css"),s=n.content.includes("dark"),i=ur`<link
765
+ rel="stylesheet"
766
+ href="${r.href}"
767
+ />`;s&&(i.media="(prefers-color-scheme: dark)"),document.head.appendChild(i),s?ws("beforesave",$o(r)):i.disabled=!0}});const So="core/github";let _o,To;const Ro=new Promise(((e,t)=>{_o=e,To=e=>{cs(e,So),t(new Error(e))}})),Eo=Ur({en:{file_a_bug:"File an issue",participate:"Participate:",commit_history:"Commit history"},ko:{participate:"참여"},zh:{file_a_bug:"反馈错误",participate:"参与:"},ja:{commit_history:"変更履歴",file_a_bug:"問題報告",participate:"参加方法:"},nl:{commit_history:"Revisiehistorie",file_a_bug:"Dien een melding in",participate:"Doe mee:"},es:{commit_history:"Historia de cambios",file_a_bug:"Nota un bug",participate:"Participe:"},de:{commit_history:"Revisionen",file_a_bug:"Fehler melden",participate:"Mitmachen:"}});var Lo=Object.freeze({__proto__:null,github:Ro,name:So,run:async function(e){if(!e.hasOwnProperty("github")||!e.github)return void _o(null);if("object"==typeof e.github&&!e.github.hasOwnProperty("repoURL")){const e=ms`Config option ${"[github]"} is missing property \`repoURL\`.`;return void To(e)}const t="string"==typeof e.github?{}:e.github;let n,r=t.repoURL||String(e.github);r.endsWith("/")||(r+="/");try{n=new URL(r,"https://github.com")}catch{const e=ms`${"[github]"} configuration option is not a valid URL? (${r}).`;return void To(e)}if("https://github.com"!==n.origin){const e=ms`${"[github]"} configuration option must be HTTPS and pointing to GitHub. (${n.href}).`;return void To(e)}const[s,i]=n.pathname.split("/").filter((e=>e));if(!s||!i){const e=ms`${"[github]"} URL needs a path. For example, "w3c/my-spec".`;return void To(e)}const o=t.branch||"gh-pages",a=new URL("./issues/",n).href,c=new URL("./new/choose",a).href;let l,u;if(l="object"==typeof e.github&&e.github.hasOwnProperty("pullsURL")?e.github.pullsURL:new URL("./pulls/",n).href,l)try{const e=new URL(l);if("https://github.com"!==e.origin){const e=ms`${"[github.pullsURL]"} must be HTTPS and pointing to GitHub. (${l}).`;return void To(e)}if(!e.pathname.includes("/pulls")){const e=ms`${"[github.pullsURL]"} must point to pull requests. (${l}).`;return void To(e)}}catch{const e=ms`${"[github.pullsURL]"} is not a valid URL. (${l}).`;return void To(e)}if(u="object"==typeof e.github&&e.github.hasOwnProperty("commitHistoryURL")?e.github.commitHistoryURL:new URL(`./commits/${t.branch??""}`,n.href).href,u)try{const e=new URL(u);if("https://github.com"!==e.origin){const e=ms`${"[github.commitHistoryURL]"} must be HTTPS and pointing to GitHub. (${u}).`;return void To(e)}if(!e.pathname.includes("/commits")){const e=ms`${"[github.commitHistoryURL]"} must point to commits. (${u}).`;return void To(e)}}catch{const e=ms`${"[github.commitHistoryURL]"} is not a valid URL. (${u}).`;return void To(e)}const d={edDraftURI:`https://${s.toLowerCase()}.github.io/${i}/`,githubToken:void 0,githubUser:void 0,issueBase:a,atRiskBase:a,otherLinks:[],pullBase:l,shortName:i};let p="https://respec.org/github";if(e.githubAPI)if(new URL(e.githubAPI).hostname===window.parent.location.hostname)p=e.githubAPI;else{ls("The `githubAPI` configuration option is private and should not be added manually.",So)}if(!e.excludeGithubLinks){const t={key:Eo.participate,data:[{value:`GitHub ${s}/${i}`,href:n},{value:"All issues",href:a},{value:Eo.file_a_bug,href:c},{value:Eo.commit_history,href:u},{value:"Pull requests",href:l}]};e.otherLinks||(e.otherLinks=[]),e.otherLinks.unshift(t)}const h={branch:o,repoURL:n.href,apiBase:p,fullName:`${s}/${i}`,issuesURL:a,pullsURL:l,newIssuesURL:c,commitHistoryURL:u};_o(h);const f={...d,...e,github:h,githubAPI:p};Object.assign(e,f)}});class Ao{constructor(e){this.doc=e,this.root=e.createDocumentFragment(),this.stack=[this.root],this.current=this.root}static sectionClasses=new Set(["appendix","informative","notoc"]);findPosition(e){return parseInt(e.tagName.charAt(1),10)}findParent(e){let t;for(;e>0;)if(e--,t=this.stack[e],t)return t}findHeader({firstChild:e}){for(;e;){if(/H[1-6]/.test(e.tagName))return e;e=e.nextSibling}return null}addHeader(e){const t=this.doc.createElement("section"),n=this.findPosition(e);t.appendChild(e),this.findParent(n).appendChild(t),this.stack[n]=t,this.stack.length=n+1,this.current=t,this.processHeader(e,t)}processHeader(e,t){Ao.sectionClasses.intersection(new Set(e.classList)).forEach((e=>{t.classList.add(e)}))}addSection(e){const t=this.findHeader(e),n=t?this.findPosition(t):1,r=this.findParent(n);t&&e.removeChild(t),e.appendChild(Po(e)),t&&e.prepend(t),r.appendChild(e),this.current=r}addElement(e){this.current.appendChild(e)}}function Po(e){const t=new Ao(e.ownerDocument);for(;e.firstChild;){const n=e.firstChild;switch(n.localName){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":t.addHeader(n);break;case"section":t.addSection(n);break;default:t.addElement(n)}}return t.root}function No(e){const t=Po(e);if("section"===t.firstElementChild.localName&&"section"===e.localName){const n=t.firstElementChild;n.remove(),e.append(...n.childNodes)}else e.textContent="";e.appendChild(t)}var Io=Object.freeze({__proto__:null,name:"core/sections",restructure:No,run:function(){No(document.body)}});const Do="core/data-include";function Oo(e,t,n){const r=document.querySelector(`[data-include-id=${t}]`);if(!r)return;const s=Fr(e,r.dataset.oninclude,n),i="string"==typeof r.dataset.includeReplace;!function(e,t,{replace:n}){const{includeFormat:r}=e.dataset;let s=t;"markdown"===r&&(s=Fs(s)),"text"===r?e.textContent=s:e.innerHTML=s,"markdown"===r&&No(e),n&&e.replaceWith(...e.childNodes)}(r,s,{replace:i}),i||function(e){["data-include","data-include-format","data-include-replace","data-include-id","data-oninclude"].forEach((t=>e.removeAttribute(t)))}(r)}async function jo(e,t){const n=e.querySelectorAll("[data-include]"),r=Array.from(n).map((async e=>{const n=e.dataset.include;if(!n)return;const r=`include-${String(Math.random()).slice(2)}`;e.dataset.includeId=r;try{const s=await fetch(n);if(!s.ok)throw new Error(`Fetching \`${n}\` failed with status code ${s.status} (${s.statusText}).`);Oo(await s.text(),r,n),t<3&&await jo(e,t+1)}catch(t){const r=t;cs(`\`data-include\` failed: \`${n}\` (${r.message}). Please check that the URL is correct and reachable.`,Do,{elements:[e],cause:r})}}));await Promise.all(r)}var zo=Object.freeze({__proto__:null,name:Do,run:async function(){await jo(document,1)}});var Mo=Object.freeze({__proto__:null,name:"core/reindent",run:function(){for(const e of document.getElementsByTagName("pre"))e.innerHTML=gs(e.innerHTML)}});const Uo="core/title",qo=Ur({en:{default_title:"No Title"},de:{default_title:"Kein Titel"},zh:{default_title:"无标题"},cs:{default_title:"Bez názvu"},fr:{default_title:"Sans titre"}});var Wo=Object.freeze({__proto__:null,name:Uo,run:function(e){const t=document.querySelector("h1#title")||ur`<h1 id="title"></h1>`;if(t.isConnected&&""===t.textContent.trim()){cs('The document is missing a title, so using a default title. To fix this, please give your document a `<title>`. If you need special markup in the document\'s title, please use a `<h1 id="title">`.',Uo,{title:"Document is missing a title",elements:[t]})}t.id||(t.id="title"),t.classList.add("title"),function(e,t){t.isConnected||(t.textContent=document.title||`${qo.default_title}`);const n=document.createElement("h1");n.innerHTML=t.innerHTML.replace(/:<br>/g,": ").replace(/<br>/g," - ");let r=Mr(n.textContent);if(e.isPreview&&e.prNumber){const n=e.prUrl||`${e.github.repoURL}pull/${e.prNumber}`,{childNodes:s}=ur`
769
768
  Preview of PR <a href="${n}">#${e.prNumber}</a>:
770
- `;t.prepend(...s),r=`Preview of PR #${e.prNumber}: ${r}`}document.title=r,e.title=r}(e,t),document.body.prepend(t)}});const Wo="w3c/level",Fo=Ur({en:{level:"Level"},ja:{level:"レベル"},nl:{level:"Niveau"},de:{level:"Stufe"},zh:{level:"级别"}});var Bo=Object.freeze({__proto__:null,name:Wo,run:function(e){if(!e.hasOwnProperty("level"))return;const t=document.querySelector("h1#title"),n=parseInt(e.level);if(!Number.isInteger(n)||n<0){cs(`The \`level\` configuration option must be a number greater or equal to 0. It is currently set to \`${n}\``,Wo,{title:"Invalid level config.",elements:[t]})}else t.append(` ${Fo.level} ${n}`),document.title=`${document.title} ${Fo.level} ${n}`,e.shortName=`${e.shortName}-${n}`,e.level=n}});const Ho="w3c/abstract",Go=Ur({en:{abstract:"Abstract"},ko:{abstract:"요약"},zh:{abstract:"摘要"},ja:{abstract:"要約"},nl:{abstract:"Samenvatting"},es:{abstract:"Resumen"},fr:{abstract:"Résumé"},de:{abstract:"Zusammenfassung"},cs:{abstract:"Abstrakt"}});var Vo=Object.freeze({__proto__:null,name:Ho,run:async function(){const e=function(){const e=document.getElementById("abstract");if(e)switch(e.localName){case"section":return e;case"div":return Yr(e,"section");default:return cs("The abstract should be a `<section>` element.",Ho,{elements:[e]}),e}const t=Go.abstract.toLocaleLowerCase(r);for(const e of document.querySelectorAll("h2, h3, h4, h5, h6"))if(Mr(e.textContent).toLocaleLowerCase(r)===t)return e.closest("section");return e}();e?(e.classList.add("introductory"),e.id="abstract",e.querySelector("h2")||e.prepend(ur`<h2>${Go.abstract}</h2>`)):cs('Document must have one `<section id="abstract">`.',Ho)}});var Jo=Object.freeze({__proto__:null,name:"core/data-transform",run:function(){document.querySelectorAll("[data-transform]").forEach((e=>{e.innerHTML=Fr(e.innerHTML,e.dataset.transform),e.removeAttribute("data-transform")}))}});const Ko="core/dfn-abbr";function Zo(e){const t=(n=e).dataset.abbr?n.dataset.abbr:n.textContent?.match(/\b([a-z])/gi)?.join("").toUpperCase()??"";var n;const r=e.textContent.replace(/\s\s+/g," ").trim(),s=document.createElement("abbr");s.title=r,s.textContent=t,e.after(" (",s,")");const i=e.dataset.lt||"";e.dataset.lt=i.split("|").filter((e=>e.trim())).concat(t).join("|")}var Yo=Object.freeze({__proto__:null,name:Ko,run:function(){const e=document.querySelectorAll("[data-abbr]");for(const t of e){const{localName:e}=t;if("dfn"===e)Zo(t);else{cs(`\`data-abbr\` attribute not supported on \`${e}\` elements.`,Ko,{elements:[t],title:"Error: unsupported."})}}}});var Xo=String.raw`:root{--assertion-border:#aaa;--assertion-bg:#eee;--assertion-text:black}
769
+ `;t.prepend(...s),r=`Preview of PR #${e.prNumber}: ${r}`}document.title=r,e.title=r}(e,t),document.body.prepend(t)}});const Fo="w3c/level",Bo=Ur({en:{level:"Level"},ja:{level:"レベル"},nl:{level:"Niveau"},de:{level:"Stufe"},zh:{level:"级别"}});var Ho=Object.freeze({__proto__:null,name:Fo,run:function(e){if(!e.hasOwnProperty("level"))return;const t=document.querySelector("h1#title"),n=parseInt(e.level);if(!Number.isInteger(n)||n<0){cs(`The \`level\` configuration option must be a number greater or equal to 0. It is currently set to \`${n}\``,Fo,{title:"Invalid level config.",elements:[t]})}else t.append(` ${Bo.level} ${n}`),document.title=`${document.title} ${Bo.level} ${n}`,e.shortName=`${e.shortName}-${n}`,e.level=n}});const Go="w3c/abstract",Vo=Ur({en:{abstract:"Abstract"},ko:{abstract:"요약"},zh:{abstract:"摘要"},ja:{abstract:"要約"},nl:{abstract:"Samenvatting"},es:{abstract:"Resumen"},fr:{abstract:"Résumé"},de:{abstract:"Zusammenfassung"},cs:{abstract:"Abstrakt"}});var Jo=Object.freeze({__proto__:null,name:Go,run:async function(){const e=function(){const e=document.getElementById("abstract");if(e)switch(e.localName){case"section":return e;case"div":return Yr(e,"section");default:return cs("The abstract should be a `<section>` element.",Go,{elements:[e]}),e}const t=Vo.abstract.toLocaleLowerCase(r);for(const e of document.querySelectorAll("h2, h3, h4, h5, h6"))if(Mr(e.textContent).toLocaleLowerCase(r)===t)return e.closest("section");return e}();e?(e.classList.add("introductory"),e.id="abstract",e.querySelector("h2")||e.prepend(ur`<h2>${Vo.abstract}</h2>`)):cs('Document must have one `<section id="abstract">`.',Go)}});var Ko=Object.freeze({__proto__:null,name:"core/data-transform",run:function(){document.querySelectorAll("[data-transform]").forEach((e=>{e.innerHTML=Fr(e.innerHTML,e.dataset.transform),e.removeAttribute("data-transform")}))}});const Zo="core/dfn-abbr";function Yo(e){const t=(n=e).dataset.abbr?n.dataset.abbr:n.textContent?.match(/\b([a-z])/gi)?.join("").toUpperCase()??"";var n;const r=e.textContent.replace(/\s\s+/g," ").trim(),s=document.createElement("abbr");s.title=r,s.textContent=t,e.after(" (",s,")");const i=e.dataset.lt||"";e.dataset.lt=i.split("|").filter((e=>e.trim())).concat(t).join("|")}var Xo=Object.freeze({__proto__:null,name:Zo,run:function(){const e=document.querySelectorAll("[data-abbr]");for(const t of e){const{localName:e}=t;if("dfn"===e)Yo(t);else{cs(`\`data-abbr\` attribute not supported on \`${e}\` elements.`,Zo,{elements:[t],title:"Error: unsupported."})}}}});var Qo=String.raw`:root{--assertion-border:#aaa;--assertion-bg:#eee;--assertion-text:black}
771
770
  .assert{border-left:.5em solid #aaa;padding:.3em;border-color:#aaa;border-color:var(--assertion-border);background:#eee;background:var(--assertion-bg);color:#000;color:var(--assertion-text)}
772
771
  @media (prefers-color-scheme:dark){
773
772
  :root{--assertion-border:#444;--assertion-bg:var(--borderedblock-bg);--assertion-text:var(--text)}
774
- }`;var Qo=Object.freeze({__proto__:null,name:"core/algorithms",run:function(){const e=Array.from(document.querySelectorAll("ol.algorithm li")).filter((e=>e.textContent.trim().startsWith("Assert: ")));if(!e.length)return;for(const t of e){t.classList.add("assert");const e=t.firstChild;e instanceof Text&&e.textContent.startsWith("Assert: ")&&(e.textContent=e.textContent.replace("Assert: ",""),t.prepend(ur`<a data-cite="INFRA#assert">Assert</a>`,": "))}const t=document.createElement("style");t.textContent=Xo,document.head.appendChild(t)}});const ea=/^[a-z]+(\s+[a-z]+)+\??$/,ta=/\B"([^"]*)"\B/,na=/^(\w+)\(([^\\)]*)\)(?:\|(\w+)(?:\((?:([^\\)]*))\))?)?$/,ra=/\[\[(\w+(?: +\w+)*)\]\](\([^)]*\))?$/,sa=/^((?:\[\[)?(?:\w+(?: +\w+)*)(?:\]\])?)$/,ia=/^(?:\w+)\??$/,oa=/^(\w+)\["([\w- ]*)"\]$/,aa=/\.?(\w+\(.*\)$)/,ca=/\/(.+)/,la=/\[\[.+\]\]/;function ua(e){const{identifier:t,renderParent:n,nullable:r}=e;if(n)return ur`<a
773
+ }`;var ea=Object.freeze({__proto__:null,name:"core/algorithms",run:function(){const e=Array.from(document.querySelectorAll("ol.algorithm li")).filter((e=>e.textContent.trim().startsWith("Assert: ")));if(!e.length)return;for(const t of e){t.classList.add("assert");const e=t.firstChild;e instanceof Text&&e.textContent.startsWith("Assert: ")&&(e.textContent=e.textContent.replace("Assert: ",""),t.prepend(ur`<a data-cite="INFRA#assert">Assert</a>`,": "))}const t=document.createElement("style");t.textContent=Qo,document.head.appendChild(t)}});const ta=/^[a-z]+(\s+[a-z]+)+\??$/,na=/\B"([^"]*)"\B/,ra=/^(\w+)\(([^\\)]*)\)(?:\|(\w+)(?:\((?:([^\\)]*))\))?)?$/,sa=/\[\[(\w+(?: +\w+)*)\]\](\([^)]*\))?$/,ia=/^((?:\[\[)?(?:\w+(?: +\w+)*)(?:\]\])?)$/,oa=/^(?:\w+)\??$/,aa=/^(\w+)\["([\w- ]*)"\]$/,ca=/\.?(\w+\(.*\)$)/,la=/\/(.+)/,ua=/\[\[.+\]\]/;function da(e){const{identifier:t,renderParent:n,nullable:r}=e;if(n)return ur`<a
775
774
  data-xref-type="_IDL_"
776
775
  data-link-type="idl"
777
776
  data-lt="${t}"
778
777
  ><code>${t+(r?"?":"")}</code></a
779
- >`}function da(e){const{identifier:t,parent:n,slotType:r,renderParent:s,args:i}=e,{identifier:o}=n||{},a="method"===r,c=i??[],l=a?ur`(${Hr(c,pa)})`:null,u=a?`(${c.join(", ")})`:"";return ur`${n&&s?".":""}<a
778
+ >`}function pa(e){const{identifier:t,parent:n,slotType:r,renderParent:s,args:i}=e,{identifier:o}=n||{},a="method"===r,c=i??[],l=a?ur`(${Hr(c,ha)})`:null,u=a?`(${c.join(", ")})`:"";return ur`${n&&s?".":""}<a
780
779
  data-xref-type="${r}"
781
780
  data-link-type="${r}"
782
781
  data-link-for="${o}"
783
782
  data-xref-for="${o}"
784
783
  data-lt="${`[[${t}]]${u}`}"
785
784
  ><code>[[${t}]]${l}</code></a
786
- >`}function pa(e,t,n){if(t<n.length-1)return ur`<var>${e}</var>`;const r=e.split(/(^\.{3})(.+)/),s=r.length>1,i=s?r[2]:r[0];return ur`${s?"...":null}<var>${i}</var>`}function ha(e){const{parent:t,identifier:n,renderParent:r}=e,{identifier:s}=t||{};return ur`${r?".":""}<a
785
+ >`}function ha(e,t,n){if(t<n.length-1)return ur`<var>${e}</var>`;const r=e.split(/(^\.{3})(.+)/),s=r.length>1,i=s?r[2]:r[0];return ur`${s?"...":null}<var>${i}</var>`}function fa(e){const{parent:t,identifier:n,renderParent:r}=e,{identifier:s}=t||{};return ur`${r?".":""}<a
787
786
  data-link-type="idl"
788
787
  data-xref-type="attribute|dict-member|const"
789
788
  data-link-for="${s}"
790
789
  data-xref-for="${s}"
791
790
  ><code>${n}</code></a
792
- >`}function fa(e){const{args:t,identifier:n,type:r,parent:s,renderParent:i}=e,{renderText:o,renderArgs:a}=e,{identifier:c}=s||{},l=Hr(a||t,pa),u=`${n}(${t.join(", ")})`;return ur`${s&&i?".":""}<a
791
+ >`}function ma(e){const{args:t,identifier:n,type:r,parent:s,renderParent:i}=e,{renderText:o,renderArgs:a}=e,{identifier:c}=s||{},l=Hr(a||t,ha),u=`${n}(${t.join(", ")})`;return ur`${s&&i?".":""}<a
793
792
  data-link-type="idl"
794
793
  data-xref-type="${r}"
795
794
  data-link-for="${c}"
796
795
  data-xref-for="${c}"
797
796
  data-lt="${u}"
798
797
  ><code>${o||n}</code></a
799
- >${!o||a?ur`<code>(${l})</code>`:""}`}function ma(e){const{identifier:t,enumValue:n,parent:r}=e,s=r?r.identifier:t;return ur`"<a
798
+ >${!o||a?ur`<code>(${l})</code>`:""}`}function ga(e){const{identifier:t,enumValue:n,parent:r}=e,s=r?r.identifier:t;return ur`"<a
800
799
  data-link-type="idl"
801
800
  data-xref-type="enum-value"
802
801
  data-link-for="${s}"
803
802
  data-xref-for="${s}"
804
803
  data-lt="${n?null:"the-empty-string"}"
805
804
  ><code>${n}</code></a
806
- >"`}function ga(e){const{identifier:t}=e;return ur`"<a
805
+ >"`}function ba(e){const{identifier:t}=e;return ur`"<a
807
806
  data-link-type="idl"
808
807
  data-cite="webidl"
809
808
  data-xref-type="exception"
810
809
  ><code>${t}</code></a
811
- >"`}function ba(e){const{identifier:t,nullable:n}=e;return ur`<a
810
+ >"`}function ya(e){const{identifier:t,nullable:n}=e;return ur`<a
812
811
  data-link-type="idl"
813
812
  data-cite="webidl"
814
813
  data-xref-type="interface"
815
814
  data-lt="${t}"
816
815
  ><code>${t+(n?"?":"")}</code></a
817
- >`}function ya(e){let t;try{t=function(e){const t=la.test(e),n=t?ca:aa,[r,s]=e.split(n);if(t&&r&&!s)throw new SyntaxError(`Internal slot missing "for" part. Expected \`{{ InterfaceName/${r}}}\` }.`);const i=r.split(/[./]/).concat(s).filter((e=>e&&e.trim())).map((e=>e.trim())),o=!e.includes("/"),a=[];for(;i.length;){const t=i.pop()??"";if(na.test(t)){const[,e,n,r,s]=t.match(na),i=(n??"").split(/,\s*/).filter((e=>e)),c=r?.trim(),l=s?.split(/,\s*/).filter((e=>e));a.push({type:"method",identifier:e??"",args:i,renderParent:o,renderText:c,renderArgs:l})}else if(oa.test(t)){const[,e,n]=t.match(oa);a.push({type:"enum",identifier:e??"",enumValue:n??"",renderParent:o})}else if(ta.test(t)){const[,e]=t.match(ta);o?a.push({type:"exception",identifier:e??""}):a.push({type:"enum",enumValue:e??"",renderParent:o})}else if(ra.test(t)){const[,e,n]=t.match(ra),r=n?"method":"attribute",s=n?.slice(1,-1).split(/,\s*/).filter((e=>e))??[];a.push({type:"internal-slot",slotType:r,identifier:e??"",args:s,renderParent:o})}else if(sa.test(t)&&i.length){const[,e]=t.match(sa);a.push({type:"attribute",identifier:e??"",renderParent:o})}else if(ea.test(t)){const e=t.endsWith("?"),n=e?t.slice(0,-1):t;a.push({type:"idl-primitive",identifier:n,renderParent:o,nullable:e})}else{if(!ia.test(t)||0!==i.length)throw new SyntaxError(`IDL micro-syntax parsing error in \`{{ ${e} }}\``);{const e=t.endsWith("?"),n=e?t.slice(0,-1):t;a.push({type:"base",identifier:n,renderParent:o,nullable:e})}}}return a.forEach(((e,t,n)=>{e.parent=n[t+1]||null})),a.reverse()}(e)}catch(t){const n=ur`<span>{{ ${e} }}</span>`,r="Error: Invalid inline IDL string.";return cs(t.message,"core/inlines",{title:r,elements:[n]}),n}const n=ur(document.createDocumentFragment()),r=[];for(const e of t)switch(e.type){case"base":{const t=ua(e);t&&r.push(t);break}case"attribute":r.push(ha(e));break;case"internal-slot":r.push(da(e));break;case"method":r.push(fa(e));break;case"enum":r.push(ma(e));break;case"exception":r.push(ga(e));break;case"idl-primitive":r.push(ba(e));break;default:throw new Error("Unknown type.")}return n`${r}`}const wa=new Set(["alias","reference"]),va=async function(){const e=await dr.openDB("respec-biblio2",12,{upgrade(e){Array.from(e.objectStoreNames).map((t=>e.deleteObjectStore(t)));e.createObjectStore("alias",{keyPath:"id"}).createIndex("aliasOf","aliasOf",{unique:!1}),e.createObjectStore("reference",{keyPath:"id"})}}),t=Date.now();for(const n of[...wa]){const r=e.transaction(n,"readwrite").store,s=IDBKeyRange.lowerBound(t);let i=await r.openCursor(s);for(;i?.value;){const e=i.value;(void 0===e.expires||e.expires<t)&&await r.delete(e.id),i=await i.continue()}}return e}();const ka={get ready(){return va},async find(e){return await this.isAlias(e)&&(e=await this.resolveAlias(e)??e),await this.get("reference",e)},async has(e,t){if(!wa.has(e))throw new TypeError(`Invalid type: ${e}`);if(!t)throw new TypeError("id is required");const n=(await this.ready).transaction(e,"readonly").store,r=IDBKeyRange.only(t);return!!await n.openCursor(r)},async isAlias(e){return await this.has("alias",e)},async resolveAlias(e){if(!e)throw new TypeError("id is required");const t=(await this.ready).transaction("alias","readonly").store,n=IDBKeyRange.only(e),r=await t.openCursor(n);return r?r.value.aliasOf:null},async get(e,t){if(!wa.has(e))throw new TypeError(`Invalid type: ${e}`);if(!t)throw new TypeError("id is required");const n=(await this.ready).transaction(e,"readonly").store,r=IDBKeyRange.only(t),s=await n.openCursor(r);return s?s.value:null},async addAll(e,t){if(!e)return;const n={alias:[],reference:[]};for(const r of Object.keys(e)){const s={id:r,...e[r],expires:t};s.aliasOf?n.alias.push(s):n.reference.push(s)}const r=[...wa].flatMap((e=>n[e].map((t=>this.add(e,t)))));await Promise.all(r)},async add(e,t){if(!wa.has(e))throw new TypeError(`Invalid type: ${e}`);if("object"!=typeof t)throw new TypeError("details should be an object");if("alias"===e&&!t.hasOwnProperty("aliasOf"))throw new TypeError("Invalid alias object.");const n=await this.ready;let r=await this.has(e,t.id);if(r){const s=await this.get(e,t.id);if(s&&void 0!==s.expires&&s.expires<Date.now()){const{store:s}=n.transaction(e,"readwrite");await s.delete(t.id),r=!1}}const{store:s}=n.transaction(e,"readwrite");return r?await s.put(t):await s.add(t)},async close(){(await this.ready).close()},async clear(){const e=await this.ready,t=[...wa],n=e.transaction(t,"readwrite"),r=t.map((e=>n.objectStore(e).clear()));await Promise.all(r)}},$a={},xa=new URL("https://api.specref.org/bibrefs?refs="),Ca=Ar({hint:"dns-prefetch",href:xa.origin});let Sa;document.head.appendChild(Ca);const _a=new Promise((e=>{Sa=e}));async function Ta(e,t={forceUpdate:!1}){const n=[...new Set(e)].filter((e=>e.trim()));if(!n.length||!1===navigator.onLine)return null;let r;try{r=await fetch(xa.href+n.join(","))}catch(e){return console.error(e),null}if(!t.forceUpdate&&!r.ok||200!==r.status)return null;const s=await r.json(),i=Date.now()+36e5;try{const e=Date.parse(r.headers.get("Expires")||""),t=Number.isNaN(e)?i:Math.min(e,i);await ka.addAll(s,t)}catch(e){console.error(e)}return s}async function Ra(e){const t=await _a;if(!t.hasOwnProperty(e))return null;const n=t[e];return n.aliasOf?await Ra(n.aliasOf):n}var Ea=Object.freeze({__proto__:null,Plugin:class{constructor(e){this.conf=e}normalizeReferences(){const e=new Set([...this.conf.normativeReferences].map((e=>e.toLowerCase())));Array.from(this.conf.informativeReferences).filter((t=>e.has(t.toLowerCase()))).forEach((e=>this.conf.informativeReferences.delete(e)))}getRefKeys(){return{informativeReferences:Array.from(this.conf.informativeReferences),normativeReferences:Array.from(this.conf.normativeReferences)}}async run(){this.conf.localBiblio||(this.conf.localBiblio={}),this.conf.biblio=$a;const e=Object.keys(this.conf.localBiblio).filter((e=>this.conf.localBiblio?.[e]?.hasOwnProperty("aliasOf"))).map((e=>this.conf.localBiblio?.[e]?.aliasOf)).filter((e=>e&&!this.conf.localBiblio?.hasOwnProperty(e)));this.normalizeReferences();const t=this.getRefKeys(),n=Array.from(new Set(t.normativeReferences.concat(t.informativeReferences).filter((e=>!this.conf.localBiblio?.hasOwnProperty(e))).concat(e.filter(Boolean)).sort())),r=n.length?await async function(e){const t=[];try{await ka.ready;const n=e.map((async e=>({id:e,data:await ka.find(e)})));t.push(...await Promise.all(n))}catch(n){t.push(...e.map((e=>({id:e,data:null})))),console.warn(n)}return t}(n):[],s={hasData:[],noData:[]};r.forEach((e=>{(e.data?s.hasData:s.noData).push(e)})),s.hasData.forEach((e=>{e.data&&($a[e.id]=e.data)}));const i=s.noData.map((e=>e.id));if(i.length){const e=await Ta(i,{forceUpdate:!0});Object.assign($a,e)}Object.assign($a,this.conf.localBiblio),(()=>{Sa(this.conf.biblio)})()}},biblio:$a,name:"core/biblio",resolveRef:Ra,updateFromNetwork:Ta});const La="core/render-biblio";function Aa(e){return`bib-${Jr(e)}`}const Pa=Ur({en:{info_references:"Informative references",norm_references:"Normative references",references:"References",reference_not_found:"Reference not found."},ko:{references:"참조"},nl:{info_references:"Informatieve referenties",norm_references:"Normatieve referenties",references:"Referenties"},es:{info_references:"Referencias informativas",norm_references:"Referencias normativas",references:"Referencias",reference_not_found:"Referencia no encontrada."},fr:{info_references:"Références informatives",norm_references:"Références normatives",references:"Références",reference_not_found:"Référence non trouvée."},ja:{info_references:"参照用参考文献",norm_references:"規範的参考文献",references:"参考文献"},de:{info_references:"Weiterführende Informationen",norm_references:"Normen und Spezifikationen",references:"Referenzen"},zh:{info_references:"非规范性引用",norm_references:"规范性引用",references:"参考文献"},cs:{info_references:"Informativní odkazy",norm_references:"Normativní odkazy",references:"Odkazy",reference_not_found:"Odkaz nebyl nalezen."}}),Na=new Map([["CR","W3C Candidate Recommendation"],["ED","W3C Editor's Draft"],["LCWD","W3C Last Call Working Draft"],["NOTE","W3C Working Group Note"],["PR","W3C Proposed Recommendation"],["REC","W3C Recommendation"],["WD","W3C Working Draft"]]);function Ia(e,t){const{goodRefs:n,badRefs:r}=function(e){const t=[],n=[];for(const r of e)r.refcontent?t.push(r):n.push(r);return{goodRefs:t,badRefs:n}}(e.map(Da)),s=function(e){const t=new Map;for(const n of e)t.has(n.refcontent?.id??"")||t.set(n.refcontent?.id??"",n);return[...t.values()]}(n),i=s.concat(r).sort(((e,t)=>e.ref.toLocaleLowerCase().localeCompare(t.ref.toLocaleLowerCase()))),o=ur`<section>
816
+ >`}function wa(e){let t;try{t=function(e){const t=ua.test(e),n=t?la:ca,[r,s]=e.split(n);if(t&&r&&!s)throw new SyntaxError(`Internal slot missing "for" part. Expected \`{{ InterfaceName/${r}}}\` }.`);const i=r.split(/[./]/).concat(s).filter((e=>e&&e.trim())).map((e=>e.trim())),o=!e.includes("/"),a=[];for(;i.length;){const t=i.pop()??"";if(ra.test(t)){const[,e,n,r,s]=t.match(ra),i=(n??"").split(/,\s*/).filter((e=>e)),c=r?.trim(),l=s?.split(/,\s*/).filter((e=>e));a.push({type:"method",identifier:e??"",args:i,renderParent:o,renderText:c,renderArgs:l})}else if(aa.test(t)){const[,e,n]=t.match(aa);a.push({type:"enum",identifier:e??"",enumValue:n??"",renderParent:o})}else if(na.test(t)){const[,e]=t.match(na);o?a.push({type:"exception",identifier:e??""}):a.push({type:"enum",enumValue:e??"",renderParent:o})}else if(sa.test(t)){const[,e,n]=t.match(sa),r=n?"method":"attribute",s=n?.slice(1,-1).split(/,\s*/).filter((e=>e))??[];a.push({type:"internal-slot",slotType:r,identifier:e??"",args:s,renderParent:o})}else if(ia.test(t)&&i.length){const[,e]=t.match(ia);a.push({type:"attribute",identifier:e??"",renderParent:o})}else if(ta.test(t)){const e=t.endsWith("?"),n=e?t.slice(0,-1):t;a.push({type:"idl-primitive",identifier:n,renderParent:o,nullable:e})}else{if(!oa.test(t)||0!==i.length)throw new SyntaxError(`IDL micro-syntax parsing error in \`{{ ${e} }}\``);{const e=t.endsWith("?"),n=e?t.slice(0,-1):t;a.push({type:"base",identifier:n,renderParent:o,nullable:e})}}}return a.forEach(((e,t,n)=>{e.parent=n[t+1]||null})),a.reverse()}(e)}catch(t){const n=ur`<span>{{ ${e} }}</span>`,r="Error: Invalid inline IDL string.";return cs(t.message,"core/inlines",{title:r,elements:[n]}),n}const n=ur(document.createDocumentFragment()),r=[];for(const e of t)switch(e.type){case"base":{const t=da(e);t&&r.push(t);break}case"attribute":r.push(fa(e));break;case"internal-slot":r.push(pa(e));break;case"method":r.push(ma(e));break;case"enum":r.push(ga(e));break;case"exception":r.push(ba(e));break;case"idl-primitive":r.push(ya(e));break;default:throw new Error("Unknown type.")}return n`${r}`}const va=new Set(["alias","reference"]),ka=async function(){const e=await dr.openDB("respec-biblio2",12,{upgrade(e){Array.from(e.objectStoreNames).map((t=>e.deleteObjectStore(t)));e.createObjectStore("alias",{keyPath:"id"}).createIndex("aliasOf","aliasOf",{unique:!1}),e.createObjectStore("reference",{keyPath:"id"})}}),t=Date.now();for(const n of[...va]){const r=e.transaction(n,"readwrite"),s=IDBKeyRange.lowerBound(t);let i=await r.store.openCursor(s);for(;i?.value;){const e=i.value;(void 0===e.expires||e.expires<t)&&await r.store.delete(e.id),i=await i.continue()}await r.done}return e}();const $a={get ready(){return ka},async find(e){return await this.isAlias(e)&&(e=await this.resolveAlias(e)??e),await this.get("reference",e)},async has(e,t){if(!va.has(e))throw new TypeError(`Invalid type: ${e}`);if(!t)throw new TypeError("id is required");const n=(await this.ready).transaction(e,"readonly").store,r=IDBKeyRange.only(t);return!!await n.openCursor(r)},async isAlias(e){return await this.has("alias",e)},async resolveAlias(e){if(!e)throw new TypeError("id is required");const t=(await this.ready).transaction("alias","readonly").store,n=IDBKeyRange.only(e),r=await t.openCursor(n);return r?r.value.aliasOf:null},async get(e,t){if(!va.has(e))throw new TypeError(`Invalid type: ${e}`);if(!t)throw new TypeError("id is required");const n=(await this.ready).transaction(e,"readonly").store,r=IDBKeyRange.only(t),s=await n.openCursor(r);return s?s.value:null},async addAll(e,t){if(!e)return;const n={alias:[],reference:[]};for(const r of Object.keys(e)){const s={id:r,...e[r],expires:t};s.aliasOf?n.alias.push(s):n.reference.push(s)}const r=[...va].flatMap((e=>n[e].map((t=>this.add(e,t)))));await Promise.all(r)},async add(e,t){if(!va.has(e))throw new TypeError(`Invalid type: ${e}`);if("object"!=typeof t)throw new TypeError("details should be an object");if("alias"===e&&!t.hasOwnProperty("aliasOf"))throw new TypeError("Invalid alias object.");const n=await this.ready;let r=await this.has(e,t.id);if(r){const s=await this.get(e,t.id);if(s&&void 0!==s.expires&&s.expires<Date.now()){const s=n.transaction(e,"readwrite");await s.store.delete(t.id),await s.done,r=!1}}const s=n.transaction(e,"readwrite"),i=r?await s.store.put(t):await s.store.add(t);return await s.done,i},async close(){(await this.ready).close()},async clear(){const e=await this.ready,t=[...va],n=e.transaction(t,"readwrite"),r=t.map((e=>n.objectStore(e).clear()));await Promise.all(r),await n.done}},xa={},Ca=new URL("https://api.specref.org/bibrefs?refs="),Sa=Ar({hint:"dns-prefetch",href:Ca.origin});let _a;document.head.appendChild(Sa);const Ta=new Promise((e=>{_a=e}));async function Ra(e,t={forceUpdate:!1}){const n=[...new Set(e)].filter((e=>e.trim()));if(!n.length||!1===navigator.onLine)return null;let r;try{r=await fetch(Ca.href+n.join(","))}catch(e){return console.error(e),null}if(!t.forceUpdate&&!r.ok||200!==r.status)return null;const s=await r.json(),i=Date.now()+36e5;try{const e=Date.parse(r.headers.get("Expires")||""),t=Number.isNaN(e)?i:Math.min(e,i);await $a.addAll(s,t)}catch(e){console.error(e)}return s}async function Ea(e){const t=await Ta;if(!t.hasOwnProperty(e))return null;const n=t[e];return n.aliasOf?await Ea(n.aliasOf):n}var La=Object.freeze({__proto__:null,Plugin:class{constructor(e){this.conf=e}normalizeReferences(){const e=new Set([...this.conf.normativeReferences].map((e=>e.toLowerCase())));Array.from(this.conf.informativeReferences).filter((t=>e.has(t.toLowerCase()))).forEach((e=>this.conf.informativeReferences.delete(e)))}getRefKeys(){return{informativeReferences:Array.from(this.conf.informativeReferences),normativeReferences:Array.from(this.conf.normativeReferences)}}async run(){this.conf.localBiblio||(this.conf.localBiblio={}),this.conf.biblio=xa;const e=Object.keys(this.conf.localBiblio).filter((e=>this.conf.localBiblio?.[e]?.hasOwnProperty("aliasOf"))).map((e=>this.conf.localBiblio?.[e]?.aliasOf)).filter((e=>e&&!this.conf.localBiblio?.hasOwnProperty(e)));this.normalizeReferences();const t=this.getRefKeys(),n=Array.from(new Set(t.normativeReferences.concat(t.informativeReferences).filter((e=>!this.conf.localBiblio?.hasOwnProperty(e))).concat(e.filter(Boolean)).sort())),r=n.length?await async function(e){const t=[];try{await $a.ready;const n=e.map((async e=>({id:e,data:await $a.find(e)})));t.push(...await Promise.all(n))}catch(n){t.push(...e.map((e=>({id:e,data:null})))),console.warn(n)}return t}(n):[],s={hasData:[],noData:[]};r.forEach((e=>{(e.data?s.hasData:s.noData).push(e)})),s.hasData.forEach((e=>{e.data&&(xa[e.id]=e.data)}));const i=s.noData.map((e=>e.id));if(i.length){const e=await Ra(i,{forceUpdate:!0});Object.assign(xa,e)}Object.assign(xa,this.conf.localBiblio),(()=>{_a(this.conf.biblio)})()}},biblio:xa,name:"core/biblio",resolveRef:Ea,updateFromNetwork:Ra});const Aa="core/render-biblio";function Pa(e){return`bib-${Jr(e)}`}const Na=Ur({en:{info_references:"Informative references",norm_references:"Normative references",references:"References",reference_not_found:"Reference not found."},ko:{references:"참조"},nl:{info_references:"Informatieve referenties",norm_references:"Normatieve referenties",references:"Referenties"},es:{info_references:"Referencias informativas",norm_references:"Referencias normativas",references:"Referencias",reference_not_found:"Referencia no encontrada."},fr:{info_references:"Références informatives",norm_references:"Références normatives",references:"Références",reference_not_found:"Référence non trouvée."},ja:{info_references:"参照用参考文献",norm_references:"規範的参考文献",references:"参考文献"},de:{info_references:"Weiterführende Informationen",norm_references:"Normen und Spezifikationen",references:"Referenzen"},zh:{info_references:"非规范性引用",norm_references:"规范性引用",references:"参考文献"},cs:{info_references:"Informativní odkazy",norm_references:"Normativní odkazy",references:"Odkazy",reference_not_found:"Odkaz nebyl nalezen."}}),Ia=new Map([["CR","W3C Candidate Recommendation"],["ED","W3C Editor's Draft"],["LCWD","W3C Last Call Working Draft"],["NOTE","W3C Working Group Note"],["PR","W3C Proposed Recommendation"],["REC","W3C Recommendation"],["WD","W3C Working Draft"]]);function Da(e,t){const{goodRefs:n,badRefs:r}=function(e){const t=[],n=[];for(const r of e)r.refcontent?t.push(r):n.push(r);return{goodRefs:t,badRefs:n}}(e.map(Oa)),s=function(e){const t=new Map;for(const n of e)t.has(n.refcontent?.id??"")||t.set(n.refcontent?.id??"",n);return[...t.values()]}(n),i=s.concat(r).sort(((e,t)=>e.ref.toLocaleLowerCase().localeCompare(t.ref.toLocaleLowerCase()))),o=ur`<section>
818
817
  <h3>${t}</h3>
819
- <dl class="bibliography">${i.map(ja)}</dl>
820
- </section>`;Kr(o,"",t);const a=function(e){const t=new Map;for(const n of e){const e=n.refcontent?.id??"",r=t.has(e)?t.get(e):t.set(e,[]).get(e);r?.push(n.ref)}return t}(n);return function(e,t){e.map((({ref:e,refcontent:n})=>{const r=`#${Aa(e)}`,s=(t.get(n.id??"")??[]).map((e=>`a.bibref[href="#${Aa(e)}"]`)).join(",");return{refUrl:r,elems:document.querySelectorAll(s),refcontent:n}})).forEach((({refUrl:e,elems:t,refcontent:n})=>{t.forEach((t=>{t.setAttribute("href",e),t.setAttribute("title",n.title),t.dataset.linkType="biblio"}))}))}(s,a),function(e){for(const{ref:t}of e){const e=[...document.querySelectorAll(`a.bibref[href="#${Aa(t)}"]`)].filter((({textContent:e})=>e.toLowerCase()===t.toLowerCase()));cs(`Reference "[${t}]" not found.`,La,{hint:`Search for ["${t}"](https://www.specref.org?q=${t}) on Specref to see if it exists or if it's misspelled.`,elements:e})}}(r),o}function Da(e){let t=$a[e],n=e;const r=new Set([n]);for(;t&&t.aliasOf;)if(r.has(t.aliasOf)){t=null;cs(`Circular reference in biblio DB between [\`${e}\`] and [\`${n}\`].`,La)}else n=t.aliasOf,t=$a[n],r.add(n);return t&&!t.id&&(t.id=e.toLowerCase()),{ref:e,refcontent:t}}function Oa(e,t){const n=e.replace(/^(!|\?)/,""),r=`#${Aa(n)}`,s=ur`<cite
818
+ <dl class="bibliography">${i.map(za)}</dl>
819
+ </section>`;Kr(o,"",t);const a=function(e){const t=new Map;for(const n of e){const e=n.refcontent?.id??"",r=t.has(e)?t.get(e):t.set(e,[]).get(e);r?.push(n.ref)}return t}(n);return function(e,t){e.map((({ref:e,refcontent:n})=>{const r=`#${Pa(e)}`,s=(t.get(n.id??"")??[]).map((e=>`a.bibref[href="#${Pa(e)}"]`)).join(",");return{refUrl:r,elems:document.querySelectorAll(s),refcontent:n}})).forEach((({refUrl:e,elems:t,refcontent:n})=>{t.forEach((t=>{t.setAttribute("href",e),t.setAttribute("title",n.title),t.dataset.linkType="biblio"}))}))}(s,a),function(e){for(const{ref:t}of e){const e=[...document.querySelectorAll(`a.bibref[href="#${Pa(t)}"]`)].filter((({textContent:e})=>e.toLowerCase()===t.toLowerCase()));cs(`Reference "[${t}]" not found.`,Aa,{hint:`Search for ["${t}"](https://www.specref.org?q=${t}) on Specref to see if it exists or if it's misspelled.`,elements:e})}}(r),o}function Oa(e){let t=xa[e],n=e;const r=new Set([n]);for(;t&&t.aliasOf;)if(r.has(t.aliasOf)){t=null;cs(`Circular reference in biblio DB between [\`${e}\`] and [\`${n}\`].`,Aa)}else n=t.aliasOf,t=xa[n],r.add(n);return t&&!t.id&&(t.id=e.toLowerCase()),{ref:e,refcontent:t}}function ja(e,t){const n=e.replace(/^(!|\?)/,""),r=`#${Pa(n)}`,s=ur`<cite
821
820
  ><a class="bibref" href="${r}" data-link-type="biblio">${t||n}</a></cite
822
- >`;return t?s:ur`[${s}]`}function ja(e){const{ref:t,refcontent:n}=e,r=Aa(t);return ur`
821
+ >`;return t?s:ur`[${s}]`}function za(e){const{ref:t,refcontent:n}=e,r=Pa(t);return ur`
823
822
  <dt id="${r}">[${t}]</dt>
824
823
  <dd>
825
- ${n?{html:za(n)}:ur`<em class="respec-offending-element"
826
- >${Pa.reference_not_found}</em
824
+ ${n?{html:Ma(n)}:ur`<em class="respec-offending-element"
825
+ >${Na.reference_not_found}</em
827
826
  >`}
828
827
  </dd>
829
- `}function za(e){if("string"==typeof e)return e;let t=`<cite>${e.title}</cite>`;if(t=e.href?`<a href="${e.href}">${t}</a>. `:`${t}. `,e.authors){if(!Array.isArray(e.authors)){const t=`The "authors" field in reference "${e.id||e.title}" must be an array.`,n=`Use \`authors: [${JSON.stringify(e.authors)}]\` instead of \`authors: ${JSON.stringify(e.authors)}\`.`;cs(t,La,{hint:n}),e.authors=[e.authors]}e.authors.length&&(t+=e.authors.join("; "),e.etAl&&(t+=" et al"),t.endsWith(".")||(t+=". "))}if(e.publisher){const n=e.pages?",":".",r=e.publisher.trim();t=`${t} ${r.endsWith(".")?r.slice(0,-1):r}${n} `}return e.pages&&(t+=`pp. ${zr(e.pages)}. `),e.date&&(t+=`${e.date}. `),e.status&&(t+=`${Na.get(e.status)||e.status}. `),e.href&&(t+=`URL: <a href="${e.href}">${e.href}</a>`),t}var Ma=Object.freeze({__proto__:null,name:La,renderInlineCitation:Oa,run:function(e){const t=Array.from(e.informativeReferences),n=Array.from(e.normativeReferences);if(!t.length&&!n.length)return;const r=document.querySelector("section#references")||ur`<section id="references"></section>`;if(document.querySelector("section#references > :is(h2, h1)")||r.prepend(ur`<h1>${Pa.references}</h1>`),r.classList.add("appendix"),n.length){const e=Ia(n,Pa.norm_references);r.appendChild(e)}if(t.length){const e=Ia(t,Pa.info_references);r.appendChild(e)}document.body.appendChild(r)}});const Ua="core/inlines",qa={},Wa=e=>new RegExp(e.map((e=>e.source)).join("|")),Fa=Ur({en:{rfc2119Keywords:()=>Wa([/\bMUST(?:\s+NOT)?\b/,/\bSHOULD(?:\s+NOT)?\b/,/\bSHALL(?:\s+NOT)?\b/,/\bMAY\b/,/\b(?:NOT\s+)?REQUIRED\b/,/\b(?:NOT\s+)?RECOMMENDED\b/,/\bOPTIONAL\b/])},de:{rfc2119Keywords:()=>Wa([/\bMUSS\b/,/\bMÜSSEN\b/,/\bERFORDERLICH\b/,/\b(?:NICHT\s+)?NÖTIG\b/,/\bDARF(?:\s+NICHT)?\b/,/\bDÜRFEN(?:\s+NICHT)?\b/,/\bVERBOTEN\b/,/\bSOLL(?:\s+NICHT)?\b/,/\bSOLLEN(?:\s+NICHT)?\b/,/\b(?:NICHT\s+)?EMPFOHLEN\b/,/\bKANN\b/,/\bKÖNNEN\b/,/\bOPTIONAL\b/])}}),Ba=/(?:`[^`]+`)(?!`)/,Ha=/(?:{{[^}]+\?*}})/,Ga=/\B\|\w[\w\s]*(?:\s*:[\w\s&;"?<>]+\??)?\|\B/,Va=/(?:\[\[(?:!|\\|\?)?[\w.-]+(?:|[^\]]+)?\]\])/,Ja=/(?:\[\[\[[^\]]+\]\]\])/,Ka=/(?:\[=[^=]+=\])/,Za=/(?:\[\^[^^]+\^\])/,Ya=/(?:\{\^[^}^]+\^\})/;function Xa(e){const t=e.slice(2,-2).trim(),[n,r,s]=t.split("/",3).map((e=>e&&e.trim())).filter((e=>!!e)),[i,o,a]=t.startsWith("/")?["element-attr",null,n]:s?["attr-value",`${n}/${r}`,s]:r?["element-attr",n,r]:["element",null,n];return ur`<code
828
+ `}function Ma(e){if("string"==typeof e)return e;let t=`<cite>${e.title}</cite>`;if(t=e.href?`<a href="${e.href}">${t}</a>. `:`${t}. `,e.authors){if(!Array.isArray(e.authors)){const t=`The "authors" field in reference "${e.id||e.title}" must be an array.`,n=`Use \`authors: [${JSON.stringify(e.authors)}]\` instead of \`authors: ${JSON.stringify(e.authors)}\`.`;cs(t,Aa,{hint:n}),e.authors=[e.authors]}e.authors.length&&(t+=e.authors.join("; "),e.etAl&&(t+=" et al"),t.endsWith(".")||(t+=". "))}if(e.publisher){const n=e.pages?",":".",r=e.publisher.trim();t=`${t} ${r.endsWith(".")?r.slice(0,-1):r}${n} `}return e.pages&&(t+=`pp. ${zr(e.pages)}. `),e.date&&(t+=`${e.date}. `),e.status&&(t+=`${Ia.get(e.status)||e.status}. `),e.href&&(t+=`URL: <a href="${e.href}">${e.href}</a>`),t}var Ua=Object.freeze({__proto__:null,name:Aa,renderInlineCitation:ja,run:function(e){const t=Array.from(e.informativeReferences),n=Array.from(e.normativeReferences);if(!t.length&&!n.length)return;const r=document.querySelector("section#references")||ur`<section id="references"></section>`;if(document.querySelector("section#references > :is(h2, h1)")||r.prepend(ur`<h1>${Na.references}</h1>`),r.classList.add("appendix"),n.length){const e=Da(n,Na.norm_references);r.appendChild(e)}if(t.length){const e=Da(t,Na.info_references);r.appendChild(e)}document.body.appendChild(r)}});const qa="core/inlines",Wa={},Fa=e=>new RegExp(e.map((e=>e.source)).join("|")),Ba=Ur({en:{rfc2119Keywords:()=>Fa([/\bMUST(?:\s+NOT)?\b/,/\bSHOULD(?:\s+NOT)?\b/,/\bSHALL(?:\s+NOT)?\b/,/\bMAY\b/,/\b(?:NOT\s+)?REQUIRED\b/,/\b(?:NOT\s+)?RECOMMENDED\b/,/\bOPTIONAL\b/])},de:{rfc2119Keywords:()=>Fa([/\bMUSS\b/,/\bMÜSSEN\b/,/\bERFORDERLICH\b/,/\b(?:NICHT\s+)?NÖTIG\b/,/\bDARF(?:\s+NICHT)?\b/,/\bDÜRFEN(?:\s+NICHT)?\b/,/\bVERBOTEN\b/,/\bSOLL(?:\s+NICHT)?\b/,/\bSOLLEN(?:\s+NICHT)?\b/,/\b(?:NICHT\s+)?EMPFOHLEN\b/,/\bKANN\b/,/\bKÖNNEN\b/,/\bOPTIONAL\b/])}}),Ha=/(?:`[^`]+`)(?!`)/,Ga=/(?:{{[^}]+\?*}})/,Va=/\B\|\w[\w\s]*(?:\s*:[\w\s&;"?<>]+\??)?\|\B/,Ja=/(?:\[\[(?:!|\\|\?)?[\w.-]+(?:|[^\]]+)?\]\])/,Ka=/(?:\[\[\[[^\]]+\]\]\])/,Za=/(?:\[=[^=]+=\])/,Ya=/(?:\[\^[^^]+\^\])/,Xa=/(?:\{\^[^}^]+\^\})/;function Qa(e){const t=e.slice(2,-2).trim(),[n,r,s]=t.split("/",3).map((e=>e&&e.trim())).filter((e=>!!e)),[i,o,a]=t.startsWith("/")?["element-attr",null,n]:s?["attr-value",`${n}/${r}`,s]:r?["element-attr",n,r]:["element",null,n];return ur`<code
830
829
  ><a
831
830
  data-xref-type="${i}"
832
831
  data-xref-for="${o}"
@@ -834,7 +833,7 @@ body:has(input[name=color-scheme][value=dark]:checked){color-scheme:dark}`;const
834
833
  data-link-for="${o}"
835
834
  >${a}</a
836
835
  ></code
837
- >`}function Qa(e){const t=(e.slice(2,-2).trim().match(/"([^"]*)"|([^/]+)/g)||[]).map((e=>e.trim()));if(1===t.length){const e=t[0];return ur`<code
836
+ >`}function ec(e){const t=(e.slice(2,-2).trim().match(/"([^"]*)"|([^/]+)/g)||[]).map((e=>e.trim()));if(1===t.length){const e=t[0];return ur`<code
838
837
  ><a data-link-type="cddl-type" data-xref-type="cddl-type"
839
838
  >${e}</a
840
839
  ></code
@@ -846,8 +845,8 @@ body:has(input[name=color-scheme][value=dark]:checked){color-scheme:dark}`;const
846
845
  data-link-for="${n}"
847
846
  >${r}</a
848
847
  ></code
849
- >`}function ec(e){const t=Mr(e),n=ur`<em class="rfc2119">${t}</em>`;return qa[t]=!0,n}const tc=/^(?:!|\\|\?)?(?:#[\w-.]+|[\w-.]+(?:#[\w-.]+)?)(?:\|[^\]]+)?$/;function nc(e){const t=e.slice(3,-3).trim();if(!tc.test(t)){return ls(`Bad syntax: \`${e}\` is not a valid inline expansion.`,Ua,{hint:"See https://github.com/speced/respec/wiki/inlines for valid syntax."}),e}const n=t.indexOf("|"),r=-1!==n?t.slice(n+1).trim():null,s=-1!==n?t.slice(0,n).trim():t,i=s.replace(/^[!?\\]/,"");if(s.startsWith("\\"))return`[[[${i}]]]`;if(i.startsWith("#"))return r?ur`<a href="${i}" data-matched-text="${e}"
850
- >${lc(r)}</a
848
+ >`}function tc(e){const t=Mr(e),n=ur`<em class="rfc2119">${t}</em>`;return Wa[t]=!0,n}const nc=/^(?:!|\\|\?)?(?:#[\w-.]+|[\w-.]+(?:#[\w-.]+)?)(?:\|[^\]]+)?$/;function rc(e){const t=e.slice(3,-3).trim();if(!nc.test(t)){return ls(`Bad syntax: \`${e}\` is not a valid inline expansion.`,qa,{hint:"See https://github.com/speced/respec/wiki/inlines for valid syntax."}),e}const n=t.indexOf("|"),r=-1!==n?t.slice(n+1).trim():null,s=-1!==n?t.slice(0,n).trim():t,i=s.replace(/^[!?\\]/,"");if(s.startsWith("\\"))return`[[[${i}]]]`;if(i.startsWith("#"))return r?ur`<a href="${i}" data-matched-text="${e}"
849
+ >${uc(r)}</a
851
850
  >`:ur`<a href="${i}" data-matched-text="${e}"></a>`;if(i.includes("#")){const[t,n]=i.split("#"),o=s.slice(0,s.length-i.length)+t;return ur`<a
852
851
  data-cite="${o}"
853
852
  data-cite-frag="${n}"
@@ -857,24 +856,24 @@ body:has(input[name=color-scheme][value=dark]:checked){color-scheme:dark}`;const
857
856
  data-cite="${s}"
858
857
  data-matched-text="${e}"
859
858
  data-lt="${r||null}"
860
- ></a>`}function rc(e,t){const n=Mr(e.slice(2,-2));if(n.startsWith("\\"))return e.replace(/^(\{\{\s*)\\/,"$1");const r=ya(n);return!!t.parentElement?.closest("dfn,a")?cc(`\`${r.textContent}\``):r}function sc(e,t,n){const r=e.slice(2,-2);if(r.startsWith("\\"))return[`[[${r.slice(1)}]]`];const[s,i]=r.split("|").map(Mr),o=s.replace(/^(!|\?)/,"");if(n.shortName&&o.toLowerCase()===n.shortName.toLowerCase()){const e=n.title||o;return[ur`<cite title="${n.shortName}">${e}</cite>`]}const{type:a,illegal:c}=Xr(s,t.parentElement),l=Oa(s,i);if(c&&!n.normativeReferences.has(o)){const e=l.childNodes[1]||l;ls("Normative references in informative sections are not allowed. ",Ua,{elements:[e],hint:`Remove '!' from the start of the reference \`[[${r}]]\``})}return"informative"!==a||c?n.normativeReferences.add(o):n.informativeReferences.add(o),l.childNodes[1]?l.childNodes:[l]}function ic(e,t,n){return"ABBR"===t.parentElement?.tagName?e:ur`<abbr title="${n.get(e)}">${e}</abbr>`}function oc(e){const t=e.slice(1,-1).split(":",2),[n,r]=t.map((e=>e.trim()));return ur`<var data-type="${r}">${n}</var>`}function ac(e){const t=function(e){const t=e=>e.replace("%%","/").split("/").map(Mr).join("/"),n=e.replace("\\/","%%"),r=n.lastIndexOf("/");if(-1===r)return[t(n)];const s=n.substring(0,r),i=n.substring(r+1,n.length);return[t(s),t(i)]}(e=e.slice(2,-2)),[n,r]=2===t.length?t:[null,t[0]],[s,i]=r.includes("|")?r.split("|",2).map((e=>e.trim())):[null,r],o=lc(i),a=n?Mr(n):null;return ur`<a
859
+ ></a>`}function sc(e,t){const n=Mr(e.slice(2,-2));if(n.startsWith("\\"))return e.replace(/^(\{\{\s*)\\/,"$1");const r=wa(n);return!!t.parentElement?.closest("dfn,a")?lc(`\`${r.textContent}\``):r}function ic(e,t,n){const r=e.slice(2,-2);if(r.startsWith("\\"))return[`[[${r.slice(1)}]]`];const[s,i]=r.split("|").map(Mr),o=s.replace(/^(!|\?)/,"");if(n.shortName&&o.toLowerCase()===n.shortName.toLowerCase()){const e=n.title||o;return[ur`<cite title="${n.shortName}">${e}</cite>`]}const{type:a,illegal:c}=Xr(s,t.parentElement),l=ja(s,i);if(c&&!n.normativeReferences.has(o)){const e=l.childNodes[1]||l;ls("Normative references in informative sections are not allowed. ",qa,{elements:[e],hint:`Remove '!' from the start of the reference \`[[${r}]]\``})}return"informative"!==a||c?n.normativeReferences.add(o):n.informativeReferences.add(o),l.childNodes[1]?l.childNodes:[l]}function oc(e,t,n){return"ABBR"===t.parentElement?.tagName?e:ur`<abbr title="${n.get(e)}">${e}</abbr>`}function ac(e){const t=e.slice(1,-1).split(":",2),[n,r]=t.map((e=>e.trim()));return ur`<var data-type="${r}">${n}</var>`}function cc(e){const t=function(e){const t=e=>e.replace("%%","/").split("/").map(Mr).join("/"),n=e.replace("\\/","%%"),r=n.lastIndexOf("/");if(-1===r)return[t(n)];const s=n.substring(0,r),i=n.substring(r+1,n.length);return[t(s),t(i)]}(e=e.slice(2,-2)),[n,r]=2===t.length?t:[null,t[0]],[s,i]=r.includes("|")?r.split("|",2).map((e=>e.trim())):[null,r],o=uc(i),a=n?Mr(n):null;return ur`<a
861
860
  data-link-type="dfn|abstract-op"
862
861
  data-link-for="${a}"
863
862
  data-xref-for="${a}"
864
863
  data-lt="${s}"
865
864
  >${o}</a
866
- >`}function cc(e){const t=e.slice(1,-1);return ur`<code>${t}</code>`}function lc(e){return Ba.test(e)?e.split(/(`[^`]+`)(?!`)/).map((e=>e.startsWith("`")?cc(e):lc(e))):document.createTextNode(e)}function uc(e,t){e.textContent="";const n=lc(t);e.append(...Array.isArray(n)?n:[n])}var dc=Object.freeze({__proto__:null,name:Ua,rfc2119Usage:qa,run:function(e){const t=new Map;document.normalize(),document.querySelector("section#conformance")||document.body.classList.add("informative"),e.normativeReferences=new ns,e.informativeReferences=new ns,e.respecRFC2119||(e.respecRFC2119=qa);const n=document.querySelectorAll("abbr[title]:not(.exclude)");for(const{textContent:e,title:r}of n){const n=Mr(e),s=Mr(r);t.set(n,s)}const r=t.size?new RegExp(`(?:\\b${[...t.keys()].map((e=>_r(e))).join("\\b)|(?:\\b")}\\b)`):null,s=function(e,t=[],n={wsNodes:!0}){const r=t.join(", "),s=document.createNodeIterator(e,NodeFilter.SHOW_TEXT,{acceptNode:e=>n.wsNodes||e.data.trim()?r&&e.parentElement?.closest(r)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}),i=[];let o;for(;o=s.nextNode();)i.push(o);return i}(document.body,["#respec-ui",".head","pre","svg","script","style"],{wsNodes:!1}),i=Fa.rfc2119Keywords(),o=new RegExp(`(${Wa([i,Ha,Ya,Ga,Va,Ja,Ka,Ba,Za,...r?[r]:[]]).source})`);for(const n of s){const r=n.data.split(o);if(1===r.length)continue;const s=document.createDocumentFragment();let a=!0;for(const o of r)if(a=!a,a)switch(!0){case o.startsWith("{{"):s.append(rc(o,n));break;case o.startsWith("{^"):s.append(Qa(o));break;case o.startsWith("[[["):s.append(nc(o));break;case o.startsWith("[["):s.append(...sc(o,n,e));break;case o.startsWith("|"):s.append(oc(o));break;case o.startsWith("[="):s.append(ac(o));break;case o.startsWith("`"):s.append(cc(o));break;case o.startsWith("[^"):s.append(Xa(o));break;case t.has(o):s.append(ic(o,n,t));break;case i.test(o):s.append(ec(o))}else s.append(o);n.replaceWith(s)}},setInlineContent:uc});const pc="w3c/conformance",hc=Ur({en:{conformance:"Conformance",normativity:"As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.",keywordInterpretation:(e,t)=>ur`<p>
865
+ >`}function lc(e){const t=e.slice(1,-1);return ur`<code>${t}</code>`}function uc(e){return Ha.test(e)?e.split(/(`[^`]+`)(?!`)/).map((e=>e.startsWith("`")?lc(e):uc(e))):document.createTextNode(e)}function dc(e,t){e.textContent="";const n=uc(t);e.append(...Array.isArray(n)?n:[n])}var pc=Object.freeze({__proto__:null,name:qa,rfc2119Usage:Wa,run:function(e){const t=new Map;document.normalize(),document.querySelector("section#conformance")||document.body.classList.add("informative"),e.normativeReferences=new ns,e.informativeReferences=new ns,e.respecRFC2119||(e.respecRFC2119=Wa);const n=document.querySelectorAll("abbr[title]:not(.exclude)");for(const{textContent:e,title:r}of n){const n=Mr(e),s=Mr(r);t.set(n,s)}const r=t.size?new RegExp(`(?:\\b${[...t.keys()].map((e=>_r(e))).join("\\b)|(?:\\b")}\\b)`):null,s=function(e,t=[],n={wsNodes:!0}){const r=t.join(", "),s=document.createNodeIterator(e,NodeFilter.SHOW_TEXT,{acceptNode:e=>n.wsNodes||e.data.trim()?r&&e.parentElement?.closest(r)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}),i=[];let o;for(;o=s.nextNode();)i.push(o);return i}(document.body,["#respec-ui",".head","pre","svg","script","style"],{wsNodes:!1}),i=Ba.rfc2119Keywords(),o=new RegExp(`(${Fa([i,Ga,Xa,Va,Ja,Ka,Za,Ha,Ya,...r?[r]:[]]).source})`);for(const n of s){const r=n.data.split(o);if(1===r.length)continue;const s=document.createDocumentFragment();let a=!0;for(const o of r)if(a=!a,a)switch(!0){case o.startsWith("{{"):s.append(sc(o,n));break;case o.startsWith("{^"):s.append(ec(o));break;case o.startsWith("[[["):s.append(rc(o));break;case o.startsWith("[["):s.append(...ic(o,n,e));break;case o.startsWith("|"):s.append(ac(o));break;case o.startsWith("[="):s.append(cc(o));break;case o.startsWith("`"):s.append(lc(o));break;case o.startsWith("[^"):s.append(Qa(o));break;case t.has(o):s.append(oc(o,n,t));break;case i.test(o):s.append(tc(o))}else s.append(o);n.replaceWith(s)}},setInlineContent:dc});const hc="w3c/conformance",fc=Ur({en:{conformance:"Conformance",normativity:"As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.",keywordInterpretation:(e,t)=>ur`<p>
867
866
  The key word${t?"s":""} ${e} in this document
868
867
  ${t?"are":"is"} to be interpreted as described in
869
868
  <a href="https://www.rfc-editor.org/info/bcp14">BCP 14</a>
870
- ${Oa("RFC2119")} ${Oa("RFC8174")}
869
+ ${ja("RFC2119")} ${ja("RFC8174")}
871
870
  when, and only when, ${t?"they appear":"it appears"} in all
872
871
  capitals, as shown here.
873
872
  </p>`},de:{conformance:"Anforderungen",normativity:"Neben den explizit als nicht-normativ gekennzeichneten Abschnitten sind auch alle Diagramme, Beispiele und Hinweise in diesem Dokument nicht normativ. Alle anderen Angaben sind normativ.",keywordInterpretation:(e,t)=>ur`<p>
874
873
  ${t?"Die Schlüsselwörter":"Das Schlüsselwort"} ${e} in
875
874
  diesem Dokument ${t?"sind":"ist"} gemäß
876
875
  <a href="https://www.rfc-editor.org/info/bcp14">BCP 14</a>
877
- ${Oa("RFC2119")} ${Oa("RFC8174")}
876
+ ${ja("RFC2119")} ${ja("RFC8174")}
878
877
  und unter Berücksichtigung von
879
878
  <a href="https://github.com/adfinis-sygroup/2119/blob/master/2119de.rst"
880
879
  >2119de</a
@@ -886,26 +885,26 @@ body:has(input[name=color-scheme][value=dark]:checked){color-scheme:dark}`;const
886
885
  ${t?"doivent":"doit"} être interprété${t?"s":""} comme
887
886
  décrit dans
888
887
  <a href="https://www.rfc-editor.org/info/bcp14">BCP 14</a>
889
- ${Oa("RFC2119")} ${Oa("RFC8174")}
888
+ ${ja("RFC2119")} ${ja("RFC8174")}
890
889
  lorsque, et seulement lorsque,
891
890
  ${t?"ils apparaissent":"il apparaît"} en majuscules, comme
892
891
  indiqué ici.
893
- </p>`}});var fc=Object.freeze({__proto__:null,name:pc,run:function(e){const t=document.querySelector("section#conformance");if(t){if(t.classList.contains("informative")){t.classList.remove("informative");ls("Conformance sections are normative by definition. The `informative` class has been removed.",pc,{hint:'Remove `class="informative"` from `<section id="conformance">` to avoid this warning.',elements:[t]})}t.classList.contains("override")||function(e,t){const n=[...Object.keys(qa)];n.length&&(t.normativeReferences.add("RFC2119"),t.normativeReferences.add("RFC8174"));const r=Gr(n.sort(),(e=>ur`<em class="rfc2119">${e}</em>`)),s=n.length>1,i=ur`
894
- <h1>${hc.conformance}</h1>
895
- <p>${hc.normativity}</p>
896
- ${n.length?hc.keywordInterpretation(r,s):null}
897
- `;e.prepend(...i.childNodes)}(t,e)}if(!t&&Object.keys(qa).length){ls("Document uses RFC2119 keywords but lacks a conformance section.",pc,{hint:'Please add a `<section id="conformance">`.'})}}});function mc(e,t,n,r){try{switch(t){case"element-attr":return document.createAttribute(e),!0;case"element":return document.createElement(e),!0}}catch(s){cs(`Invalid ${t} name "${e}": ${s.message}`,r,{hint:`Check that the ${t} name is allowed per the XML's Name production for ${t}.`,elements:[n]})}return!1}function gc(e,t,n,r){if(/^[a-z]+(-[a-z]+)*$/i.test(e))return!0;return cs(`Invalid ${t} name "${e}".`,r,{hint:`Check that the ${t} name is allowed per the naming rules for this type.`,elements:[n]}),!1}const bc=new os;function yc(e,t){for(const n of t)bc.has(n)||bc.set(n,new Set),bc.get(n)?.add(e)}const wc="core/dfn",vc=new Map([["abstract-op",{requiresFor:!1}],["attr-value",{requiresFor:!0,associateWith:"a markup attribute",validator:gc}],["element",{requiresFor:!1,validator:mc}],["element-attr",{requiresFor:!1,validator:mc}],["element-state",{requiresFor:!0,associateWith:"a markup attribute",validator:gc}],["event",{requiresFor:!1,validator:gc}],["http-header",{requiresFor:!1}],["media-type",{requiresFor:!1,validator:function(e,t,n,r){try{const t=new hr(e);if(t.toString()!==e)throw new Error(`Input doesn't match its canonical form: "${t}".`)}catch(s){return cs(`Invalid ${t} "${e}": ${s.message}.`,r,{hint:"Check that the MIME type has both a type and a sub-type, and that it's in a canonical form (e.g., `text/plain`).",elements:[n]}),!1}return!0}}],["scheme",{requiresFor:!1,validator:gc}],["permission",{requiresFor:!1,validator:function(e,t,n,r){return e.startsWith('"')&&e.endsWith('"')?gc(e.slice(1,-1),t,n,r):(cs(`Invalid ${t} "${e}".`,r,{hint:`Check that the ${t} is quoted with double quotes.`,elements:[n]}),!1)}}]]),kc=[...vc.keys()];function $c(e,t){let n="";switch(!0){case kc.some((t=>e.classList.contains(t))):n=[...e.classList].find((e=>vc.has(e)))??"",function(e,t,n){const r=vc.get(t);if(r?.requiresFor&&!n.dataset.dfnFor){const e=ms`Definition of type "\`${t}\`" requires a ${"[data-dfn-for]"} attribute.`,{associateWith:s}=r,i=ms`Use a ${"[data-dfn-for]"} attribute to associate this with ${s??""}.`;cs(e,wc,{hint:i,elements:[n]})}r?.validator&&r.validator(e,t,n,wc)}(t,n,e);break;case ra.test(t):n=function(e,t){t.dataset.hasOwnProperty("idl")||(t.dataset.idl="");const n=t.closest("[data-dfn-for]");t!==n&&n?.dataset.dfnFor&&(t.dataset.dfnFor=n.dataset.dfnFor);if(!t.dataset.dfnFor){const n=ms`Use a ${"[data-dfn-for]"} attribute to associate this dfn with a WebIDL interface.`;cs(`Internal slot "${e}" must be associated with a WebIDL interface.`,wc,{hint:n,elements:[t]})}t.matches(".export, [data-export]")||(t.dataset.noexport="");const r=e.endsWith(")")?"method":"attribute";if(!t.dataset.dfnType)return r;const s=["attribute","method"],{dfnType:i}=t.dataset;if(!s.includes(i)||r!==i){const n=ms`Invalid ${"[data-dfn-type]"} attribute on internal slot.`,i=`The only allowed types are: ${ps(s,{quotes:!0})}. The slot "${e}" seems to be a "${ds(r)}"?`;return cs(n,wc,{hint:i,elements:[t]}),"dfn"}return i}(t,e)}if(!n&&!e.matches("[data-dfn-type]")){const t=e.closest("[data-dfn-type]");n=t?.dataset.dfnType??""}n&&!e.dataset.dfnType&&(e.dataset.dfnType=n)}function xc(e){switch(!0){case e.matches(".export.no-export"):cs(ms`Declares both "${"[no-export]"}" and "${"[export]"}" CSS class.`,wc,{elements:[e],hint:"Please use only one."});break;case e.matches(".no-export, [data-noexport]"):if(e.matches("[data-export]")){cs(ms`Declares ${"[no-export]"} CSS class, but also has a "${"[data-export]"}" attribute.`,wc,{elements:[e],hint:"Please chose only one."}),delete e.dataset.export}e.dataset.noexport="";break;case e.matches(":is(.export):not([data-noexport], .no-export)"):e.dataset.export="";break;case function(e){return!e.matches(".export, [data-export]")&&e.closest("section.informative, section.normative")?.classList.contains("informative")}(e):e.dataset.noexport=""}}var Cc=Object.freeze({__proto__:null,name:wc,run:function(){for(const e of document.querySelectorAll("dfn")){if(e.closest("del"))continue;const t=Zr(e);if(yc(e,t),e.dataset.cite&&/\b#\b/.test(e.dataset.cite))continue;const[n]=t;$c(e,n),xc(e);const r=(e.dataset.localLt||"").split("|").map(Mr),s=t.filter((e=>!r.includes(e)));(s.length>1||n!==Mr(e.textContent))&&(e.dataset.lt=s.join("|"))}}});var Sc=Object.freeze({__proto__:null,name:"core/pluralize",run:function(e){if(!e.pluralize)return;const t=function(){const e=new Set;document.querySelectorAll("a:not([href])").forEach((t=>{const n=Mr(t.textContent).toLowerCase();e.add(n),t.dataset.lt&&e.add(t.dataset.lt)}));const t=new Set,n=document.querySelectorAll("dfn:not([data-lt-noDefault])");return n.forEach((e=>{const n=Mr(e.textContent).toLowerCase();t.add(n),e.dataset.lt&&e.dataset.lt.split("|").forEach((e=>t.add(e))),e.dataset.localLt&&e.dataset.localLt.split("|").forEach((e=>t.add(e)))})),function(n){const r=Mr(n).toLowerCase(),s=fr.isSingular(r)?fr.plural(r):fr.singular(r);return e.has(s)&&!t.has(s)?s:""}}();document.querySelectorAll("dfn:not([data-lt-no-plural]):not([data-lt-noDefault])").forEach((e=>{const n=[e.textContent];e.dataset.lt&&n.push(...e.dataset.lt.split("|")),e.dataset.localLt&&n.push(...e.dataset.localLt.split("|"));const r=new Set(n.map(t).filter((e=>e)));if(r.size){const t=e.dataset.plurals?e.dataset.plurals.split("|"):[],n=[...new Set([...t,...r])];e.dataset.plurals=n.join("|"),yc(e,n)}}))}});var _c=String.raw`span.example-title{text-transform:none}
892
+ </p>`}});var mc=Object.freeze({__proto__:null,name:hc,run:function(e){const t=document.querySelector("section#conformance");if(t){if(t.classList.contains("informative")){t.classList.remove("informative");ls("Conformance sections are normative by definition. The `informative` class has been removed.",hc,{hint:'Remove `class="informative"` from `<section id="conformance">` to avoid this warning.',elements:[t]})}t.classList.contains("override")||function(e,t){const n=[...Object.keys(Wa)];n.length&&(t.normativeReferences.add("RFC2119"),t.normativeReferences.add("RFC8174"));const r=Gr(n.sort(),(e=>ur`<em class="rfc2119">${e}</em>`)),s=n.length>1,i=ur`
893
+ <h1>${fc.conformance}</h1>
894
+ <p>${fc.normativity}</p>
895
+ ${n.length?fc.keywordInterpretation(r,s):null}
896
+ `;e.prepend(...i.childNodes)}(t,e)}if(!t&&Object.keys(Wa).length){ls("Document uses RFC2119 keywords but lacks a conformance section.",hc,{hint:'Please add a `<section id="conformance">`.'})}}});function gc(e,t,n,r){try{switch(t){case"element-attr":return document.createAttribute(e),!0;case"element":return document.createElement(e),!0}}catch(s){cs(`Invalid ${t} name "${e}": ${s.message}`,r,{hint:`Check that the ${t} name is allowed per the XML's Name production for ${t}.`,elements:[n]})}return!1}function bc(e,t,n,r){if(/^[a-z]+(-[a-z]+)*$/i.test(e))return!0;return cs(`Invalid ${t} name "${e}".`,r,{hint:`Check that the ${t} name is allowed per the naming rules for this type.`,elements:[n]}),!1}const yc=new os;function wc(e,t){for(const n of t)yc.has(n)||yc.set(n,new Set),yc.get(n)?.add(e)}const vc="core/dfn",kc=new Map([["abstract-op",{requiresFor:!1}],["attr-value",{requiresFor:!0,associateWith:"a markup attribute",validator:bc}],["element",{requiresFor:!1,validator:gc}],["element-attr",{requiresFor:!1,validator:gc}],["element-state",{requiresFor:!0,associateWith:"a markup attribute",validator:bc}],["event",{requiresFor:!1,validator:bc}],["http-header",{requiresFor:!1}],["media-type",{requiresFor:!1,validator:function(e,t,n,r){try{const t=new hr(e);if(t.toString()!==e)throw new Error(`Input doesn't match its canonical form: "${t}".`)}catch(s){return cs(`Invalid ${t} "${e}": ${s.message}.`,r,{hint:"Check that the MIME type has both a type and a sub-type, and that it's in a canonical form (e.g., `text/plain`).",elements:[n]}),!1}return!0}}],["scheme",{requiresFor:!1,validator:bc}],["permission",{requiresFor:!1,validator:function(e,t,n,r){return e.startsWith('"')&&e.endsWith('"')?bc(e.slice(1,-1),t,n,r):(cs(`Invalid ${t} "${e}".`,r,{hint:`Check that the ${t} is quoted with double quotes.`,elements:[n]}),!1)}}]]),$c=[...kc.keys()];function xc(e,t){let n="";switch(!0){case $c.some((t=>e.classList.contains(t))):n=[...e.classList].find((e=>kc.has(e)))??"",function(e,t,n){const r=kc.get(t);if(r?.requiresFor&&!n.dataset.dfnFor){const e=ms`Definition of type "\`${t}\`" requires a ${"[data-dfn-for]"} attribute.`,{associateWith:s}=r,i=ms`Use a ${"[data-dfn-for]"} attribute to associate this with ${s??""}.`;cs(e,vc,{hint:i,elements:[n]})}r?.validator&&r.validator(e,t,n,vc)}(t,n,e);break;case sa.test(t):n=function(e,t){t.dataset.hasOwnProperty("idl")||(t.dataset.idl="");const n=t.closest("[data-dfn-for]");t!==n&&n?.dataset.dfnFor&&(t.dataset.dfnFor=n.dataset.dfnFor);if(!t.dataset.dfnFor){const n=ms`Use a ${"[data-dfn-for]"} attribute to associate this dfn with a WebIDL interface.`;cs(`Internal slot "${e}" must be associated with a WebIDL interface.`,vc,{hint:n,elements:[t]})}t.matches(".export, [data-export]")||(t.dataset.noexport="");const r=e.endsWith(")")?"method":"attribute";if(!t.dataset.dfnType)return r;const s=["attribute","method"],{dfnType:i}=t.dataset;if(!s.includes(i)||r!==i){const n=ms`Invalid ${"[data-dfn-type]"} attribute on internal slot.`,i=`The only allowed types are: ${ps(s,{quotes:!0})}. The slot "${e}" seems to be a "${ds(r)}"?`;return cs(n,vc,{hint:i,elements:[t]}),"dfn"}return i}(t,e)}if(!n&&!e.matches("[data-dfn-type]")){const t=e.closest("[data-dfn-type]");n=t?.dataset.dfnType??""}n&&!e.dataset.dfnType&&(e.dataset.dfnType=n)}function Cc(e){switch(!0){case e.matches(".export.no-export"):cs(ms`Declares both "${"[no-export]"}" and "${"[export]"}" CSS class.`,vc,{elements:[e],hint:"Please use only one."});break;case e.matches(".no-export, [data-noexport]"):if(e.matches("[data-export]")){cs(ms`Declares ${"[no-export]"} CSS class, but also has a "${"[data-export]"}" attribute.`,vc,{elements:[e],hint:"Please chose only one."}),delete e.dataset.export}e.dataset.noexport="";break;case e.matches(":is(.export):not([data-noexport], .no-export)"):e.dataset.export="";break;case function(e){return!e.matches(".export, [data-export]")&&e.closest("section.informative, section.normative")?.classList.contains("informative")}(e):e.dataset.noexport=""}}var Sc=Object.freeze({__proto__:null,name:vc,run:function(){for(const e of document.querySelectorAll("dfn")){if(e.closest("del"))continue;const t=Zr(e);if(wc(e,t),e.dataset.cite&&/\b#\b/.test(e.dataset.cite))continue;const[n]=t;xc(e,n),Cc(e);const r=(e.dataset.localLt||"").split("|").map(Mr),s=t.filter((e=>!r.includes(e)));(s.length>1||n!==Mr(e.textContent))&&(e.dataset.lt=s.join("|"))}}});var _c=Object.freeze({__proto__:null,name:"core/pluralize",run:function(e){if(!e.pluralize)return;const t=function(){const e=new Set;document.querySelectorAll("a:not([href])").forEach((t=>{const n=Mr(t.textContent).toLowerCase();e.add(n),t.dataset.lt&&e.add(t.dataset.lt)}));const t=new Set,n=document.querySelectorAll("dfn:not([data-lt-noDefault])");return n.forEach((e=>{const n=Mr(e.textContent).toLowerCase();t.add(n),e.dataset.lt&&e.dataset.lt.split("|").forEach((e=>t.add(e))),e.dataset.localLt&&e.dataset.localLt.split("|").forEach((e=>t.add(e)))})),function(n){const r=Mr(n).toLowerCase(),s=fr.isSingular(r)?fr.plural(r):fr.singular(r);return e.has(s)&&!t.has(s)?s:""}}();document.querySelectorAll("dfn:not([data-lt-no-plural]):not([data-lt-noDefault])").forEach((e=>{const n=[e.textContent];e.dataset.lt&&n.push(...e.dataset.lt.split("|")),e.dataset.localLt&&n.push(...e.dataset.localLt.split("|"));const r=new Set(n.map(t).filter((e=>e)));if(r.size){const t=e.dataset.plurals?e.dataset.plurals.split("|"):[],n=[...new Set([...t,...r])];e.dataset.plurals=n.join("|"),wc(e,n)}}))}});var Tc=String.raw`span.example-title{text-transform:none}
898
897
  :is(aside,div).example,div.illegal-example{padding:.5em;margin:1em 0;position:relative;clear:both}
899
898
  div.illegal-example{color:red}
900
899
  div.illegal-example p{color:#000}
901
- aside.example div.example{border-left-width:.1em;border-color:#999;background:#fff}`;const Tc=Ur({en:{example:"Example"},nl:{example:"Voorbeeld"},es:{example:"Ejemplo"},fr:{example:"Exemple"},ko:{example:"예시"},ja:{example:"例"},de:{example:"Beispiel"},zh:{example:"例"},cs:{example:"Příklad"}});function Rc(e,t,n){n.title=e.title,n.title&&e.removeAttribute("title");const r=t>0?` ${t}`:"",s=n.title?ur`<span class="example-title">: ${n.title}</span>`:"";return ur`<div class="marker">
902
- <a class="self-link">${Tc.example}<bdi>${r}</bdi></a
900
+ aside.example div.example{border-left-width:.1em;border-color:#999;background:#fff}`;const Rc=Ur({en:{example:"Example"},nl:{example:"Voorbeeld"},es:{example:"Ejemplo"},fr:{example:"Exemple"},ko:{example:"예시"},ja:{example:"例"},de:{example:"Beispiel"},zh:{example:"例"},cs:{example:"Příklad"}});function Ec(e,t,n){n.title=e.title,n.title&&e.removeAttribute("title");const r=t>0?` ${t}`:"",s=n.title?ur`<span class="example-title">: ${n.title}</span>`:"";return ur`<div class="marker">
901
+ <a class="self-link">${Rc.example}<bdi>${r}</bdi></a
903
902
  >${s}
904
- </div>`}var Ec=Object.freeze({__proto__:null,name:"core/examples",run:function(){const e=document.querySelectorAll("pre.example, pre.illegal-example, aside.example");if(!e.length)return;document.head.insertBefore(ur`<style>
905
- ${_c}
906
- </style>`,document.querySelector("link"));let t=0;e.forEach((e=>{e.classList.contains("illegal-example");const n={},{title:r}=e;if("aside"===e.localName){++t;const s=Rc(e,t,n);e.prepend(s);const i=Kr(e,"example",r||String(t));s.querySelector("a.self-link").href=`#${i}`}else{const s=!!e.closest("aside");s||++t,n.content=e.innerHTML,e.classList.remove("example","illegal-example");const i=e.id?e.id:null;i&&e.removeAttribute("id");const o=Rc(e,s?0:t,n),a=ur`<div class="example" id="${i}">
903
+ </div>`}var Lc=Object.freeze({__proto__:null,name:"core/examples",run:function(){const e=document.querySelectorAll("pre.example, pre.illegal-example, aside.example");if(!e.length)return;document.head.insertBefore(ur`<style>
904
+ ${Tc}
905
+ </style>`,document.querySelector("link"));let t=0;e.forEach((e=>{e.classList.contains("illegal-example");const n={},{title:r}=e;if("aside"===e.localName){++t;const s=Ec(e,t,n);e.prepend(s);const i=Kr(e,"example",r||String(t));s.querySelector("a.self-link").href=`#${i}`}else{const s=!!e.closest("aside");s||++t,n.content=e.innerHTML,e.classList.remove("example","illegal-example");const i=e.id?e.id:null;i&&e.removeAttribute("id");const o=Ec(e,s?0:t,n),a=ur`<div class="example" id="${i}">
907
906
  ${o} ${e.cloneNode(!0)}
908
- </div>`;Kr(a,"example",r||String(t));a.querySelector("a.self-link").href=`#${a.id}`,e.replaceWith(a)}}))}});var Lc=String.raw`.issue-label{text-transform:initial}
907
+ </div>`;Kr(a,"example",r||String(t));a.querySelector("a.self-link").href=`#${a.id}`,e.replaceWith(a)}}))}});var Ac=String.raw`.issue-label{text-transform:initial}
909
908
  .warning>p:first-child{margin-top:0}
910
909
  .warning{padding:.5em;border-left-width:.5em;border-left-style:solid}
911
910
  span.warning{padding:.1em .5em .15em}
@@ -915,31 +914,31 @@ span.warning{padding:.1em .5em .15em}
915
914
  .warning-title:before{content:"⚠";font-size:1.3em;float:left;padding-right:.3em;margin-top:-.3em}
916
915
  li.task-list-item{list-style:none}
917
916
  input.task-list-item-checkbox{margin:0 .35em .25em -1.6em;vertical-align:middle}
918
- .issue a.respec-gh-label{padding:5px;margin:0 2px 0 2px;font-size:10px;text-transform:none;text-decoration:none;font-weight:700;border-radius:4px;position:relative;bottom:2px;border:none;display:inline-block}`;const Ac="core/issues-notes",Pc=Ur({en:{editors_note:"Editor's note",feature_at_risk:"(Feature at Risk) Issue",issue:"Issue",issue_summary:"Issue summary",no_issues_in_spec:"There are no issues listed in this specification.",note:"Note",warning:"Warning"},ja:{note:"注",editors_note:"編者注",feature_at_risk:"(変更の可能性のある機能) Issue",issue:"Issue",issue_summary:"Issue の要約",no_issues_in_spec:"この仕様には未解決の issues は含まれていません.",warning:"警告"},nl:{editors_note:"Redactionele noot",issue_summary:"Lijst met issues",no_issues_in_spec:"Er zijn geen problemen vermeld in deze specificatie.",note:"Noot",warning:"Waarschuwing"},es:{editors_note:"Nota de editor",issue:"Cuestión",issue_summary:"Resumen de la cuestión",note:"Nota",no_issues_in_spec:"No hay problemas enumerados en esta especificación.",warning:"Aviso"},de:{editors_note:"Redaktioneller Hinweis",issue:"Frage",issue_summary:"Offene Fragen",no_issues_in_spec:"Diese Spezifikation enthält keine offenen Fragen.",note:"Hinweis",warning:"Warnung"},zh:{editors_note:"编者注",feature_at_risk:"(有可能变动的特性)Issue",issue:"Issue",issue_summary:"Issue 总结",no_issues_in_spec:"本规范中未列出任何 issue。",note:"注",warning:"警告"},cs:{editors_note:"Poznámka editora",feature_at_risk:"(Funkce v ohrožení) Problém",issue:"Problém",issue_summary:"Souhrn problémů",no_issues_in_spec:"V této specifikaci nejsou uvedeny žádné problémy.",note:"Poznámka",warning:"Varování"},fr:{editors_note:"Note de l'éditeur",issue:"Problème",issue_summary:"Résumé des problèmes",no_issues_in_spec:"Il n'y a aucun problème répertorié dans cette spécification.",note:"Note",warning:"Avertissement"}});function Nc(e,t,n){const r=function(){if(document.querySelector(".issue[data-number]"))return e=>{if(e.dataset.number)return Number(e.dataset.number)};let e=0;return t=>{if(t.classList.contains("issue")&&"span"!==t.localName)return++e}}(),s=document.createElement("ul");e.forEach((e=>{const{type:i,displayType:o,isFeatureAtRisk:a}=function(e){const t=e.classList.contains("issue"),n=e.classList.contains("warning"),r=e.classList.contains("ednote"),s=e.classList.contains("atrisk"),i=t?"issue":n?"warning":r?"ednote":"note",o=t?s?Pc.feature_at_risk:Pc.issue:n?Pc.warning:r?Pc.editors_note:Pc.note;return{type:i,displayType:o,isFeatureAtRisk:s}}(e),c="issue"===i,l="span"===e.localName,{number:u}=e.dataset,d={title:e.title,number:r(e)};if(!l){const r=ur`<div class="${a?`${i} atrisk`:i}" role="${"note"===i?"note":null}"></div>`,l=document.createElement("span"),p=ur`<div class="${`${i}-title marker`}">${l}</div>`;Kr(p,"h",i);let h,f=o;if(e.id?(r.id=e.id,e.removeAttribute("id")):Kr(r,"issue-container",d.number?`number-${d.number}`:""),c){if(void 0!==d.number&&(f+=` ${d.number}`),e.dataset.hasOwnProperty("number")){const e=function(e,t,{isFeatureAtRisk:n=!1}={}){if(!n&&t.issueBase)return ur`<a href="${t.issueBase+e}" />`;if(n&&t.atRiskBase)return ur`<a href="${t.atRiskBase+e}" />`}(u??"",n,{isFeatureAtRisk:a});if(e&&(l.before(e),e.append(l)),l.classList.add("issue-number"),h=t.get(u??""),!h){ls(`Failed to fetch issue number ${u}.`,Ac)}h&&!d.title&&(d.title=h.title)}s.append(function(e,t,n){const r=`${e}${t.number?` ${t.number}`:""}`,s=t.title?ur`<span style="text-transform: none">: ${t.title}</span>`:"";return ur`<li><a href="${`#${n}`}">${r}</a>${s}</li>`}(Pc.issue,d,r.id))}if(l.textContent=f,d.title){e.removeAttribute("title");const{repoURL:t=""}=n.github||{},s=h?h.labels:[];h&&"CLOSED"===h.state&&r.classList.add("closed"),p.append(function(e,t,n){const r=e.map((e=>function(e,t){const{color:n,name:r}=e,s=/^[0-9a-f]{6}$/i.test(n)?n:"f6f8fa",i=new URL("./issues/",t);i.searchParams.set("q",`is:issue is:open label:"${r}"`);const o=function(e){const[t,n,r]=[e.slice(0,2),e.slice(2,4),e.slice(4,6)],[s,i,o]=[t,n,r].map((e=>parseInt(e,16)/255)).map((e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4)),a=.2126*s+.7152*i+.0722*o;return a>.179?"#000":"#fff"}(s),a=`background-color: #${s}; color: ${o}`,c=`GitHub label: ${r}`;return ur` <a
917
+ .issue a.respec-gh-label{padding:5px;margin:0 2px 0 2px;font-size:10px;text-transform:none;text-decoration:none;font-weight:700;border-radius:4px;position:relative;bottom:2px;border:none;display:inline-block}`;const Pc="core/issues-notes",Nc=Ur({en:{editors_note:"Editor's note",feature_at_risk:"(Feature at Risk) Issue",issue:"Issue",issue_summary:"Issue summary",no_issues_in_spec:"There are no issues listed in this specification.",note:"Note",warning:"Warning"},ja:{note:"注",editors_note:"編者注",feature_at_risk:"(変更の可能性のある機能) Issue",issue:"Issue",issue_summary:"Issue の要約",no_issues_in_spec:"この仕様には未解決の issues は含まれていません.",warning:"警告"},nl:{editors_note:"Redactionele noot",issue_summary:"Lijst met issues",no_issues_in_spec:"Er zijn geen problemen vermeld in deze specificatie.",note:"Noot",warning:"Waarschuwing"},es:{editors_note:"Nota de editor",issue:"Cuestión",issue_summary:"Resumen de la cuestión",note:"Nota",no_issues_in_spec:"No hay problemas enumerados en esta especificación.",warning:"Aviso"},de:{editors_note:"Redaktioneller Hinweis",issue:"Frage",issue_summary:"Offene Fragen",no_issues_in_spec:"Diese Spezifikation enthält keine offenen Fragen.",note:"Hinweis",warning:"Warnung"},zh:{editors_note:"编者注",feature_at_risk:"(有可能变动的特性)Issue",issue:"Issue",issue_summary:"Issue 总结",no_issues_in_spec:"本规范中未列出任何 issue。",note:"注",warning:"警告"},cs:{editors_note:"Poznámka editora",feature_at_risk:"(Funkce v ohrožení) Problém",issue:"Problém",issue_summary:"Souhrn problémů",no_issues_in_spec:"V této specifikaci nejsou uvedeny žádné problémy.",note:"Poznámka",warning:"Varování"},fr:{editors_note:"Note de l'éditeur",issue:"Problème",issue_summary:"Résumé des problèmes",no_issues_in_spec:"Il n'y a aucun problème répertorié dans cette spécification.",note:"Note",warning:"Avertissement"}});function Ic(e,t,n){const r=function(){if(document.querySelector(".issue[data-number]"))return e=>{if(e.dataset.number)return Number(e.dataset.number)};let e=0;return t=>{if(t.classList.contains("issue")&&"span"!==t.localName)return++e}}(),s=document.createElement("ul");e.forEach((e=>{const{type:i,displayType:o,isFeatureAtRisk:a}=function(e){const t=e.classList.contains("issue"),n=e.classList.contains("warning"),r=e.classList.contains("ednote"),s=e.classList.contains("atrisk"),i=t?"issue":n?"warning":r?"ednote":"note",o=t?s?Nc.feature_at_risk:Nc.issue:n?Nc.warning:r?Nc.editors_note:Nc.note;return{type:i,displayType:o,isFeatureAtRisk:s}}(e),c="issue"===i,l="span"===e.localName,{number:u}=e.dataset,d={title:e.title,number:r(e)};if(!l){const r=ur`<div class="${a?`${i} atrisk`:i}" role="${"note"===i?"note":null}"></div>`,l=document.createElement("span"),p=ur`<div class="${`${i}-title marker`}">${l}</div>`;Kr(p,"h",i);let h,f=o;if(e.id?(r.id=e.id,e.removeAttribute("id")):Kr(r,"issue-container",d.number?`number-${d.number}`:""),c){if(void 0!==d.number&&(f+=` ${d.number}`),e.dataset.hasOwnProperty("number")){const e=function(e,t,{isFeatureAtRisk:n=!1}={}){if(!n&&t.issueBase)return ur`<a href="${t.issueBase+e}" />`;if(n&&t.atRiskBase)return ur`<a href="${t.atRiskBase+e}" />`}(u??"",n,{isFeatureAtRisk:a});if(e&&(l.before(e),e.append(l)),l.classList.add("issue-number"),h=t.get(u??""),!h){ls(`Failed to fetch issue number ${u}.`,Pc)}h&&!d.title&&(d.title=h.title)}s.append(function(e,t,n){const r=`${e}${t.number?` ${t.number}`:""}`,s=t.title?ur`<span style="text-transform: none">: ${t.title}</span>`:"";return ur`<li><a href="${`#${n}`}">${r}</a>${s}</li>`}(Nc.issue,d,r.id))}if(l.textContent=f,d.title){e.removeAttribute("title");const{repoURL:t=""}=n.github||{},s=h?h.labels:[];h&&"CLOSED"===h.state&&r.classList.add("closed"),p.append(function(e,t,n){const r=e.map((e=>function(e,t){const{color:n,name:r}=e,s=/^[0-9a-f]{6}$/i.test(n)?n:"f6f8fa",i=new URL("./issues/",t);i.searchParams.set("q",`is:issue is:open label:"${r}"`);const o=function(e){const[t,n,r]=[e.slice(0,2),e.slice(2,4),e.slice(4,6)],[s,i,o]=[t,n,r].map((e=>parseInt(e,16)/255)).map((e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4)),a=.2126*s+.7152*i+.0722*o;return a>.179?"#000":"#fff"}(s),a=`background-color: #${s}; color: ${o}`,c=`GitHub label: ${r}`;return ur` <a
919
918
  class="respec-gh-label"
920
919
  style="${a}"
921
920
  href="${i.href}"
922
921
  aria-label="${c}"
923
922
  >${r}</a
924
- >`}(e,n)));r.length&&r.unshift(document.createTextNode(" "));return ur`<span class="issue-label">: ${t}${r}</span>`}(s,d.title,t))}let m=e;e.replaceWith(r),m.classList.remove(i),m.removeAttribute("data-number"),h&&!m.innerHTML.trim()&&(m=document.createRange().createContextualFragment(h.bodyHTML)),r.append(p,m)}})),function(e){const t=document.getElementById("issue-summary");if(!t)return;const n=t.querySelector("h2, h3, h4, h5, h6");e.hasChildNodes()?t.append(e):t.append(ur`<p>${Pc.no_issues_in_spec}</p>`),(!n||n&&n!==t.firstElementChild)&&t.prepend(ur`<h1>${Pc.issue_summary}</h1>`)}(s)}var Ic=Object.freeze({__proto__:null,name:Ac,run:async function(e){const t=document.querySelectorAll(".issue, .note, .warning, .ednote"),n=Array.from(t).filter((e=>e instanceof HTMLElement));if(!n.length)return;const r=await async function(e){if(!e||!e.apiBase)return new Map;const t=[...document.querySelectorAll(".issue[data-number]")].map((e=>Number.parseInt(e.dataset.number??"",10))).filter((e=>e));if(!t.length)return new Map;const n=new URL("issues",`${e.apiBase}/${e.fullName}/`);n.searchParams.set("issues",t.join(","));const r=await fetch(n.href);if(!r.ok)return cs(`Error fetching issues from GitHub. (HTTP Status ${r.status}).`,Ac),new Map;const s=await r.json();return new Map(Object.entries(s))}(e.github??null),{head:s}=document;s.insertBefore(ur`<style>
925
- ${Lc}
926
- </style>`,s.querySelector("link")),Nc(n,r,e),document.querySelectorAll(".ednote").forEach((e=>{e.classList.remove("ednote"),e.classList.add("note")}))}});const Dc="core/best-practices",Oc={en:{best_practice:"Best Practice "},ja:{best_practice:"最良実施例 "},de:{best_practice:"Musterbeispiel "},zh:{best_practice:"最佳实践 "}},jc=Ur(Oc),zc=r in Oc?r:"en";var Mc=Object.freeze({__proto__:null,name:Dc,run:function(){const e=document.querySelectorAll(".practicelab"),t=document.getElementById("bp-summary"),n=t?document.createElement("ul"):null;if([...e].forEach(((e,t)=>{const r=Kr(e,"bp"),s=ur`<a class="marker self-link" href="${`#${r}`}"
927
- ><bdi lang="${zc}">${jc.best_practice}${t+1}</bdi></a
928
- >`;if(n){const t=ur`<li>${s}: ${rs(e)}</li>`;n.appendChild(t)}const i=e.closest("div");if(!i)return void e.classList.add("advisement");i.classList.add("advisement");const o=ur`${s.cloneNode(!0)}: ${e}`;i.prepend(...o.childNodes)})),e.length)t&&(t.appendChild(ur`<h1>Best Practices Summary</h1>`),n&&t.appendChild(n));else if(t){ls("Using best practices summary (#bp-summary) but no best practices found.",Dc),t.remove()}}});const Uc="core/figures",qc=Ur({en:{list_of_figures:"List of Figures",fig:"Figure "},ja:{fig:"図 ",list_of_figures:"図のリスト"},ko:{fig:"그림 ",list_of_figures:"그림 목록"},nl:{fig:"Figuur ",list_of_figures:"Lijst met figuren"},es:{fig:"Figura ",list_of_figures:"Lista de Figuras"},fr:{list_of_figures:"Liste des figures",fig:"Figure "},zh:{fig:"图 ",list_of_figures:"规范中包含的图"},de:{fig:"Abbildung",list_of_figures:"Abbildungsverzeichnis"}});var Wc=Object.freeze({__proto__:null,name:Uc,run:function(){const e=function(){const e=[];return document.querySelectorAll("figure").forEach(((t,n)=>{const r=t.querySelector("figcaption");if(r)!function(e,t,n){const r=t.textContent;Kr(e,"fig",r),Qr(t,ur`<span class="fig-title"></span>`),t.prepend(ur`<a class="self-link" href="#${e.id}"
929
- >${qc.fig}<bdi class="figno">${n+1}</bdi></a
923
+ >`}(e,n)));r.length&&r.unshift(document.createTextNode(" "));return ur`<span class="issue-label">: ${t}${r}</span>`}(s,d.title,t))}let m=e;e.replaceWith(r),m.classList.remove(i),m.removeAttribute("data-number"),h&&!m.innerHTML.trim()&&(m=document.createRange().createContextualFragment(h.bodyHTML)),r.append(p,m)}})),function(e){const t=document.getElementById("issue-summary");if(!t)return;const n=t.querySelector("h2, h3, h4, h5, h6");e.hasChildNodes()?t.append(e):t.append(ur`<p>${Nc.no_issues_in_spec}</p>`),(!n||n&&n!==t.firstElementChild)&&t.prepend(ur`<h1>${Nc.issue_summary}</h1>`)}(s)}var Dc=Object.freeze({__proto__:null,name:Pc,run:async function(e){const t=document.querySelectorAll(".issue, .note, .warning, .ednote"),n=Array.from(t).filter((e=>e instanceof HTMLElement));if(!n.length)return;const r=await async function(e){if(!e||!e.apiBase)return new Map;const t=[...document.querySelectorAll(".issue[data-number]")].map((e=>Number.parseInt(e.dataset.number??"",10))).filter((e=>e));if(!t.length)return new Map;const n=new URL("issues",`${e.apiBase}/${e.fullName}/`);n.searchParams.set("issues",t.join(","));const r=await fetch(n.href);if(!r.ok)return cs(`Error fetching issues from GitHub. (HTTP Status ${r.status}).`,Pc),new Map;const s=await r.json();return new Map(Object.entries(s))}(e.github??null),{head:s}=document;s.insertBefore(ur`<style>
924
+ ${Ac}
925
+ </style>`,s.querySelector("link")),Ic(n,r,e),document.querySelectorAll(".ednote").forEach((e=>{e.classList.remove("ednote"),e.classList.add("note")}))}});const Oc="core/best-practices",jc={en:{best_practice:"Best Practice "},ja:{best_practice:"最良実施例 "},de:{best_practice:"Musterbeispiel "},zh:{best_practice:"最佳实践 "}},zc=Ur(jc),Mc=r in jc?r:"en";var Uc=Object.freeze({__proto__:null,name:Oc,run:function(){const e=document.querySelectorAll(".practicelab"),t=document.getElementById("bp-summary"),n=t?document.createElement("ul"):null;if([...e].forEach(((e,t)=>{const r=Kr(e,"bp"),s=ur`<a class="marker self-link" href="${`#${r}`}"
926
+ ><bdi lang="${Mc}">${zc.best_practice}${t+1}</bdi></a
927
+ >`;if(n){const t=ur`<li>${s}: ${rs(e)}</li>`;n.appendChild(t)}const i=e.closest("div");if(!i)return void e.classList.add("advisement");i.classList.add("advisement");const o=ur`${s.cloneNode(!0)}: ${e}`;i.prepend(...o.childNodes)})),e.length)t&&(t.appendChild(ur`<h1>Best Practices Summary</h1>`),n&&t.appendChild(n));else if(t){ls("Using best practices summary (#bp-summary) but no best practices found.",Oc),t.remove()}}});const qc="core/figures",Wc=Ur({en:{list_of_figures:"List of Figures",fig:"Figure "},ja:{fig:"図 ",list_of_figures:"図のリスト"},ko:{fig:"그림 ",list_of_figures:"그림 목록"},nl:{fig:"Figuur ",list_of_figures:"Lijst met figuren"},es:{fig:"Figura ",list_of_figures:"Lista de Figuras"},fr:{list_of_figures:"Liste des figures",fig:"Figure "},zh:{fig:"图 ",list_of_figures:"规范中包含的图"},de:{fig:"Abbildung",list_of_figures:"Abbildungsverzeichnis"}});var Fc=Object.freeze({__proto__:null,name:qc,run:function(){const e=function(){const e=[];return document.querySelectorAll("figure").forEach(((t,n)=>{const r=t.querySelector("figcaption");if(r)!function(e,t,n){const r=t.textContent;Kr(e,"fig",r),Qr(t,ur`<span class="fig-title"></span>`),t.prepend(ur`<a class="self-link" href="#${e.id}"
928
+ >${Wc.fig}<bdi class="figno">${n+1}</bdi></a
930
929
  >`," ")}(t,r,n),e.push(function(e,t){const n=t.cloneNode(!0);return n.querySelectorAll("a").forEach((e=>{Yr(e,"span").removeAttribute("href")})),ur`<li class="tofline">
931
930
  <a class="tocxref" href="${`#${e}`}">${n.childNodes}</a>
932
- </li>`}(t.id,r));else{ls("Found a `<figure>` without a `<figcaption>`.",Uc,{elements:[t]})}})),e}(),t=document.getElementById("tof");e.length&&t&&(!function(e){if(e.classList.contains("appendix")||e.classList.contains("introductory")||e.closest("section"))return;const t=es(e);t.every((e=>e.classList.contains("introductory")))?e.classList.add("introductory"):t.some((e=>e.classList.contains("appendix")))&&e.classList.add("appendix")}(t),t.append(ur`<h1>${qc.list_of_figures}</h1>`,ur`<ul class="tof">
931
+ </li>`}(t.id,r));else{ls("Found a `<figure>` without a `<figcaption>`.",qc,{elements:[t]})}})),e}(),t=document.getElementById("tof");e.length&&t&&(!function(e){if(e.classList.contains("appendix")||e.classList.contains("introductory")||e.closest("section"))return;const t=es(e);t.every((e=>e.classList.contains("introductory")))?e.classList.add("introductory"):t.some((e=>e.classList.contains("appendix")))&&e.classList.add("appendix")}(t),t.append(ur`<h1>${Wc.list_of_figures}</h1>`,ur`<ul class="tof">
933
932
  ${e}
934
- </ul>`))}});const Fc=Ur({en:{list_of_tables:"List of Tables",table:"Table "},fr:{list_of_tables:"Liste des tables",table:"Table "}});var Bc=Object.freeze({__proto__:null,name:"core/tables",run:function(){const e=function(){const e=[],t=document.querySelectorAll("table.numbered");return[...t].filter((e=>!!e.querySelector("caption"))).forEach(((t,n)=>{const r=t.querySelector("caption");r&&(!function(e,t,n){const r=t.textContent;Kr(e,"table",r),Qr(t,ur`<span class="table-title"></span>`),t.prepend(ur`<a class="self-link" href="#${e.id}"
935
- >${Fc.table}<bdi class="tableno">${n+1}</bdi></a
933
+ </ul>`))}});const Bc=Ur({en:{list_of_tables:"List of Tables",table:"Table "},fr:{list_of_tables:"Liste des tables",table:"Table "}});var Hc=Object.freeze({__proto__:null,name:"core/tables",run:function(){const e=function(){const e=[],t=document.querySelectorAll("table.numbered");return[...t].filter((e=>!!e.querySelector("caption"))).forEach(((t,n)=>{const r=t.querySelector("caption");r&&(!function(e,t,n){const r=t.textContent;Kr(e,"table",r),Qr(t,ur`<span class="table-title"></span>`),t.prepend(ur`<a class="self-link" href="#${e.id}"
934
+ >${Bc.table}<bdi class="tableno">${n+1}</bdi></a
936
935
  >`," ")}(t,r,n),e.push(function(e,t){const n=t.cloneNode(!0);for(const e of n.querySelectorAll("a"))Yr(e,"span",{copyAttributes:!1});return ur`<li>
937
936
  <a class="tocxref" href="${`#${e}`}"
938
937
  >${n.childNodes}</a
939
938
  >
940
- </li>`}(t.id,r)))})),e}(),t=document.querySelector("section#list-of-tables");e.length&&t&&(!function(e){if(e.matches(".appendix, .introductory")||e.closest("section"))return;const t=es(e);t.every((e=>e.classList.contains("introductory")))?e.classList.add("introductory"):t.some((e=>e.classList.contains("appendix")))&&e.classList.add("appendix")}(t),t.append(ur`<h1>${Fc.list_of_tables}</h1>`,ur`<ul class="list-of-tables">
939
+ </li>`}(t.id,r)))})),e}(),t=document.querySelector("section#list-of-tables");e.length&&t&&(!function(e){if(e.matches(".appendix, .introductory")||e.closest("section"))return;const t=es(e);t.every((e=>e.classList.contains("introductory")))?e.classList.add("introductory"):t.some((e=>e.classList.contains("appendix")))&&e.classList.add("appendix")}(t),t.append(ur`<h1>${Bc.list_of_tables}</h1>`,ur`<ul class="list-of-tables">
941
940
  ${e}
942
- </ul>`))}});const Hc=new Set(["callback interface","callback","dictionary","enum","interface mixin","interface","typedef"]);function Gc(e,t,{parent:n=""}={}){switch(e.type){case"constructor":case"operation":return function(e,t,n){if(n.includes("!overload"))return Vc(e,t,n);const r=`${n}()`;return Vc(e,t,r,n)}(e,n,t);default:return Vc(e,n,t)}}function Vc(e,t,...n){const{type:r}=e;for(const e of n){let n="enum-value"===r&&""===e?"the-empty-string":e,s=Kc(n,t,e,r);if(0===s.length&&""!==t){n=`${t}.${n}`;const e=bc.get(n);e&&1===e.size&&(s=[...e],yc(s[0],[n]))}if(s.length>1){cs(`WebIDL identifier \`${e}\` ${t?`for \`${t}\``:""} is defined multiple times`,e,{title:"Duplicate definition.",elements:s})}if(s.length)return s[0]}}function Jc(e,t,n,r){if(!e.id){const t=n.toLowerCase(),s=t?`${t}-`:"";let i=r.toLowerCase().replace(/[()]/g,"").replace(/\s/g,"-");""===i&&(i="the-empty-string",e.setAttribute("aria-label","the empty string")),e.id=`dom-${s}${i}`}switch(e.dataset.idl=t.type,e.dataset.title=e.textContent,e.dataset.dfnFor=n,t.type){case"operation":case"attribute":case"field":e.dataset.type=Zc(t)}switch(e.querySelector("code")||e.closest("code")||!e.children||Qr(e,e.ownerDocument.createElement("code")),t.type){case"attribute":case"constructor":case"operation":{const s=function(e,t,n){const{type:r}=e,s=`${t}.${n}`;switch(r){case"constructor":case"operation":{const t=`${n}()`,r=`${s}()`,i=function(e,t){const n=[];if(0===t.length)return n;const r=[],s=[];for(const{name:e,optional:n,variadic:i}of t)n||i?s.push(e):r.push(e);const i=r.join(", "),o=`${e}(${i})`;n.push(o);const a=s.map(((t,n)=>{const i=[...r,...s.slice(0,n+1)].join(", ");return`${e}(${i})`}));return n.push(...a),n}(n,e.arguments);return{local:[s,r,n],exportable:[t,...i]}}case"attribute":return{local:[s],exportable:[n]}}}(t,n,r);s&&function(e,t){const{local:n,exportable:r}=t,s=e.dataset.lt?new Set(e.dataset.lt.split("|")):new Set;for(const e of r)s.add(e);n.filter((e=>s.has(e))).forEach((e=>s.delete(e))),e.dataset.lt=[...s].join("|"),e.dataset.localLt=n.join("|"),yc(e,[...n,...r])}(e,s);break}}return e}function Kc(e,t,n,r){const s=bc.get(e);if(!s||0===s.size)return[];const i=[...s],o=i.filter((e=>{if("dfn"===e.dataset.dfnType)return!1;const n=e.closest("[data-dfn-for]");return n&&n.dataset.dfnFor===t}));if(0===o.length&&""===t&&1===i.length)return i[0].textContent===n?i:[];if(Hc.has(r)&&i.length){const e=i.find((e=>e.textContent.trim()===n));if(e)return[e]}return o}function Zc(e={}){const{idlType:t,generic:n,union:r}=e;return void 0===t?"":"string"==typeof t?t:n||(r?t.map(Zc).join("|"):Zc(t))}const Yc='<svg height="16" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg>';function Xc(e,t="Copy to clipboard"){const n=document.createElement("button");return n.innerHTML=Yc,n.title=t,n.setAttribute("aria-label",t),n.classList.add("respec-button-copy-paste","removeOnSave"),n.dataset.copyHeader=e,n.addEventListener("click",(()=>{const t=n.closest("pre");if(!t)return;const r=t.cloneNode(!0);r.querySelector(e)?.remove(),navigator.clipboard.writeText(r.textContent??"")})),n}function Qc(){if(document.getElementById("respec-copy-paste"))return;const e=document.createElement("script");e.id="respec-copy-paste",e.textContent='\n document.querySelectorAll(".respec-button-copy-paste").forEach(function(btn) {\n btn.addEventListener("click", function() {\n var pre = this.closest("pre");\n if (!pre) return;\n var sel = this.dataset.copyHeader;\n var clone = pre.cloneNode(true);\n if (sel) { var h = clone.querySelector(sel); if (h) h.remove(); }\n navigator.clipboard.writeText(clone.textContent);\n });\n });\n ',document.body.append(e)}function el(e){e.append(Xc(".idlHeader","Copy IDL to clipboard")),Qc()}var tl=Object.freeze({__proto__:null,addCopyIDLButton:el,name:"core/webidl-clipboard"});var nl=String.raw`pre.idl{padding:1em;position:relative}
941
+ </ul>`))}});const Gc=new Set(["callback interface","callback","dictionary","enum","interface mixin","interface","typedef"]);function Vc(e,t,{parent:n=""}={}){switch(e.type){case"constructor":case"operation":return function(e,t,n){if(n.includes("!overload"))return Jc(e,t,n);const r=`${n}()`;return Jc(e,t,r,n)}(e,n,t);default:return Jc(e,n,t)}}function Jc(e,t,...n){const{type:r}=e;for(const e of n){let n="enum-value"===r&&""===e?"the-empty-string":e,s=Zc(n,t,e,r);if(0===s.length&&""!==t){n=`${t}.${n}`;const e=yc.get(n);e&&1===e.size&&(s=[...e],wc(s[0],[n]))}if(s.length>1){cs(`WebIDL identifier \`${e}\` ${t?`for \`${t}\``:""} is defined multiple times`,e,{title:"Duplicate definition.",elements:s})}if(s.length)return s[0]}}function Kc(e,t,n,r){if(!e.id){const t=n.toLowerCase(),s=t?`${t}-`:"";let i=r.toLowerCase().replace(/[()]/g,"").replace(/\s/g,"-");""===i&&(i="the-empty-string",e.setAttribute("aria-label","the empty string")),e.id=`dom-${s}${i}`}switch(e.dataset.idl=t.type,e.dataset.title=e.textContent,e.dataset.dfnFor=n,t.type){case"operation":case"attribute":case"field":e.dataset.type=Yc(t)}switch(e.querySelector("code")||e.closest("code")||!e.children||Qr(e,e.ownerDocument.createElement("code")),t.type){case"attribute":case"constructor":case"operation":{const s=function(e,t,n){const{type:r}=e,s=`${t}.${n}`;switch(r){case"constructor":case"operation":{const t=`${n}()`,r=`${s}()`,i=function(e,t){const n=[];if(0===t.length)return n;const r=[],s=[];for(const{name:e,optional:n,variadic:i}of t)n||i?s.push(e):r.push(e);const i=r.join(", "),o=`${e}(${i})`;n.push(o);const a=s.map(((t,n)=>{const i=[...r,...s.slice(0,n+1)].join(", ");return`${e}(${i})`}));return n.push(...a),n}(n,e.arguments);return{local:[s,r,n],exportable:[t,...i]}}case"attribute":return{local:[s],exportable:[n]}}}(t,n,r);s&&function(e,t){const{local:n,exportable:r}=t,s=e.dataset.lt?new Set(e.dataset.lt.split("|")):new Set;for(const e of r)s.add(e);n.filter((e=>s.has(e))).forEach((e=>s.delete(e))),e.dataset.lt=[...s].join("|"),e.dataset.localLt=n.join("|"),wc(e,[...n,...r])}(e,s);break}}return e}function Zc(e,t,n,r){const s=yc.get(e);if(!s||0===s.size)return[];const i=[...s],o=i.filter((e=>{if("dfn"===e.dataset.dfnType)return!1;const n=e.closest("[data-dfn-for]");return n&&n.dataset.dfnFor===t}));if(0===o.length&&""===t&&1===i.length)return i[0].textContent===n?i:[];if(Gc.has(r)&&i.length){const e=i.find((e=>e.textContent.trim()===n));if(e)return[e]}return o}function Yc(e={}){const{idlType:t,generic:n,union:r}=e;return void 0===t?"":"string"==typeof t?t:n||(r?t.map(Yc).join("|"):Yc(t))}const Xc='<svg height="16" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg>';function Qc(e,t="Copy to clipboard"){const n=document.createElement("button");return n.innerHTML=Xc,n.title=t,n.setAttribute("aria-label",t),n.classList.add("respec-button-copy-paste","removeOnSave"),n.dataset.copyHeader=e,n.addEventListener("click",(()=>{const t=n.closest("pre");if(!t)return;const r=t.cloneNode(!0);r.querySelector(e)?.remove(),navigator.clipboard.writeText(r.textContent??"")})),n}function el(){if(document.getElementById("respec-copy-paste"))return;const e=document.createElement("script");e.id="respec-copy-paste",e.textContent='\n document.querySelectorAll(".respec-button-copy-paste").forEach(function(btn) {\n btn.addEventListener("click", function() {\n var pre = this.closest("pre");\n if (!pre) return;\n var sel = this.dataset.copyHeader;\n var clone = pre.cloneNode(true);\n if (sel) { var h = clone.querySelector(sel); if (h) h.remove(); }\n navigator.clipboard.writeText(clone.textContent);\n });\n });\n ',document.body.append(e)}function tl(e){e.append(Qc(".idlHeader","Copy IDL to clipboard")),el()}var nl=Object.freeze({__proto__:null,addCopyIDLButton:tl,name:"core/webidl-clipboard"});var rl=String.raw`pre.idl{padding:1em;position:relative}
943
942
  pre.idl>code{color:#000;color:var(--text,#000)}
944
943
  @media print{
945
944
  pre.idl{white-space:pre-wrap}
@@ -964,18 +963,18 @@ a.idlEnumItem{color:#000;border-bottom:1px dotted #ccc;text-decoration:none}
964
963
  .respec-button-copy-paste:is(:disabled,:disabled:hover,.disabled,.disabled:hover){color:rgba(102,102,102,.5);cursor:default;background-color:rgba(229,229,229,.5);background-image:none;border-color:rgba(197,197,197,.5);box-shadow:none}
965
964
  @media print{
966
965
  .respec-button-copy-paste{visibility:hidden}
967
- }`;const rl="core/webidl",sl=rl,il={},ol={},al={wrap:e=>e.flat().filter((e=>""!==e)).map((e=>"string"==typeof e?new Text(e):e)),trivia:e=>e.trim()?ur`<span class="idlSectionComment">${e}</span>`:e,generic:e=>/^[A-Z]/.test(e)?ur`<a data-xref-type="interface" data-cite="WEBIDL">${e}</a>`:ur`<a data-xref-type="dfn" data-cite="WEBIDL">${e}</a>`,reference(e,t,n){if("extended-attribute"===n.type)return e;let r="_IDL_",s=null;if("object"===t)r="interface",s="WEBIDL";return ur`<a
966
+ }`;const sl="core/webidl",il=sl,ol={},al={},cl={wrap:e=>e.flat().filter((e=>""!==e)).map((e=>"string"==typeof e?new Text(e):e)),trivia:e=>e.trim()?ur`<span class="idlSectionComment">${e}</span>`:e,generic:e=>/^[A-Z]/.test(e)?ur`<a data-xref-type="interface" data-cite="WEBIDL">${e}</a>`:ur`<a data-xref-type="dfn" data-cite="WEBIDL">${e}</a>`,reference(e,t,n){if("extended-attribute"===n.type)return e;let r="_IDL_",s=null;if("object"===t)r="interface",s="WEBIDL";return ur`<a
968
967
  data-link-type="${"_IDL_"===r?"idl":r}"
969
968
  data-xref-type="${r}"
970
969
  data-cite="${s}"
971
970
  >${e}</a
972
- >`},name(e,{data:t,parent:n}){if(t.idlType&&"argument-type"===t.idlType.type)return ur`<span class="idlParamName">${e}</span>`;const r=cl(e,t,n);if("enum-value"!==t.type){const e=n?"idlName":"idlID";r.classList.add(e)}return r},nameless(e,{data:t,parent:n}){switch(t.type){case"operation":case"constructor":return cl(e,t,n);default:return e}},type:e=>ur`<span class="idlType">${e}</span>`,inheritance:e=>ur`<span class="idlSuperclass">${e}</span>`,definition(e,{data:t,parent:n}){const r=function(e){switch(e.type){case"callback interface":return"idlInterface";case"operation":return"idlMethod";case"field":return"idlMember";case"enum-value":return"idlEnumItem";case"callback function":return"idlCallback"}return`idl${e.type[0].toUpperCase()}${e.type.slice(1)}`}(t);switch(t.type){case"includes":case"enum-value":return ur`<span class="${r}">${e}</span>`}const s=n?n.name:"",{name:i,idlId:o}=ul(t,s);return ur`<span
971
+ >`},name(e,{data:t,parent:n}){if(t.idlType&&"argument-type"===t.idlType.type)return ur`<span class="idlParamName">${e}</span>`;const r=ll(e,t,n);if("enum-value"!==t.type){const e=n?"idlName":"idlID";r.classList.add(e)}return r},nameless(e,{data:t,parent:n}){switch(t.type){case"operation":case"constructor":return ll(e,t,n);default:return e}},type:e=>ur`<span class="idlType">${e}</span>`,inheritance:e=>ur`<span class="idlSuperclass">${e}</span>`,definition(e,{data:t,parent:n}){const r=function(e){switch(e.type){case"callback interface":return"idlInterface";case"operation":return"idlMethod";case"field":return"idlMember";case"enum-value":return"idlEnumItem";case"callback function":return"idlCallback"}return`idl${e.type[0].toUpperCase()}${e.type.slice(1)}`}(t);switch(t.type){case"includes":case"enum-value":return ur`<span class="${r}">${e}</span>`}const s=n?n.name:"",{name:i,idlId:o}=dl(t,s);return ur`<span
973
972
  class="${r}"
974
973
  id="${o}"
975
974
  data-idl
976
975
  data-title="${i}"
977
976
  >${e}</span
978
- >`},extendedAttribute:e=>ur`<span class="extAttr">${e}</span>`,extendedAttributeReference:e=>ur`<a data-xref-type="extended-attribute">${e}</a>`};function cl(e,t,n){const r=n?n.name:"",{name:s}=ul(t,r),i=Gc(t,s,{parent:r}),o=function(e){switch(e){case"operation":return"method";case"field":return"dict-member";case"callback interface":case"interface mixin":return"interface";default:return e}}(t.type);if(i){t.partial||(i.matches("[data-noexport]")||(i.dataset.export=""),i.dataset.dfnType=o),Jc(i,t,r,s);const n=`#${i.id}`;return ur`<a
977
+ >`},extendedAttribute:e=>ur`<span class="extAttr">${e}</span>`,extendedAttributeReference:e=>ur`<a data-xref-type="extended-attribute">${e}</a>`};function ll(e,t,n){const r=n?n.name:"",{name:s}=dl(t,r),i=Vc(t,s,{parent:r}),o=function(e){switch(e){case"operation":return"method";case"field":return"dict-member";case"callback interface":case"interface mixin":return"interface";default:return e}}(t.type);if(i){t.partial||(i.matches("[data-noexport]")||(i.dataset.export=""),i.dataset.dfnType=o),Kc(i,t,r,s);const n=`#${i.id}`;return ur`<a
979
978
  data-link-for="${r}"
980
979
  data-link-type="${o}"
981
980
  href="${n}"
@@ -985,15 +984,15 @@ a.idlEnumItem{color:#000;border-bottom:1px dotted #ccc;text-decoration:none}
985
984
  >${e}</a
986
985
  >`;if(!t.partial){const n=ur`<dfn data-export data-dfn-type="${o}"
987
986
  >${e}</dfn
988
- >`;return yc(n,[s]),Jc(n,t,r,s),n}const c=ur`<a
987
+ >`;return wc(n,[s]),Kc(n,t,r,s),n}const c=ur`<a
989
988
  data-idl="${t.partial?"partial":null}"
990
989
  data-link-type="${o}"
991
990
  data-title="${t.name}"
992
991
  data-xref-type="${o}"
993
992
  >${e}</a
994
- >`;if(s&&"typedef"!==t.type&&!(t.partial&&!i)){const e=ms`See ${"using `data-dfn-for`|#data-dfn-for"} in ReSpec's documentation.`;ls(`Missing \`<dfn>\` for${r?` \`${r}\`'s`:""} \`${"operation"===t.type?`${s}()`:s}\` ${t.type}.`,sl,{elements:[c],hint:e})}return c}const ll=new WeakMap;function ul(e,t=""){if(ll.has(e))return ll.get(e);const n=function(e,t){let n=function(e){switch(e.type){case"enum-value":return e.value;case"operation":return e.name||e.special;default:return e.name||e.type}}(e);const r=e.special&&""===e.name?"anonymous-":"";let s=function(e,t){if(!t)return`idl-def-${e.toLowerCase()}`;return`idl-def-${t.toLowerCase()}-${e.toLowerCase()}`}(r+n,t);switch(e.type){case"callback interface":case"dictionary":case"interface":case"interface mixin":case"namespace":s+=function(e){if(!e.partial)return"";ol[e.name]||(ol[e.name]=0);return ol[e.name]+=1,`-partial-${ol[e.name]}`}(e);break;case"constructor":case"operation":{const r=function(e,t){const n=`${t}.${e}`,r=`${n}()`;let s;il[r]||(il[r]=0);il[n]?s=`!overload-${il[n]}`:il[n]=0;return il[r]+=1,il[n]+=1,s||""}(n,t);r?(n+=r,s+=r):e.arguments.length&&(s+=e.arguments.map((e=>`-${e.name.toLowerCase()}`)).join(""));break}}return{name:n,idlId:s}}(e,t);return ll.set(e,n),n}const dl=["interface","interface mixin","dictionary","namespace","enum","typedef","callback"];function pl(e,t){let n;try{n=mr.parse(e.textContent,{sourceName:String(t)})}catch(t){return cs(`Failed to parse WebIDL: ${t.bareMessage}.`,sl,{title:t.bareMessage,details:`<pre>${t.context}</pre>`,elements:[e]}),[]}e.classList.add("def","idl");const r=mr.write(n,{templates:al});ur.bind(e)`${r}`,Qr(e,document.createElement("code")),e.querySelectorAll("[data-idl]").forEach((e=>{if(e.dataset.dfnFor)return;const t=e.dataset.title,n=e.dataset.dfnType,r=e.parentElement.closest("[data-idl][data-title]");r&&!dl.includes(n)&&(e.dataset.dfnFor=r.dataset.title),"dfn"===e.localName&&yc(e,[t])}));const s=e.closest("[data-cite], body"),{dataset:i}=s;if(i.cite||(i.cite="WEBIDL"),!/\bwebidl\b/i.test(i.cite)){const e=i.cite.trim().split(/\s+/);i.cite=["WEBIDL",...e].join(" ")}return hl(e),n}function hl(e){Vr(e,"webidl");const t=ur`<span class="idlHeader"
993
+ >`;if(s&&"typedef"!==t.type&&!(t.partial&&!i)){const e=ms`See ${"using `data-dfn-for`|#data-dfn-for"} in ReSpec's documentation.`;ls(`Missing \`<dfn>\` for${r?` \`${r}\`'s`:""} \`${"operation"===t.type?`${s}()`:s}\` ${t.type}.`,il,{elements:[c],hint:e})}return c}const ul=new WeakMap;function dl(e,t=""){if(ul.has(e))return ul.get(e);const n=function(e,t){let n=function(e){switch(e.type){case"enum-value":return e.value;case"operation":return e.name||e.special;default:return e.name||e.type}}(e);const r=e.special&&""===e.name?"anonymous-":"";let s=function(e,t){if(!t)return`idl-def-${e.toLowerCase()}`;return`idl-def-${t.toLowerCase()}-${e.toLowerCase()}`}(r+n,t);switch(e.type){case"callback interface":case"dictionary":case"interface":case"interface mixin":case"namespace":s+=function(e){if(!e.partial)return"";al[e.name]||(al[e.name]=0);return al[e.name]+=1,`-partial-${al[e.name]}`}(e);break;case"constructor":case"operation":{const r=function(e,t){const n=`${t}.${e}`,r=`${n}()`;let s;ol[r]||(ol[r]=0);ol[n]?s=`!overload-${ol[n]}`:ol[n]=0;return ol[r]+=1,ol[n]+=1,s||""}(n,t);r?(n+=r,s+=r):e.arguments.length&&(s+=e.arguments.map((e=>`-${e.name.toLowerCase()}`)).join(""));break}}return{name:n,idlId:s}}(e,t);return ul.set(e,n),n}const pl=["interface","interface mixin","dictionary","namespace","enum","typedef","callback"];function hl(e,t){let n;try{n=mr.parse(e.textContent,{sourceName:String(t)})}catch(t){return cs(`Failed to parse WebIDL: ${t.bareMessage}.`,il,{title:t.bareMessage,details:`<pre>${t.context}</pre>`,elements:[e]}),[]}e.classList.add("def","idl");const r=mr.write(n,{templates:cl});ur.bind(e)`${r}`,Qr(e,document.createElement("code")),e.querySelectorAll("[data-idl]").forEach((e=>{if(e.dataset.dfnFor)return;const t=e.dataset.title,n=e.dataset.dfnType,r=e.parentElement.closest("[data-idl][data-title]");r&&!pl.includes(n)&&(e.dataset.dfnFor=r.dataset.title),"dfn"===e.localName&&wc(e,[t])}));const s=e.closest("[data-cite], body"),{dataset:i}=s;if(i.cite||(i.cite="WEBIDL"),!/\bwebidl\b/i.test(i.cite)){const e=i.cite.trim().split(/\s+/);i.cite=["WEBIDL",...e].join(" ")}return fl(e),n}function fl(e){Vr(e,"webidl");const t=ur`<span class="idlHeader"
995
994
  ><a class="self-link" href="${`#${e.id}`}">WebIDL</a></span
996
- >`;e.prepend(t),el(t)}var fl=Object.freeze({__proto__:null,addIDLHeader:hl,name:rl,run:async function(){const e=document.querySelectorAll("pre.idl, pre.webidl");if(!e.length)return;const t=document.createElement("style");t.textContent=nl,document.querySelector("head link, head > *:last-child").before(t);const n=[...e].map(pl),r=mr.validate(n);for(const t of r){let r=`<pre>${zr(t.context)}</pre>`;if(t.autofix){t.autofix();r+=`Try fixing as:\n <pre>${zr(mr.write(n[t.sourceName]))}</pre>`}cs(`WebIDL validation error: ${t.bareMessage}`,sl,{details:r,elements:[e[t.sourceName]],title:t.bareMessage})}document.normalize()}});var ml=String.raw`:root{--cddl-comment:#6a737d;--cddl-kw:#005a9c;--cddl-str:#032f62;--cddl-num:#005cc5;--cddl-op:#6f42c1;--cddl-ctrl:#d73a49;--cddl-occ:#e36209;--cddl-bytes:#22863a;--cddl-param:#e36209;--cddl-type-dfn:#c43a31;--cddl-key-dfn:#005a9c;--cddl-header-bg:var(--def-border, #8ccbf2);--cddl-header-color:#005a9c;--cddl-focus:#51a7e8}
995
+ >`;e.prepend(t),tl(t)}var ml=Object.freeze({__proto__:null,addIDLHeader:fl,name:sl,run:async function(){const e=document.querySelectorAll("pre.idl, pre.webidl");if(!e.length)return;const t=document.createElement("style");t.textContent=rl,document.querySelector("head link, head > *:last-child").before(t);const n=[...e].map(hl),r=mr.validate(n);for(const t of r){let r=`<pre>${zr(t.context)}</pre>`;if(t.autofix){t.autofix();r+=`Try fixing as:\n <pre>${zr(mr.write(n[t.sourceName]))}</pre>`}cs(`WebIDL validation error: ${t.bareMessage}`,il,{details:r,elements:[e[t.sourceName]],title:t.bareMessage})}document.normalize()}});var gl=String.raw`:root{--cddl-comment:#6a737d;--cddl-kw:#005a9c;--cddl-str:#032f62;--cddl-num:#005cc5;--cddl-op:#6f42c1;--cddl-ctrl:#d73a49;--cddl-occ:#e36209;--cddl-bytes:#22863a;--cddl-param:#e36209;--cddl-type-dfn:#c43a31;--cddl-key-dfn:#005a9c;--cddl-header-bg:var(--def-border, #8ccbf2);--cddl-header-color:#005a9c;--cddl-focus:#51a7e8}
997
996
  @media (prefers-color-scheme:dark){
998
997
  :root{--cddl-comment:#8b949e;--cddl-kw:#79c0ff;--cddl-str:#a5d6ff;--cddl-num:#79c0ff;--cddl-op:#d2a8ff;--cddl-ctrl:#ff7b72;--cddl-occ:#ffa657;--cddl-bytes:#7ee787;--cddl-param:#ffa657;--cddl-type-dfn:#ffa198;--cddl-key-dfn:#79c0ff;--cddl-header-bg:#3a6da0;--cddl-header-color:#fff;--cddl-focus:#51a7e8}
999
998
  }
@@ -1020,62 +1019,62 @@ pre.cddl dfn{font-style:normal;font-weight:700}
1020
1019
  .cddlHeader a.self-link:focus-visible,pre.cddl a:focus-visible,pre.cddl dfn:focus-visible{outline:2px solid var(--cddl-focus);outline-offset:2px}
1021
1020
  .respec-button-copy-paste:focus-visible{outline:2px solid var(--cddl-focus);outline-offset:2px}
1022
1021
  pre.cddl dfn[data-dfn-type=cddl-type]{color:var(--cddl-type-dfn)}
1023
- pre.cddl dfn[data-dfn-type=cddl-key]{color:var(--cddl-key-dfn)}`;const gl="core/cddl",bl=new Set(["any","uint","nint","int","bstr","bytes","tstr","text","tdate","time","number","biguint","bignint","bigint","integer","unsigned","decfrac","bigfloat","eb64url","eb64legacy","eb16","encoded-cbor","uri","b64url","b64legacy","regexp","mime-message","cbor-any","float16","float32","float64","float16-32","float32-64","float","false","true","bool","nil","null","undefined"]);function yl(e){return e.toLowerCase().replace(/^"(.*)"$/,"$1").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function wl(e){let t=e.parentNode;for(;t;){if(t instanceof yr)return t.name?.name||null;t=t.parentNode}return null}const vl=String.raw;class kl extends br{#e=null;#t;constructor(e){super(),this.#t=e}serializeName(e,t){const n=this.#t;if(function(e){let t=e.parentNode;for(;t;){if(t instanceof vr)return!0;if(t instanceof yr)return!1;t=t.parentNode}return!1}(t)){const r=wl(t);return r&&(n.genericParams.has(r)||n.genericParams.set(r,new Set),n.genericParams.get(r)?.add(e)),vl`<span class="cddl-param">${zr(e)}</span>`}if(function(e){let t=e.parentNode;for(;t;){if(t instanceof kr)return!0;if(t instanceof yr)return!1;t=t.parentNode}return!1}(t))return this.#n(e);if(function(e){return e.parentNode instanceof yr}(t))return this.#e=e,this.#r(e);if(function(e){return e.parentNode instanceof wr}(t))return this.#s(e);const r=wl(t)||this.#e;return r&&n.genericParams.has(r)&&n.genericParams.get(r)?.has(e)?vl`<span class="cddl-param">${zr(e)}</span>`:this.#n(e)}#r(e){const t=this.#t,n=`cddl-type-${yl(e)}`,r=`cddl-type:${e}`;return t.definitions.has(r)?vl`<a href="#${n}" class="cddl-name" data-link-type="cddl-type"
1022
+ pre.cddl dfn[data-dfn-type=cddl-key]{color:var(--cddl-key-dfn)}`;const bl="core/cddl",yl=new Set(["any","uint","nint","int","bstr","bytes","tstr","text","tdate","time","number","biguint","bignint","bigint","integer","unsigned","decfrac","bigfloat","eb64url","eb64legacy","eb16","encoded-cbor","uri","b64url","b64legacy","regexp","mime-message","cbor-any","float16","float32","float64","float16-32","float32-64","float","false","true","bool","nil","null","undefined"]);function wl(e){return e.toLowerCase().replace(/^"(.*)"$/,"$1").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function vl(e){let t=e.parentNode;for(;t;){if(t instanceof yr)return t.name?.name||null;t=t.parentNode}return null}const kl=String.raw;class $l extends br{#e=null;#t;constructor(e){super(),this.#t=e}serializeName(e,t){const n=this.#t;if(function(e){let t=e.parentNode;for(;t;){if(t instanceof vr)return!0;if(t instanceof yr)return!1;t=t.parentNode}return!1}(t)){const r=vl(t);return r&&(n.genericParams.has(r)||n.genericParams.set(r,new Set),n.genericParams.get(r)?.add(e)),kl`<span class="cddl-param">${zr(e)}</span>`}if(function(e){let t=e.parentNode;for(;t;){if(t instanceof kr)return!0;if(t instanceof yr)return!1;t=t.parentNode}return!1}(t))return this.#n(e);if(function(e){return e.parentNode instanceof yr}(t))return this.#e=e,this.#r(e);if(function(e){return e.parentNode instanceof wr}(t))return this.#s(e);const r=vl(t)||this.#e;return r&&n.genericParams.has(r)&&n.genericParams.get(r)?.has(e)?kl`<span class="cddl-param">${zr(e)}</span>`:this.#n(e)}#r(e){const t=this.#t,n=`cddl-type-${wl(e)}`,r=`cddl-type:${e}`;return t.definitions.has(r)?kl`<a href="#${n}" class="cddl-name" data-link-type="cddl-type"
1024
1023
  >${zr(e)}</a
1025
- >`:t.proseDfns.has(n)?(t.definitions.set(r,{type:"cddl-type",for:null,id:n}),vl`<a href="#${n}" class="cddl-name" data-link-type="cddl-type"
1024
+ >`:t.proseDfns.has(n)?(t.definitions.set(r,{type:"cddl-type",for:null,id:n}),kl`<a href="#${n}" class="cddl-name" data-link-type="cddl-type"
1026
1025
  >${zr(e)}</a
1027
- >`):(t.definitions.set(r,{type:"cddl-type",for:null,id:n}),vl`<dfn data-dfn-type="cddl-type" id="${n}" data-export
1026
+ >`):(t.definitions.set(r,{type:"cddl-type",for:null,id:n}),kl`<dfn data-dfn-type="cddl-type" id="${n}" data-export
1028
1027
  >${zr(e)}</dfn
1029
- >`)}#s(e){const t=this.#t,n=this.#e;if(!n)return vl`<span class="cddl-name">${zr(e)}</span>`;const r=`cddl-key-${yl(n)}-${yl(e)}`,s=`cddl-key:${n}/${e}`;return t.definitions.has(s)?vl`<a
1028
+ >`)}#s(e){const t=this.#t,n=this.#e;if(!n)return kl`<span class="cddl-name">${zr(e)}</span>`;const r=`cddl-key-${wl(n)}-${wl(e)}`,s=`cddl-key:${n}/${e}`;return t.definitions.has(s)?kl`<a
1030
1029
  href="#${r}"
1031
1030
  class="cddl-name"
1032
1031
  data-link-type="cddl-key"
1033
1032
  data-xref-for="${zr(n)}"
1034
1033
  >${zr(e)}</a
1035
- >`:t.proseDfns.has(r)?(t.definitions.set(s,{type:"cddl-key",for:n,id:r}),vl`<a
1034
+ >`:t.proseDfns.has(r)?(t.definitions.set(s,{type:"cddl-key",for:n,id:r}),kl`<a
1036
1035
  href="#${r}"
1037
1036
  class="cddl-name"
1038
1037
  data-link-type="cddl-key"
1039
1038
  data-xref-for="${zr(n)}"
1040
1039
  >${zr(e)}</a
1041
- >`):(t.definitions.set(s,{type:"cddl-key",for:n,id:r}),vl`<dfn
1040
+ >`):(t.definitions.set(s,{type:"cddl-key",for:n,id:r}),kl`<dfn
1042
1041
  data-dfn-type="cddl-key"
1043
1042
  data-dfn-for="${zr(n)}"
1044
1043
  id="${r}"
1045
1044
  data-export
1046
1045
  >${zr(e)}</dfn
1047
- >`)}#n(e){const t=this.#t;if(bl.has(e))return vl`<a
1046
+ >`)}#n(e){const t=this.#t;if(yl.has(e))return kl`<a
1048
1047
  class="cddl-kw"
1049
1048
  data-link-type="cddl-type"
1050
1049
  data-link-spec="rfc8610"
1051
1050
  href="${"https://www.rfc-editor.org/rfc/rfc8610#appendix-D"}"
1052
1051
  >${zr(e)}</a
1053
- >`;const n=`cddl-type:${e}`;if(t.definitions.has(n)){const r=t.definitions.get(n);return r?vl`<a
1052
+ >`;const n=`cddl-type:${e}`;if(t.definitions.has(n)){const r=t.definitions.get(n);return r?kl`<a
1054
1053
  href="#${r.id}"
1055
1054
  class="cddl-name"
1056
1055
  data-link-type="cddl-type"
1057
1056
  >${zr(e)}</a
1058
- >`:vl`<span class="cddl-name">${zr(e)}</span>`}return vl`<span class="cddl-name" data-cddl-pending="${zr(e)}"
1057
+ >`:kl`<span class="cddl-name">${zr(e)}</span>`}return kl`<span class="cddl-name" data-cddl-pending="${zr(e)}"
1059
1058
  >${zr(e)}</span
1060
- >`}serializeValue(e,t,n,r){const s=this.#t,i=e+t+n;if("text"===r.type&&this.#i(r)){const e=this.#e;if(e){const n=`cddl-value-${yl(e)}-${yl(t)}`,r=`cddl-value:${e}/"${t}"`;if(s.definitions.has(r)){const t=s.definitions.get(r);return t?vl`<a
1059
+ >`}serializeValue(e,t,n,r){const s=this.#t,i=e+t+n;if("text"===r.type&&this.#i(r)){const e=this.#e;if(e){const n=`cddl-value-${wl(e)}-${wl(t)}`,r=`cddl-value:${e}/"${t}"`;if(s.definitions.has(r)){const t=s.definitions.get(r);return t?kl`<a
1061
1060
  href="#${t.id}"
1062
1061
  class="cddl-str"
1063
1062
  data-link-type="cddl-value"
1064
1063
  data-xref-for="${zr(e)}"
1065
1064
  >${zr(i)}</a
1066
- >`:vl`<span class="cddl-str">${zr(i)}</span>`}if(s.proseDfns.has(n))return s.definitions.set(r,{type:"cddl-value",for:e,id:n}),vl`<a
1065
+ >`:kl`<span class="cddl-str">${zr(i)}</span>`}if(s.proseDfns.has(n))return s.definitions.set(r,{type:"cddl-value",for:e,id:n}),kl`<a
1067
1066
  href="#${n}"
1068
1067
  class="cddl-str"
1069
1068
  data-link-type="cddl-value"
1070
1069
  data-xref-for="${zr(e)}"
1071
1070
  >${zr(i)}</a
1072
- >`;if(!s.definitions.has(r))return s.definitions.set(r,{type:"cddl-value",for:e,id:n}),vl`<dfn
1071
+ >`;if(!s.definitions.has(r))return s.definitions.set(r,{type:"cddl-value",for:e,id:n}),kl`<dfn
1073
1072
  data-dfn-type="cddl-value"
1074
1073
  data-dfn-for="${zr(e)}"
1075
1074
  id="${n}"
1076
1075
  data-export
1077
1076
  >${zr(i)}</dfn
1078
- >`}}switch(r.type){case"text":return vl`<span class="cddl-str">${zr(i)}</span>`;case"number":case"float":return vl`<span class="cddl-num">${zr(i)}</span>`;case"bytes":case"hex":case"base64":return vl`<span class="cddl-bytes">${zr(i)}</span>`;default:return zr(i)}}#i(e){const t=e.parentNode;return!!t&&t instanceof $r}serializeToken(e,t){const n=e.type,r=e.serialize();switch(n){case"COMMENT":return this.#o(r);case"CTLOP":return this.#a(r);case"=":case"/=":case"//=":case"/":case"//":case"=>":case"..":case"...":return this.#c(r);case"?":case"*":case"+":return t instanceof xr?this.#l(r):r;default:return r}}#o(e){return e.replace(/(;[^\n]*)/g,'<span class="cddl-comment">$1</span>')}#a(e){return e.replace(/(\.\w+)/g,'<span class="cddl-ctrl">$1</span>')}#c(e){const t=e.match(/^(\s*)(.*?)(\s*)$/s);return t?`${t[1]}<span class="cddl-op">${t[2]}</span>${t[3]}`:vl`<span class="cddl-op">${e}</span>`}#l(e){const t=e.match(/^(\s*)(.*?)(\s*)$/s);return t?`${t[1]}<span class="cddl-occ">${t[2]}</span>${t[3]}`:vl`<span class="cddl-occ">${e}</span>`}}var $l=Object.freeze({__proto__:null,name:gl,run:async function(){const e=document.querySelectorAll("pre.cddl:not([data-no-cddl])");if(!e.length)return;const t=document.createElement("style");t.textContent=ml;const n=document.querySelector("head link, head > *:last-child");n?n.before(t):document.head.append(t);const r=e=>new gr(e).parse(),s={definitions:new Map,proseDfns:new Set,genericParams:new Map};var i,o,a,c;i=document,o=s.proseDfns,i.querySelectorAll("dfn[cddl-type], dfn[cddl-key], dfn[cddl-value]").forEach((e=>{const t=["cddl-type","cddl-key","cddl-value"].find((t=>e.hasAttribute(t)));e.dataset.dfnType=t,e.removeAttribute(t);const n=e.getAttribute("for");n&&(e.dataset.dfnFor=n,e.removeAttribute("for"));const r=e.textContent.trim(),s=n?`${yl(n)}-`:"",i=`cddl-${t.replace("cddl-","")}-${s}${yl(r)}`;e.id||=i,o.add(e.id),yc(e,[r])})),e.forEach((e=>function(e,t,n){const r=e.textContent;if(r.trim())try{const s=t(r),i=new kl(n),o=s.serialize(i),a=document.createElement("code");a.innerHTML=o,e.textContent="",e.append(a),e.classList.add("def","highlight"),Vr(e,"cddl-block");const c=document.createElement("span");c.className="cddlHeader",c.innerHTML=`<a class="self-link" href="#${e.id}">CDDL</a>`;const l=Xc(".cddlHeader");c.append(l),e.prepend(c)}catch(t){cs(`CDDL processing error: ${t instanceof Error?t.message:String(t)}`,gl,{elements:[e],hint:'Check the CDDL syntax in the `<pre class="cddl">` block.'})}}(e,r,s))),a=document.body,c=s.definitions,a.querySelectorAll("[data-cddl-pending]").forEach((e=>{const t=`cddl-type:${e.dataset.cddlPending}`;if(c.has(t)){const n=c.get(t);if(!n)return;const r=a.ownerDocument.createElement("a");r.href=`#${n.id}`,r.className="cddl-name",r.dataset.linkType="cddl-type",r.textContent=e.textContent,e.replaceWith(r)}})),document.querySelectorAll("[data-cddl-pending]").forEach((e=>{ls(`No CDDL definition found for \`${e.getAttribute("data-cddl-pending")}\`.`,gl,{elements:[e],hint:"Check for typos in the type name."})})),function(e,t){e.querySelectorAll('a[data-link-type^="cddl-"]:not([href]):not([data-cite])').forEach((e=>{const n=e.getAttribute("data-link-type"),r=e.getAttribute("data-xref-for")||e.getAttribute("data-link-for")||"",s=e.textContent.trim();if("cddl-type"!==n&&"cddl-key"!==n&&"cddl-value"!==n)return;const i={"cddl-type":`cddl-type:${s}`,"cddl-key":`cddl-key:${r}/${s}`,"cddl-value":`cddl-value:${r}/${s}`}[n];if(t.has(i)){const n=t.get(i);if(!n)return;e.setAttribute("href",`#${n.id}`),e.classList.add("internalDFN")}else ls(`CDDL ${n}: no definition found for \`${s}\`${r?`, for \`${r}\`,`:""} in any \`<pre class="cddl">\` block.`,gl,{elements:[e]}),e.setAttribute("data-no-link-to-dfn","")}))}(document,s.definitions),function(e,t){t.forEach((t=>{const n=e.getElementById(t.id);"dfn"===n?.localName&&yc(n,[n.textContent.trim()])}))}(document,s.definitions),Qc(),ws("beforesave",(e=>{e.querySelectorAll("[data-cddl-pending]").forEach((e=>e.removeAttribute("data-cddl-pending")))}))}});const xl="core/data-cite",Cl="__SPEC__";async function Sl(e){const{key:t,frag:n,path:r,href:s}=e;let i,o="";if(t===Cl)i=document.location.href;else{const e=await Ra(t);if(!e)return null;i=e.href??"",o=e.title}if(s)i=s;else{if(r){const e=r.startsWith("/")?`.${r}`:r;i=new URL(e,i).href}n&&(i=new URL(n,i).href)}return{href:i,title:o}}function _l(e,t,n){const{href:r,title:s}=t,i=!n.path&&!n.frag;switch(e.localName){case"a":{const t=e;if(""===t.textContent&&"the-empty-string"!==t.dataset.lt&&(t.textContent=s),t.href=r,i){const e=document.createElement("cite");t.replaceWith(e),e.append(t)}break}case"dfn":{const t=document.createElement("a");if(t.href=r,t.dataset.cite=n.key,t.dataset.citePath=n.path,t.dataset.citeFrag=n.frag,e.textContent?Qr(e,t):(t.textContent=s,e.append(t)),i){const n=document.createElement("cite");n.append(t),e.append(n)}if("export"in e.dataset){cs("Exporting a linked external definition is not allowed.",xl,{hint:"Please remove the `data-export` attribute.",elements:[e]}),delete e.dataset.export}e.classList.add("externalDFN"),e.dataset.noExport="";break}}}function Tl(e){return t=>{const n=t.search(e);return-1!==n?t.substring(n):""}}const Rl=Tl("#"),El=Tl("/");function Ll(e){const{dataset:t}=e,{cite:n,citeFrag:r,citePath:s,citeHref:i}=t;if((n??"").startsWith("#")&&!r){const r=e.parentElement?.closest('[data-cite]:not([data-cite^="#"])')??null,{key:s,isNormative:i}=r?Ll(r):{key:Cl,isNormative:!1};return t.cite=i?s:`?${s}`,t.citeFrag=(n??"").replace("#",""),Ll(e)}const o=r?`#${r}`:Rl(n??""),a=s||El(n??"").split("#")[0],{type:c}=Xr(n??"",e),l="normative"===c,u=/^[?|!]/.test(n??"");return{key:(n??"").split(/[/|#]/)[0].substring(Number(u)),isNormative:l,frag:o,path:a,href:i}}function Al(e){const t=["data-cite","data-cite-frag","data-cite-path"];e.querySelectorAll("a[data-cite], dfn[data-cite]").forEach((e=>t.forEach((t=>e.removeAttribute(t)))))}var Pl=Object.freeze({__proto__:null,THIS_SPEC:Cl,name:xl,run:async function(){const e=document.querySelectorAll("dfn[data-cite]:not([data-cite='']), a[data-cite]:not([data-cite=''])");await async function(e){const t=e.map(Ll).map((async e=>({entry:e,result:await Ra(e.key)}))),n=(await Promise.all(t)).filter((({result:e})=>null===e)).map((({entry:{key:e}})=>e)),r=await Ta(n);r&&Object.assign($a,r)}([...e]);const t=new Map,n=new Map;for(const r of e){t.set(r,r.dataset.cite);const e=Ll(r);n.set(r,e)}for(const r of e){const e=t.get(r),s=n.get(r),i=await Sl(s);if(i)r.dataset.citeFrag&&r.dataset.matchedText||!r.dataset.lt||"the-empty-string"===r.dataset.lt||""!==r.textContent||(uc(r,r.dataset.lt),delete r.dataset.lt),_l(r,i,s);else{const t=`Couldn't find a match for "${e}"`;r.dataset.matchedText&&(r.textContent=r.dataset.matchedText),ls(t,xl,{elements:[r]})}}ws("beforesave",Al)},toCiteDetails:Ll});const Nl="core/link-to-dfn",Il=[],Dl={en:{duplicateMsg:e=>`Duplicate definition(s) of '${e}'`,duplicateTitle:"This is defined more than once in the document."},ja:{duplicateMsg:e=>`'${e}' の重複定義`,duplicateTitle:"この文書内で複数回定義されています."},de:{duplicateMsg:e=>`Mehrfache Definition von '${e}'`,duplicateTitle:"Das Dokument enthält mehrere Definitionen dieses Eintrags."},zh:{duplicateMsg:e=>`'${e}' 的重复定义`,duplicateTitle:"在文档中有重复的定义。"},cs:{duplicateMsg:e=>`Duplicitní definice '${e}'`,duplicateTitle:"Toto je v dokumentu definováno vícekrát."}},Ol=Ur(Dl);function jl(e){const t=new Map,n=[];for(const r of bc.get(e)??[]){const{dfnType:s="dfn"}=r.dataset,i=r.dataset.dfnFor?.split(",").map((e=>e.trim()))??[""];for(const o of i){if(t.has(o)&&t.get(o)?.has(s)){const e=t.get(o)?.get(s),i="dfn"===e?.localName,a="dfn"===r.localName,c=s===(e?.dataset.dfnType||"dfn"),l=!o&&!e?.dataset.dfnFor||e?.dataset.dfnFor?.split(",").map((e=>e.trim())).includes(o);if(i&&a&&c&&l){n.push(r);continue}}t.has(o)||t.set(o,new Map),t.get(o)?.set(s,r),("idl"in r.dataset||"dfn"!==s)&&t.get(o)?.set("idl",r),Kr(r,"dfn",e)}}return{result:t,duplicates:n}}function zl(e,t){const n=function(e){const t=e.closest("[data-link-for]"),n=t?t.dataset.linkFor??"":"",r=Zr(e).reduce(((e,r)=>{const s=r.split(".");2===s.length&&e.push({for:s[0],title:s[1]}),e.push({for:n,title:r}),t||e.push({for:r,title:r}),""!==n&&e.push({for:"",title:r});const i=r.replace(Cr,"");return i!==r&&""!==i&&(e.push({for:n,title:i}),t||e.push({for:i,title:i}),""!==n&&e.push({for:"",title:i})),e}),[]);return r}(e),r=n.find((e=>t.has(e.title)&&t.get(e.title)?.has(e.for)));if(!r)return;const s=t.get(r.title)?.get(r.for),{linkType:i}=e.dataset;if(i){for(const e of i.split("|"))if(s?.get(e))return s.get(e);return s?.get("dfn")}{const e=r.for?"idl":"dfn";return s?.get(e)||s?.get("idl")}}function Ml(e,t,n){let r=!1;const{linkFor:s}=e.dataset,{dfnFor:i}=t.dataset;if(t.dataset.cite)e.dataset.cite=t.dataset.cite;else if(s&&!n.get(s)&&i&&!i.split(",").map((e=>e.trim())).includes(s))r=!0;else if(t.classList.contains("externalDFN")){const n=t.dataset.lt?t.dataset.lt.split("|"):[];e.dataset.lt=n[0]||t.textContent,r=!0}else"partial"!==e.dataset.idl?(e.href=`#${t.id}`,e.classList.add("internalDFN")):r=!0;return e.hasAttribute("data-link-type")||(e.dataset.linkType="idl"in t.dataset?"idl":"dfn"),function(e){if(e.closest("code,pre"))return!0;if(1!==e.childNodes.length)return!1;const[t]=e.childNodes;return"code"===t.localName}(t)&&function(e,t){const n=e.textContent.trim(),r=t.dataset.hasOwnProperty("idl"),s=Ul(e)&&Ul(t,n);r&&!s||Qr(e,document.createElement("code"))}(e,t),!r}function Ul(e,t=""){if("a"===e.localName){if(!e.querySelector("code"))return!0}else{const{dataset:n}=e;if(e.textContent.trim()===t)return!0;if(n.title===t)return!0;if(n.lt||n.localLt){const e=[];return n.lt&&e.push(...n.lt.split("|")),n.localLt&&e.push(...n.localLt.split("|")),e.includes(t)}}return!1}function ql(e){e.forEach((e=>{const t=`Found linkless \`<a>\` element with text "${e.textContent}" but no matching \`<dfn>\``,n=e.closest("[data-link-for]"),r=`Add a matching \`<dfn>\` element, ${ms`use ${"[data-cite]"} to link to an external definition, or enable ${"[xref]"} for automatic cross-spec linking.`}${n?` This link is inside a \`data-link-for="${n.dataset.linkFor}"\` section — \`[=term=]\` links are scoped to that context. To link to a global concept instead, either add \`data-link-for=""\` on this \`<a>\` or move it outside the scoped section.`:""}`;ls(t,Nl,{title:"Linking error: no matching `<dfn>`",hint:r,elements:[e]})}))}var Wl=Object.freeze({__proto__:null,name:Nl,possibleExternalLinks:Il,run:async function(e){const t=function(){const e=new os;for(const t of bc.keys()){const{result:n,duplicates:r}=jl(t);e.set(t,n),r.length>0&&cs(Ol.duplicateMsg(t),Nl,{title:Ol.duplicateTitle,elements:r})}return e}(),n=[],r=document.querySelectorAll("a[data-cite='']:not([data-no-link-to-dfn]), a:not([href]):not([data-cite]):not([data-no-link-to-dfn]):not(.logo):not(.externalDFN)");for(const e of r){if(!e.dataset?.linkType&&e.dataset?.xrefType){Il.push(e);continue}const r=zl(e,t);if(r){Ml(e,r,t)||Il.push(e)}else""===e.dataset.cite?n.push(e):Il.push(e)}ql(n),function(e){const{shortName:t=""}=e,n=t?new RegExp(String.raw`^([?!])?${_r(t)}\b([^-])`,"i"):null,r=document.querySelectorAll("dfn[data-cite]:not([data-cite='']), a[data-cite]:not([data-cite=''])");for(const t of r){n&&(t.dataset.cite=(t.dataset.cite??"").replace(n,`$1${Cl}$2`));const{key:r,isNormative:s}=Ll(t);r!==Cl&&(s||e.normativeReferences.has(r)?(e.normativeReferences.add(r),e.informativeReferences.delete(r)):e.informativeReferences.add(r))}}(e),e.xref||ql(Il)}});const Fl="xrefs",Bl=3e5;async function Hl(){return await dr.openDB("xref",2,{upgrade(e){[...e.objectStoreNames].forEach((t=>e.deleteObjectStore(t)));e.createObjectStore(Fl,{keyPath:"query.id"}).createIndex("byTerm","query.term",{unique:!1})}})}async function Gl(e){const t=new Map;if(await async function(){const e="XREF:LAST_VERSION_CHECK",t=parseInt(localStorage.getItem(e)??"",10),n=Date.now();if(!t)return localStorage.setItem(e,n.toString()),!1;if(n-t<Bl)return!1;const r=new URL("meta/version",Kl).href,s=await fetch(r);if(!s.ok)return!1;const i=await s.text();return localStorage.setItem(e,n.toString()),parseInt(i,10)>t}())return await async function(){try{await Hl().then((e=>e.clear(Fl)))}catch(e){console.error(e)}}(),t;const n=new Set(e.map((e=>e.id)));try{const e=await Hl();let r=await e.transaction(Fl).store.openCursor();for(;r;)n.has(r.key)&&t.set(r.key,r.value.result),r=await r.continue()}catch(e){console.error(e)}return t}const Vl="core/xref",Jl={"web-platform":["HTML","INFRA","URL","WEBIDL","DOM","FETCH"]},Kl="https://respec.org/xref/",Zl=[];if(!document.querySelector("link[rel='preconnect'][href='https://respec.org']")){const e=Ar({hint:"preconnect",href:"https://respec.org"});document.head.appendChild(e)}function Yl(e){const t="xrefType"in e.dataset;let n=Xl(e,{isIDL:t});t||(n=n.toLowerCase());const r=function(e){const t=[];let n=e.closest("[data-cite]");for(;n;){const r=(n.dataset.cite??"").toLowerCase().replace(/[!?]/g,"").split(/\s+/).filter((e=>e));if(r.length){t.push(r);const e=eu(r);e.length&&t.push(e)}if(n===e)break;n=n.parentElement?.closest("[data-cite]")??null}if(n!==e){const n=e.closest("section"),r=n?n.querySelectorAll("a.bibref"):[],s=[...new Set([...r].map((e=>e.textContent.toLowerCase())))];if(s.length){t.push(s);const e=eu(s);e.length&&t.push(e)}}const r=function(e){const t=[],n=new Set;for(const r of e){const e=[...new Set(r).values().filter((e=>!n.has(e)))];e.forEach((e=>n.add(e))),t.push(e.sort())}return t}(t);return r}(e),s=function(e,t){if(t)return e.dataset.xrefType?e.dataset.xrefType.split("|"):["_IDL_"];return["_CONCEPT_"]}(e,t),i=function(e,t){if(e.dataset.xrefFor)return Mr(e.dataset.xrefFor);if(t){const t=e.closest("[data-xref-for]");if(t)return Mr(t.dataset.xrefFor??"")}return null}(e,t);return{id:"",term:n,types:s,...r.length&&{specs:r},..."string"==typeof i&&{for:i}}}function Xl(e,{isIDL:t=!1}={}){const{lt:n}=e.dataset;let r=n?n.split("|",1)[0]:e.textContent;return r=Mr(r),"the-empty-string"===r?"":(t||n||(r=r.replace(Cr,"")),r)}function Ql(e){return e.replace(/-\d+$/,"")}function eu(e){return[...new Set(e.map(Ql)).difference(new Set(e))]}function tu(e,t,n,r){const{term:s,specs:i=[]}=t,{uri:o,shortname:a,spec:c,normative:l,type:u,for:d}=n,p=i.flat().includes(c)?c:a,h=new URL(o,"https://partial");let{pathname:f}=h;"/"===f&&(f="");const m={cite:p,citePath:f,citeFrag:h.hash.slice(1),linkType:u};d&&(m.linkFor=d[0]),h.origin&&"https://partial"!==h.origin&&(m.citeHref=h.href),Object.assign(e.dataset,m),function(e,t,n,r,s){const i=function(e){const t=e.closest(".normative"),n=e.closest(Lr);return!n||e===t||t&&n&&n.contains(t)}(e);if(!i)return void(s.normativeReferences.has(t)||s.informativeReferences.add(t));if(n){const e=s.informativeReferences.has(t)?s.informativeReferences.getCanonicalKey(t)??t:t;return s.normativeReferences.add(e),void s.informativeReferences.delete(e)}Zl.push({term:r,spec:t,element:e})}(e,p,l,s,r)}function nu(e){const t=JSON.stringify(e,Object.keys(e).sort()),n=(new TextEncoder).encode(t);return crypto.subtle.digest("SHA-1",n).then(ru)}function ru(e){const t=new Uint8Array(e);return t.toHex?.()??[...t].map((e=>e.toString(16).padStart(2,"0"))).join("")}function su(e){const t=e.querySelectorAll("a[data-xref-for], a[data-xref-type], a[data-link-for]"),n=["data-xref-for","data-xref-type","data-link-for"];t.forEach((e=>{n.forEach((t=>e.removeAttribute(t)))}))}var iu=Object.freeze({__proto__:null,API_URL:Kl,getTermFromElement:Xl,informativeRefsInNormative:Zl,name:Vl,run:async function(e){if(!e.xref)return;const t=function(e){const t={url:new URL("search/",Kl).href,specs:null},n=Object.assign({},t);switch(Array.isArray(e)?"array":typeof e){case"boolean":break;case"string":{const t=e;t.toLowerCase()in Jl?Object.assign(n,{specs:Jl[t.toLowerCase()]}):r(t);break}case"array":Object.assign(n,{specs:e});break;case"object":{const t=e;if(Object.assign(n,t),t.profile){const e=t.profile.toLowerCase();if(e in Jl){const r=(t.specs??[]).concat(Jl[e]);Object.assign(n,{specs:r})}else r(t.profile)}break}default:{const t=ms`Expected: \`true\`, a profile name (e.g. \`"web-platform"\`), an array of spec shortnames (e.g. \`["FETCH", "DOM"]\`), or an object with \`url\`, \`specs\`, or \`profile\` properties. See ${"[xref]"}.`;cs(`Invalid value for \`xref\` configuration option. Received: "${e}".`,Vl,{hint:t})}}return n;function r(e){cs(`Invalid profile "${e}" in \`respecConfig.xref\`. Please use one of the supported profiles: ${jr(Object.keys(Jl),(e=>`"${e}"`))}.`,Vl)}}(e.xref);if(t.specs){const e=document.body.dataset.cite?document.body.dataset.cite.split(/\s+/):[];document.body.dataset.cite=e.concat(t.specs).join(" ")}const n=Il.concat(function(){const e=document.querySelectorAll(":is(a,dfn)[data-cite]:not([data-cite=''],[data-cite*='#'])"),t=document.querySelectorAll("dfn.externalDFN");return[...e].filter((e=>{if(""===e.textContent.trim())return!1;const t=e.closest("[data-cite]");return!t||""!==t.dataset.cite})).concat(...t)}());if(!n.length)return;const r=[];for(const e of n){const t=Yl(e);t.id=await nu(t),r.push(t)}const s=await async function(e,t){const n=new Set,r=e.filter((e=>!n.has(e.id)&&(n.add(e.id)&&!0))),s=await Gl(r),i=r.filter((e=>!s.get(e.id))),o=await async function(e,t){if(!e.length)return new Map;const n={method:"POST",body:JSON.stringify({queries:e}),headers:{"Content-Type":"application/json"}},r=await fetch(t,n),s=await r.json();return new Map(s.results.map((({id:e,result:t})=>[e,t])))}(i,t);o.size&&await async function(e,t){try{const n=(await Hl()).transaction(Fl,"readwrite");for(const r of e){const e=t.get(r.id);e?.length&&n.objectStore(Fl).add({query:r,result:e})}await n.done}catch(e){console.error(e)}}(r,o);return new Map([...s,...o])}(r,t.url);!function(e,t,n,r){const s={ambiguous:new Map,notFound:new Map};for(let i=0,o=e.length;i<o;i++){if(e[i].closest("[data-no-xref]"))continue;const o=e[i],a=t[i],{id:c}=a,l=n.get(c)??[];if(1===l.length)tu(o,a,l[0],r);else{const e=s[0===l.length?"notFound":"ambiguous"];e.has(c)||e.set(c,{elems:[],results:l,query:a}),e.get(c)?.elems.push(o)}}!function({ambiguous:e,notFound:t}){const n=(e,t,n=[])=>{const r=new URL(Kl);return r.searchParams.set("term",e),t.for&&r.searchParams.set("for",t.for),r.searchParams.set("types",t.types.join(",")),n.length&&r.searchParams.set("specs",n.join(",")),r.href},r=(e,t)=>ms`[See search matches for "${t}"](${e}) or ${"[Learn about this error|#error-term-not-found]"}.`;for(const{query:e,elems:s}of t.values()){const t=e.specs?[...new Set(e.specs.flat())].sort():[],i=Xl(s[0]),o=n(i,e),a=Or(t,(e=>`**[${e}]**`));let c=r(o,i);const l=s[0].parentElement?.closest("[data-cite]")??null,u=l?.dataset.cite?.replace(/`/g,"")??"";l&&l!==document.body&&u&&(c+=` A parent element has \`data-cite="${u}"\` — check that the spec shortname is correct.`);cs(`Couldn't find "**${i}**"${e.for?`, for **"${e.for}"**, `:""} in this document or other cited documents: ${a}.`,Vl,{title:"No matching definition found.",elements:s,hint:c})}for(const{query:t,elems:s,results:i}of e.values()){const e=[...new Set(i.map((e=>e.shortname)))].sort(),o=Or(e,(e=>`**[${e}]**`)),a=Xl(s[0]),c=n(a,t,e),l=t.for?`, for **"${t.for}"**, `:"",u=r(c,a),d=ms`To fix, use the ${"[data-cite]"} attribute to pick the one you mean from the appropriate specification.`+String.raw` ${u}`;cs(`The term "**${a}**"${l} is ambiguous because it's defined in ${o}.`,Vl,{title:"Definition is ambiguous.",elements:s,hint:d})}}(s)}(n,r,s,e),ws("beforesave",su)}});const ou="headings",au=864e5;async function cu(){return await dr.openDB("respec-headings",1,{upgrade(e){[...e.objectStoreNames].forEach((t=>e.deleteObjectStore(t))),e.createObjectStore(ou)}})}async function lu(e){const t=new Map;if(function(){const e=parseInt(localStorage.getItem("HEADINGS:LAST_CACHED")??"",10);return!isNaN(e)&&Date.now()-e>au}())return await async function(){try{const e=await cu();await e.clear(ou),localStorage.removeItem("HEADINGS:LAST_CACHED")}catch(e){console.error(e)}}(),t;try{const n=(await cu()).transaction(ou);for(const r of e){const e=`${r.spec}#${r.id}`,s=await n.store.get(e);s&&t.set(e,s.result)}}catch(e){console.error(e)}return t}const uu="core/xref-headings",du="https://respec.org/xref/search/headings";async function pu(e,t=du){if(!e.length)return new Map;const n=await lu(e),r=e.filter((e=>!n.has(`${e.spec}#${e.id}`)));if(!r.length)return n;try{const e=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({queries:r})});if(!e.ok){const t=`Failed to fetch heading texts (HTTP ${e.status}).`;return ls(t,uu,{hint:"Cross-spec section links will fall back to spec titles."}),n}const{result:s=[]}=await e.json(),i=new Map(s.filter((e=>!e.error)).map((e=>[`${e.spec}#${e.id}`,{title:e.title,number:e.number||null}])));return await async function(e,t){try{const n=(await cu()).transaction(ou,"readwrite");for(const r of e){const e=`${r.spec}#${r.id}`,s=t.get(e);s&&n.objectStore(ou).put({query:r,result:s},e)}await n.done,localStorage.setItem("HEADINGS:LAST_CACHED",Date.now().toString())}catch(e){console.error(e)}}(r,i),new Map([...n,...i])}catch{return ls("Failed to fetch heading texts from respec.org.",uu,{hint:"Cross-spec section links will fall back to spec titles."}),n}}function hu(e,{title:t,number:n}){e.classList.add("sec-ref"),e.textContent="",e.append("§ "),n?e.append(ur`<bdi class="secno">${n} </bdi>`,t):e.append(t)}var fu=Object.freeze({__proto__:null,HEADINGS_API_URL:du,fetchHeadingTexts:pu,name:uu,run:async function(e){const t=document.querySelectorAll("a[data-cite-frag][data-matched-text]");if(!t.length)return;const n=function(e){const t="object"!=typeof e.xref||null===e.xref||Array.isArray(e.xref)?{}:e.xref;return"string"==typeof t.headingApiUrl?t.headingApiUrl:du}(e),r=new Map,s=[];if(t.forEach((e=>{if(e.dataset.lt)uc(e,e.dataset.lt),delete e.dataset.lt;else{const t=(e.dataset.cite??"").replace(/^[!?]/,""),n=e.dataset.citeFrag??"",i=`${t}#${n}`;s.push({elem:e,key:i}),r.has(i)||r.set(i,{spec:t,id:n})}})),!s.length)return;const i=await pu([...r.values()],n);s.forEach((({elem:e,key:t})=>{const n=i.get(t);n?.title&&hu(e,n)}))},setHeadingContent:hu});var mu=String.raw`ul.index{columns:30ch;column-gap:1.5em}
1077
+ >`}}switch(r.type){case"text":return kl`<span class="cddl-str">${zr(i)}</span>`;case"number":case"float":return kl`<span class="cddl-num">${zr(i)}</span>`;case"bytes":case"hex":case"base64":return kl`<span class="cddl-bytes">${zr(i)}</span>`;default:return zr(i)}}#i(e){const t=e.parentNode;return!!t&&t instanceof $r}serializeToken(e,t){const n=e.type,r=e.serialize();switch(n){case"COMMENT":return this.#o(r);case"CTLOP":return this.#a(r);case"=":case"/=":case"//=":case"/":case"//":case"=>":case"..":case"...":return this.#c(r);case"?":case"*":case"+":return t instanceof xr?this.#l(r):r;default:return r}}#o(e){return e.replace(/(;[^\n]*)/g,'<span class="cddl-comment">$1</span>')}#a(e){return e.replace(/(\.\w+)/g,'<span class="cddl-ctrl">$1</span>')}#c(e){const t=e.match(/^(\s*)(.*?)(\s*)$/s);return t?`${t[1]}<span class="cddl-op">${t[2]}</span>${t[3]}`:kl`<span class="cddl-op">${e}</span>`}#l(e){const t=e.match(/^(\s*)(.*?)(\s*)$/s);return t?`${t[1]}<span class="cddl-occ">${t[2]}</span>${t[3]}`:kl`<span class="cddl-occ">${e}</span>`}}var xl=Object.freeze({__proto__:null,name:bl,run:async function(){const e=document.querySelectorAll("pre.cddl:not([data-no-cddl])");if(!e.length)return;const t=document.createElement("style");t.textContent=gl;const n=document.querySelector("head link, head > *:last-child");n?n.before(t):document.head.append(t);const r=e=>new gr(e).parse(),s={definitions:new Map,proseDfns:new Set,genericParams:new Map};var i,o,a,c;i=document,o=s.proseDfns,i.querySelectorAll("dfn[cddl-type], dfn[cddl-key], dfn[cddl-value]").forEach((e=>{const t=["cddl-type","cddl-key","cddl-value"].find((t=>e.hasAttribute(t)));e.dataset.dfnType=t,e.removeAttribute(t);const n=e.getAttribute("for");n&&(e.dataset.dfnFor=n,e.removeAttribute("for"));const r=e.textContent.trim(),s=n?`${wl(n)}-`:"",i=`cddl-${t.replace("cddl-","")}-${s}${wl(r)}`;e.id||=i,o.add(e.id),wc(e,[r])})),e.forEach((e=>function(e,t,n){const r=e.textContent;if(r.trim())try{const s=t(r),i=new $l(n),o=s.serialize(i),a=document.createElement("code");a.innerHTML=o,e.textContent="",e.append(a),e.classList.add("def","highlight"),Vr(e,"cddl-block");const c=document.createElement("span");c.className="cddlHeader",c.innerHTML=`<a class="self-link" href="#${e.id}">CDDL</a>`;const l=Qc(".cddlHeader");c.append(l),e.prepend(c)}catch(t){cs(`CDDL processing error: ${t instanceof Error?t.message:String(t)}`,bl,{elements:[e],hint:'Check the CDDL syntax in the `<pre class="cddl">` block.'})}}(e,r,s))),a=document.body,c=s.definitions,a.querySelectorAll("[data-cddl-pending]").forEach((e=>{const t=`cddl-type:${e.dataset.cddlPending}`;if(c.has(t)){const n=c.get(t);if(!n)return;const r=a.ownerDocument.createElement("a");r.href=`#${n.id}`,r.className="cddl-name",r.dataset.linkType="cddl-type",r.textContent=e.textContent,e.replaceWith(r)}})),document.querySelectorAll("[data-cddl-pending]").forEach((e=>{ls(`No CDDL definition found for \`${e.getAttribute("data-cddl-pending")}\`.`,bl,{elements:[e],hint:"Check for typos in the type name."})})),function(e,t){e.querySelectorAll('a[data-link-type^="cddl-"]:not([href]):not([data-cite])').forEach((e=>{const n=e.getAttribute("data-link-type"),r=e.getAttribute("data-xref-for")||e.getAttribute("data-link-for")||"",s=e.textContent.trim();if("cddl-type"!==n&&"cddl-key"!==n&&"cddl-value"!==n)return;const i={"cddl-type":`cddl-type:${s}`,"cddl-key":`cddl-key:${r}/${s}`,"cddl-value":`cddl-value:${r}/${s}`}[n];if(t.has(i)){const n=t.get(i);if(!n)return;e.setAttribute("href",`#${n.id}`),e.classList.add("internalDFN")}else ls(`CDDL ${n}: no definition found for \`${s}\`${r?`, for \`${r}\`,`:""} in any \`<pre class="cddl">\` block.`,bl,{elements:[e]}),e.setAttribute("data-no-link-to-dfn","")}))}(document,s.definitions),function(e,t){t.forEach((t=>{const n=e.getElementById(t.id);"dfn"===n?.localName&&wc(n,[n.textContent.trim()])}))}(document,s.definitions),el(),ws("beforesave",(e=>{e.querySelectorAll("[data-cddl-pending]").forEach((e=>e.removeAttribute("data-cddl-pending")))}))}});const Cl="core/data-cite",Sl="__SPEC__";async function _l(e){const{key:t,frag:n,path:r,href:s}=e;let i,o="";if(t===Sl)i=document.location.href;else{const e=await Ea(t);if(!e)return null;i=e.href??"",o=e.title}if(s)i=s;else{if(r){const e=r.startsWith("/")?`.${r}`:r;i=new URL(e,i).href}n&&(i=new URL(n,i).href)}return{href:i,title:o}}function Tl(e,t,n){const{href:r,title:s}=t,i=!n.path&&!n.frag;switch(e.localName){case"a":{const t=e;if(""===t.textContent&&"the-empty-string"!==t.dataset.lt&&(t.textContent=s),t.href=r,i){const e=document.createElement("cite");t.replaceWith(e),e.append(t)}break}case"dfn":{const t=document.createElement("a");if(t.href=r,t.dataset.cite=n.key,t.dataset.citePath=n.path,t.dataset.citeFrag=n.frag,e.textContent?Qr(e,t):(t.textContent=s,e.append(t)),i){const n=document.createElement("cite");n.append(t),e.append(n)}if("export"in e.dataset){cs("Exporting a linked external definition is not allowed.",Cl,{hint:"Please remove the `data-export` attribute.",elements:[e]}),delete e.dataset.export}e.classList.add("externalDFN"),e.dataset.noExport="";break}}}function Rl(e){return t=>{const n=t.search(e);return-1!==n?t.substring(n):""}}const El=Rl("#"),Ll=Rl("/");function Al(e){const{dataset:t}=e,{cite:n,citeFrag:r,citePath:s,citeHref:i}=t;if((n??"").startsWith("#")&&!r){const r=e.parentElement?.closest('[data-cite]:not([data-cite^="#"])')??null,{key:s,isNormative:i}=r?Al(r):{key:Sl,isNormative:!1};return t.cite=i?s:`?${s}`,t.citeFrag=(n??"").replace("#",""),Al(e)}const o=r?`#${r}`:El(n??""),a=s||Ll(n??"").split("#")[0],{type:c}=Xr(n??"",e),l="normative"===c,u=/^[?|!]/.test(n??"");return{key:(n??"").split(/[/|#]/)[0].substring(Number(u)),isNormative:l,frag:o,path:a,href:i}}function Pl(e){const t=["data-cite","data-cite-frag","data-cite-path"];e.querySelectorAll("a[data-cite], dfn[data-cite]").forEach((e=>t.forEach((t=>e.removeAttribute(t)))))}var Nl=Object.freeze({__proto__:null,THIS_SPEC:Sl,name:Cl,run:async function(){const e=document.querySelectorAll("dfn[data-cite]:not([data-cite='']), a[data-cite]:not([data-cite=''])");await async function(e){const t=e.map(Al).map((async e=>({entry:e,result:await Ea(e.key)}))),n=(await Promise.all(t)).filter((({result:e})=>null===e)).map((({entry:{key:e}})=>e)),r=await Ra(n);r&&Object.assign(xa,r)}([...e]);const t=new Map,n=new Map;for(const r of e){t.set(r,r.dataset.cite);const e=Al(r);n.set(r,e)}for(const r of e){const e=t.get(r),s=n.get(r),i=await _l(s);if(i)r.dataset.citeFrag&&r.dataset.matchedText||!r.dataset.lt||"the-empty-string"===r.dataset.lt||""!==r.textContent||(dc(r,r.dataset.lt),delete r.dataset.lt),Tl(r,i,s);else{const t=`Couldn't find a match for "${e}"`;r.dataset.matchedText&&(r.textContent=r.dataset.matchedText),ls(t,Cl,{elements:[r]})}}ws("beforesave",Pl)},toCiteDetails:Al});const Il="core/link-to-dfn",Dl=[],Ol={en:{duplicateMsg:e=>`Duplicate definition(s) of '${e}'`,duplicateTitle:"This is defined more than once in the document."},ja:{duplicateMsg:e=>`'${e}' の重複定義`,duplicateTitle:"この文書内で複数回定義されています."},de:{duplicateMsg:e=>`Mehrfache Definition von '${e}'`,duplicateTitle:"Das Dokument enthält mehrere Definitionen dieses Eintrags."},zh:{duplicateMsg:e=>`'${e}' 的重复定义`,duplicateTitle:"在文档中有重复的定义。"},cs:{duplicateMsg:e=>`Duplicitní definice '${e}'`,duplicateTitle:"Toto je v dokumentu definováno vícekrát."}},jl=Ur(Ol);function zl(e){const t=new Map,n=[];for(const r of yc.get(e)??[]){const{dfnType:s="dfn"}=r.dataset,i=r.dataset.dfnFor?.split(",").map((e=>e.trim()))??[""];for(const o of i){if(t.has(o)&&t.get(o)?.has(s)){const e=t.get(o)?.get(s),i="dfn"===e?.localName,a="dfn"===r.localName,c=s===(e?.dataset.dfnType||"dfn"),l=!o&&!e?.dataset.dfnFor||e?.dataset.dfnFor?.split(",").map((e=>e.trim())).includes(o);if(i&&a&&c&&l){n.push(r);continue}}t.has(o)||t.set(o,new Map),t.get(o)?.set(s,r),("idl"in r.dataset||"dfn"!==s)&&t.get(o)?.set("idl",r),Kr(r,"dfn",e)}}return{result:t,duplicates:n}}function Ml(e,t){const n=function(e){const t=e.closest("[data-link-for]"),n=t?t.dataset.linkFor??"":"",r=Zr(e).reduce(((e,r)=>{const s=r.split(".");2===s.length&&e.push({for:s[0],title:s[1]}),e.push({for:n,title:r}),t||e.push({for:r,title:r}),""!==n&&e.push({for:"",title:r});const i=r.replace(Cr,"");return i!==r&&""!==i&&(e.push({for:n,title:i}),t||e.push({for:i,title:i}),""!==n&&e.push({for:"",title:i})),e}),[]);return r}(e),r=n.find((e=>t.has(e.title)&&t.get(e.title)?.has(e.for)));if(!r)return;const s=t.get(r.title)?.get(r.for),{linkType:i}=e.dataset;if(i){for(const e of i.split("|"))if(s?.get(e))return s.get(e);return s?.get("dfn")}{const e=r.for?"idl":"dfn";return s?.get(e)||s?.get("idl")}}function Ul(e,t,n){let r=!1;const{linkFor:s}=e.dataset,{dfnFor:i}=t.dataset;if(t.dataset.cite)e.dataset.cite=t.dataset.cite;else if(s&&!n.get(s)&&i&&!i.split(",").map((e=>e.trim())).includes(s))r=!0;else if(t.classList.contains("externalDFN")){const n=t.dataset.lt?t.dataset.lt.split("|"):[];e.dataset.lt=n[0]||t.textContent,r=!0}else"partial"!==e.dataset.idl?(e.href=`#${t.id}`,e.classList.add("internalDFN")):r=!0;return e.hasAttribute("data-link-type")||(e.dataset.linkType="idl"in t.dataset?"idl":"dfn"),function(e){if(e.closest("code,pre"))return!0;if(1!==e.childNodes.length)return!1;const[t]=e.childNodes;return"code"===t.localName}(t)&&function(e,t){const n=e.textContent.trim(),r=t.dataset.hasOwnProperty("idl"),s=ql(e)&&ql(t,n);r&&!s||Qr(e,document.createElement("code"))}(e,t),!r}function ql(e,t=""){if("a"===e.localName){if(!e.querySelector("code"))return!0}else{const{dataset:n}=e;if(e.textContent.trim()===t)return!0;if(n.title===t)return!0;if(n.lt||n.localLt){const e=[];return n.lt&&e.push(...n.lt.split("|")),n.localLt&&e.push(...n.localLt.split("|")),e.includes(t)}}return!1}function Wl(e){e.forEach((e=>{const t=`Found linkless \`<a>\` element with text "${e.textContent}" but no matching \`<dfn>\``,n=e.closest("[data-link-for]"),r=`Add a matching \`<dfn>\` element, ${ms`use ${"[data-cite]"} to link to an external definition, or enable ${"[xref]"} for automatic cross-spec linking.`}${n?` This link is inside a \`data-link-for="${n.dataset.linkFor}"\` section — \`[=term=]\` links are scoped to that context. To link to a global concept instead, either add \`data-link-for=""\` on this \`<a>\` or move it outside the scoped section.`:""}`;ls(t,Il,{title:"Linking error: no matching `<dfn>`",hint:r,elements:[e]})}))}var Fl=Object.freeze({__proto__:null,name:Il,possibleExternalLinks:Dl,run:async function(e){const t=function(){const e=new os;for(const t of yc.keys()){const{result:n,duplicates:r}=zl(t);e.set(t,n),r.length>0&&cs(jl.duplicateMsg(t),Il,{title:jl.duplicateTitle,elements:r})}return e}(),n=[],r=document.querySelectorAll("a[data-cite='']:not([data-no-link-to-dfn]), a:not([href]):not([data-cite]):not([data-no-link-to-dfn]):not(.logo):not(.externalDFN)");for(const e of r){if(!e.dataset?.linkType&&e.dataset?.xrefType){Dl.push(e);continue}const r=Ml(e,t);if(r){Ul(e,r,t)||Dl.push(e)}else""===e.dataset.cite?n.push(e):Dl.push(e)}Wl(n),function(e){const{shortName:t=""}=e,n=t?new RegExp(String.raw`^([?!])?${_r(t)}\b([^-])`,"i"):null,r=document.querySelectorAll("dfn[data-cite]:not([data-cite='']), a[data-cite]:not([data-cite=''])");for(const t of r){n&&(t.dataset.cite=(t.dataset.cite??"").replace(n,`$1${Sl}$2`));const{key:r,isNormative:s}=Al(t);r!==Sl&&(s||e.normativeReferences.has(r)?(e.normativeReferences.add(r),e.informativeReferences.delete(r)):e.informativeReferences.add(r))}}(e),e.xref||Wl(Dl)}});const Bl="xrefs",Hl=3e5;async function Gl(){return await dr.openDB("xref",2,{upgrade(e){[...e.objectStoreNames].forEach((t=>e.deleteObjectStore(t)));e.createObjectStore(Bl,{keyPath:"query.id"}).createIndex("byTerm","query.term",{unique:!1})}})}async function Vl(e){const t=new Map;if(await async function(){const e="XREF:LAST_VERSION_CHECK",t=parseInt(localStorage.getItem(e)??"",10),n=Date.now();if(!t)return localStorage.setItem(e,n.toString()),!1;if(n-t<Hl)return!1;const r=new URL("meta/version",Zl).href,s=await fetch(r);if(!s.ok)return!1;const i=await s.text();return localStorage.setItem(e,n.toString()),parseInt(i,10)>t}())return await async function(){try{await Gl().then((e=>e.clear(Bl)))}catch(e){console.error(e)}}(),t;const n=new Set(e.map((e=>e.id)));try{const e=await Gl();let r=await e.transaction(Bl).store.openCursor();for(;r;)n.has(r.key)&&t.set(r.key,r.value.result),r=await r.continue()}catch(e){console.error(e)}return t}const Jl="core/xref",Kl={"web-platform":["HTML","INFRA","URL","WEBIDL","DOM","FETCH"]},Zl="https://respec.org/xref/",Yl=[];if(!document.querySelector("link[rel='preconnect'][href='https://respec.org']")){const e=Ar({hint:"preconnect",href:"https://respec.org"});document.head.appendChild(e)}function Xl(e){const t="xrefType"in e.dataset;let n=Ql(e,{isIDL:t});t||(n=n.toLowerCase());const r=function(e){const t=[];let n=e.closest("[data-cite]");for(;n;){const r=(n.dataset.cite??"").toLowerCase().replace(/[!?]/g,"").split(/\s+/).filter((e=>e));if(r.length){t.push(r);const e=tu(r);e.length&&t.push(e)}if(n===e)break;n=n.parentElement?.closest("[data-cite]")??null}if(n!==e){const n=e.closest("section"),r=n?n.querySelectorAll("a.bibref"):[],s=[...new Set([...r].map((e=>e.textContent.toLowerCase())))];if(s.length){t.push(s);const e=tu(s);e.length&&t.push(e)}}const r=function(e){const t=[],n=new Set;for(const r of e){const e=[...new Set(r).values().filter((e=>!n.has(e)))];e.forEach((e=>n.add(e))),t.push(e.sort())}return t}(t);return r}(e),s=function(e,t){if(t)return e.dataset.xrefType?e.dataset.xrefType.split("|"):["_IDL_"];return["_CONCEPT_"]}(e,t),i=function(e,t){if(e.dataset.xrefFor)return Mr(e.dataset.xrefFor);if(t){const t=e.closest("[data-xref-for]");if(t)return Mr(t.dataset.xrefFor??"")}return null}(e,t);return{id:"",term:n,types:s,...r.length&&{specs:r},..."string"==typeof i&&{for:i}}}function Ql(e,{isIDL:t=!1}={}){const{lt:n}=e.dataset;let r=n?n.split("|",1)[0]:e.textContent;return r=Mr(r),"the-empty-string"===r?"":(t||n||(r=r.replace(Cr,"")),r)}function eu(e){return e.replace(/-\d+$/,"")}function tu(e){return[...new Set(e.map(eu)).difference(new Set(e))]}function nu(e,t,n,r){const{term:s,specs:i=[]}=t,{uri:o,shortname:a,spec:c,normative:l,type:u,for:d}=n,p=i.flat().includes(c)?c:a,h=new URL(o,"https://partial");let{pathname:f}=h;"/"===f&&(f="");const m={cite:p,citePath:f,citeFrag:h.hash.slice(1),linkType:u};d&&(m.linkFor=d[0]),h.origin&&"https://partial"!==h.origin&&(m.citeHref=h.href),Object.assign(e.dataset,m),function(e,t,n,r,s){const i=function(e){const t=e.closest(".normative"),n=e.closest(Lr);return!n||e===t||t&&n&&n.contains(t)}(e);if(!i)return void(s.normativeReferences.has(t)||s.informativeReferences.add(t));if(n){const e=s.informativeReferences.has(t)?s.informativeReferences.getCanonicalKey(t)??t:t;return s.normativeReferences.add(e),void s.informativeReferences.delete(e)}Yl.push({term:r,spec:t,element:e})}(e,p,l,s,r)}function ru(e){const t=JSON.stringify(e,Object.keys(e).sort()),n=(new TextEncoder).encode(t);return crypto.subtle.digest("SHA-1",n).then(su)}function su(e){const t=new Uint8Array(e);return t.toHex?.()??[...t].map((e=>e.toString(16).padStart(2,"0"))).join("")}function iu(e){const t=e.querySelectorAll("a[data-xref-for], a[data-xref-type], a[data-link-for]"),n=["data-xref-for","data-xref-type","data-link-for"];t.forEach((e=>{n.forEach((t=>e.removeAttribute(t)))}))}var ou=Object.freeze({__proto__:null,API_URL:Zl,getTermFromElement:Ql,informativeRefsInNormative:Yl,name:Jl,run:async function(e){if(!e.xref)return;const t=function(e){const t={url:new URL("search/",Zl).href,specs:null},n=Object.assign({},t);switch(Array.isArray(e)?"array":typeof e){case"boolean":break;case"string":{const t=e;t.toLowerCase()in Kl?Object.assign(n,{specs:Kl[t.toLowerCase()]}):r(t);break}case"array":Object.assign(n,{specs:e});break;case"object":{const t=e;if(Object.assign(n,t),t.profile){const e=t.profile.toLowerCase();if(e in Kl){const r=(t.specs??[]).concat(Kl[e]);Object.assign(n,{specs:r})}else r(t.profile)}break}default:{const t=ms`Expected: \`true\`, a profile name (e.g. \`"web-platform"\`), an array of spec shortnames (e.g. \`["FETCH", "DOM"]\`), or an object with \`url\`, \`specs\`, or \`profile\` properties. See ${"[xref]"}.`;cs(`Invalid value for \`xref\` configuration option. Received: "${e}".`,Jl,{hint:t})}}return n;function r(e){cs(`Invalid profile "${e}" in \`respecConfig.xref\`. Please use one of the supported profiles: ${jr(Object.keys(Kl),(e=>`"${e}"`))}.`,Jl)}}(e.xref);if(t.specs){const e=document.body.dataset.cite?document.body.dataset.cite.split(/\s+/):[];document.body.dataset.cite=e.concat(t.specs).join(" ")}const n=Dl.concat(function(){const e=document.querySelectorAll(":is(a,dfn)[data-cite]:not([data-cite=''],[data-cite*='#'])"),t=document.querySelectorAll("dfn.externalDFN");return[...e].filter((e=>{if(""===e.textContent.trim())return!1;const t=e.closest("[data-cite]");return!t||""!==t.dataset.cite})).concat(...t)}());if(!n.length)return;const r=[];for(const e of n){const t=Xl(e);t.id=await ru(t),r.push(t)}const s=await async function(e,t){const n=new Set,r=e.filter((e=>!n.has(e.id)&&(n.add(e.id)&&!0))),s=await Vl(r),i=r.filter((e=>!s.get(e.id))),o=await async function(e,t){if(!e.length)return new Map;const n={method:"POST",body:JSON.stringify({queries:e}),headers:{"Content-Type":"application/json"}},r=await fetch(t,n),s=await r.json();return new Map(s.results.map((({id:e,result:t})=>[e,t])))}(i,t);o.size&&await async function(e,t){try{const n=(await Gl()).transaction(Bl,"readwrite");for(const r of e){const e=t.get(r.id);e?.length&&n.objectStore(Bl).add({query:r,result:e})}await n.done}catch(e){console.error(e)}}(r,o);return new Map([...s,...o])}(r,t.url);!function(e,t,n,r){const s={ambiguous:new Map,notFound:new Map};for(let i=0,o=e.length;i<o;i++){if(e[i].closest("[data-no-xref]"))continue;const o=e[i],a=t[i],{id:c}=a,l=n.get(c)??[];if(1===l.length)nu(o,a,l[0],r);else{const e=s[0===l.length?"notFound":"ambiguous"];e.has(c)||e.set(c,{elems:[],results:l,query:a}),e.get(c)?.elems.push(o)}}!function({ambiguous:e,notFound:t}){const n=(e,t,n=[])=>{const r=new URL(Zl);return r.searchParams.set("term",e),t.for&&r.searchParams.set("for",t.for),r.searchParams.set("types",t.types.join(",")),n.length&&r.searchParams.set("specs",n.join(",")),r.href},r=(e,t)=>ms`[See search matches for "${t}"](${e}) or ${"[Learn about this error|#error-term-not-found]"}.`;for(const{query:e,elems:s}of t.values()){const t=e.specs?[...new Set(e.specs.flat())].sort():[],i=Ql(s[0]),o=n(i,e),a=Or(t,(e=>`**[${e}]**`));let c=r(o,i);const l=s[0].parentElement?.closest("[data-cite]")??null,u=l?.dataset.cite?.replace(/`/g,"")??"";l&&l!==document.body&&u&&(c+=` A parent element has \`data-cite="${u}"\` — check that the spec shortname is correct.`);cs(`Couldn't find "**${i}**"${e.for?`, for **"${e.for}"**, `:""} in this document or other cited documents: ${a}.`,Jl,{title:"No matching definition found.",elements:s,hint:c})}for(const{query:t,elems:s,results:i}of e.values()){const e=[...new Set(i.map((e=>e.shortname)))].sort(),o=Or(e,(e=>`**[${e}]**`)),a=Ql(s[0]),c=n(a,t,e),l=t.for?`, for **"${t.for}"**, `:"",u=r(c,a),d=ms`To fix, use the ${"[data-cite]"} attribute to pick the one you mean from the appropriate specification.`+String.raw` ${u}`;cs(`The term "**${a}**"${l} is ambiguous because it's defined in ${o}.`,Jl,{title:"Definition is ambiguous.",elements:s,hint:d})}}(s)}(n,r,s,e),ws("beforesave",iu)}});const au="headings",cu=864e5;async function lu(){return await dr.openDB("respec-headings",1,{upgrade(e){[...e.objectStoreNames].forEach((t=>e.deleteObjectStore(t))),e.createObjectStore(au)}})}async function uu(e){const t=new Map;if(function(){const e=parseInt(localStorage.getItem("HEADINGS:LAST_CACHED")??"",10);return!isNaN(e)&&Date.now()-e>cu}())return await async function(){try{const e=await lu();await e.clear(au),localStorage.removeItem("HEADINGS:LAST_CACHED")}catch(e){console.error(e)}}(),t;try{const n=(await lu()).transaction(au);for(const r of e){const e=`${r.spec}#${r.id}`,s=await n.store.get(e);s&&t.set(e,s.result)}}catch(e){console.error(e)}return t}const du="core/xref-headings",pu="https://respec.org/xref/search/headings";async function hu(e,t=pu){if(!e.length)return new Map;const n=await uu(e),r=e.filter((e=>!n.has(`${e.spec}#${e.id}`)));if(!r.length)return n;try{const e=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({queries:r})});if(!e.ok){const t=`Failed to fetch heading texts (HTTP ${e.status}).`;return ls(t,du,{hint:"Cross-spec section links will fall back to spec titles."}),n}const{result:s=[]}=await e.json(),i=new Map(s.filter((e=>!e.error)).map((e=>[`${e.spec}#${e.id}`,{title:e.title,number:e.number||null}])));return await async function(e,t){try{const n=(await lu()).transaction(au,"readwrite");for(const r of e){const e=`${r.spec}#${r.id}`,s=t.get(e);s&&n.objectStore(au).put({query:r,result:s},e)}await n.done,localStorage.setItem("HEADINGS:LAST_CACHED",Date.now().toString())}catch(e){console.error(e)}}(r,i),new Map([...n,...i])}catch{return ls("Failed to fetch heading texts from respec.org.",du,{hint:"Cross-spec section links will fall back to spec titles."}),n}}function fu(e,{title:t,number:n}){e.classList.add("sec-ref"),e.textContent="",e.append("§ "),n?e.append(ur`<bdi class="secno">${n} </bdi>`,t):e.append(t)}var mu=Object.freeze({__proto__:null,HEADINGS_API_URL:pu,fetchHeadingTexts:hu,name:du,run:async function(e){const t=document.querySelectorAll("a[data-cite-frag][data-matched-text]");if(!t.length)return;const n=function(e){const t="object"!=typeof e.xref||null===e.xref||Array.isArray(e.xref)?{}:e.xref;return"string"==typeof t.headingApiUrl?t.headingApiUrl:pu}(e),r=new Map,s=[];if(t.forEach((e=>{if(e.dataset.lt)dc(e,e.dataset.lt),delete e.dataset.lt;else{const t=(e.dataset.cite??"").replace(/^[!?]/,""),n=e.dataset.citeFrag??"",i=`${t}#${n}`;s.push({elem:e,key:i}),r.has(i)||r.set(i,{spec:t,id:n})}})),!s.length)return;const i=await hu([...r.values()],n);s.forEach((({elem:e,key:t})=>{const n=i.get(t);n?.title&&fu(e,n)}))},setHeadingContent:fu});var gu=String.raw`ul.index{columns:30ch;column-gap:1.5em}
1079
1078
  ul.index li{list-style:inherit}
1080
1079
  ul.index li span{color:inherit;cursor:pointer;white-space:normal}
1081
1080
  #index-defined-here ul.index li{font-size:.9rem}
@@ -1083,37 +1082,37 @@ ul.index code{color:inherit}
1083
1082
  #index-defined-here .print-only{display:none}
1084
1083
  @media print{
1085
1084
  #index-defined-here .print-only{display:initial}
1086
- }`;const gu=Ur({en:{heading:"Index",headingExternal:"Terms defined by reference",headingLocal:"Terms defined by this specification",dfnOf:"definition of",definesFollowing:"defines the following:"},cs:{heading:"Glosář",headingExternal:"Termíny definované odkazem",headingLocal:"Termíny definované touto specifikací",dfnOf:"definice",definesFollowing:"definuje následující:"},de:{heading:"Index",headingExternal:"Begriffe, die durch Verweis definiert sind",headingLocal:"Begriffe, die in dieser Spezifikation definiert sind",dfnOf:"Definition von",definesFollowing:"definiert Folgendes:"},es:{heading:"Índice",headingExternal:"Términos definidos por referencia",headingLocal:"Términos definidos por esta especificación",dfnOf:"definición de",definesFollowing:"define lo siguiente:"},ja:{heading:"索引",headingExternal:"参照によって定義された用語",headingLocal:"この仕様で定義された用語",dfnOf:"の定義",definesFollowing:"以下を定義します:"},ko:{heading:"색인",headingExternal:"참조로 정의된 용어",headingLocal:"이 명세서에서 정의된 용어",dfnOf:"정의",definesFollowing:"다음을 정의합니다:"},nl:{heading:"Index",headingExternal:"Termen gedefinieerd door verwijzing",headingLocal:"Termen gedefinieerd door deze specificatie",dfnOf:"definitie van",definesFollowing:"definieert het volgende:"},zh:{heading:"索引",headingExternal:"通过引用定义的术语",headingLocal:"由本规范定义的术语",dfnOf:"的定义",definesFollowing:"定义以下内容:"}}),bu=new Set(["attribute","callback","dict-member","dictionary","element-attr","element","enum-value","enum","exception","extended-attribute","interface","method","typedef"]);function yu(e){const t=e.dataset,n=t.dfnType||t.idl||t.linkType||"";switch(n){case"":case"dfn":return"";default:return n}}function wu(e){const t=e.closest("[data-dfn-for]:not([data-dfn-for=''])");return t?.dataset.dfnFor||""}function vu(e,t,n=""){if(n.startsWith("[[")){return`internal slot for <code>${wu(e)}</code>`}switch(t){case"dict-member":case"method":case"attribute":case"enum-value":return`${"dict-member"===t?"member":t.replace("-"," ")} for <code>${wu(e)}</code>`;case"interface":case"dictionary":case"enum":return t;case"constructor":return`for <code>${wu(e)}</code>`;default:return""}}function ku(){document.querySelectorAll("#index-defined-here li[data-id]").forEach((e=>{const t=(e=>{const t=document.getElementById(e),n=t?.closest("section:not(.notoc)")?.querySelector(".secno");if(!n)return null;const r=`§${n.textContent.trim()}`;return ur`<span class="print-only">${r}</span>`})(e.dataset.id??"");t&&e.append(t)}))}function $u(){const e=new Set,t=new Map,n=document.querySelectorAll("a[data-cite]");for(const r of n){if(!r.dataset.cite)continue;const{cite:n,citeFrag:s,xrefType:i,linkType:o,matchedText:a}=r.dataset;if(s&&a)continue;if(!(i||o||n.includes("#")||s))continue;const c=r.href;if(e.has(c))continue;const{linkType:l,linkFor:u}=r.dataset,d=Xl(r);if(!d)continue;const p=Ll(r).key.toUpperCase(),h=t.get(p)||t.set(p,[]).get(p);h?.push({term:d,type:l,linkFor:u,elem:r}),e.add(c)}return t}function xu(e){const{elem:t}=e,n=function(e){const{term:t,type:n,linkFor:r}=e;let s=zr(t);bu.has(n??"")&&("extended-attribute"===n&&(s=`[${s}]`),s=`<code>${s}</code>`);const i=Su.has(t)?"type":Cu.get(n??"");i&&(s+=` ${i}`);if(r){let e=r;/\s/.test(r)||(e=`<code>${e}</code>`),"element-attr"===n&&(e+=" element"),s+=` (for ${e})`}return s}(e);return ur`<li>
1085
+ }`;const bu=Ur({en:{heading:"Index",headingExternal:"Terms defined by reference",headingLocal:"Terms defined by this specification",dfnOf:"definition of",definesFollowing:"defines the following:"},cs:{heading:"Glosář",headingExternal:"Termíny definované odkazem",headingLocal:"Termíny definované touto specifikací",dfnOf:"definice",definesFollowing:"definuje následující:"},de:{heading:"Index",headingExternal:"Begriffe, die durch Verweis definiert sind",headingLocal:"Begriffe, die in dieser Spezifikation definiert sind",dfnOf:"Definition von",definesFollowing:"definiert Folgendes:"},es:{heading:"Índice",headingExternal:"Términos definidos por referencia",headingLocal:"Términos definidos por esta especificación",dfnOf:"definición de",definesFollowing:"define lo siguiente:"},ja:{heading:"索引",headingExternal:"参照によって定義された用語",headingLocal:"この仕様で定義された用語",dfnOf:"の定義",definesFollowing:"以下を定義します:"},ko:{heading:"색인",headingExternal:"참조로 정의된 용어",headingLocal:"이 명세서에서 정의된 용어",dfnOf:"정의",definesFollowing:"다음을 정의합니다:"},nl:{heading:"Index",headingExternal:"Termen gedefinieerd door verwijzing",headingLocal:"Termen gedefinieerd door deze specificatie",dfnOf:"definitie van",definesFollowing:"definieert het volgende:"},zh:{heading:"索引",headingExternal:"通过引用定义的术语",headingLocal:"由本规范定义的术语",dfnOf:"的定义",definesFollowing:"定义以下内容:"}}),yu=new Set(["attribute","callback","dict-member","dictionary","element-attr","element","enum-value","enum","exception","extended-attribute","interface","method","typedef"]);function wu(e){const t=e.dataset,n=t.dfnType||t.idl||t.linkType||"";switch(n){case"":case"dfn":return"";default:return n}}function vu(e){const t=e.closest("[data-dfn-for]:not([data-dfn-for=''])");return t?.dataset.dfnFor||""}function ku(e,t,n=""){if(n.startsWith("[[")){return`internal slot for <code>${vu(e)}</code>`}switch(t){case"dict-member":case"method":case"attribute":case"enum-value":return`${"dict-member"===t?"member":t.replace("-"," ")} for <code>${vu(e)}</code>`;case"interface":case"dictionary":case"enum":return t;case"constructor":return`for <code>${vu(e)}</code>`;default:return""}}function $u(){document.querySelectorAll("#index-defined-here li[data-id]").forEach((e=>{const t=(e=>{const t=document.getElementById(e),n=t?.closest("section:not(.notoc)")?.querySelector(".secno");if(!n)return null;const r=`§${n.textContent.trim()}`;return ur`<span class="print-only">${r}</span>`})(e.dataset.id??"");t&&e.append(t)}))}function xu(){const e=new Set,t=new Map,n=document.querySelectorAll("a[data-cite]");for(const r of n){if(!r.dataset.cite)continue;const{cite:n,citeFrag:s,xrefType:i,linkType:o,matchedText:a}=r.dataset;if(s&&a)continue;if(!(i||o||n.includes("#")||s))continue;const c=r.href;if(e.has(c))continue;const{linkType:l,linkFor:u}=r.dataset,d=Ql(r);if(!d)continue;const p=Al(r).key.toUpperCase(),h=t.get(p)||t.set(p,[]).get(p);h?.push({term:d,type:l,linkFor:u,elem:r}),e.add(c)}return t}function Cu(e){const{elem:t}=e,n=function(e){const{term:t,type:n,linkFor:r}=e;let s=zr(t);yu.has(n??"")&&("extended-attribute"===n&&(s=`[${s}]`),s=`<code>${s}</code>`);const i=_u.has(t)?"type":Su.get(n??"");i&&(s+=` ${i}`);if(r){let e=r;/\s/.test(r)||(e=`<code>${e}</code>`),"element-attr"===n&&(e+=" element"),s+=` (for ${e})`}return s}(e);return ur`<li>
1087
1086
  <span class="index-term" data-href="${t.href}">${{html:n}}</span>
1088
- </li>`}const Cu=new Map([["attribute","attribute"],["element-attr","attribute"],["element","element"],["enum","enum"],["exception","exception"],["extended-attribute","extended attribute"],["interface","interface"]]),Su=new Set(["boolean","byte","octet","short","unsigned short","long","unsigned long","long long","unsigned long long","float","unrestricted float","double","unrestricted double","undefined","any","object","symbol"]);function _u(e){e.querySelectorAll("#index-defined-elsewhere li[data-spec]").forEach((e=>e.removeAttribute("data-spec"))),e.querySelectorAll("#index-defined-here li[data-id]").forEach((e=>e.removeAttribute("data-id")))}var Tu=Object.freeze({__proto__:null,name:"core/dfn-index",run:function(){const e=document.querySelector("section#index");if(!e)return void ws("toc",(()=>{}),{once:!0});const t=document.createElement("style");t.textContent=mu,document.head.appendChild(t),e.classList.add("appendix"),e.querySelector("h2, h1")||e.prepend(ur`<h1>${gu.heading}</h1>`);const n=ur`<section id="index-defined-here">
1089
- <h3>${gu.headingLocal}</h3>
1087
+ </li>`}const Su=new Map([["attribute","attribute"],["element-attr","attribute"],["element","element"],["enum","enum"],["exception","exception"],["extended-attribute","extended attribute"],["interface","interface"]]),_u=new Set(["boolean","byte","octet","short","unsigned short","long","unsigned long","long long","unsigned long long","float","unrestricted float","double","unrestricted double","undefined","any","object","symbol"]);function Tu(e){e.querySelectorAll("#index-defined-elsewhere li[data-spec]").forEach((e=>e.removeAttribute("data-spec"))),e.querySelectorAll("#index-defined-here li[data-id]").forEach((e=>e.removeAttribute("data-id")))}var Ru=Object.freeze({__proto__:null,name:"core/dfn-index",run:function(){const e=document.querySelector("section#index");if(!e)return;const t=document.createElement("style");t.textContent=gu,document.head.appendChild(t),e.classList.add("appendix"),e.querySelector("h2, h1")||e.prepend(ur`<h1>${bu.heading}</h1>`);const n=ur`<section id="index-defined-here">
1088
+ <h3>${bu.headingLocal}</h3>
1090
1089
  ${function(){const e=function(){const e=new Map,t=document.querySelectorAll("dfn:not([data-cite])");for(const n of t){if(!n.id)continue;const t=Mr(n.textContent),r=e.get(t)||e.set(t,[]).get(t);r?.push(n)}const n=[...e].sort((([e],[t])=>e.slice(e.search(/\w/)).localeCompare(t.slice(t.search(/\w/)))));return n}();return ur`<ul class="index">
1091
1090
  ${e.map((([e,t])=>function(e,t){const n=(e,t,n="")=>{const r=`#${e.id}`;return ur`<li data-id=${e.id}>
1092
1091
  <a class="index-term" href="${r}">${{html:t}}</a> ${n?{html:n}:""}
1093
- </li>`};if(1===t.length){const r=t[0],s=yu(r),i=function(e,t,n){let r=n;"enum-value"===t&&(r=`"${r}"`);(bu.has(t)||e.dataset.idl||e.closest("code"))&&(r=`<code>${r}</code>`);return r}(r,s,e),o=vu(r,s,e);return n(r,i,o)}return ur`<li>
1092
+ </li>`};if(1===t.length){const r=t[0],s=wu(r),i=function(e,t,n){let r=n;"enum-value"===t&&(r=`"${r}"`);(yu.has(t)||e.dataset.idl||e.closest("code"))&&(r=`<code>${r}</code>`);return r}(r,s,e),o=ku(r,s,e);return n(r,i,o)}return ur`<li>
1094
1093
  ${e}
1095
1094
  <ul>
1096
- ${t.map((t=>{const r=vu(t,yu(t),e)||gu.dfnOf;return n(t,r)}))}
1095
+ ${t.map((t=>{const r=ku(t,wu(t),e)||bu.dfnOf;return n(t,r)}))}
1097
1096
  </ul>
1098
1097
  </li>`}(e,t)))}
1099
1098
  </ul>`}()}
1100
1099
  </section>`;e.append(n);const r=ur`<section id="index-defined-elsewhere">
1101
- <h3>${gu.headingExternal}</h3>
1102
- ${function(){const e=[...$u().entries()].sort((([e],[t])=>e.localeCompare(t))),t=document.querySelector("section#index"),n=!!t?.classList.contains("prefer-full-spec-title");return ur`<ul class="index">
1103
- ${e.map((([e,t])=>{let r;return r=n&&$a[e]?.title?Oa(e,$a[e].title):Oa(e),ur`<li data-spec="${e}">
1104
- ${r} ${gu.definesFollowing}
1100
+ <h3>${bu.headingExternal}</h3>
1101
+ ${function(){const e=[...xu().entries()].sort((([e],[t])=>e.localeCompare(t))),t=document.querySelector("section#index"),n=!!t?.classList.contains("prefer-full-spec-title");return ur`<ul class="index">
1102
+ ${e.map((([e,t])=>{let r;return r=n&&xa[e]?.title?ja(e,xa[e].title):ja(e),ur`<li data-spec="${e}">
1103
+ ${r} ${bu.definesFollowing}
1105
1104
  <ul>
1106
- ${t.sort(((e,t)=>e.term.localeCompare(t.term))).map(xu)}
1105
+ ${t.sort(((e,t)=>e.term.localeCompare(t.term))).map(Cu)}
1107
1106
  </ul>
1108
1107
  </li>`}))}
1109
1108
  </ul>`}()}
1110
- </section>`;e.append(r);for(const e of r.querySelectorAll(".index-term"))Kr(e,"index-term");ws("toc",ku,{once:!0}),ws("beforesave",_u)}});const Ru="core/contrib";var Eu=Object.freeze({__proto__:null,name:Ru,run:async function(e){if(!document.getElementById("gh-contributors"))return;if(!e.github){return void cs(ms`Requested list of contributors from GitHub, but ${"[github]"} configuration option is not set.`,Ru)}const t=(e.editors??[]).map((e=>e.name)),n=`${e.github.apiBase}/${e.github.fullName}/`;await async function(e,t){const n=document.getElementById("gh-contributors");if(!n)return;n.textContent="Fetching list of contributors...";const r=await s();null!==r?function(e,t){const n=e.sort(((e,t)=>{const n=e.name||e.login,r=t.name||t.login;return n.toLowerCase().localeCompare(r.toLowerCase())}));if("UL"===t.tagName)return void ur(t)`${n.map((({name:e,login:t})=>`<li><a href="https://github.com/${t}">${e||t}</a></li>`))}`;const r=n.map((e=>e.name||e.login));t.textContent=Or(r)}(r,n):n.textContent="Failed to fetch contributors.";async function s(){const{href:n}=new URL("contributors",t);try{const t=await Br(n);if(!t.ok)throw new Error(`Request to ${n} failed with status code ${t.status}`);return(await t.json()).filter((t=>!e.includes(t.name||t.login)&&!t.login.includes("[bot]")))}catch(e){return cs("Error loading contributors from GitHub.",Ru,{cause:e}),null}}}(t,n)}});var Lu=Object.freeze({__proto__:null,name:"core/fix-headers",run:function(){[...document.querySelectorAll("section:not(.introductory)")].map((e=>e.querySelector("h1, h2, h3, h4, h5, h6"))).filter((e=>null!==e)).forEach((e=>{const t=Math.min(function(e,t){const n=[];for(;e&&e!=e.ownerDocument.body;)e.matches(t)&&n.push(e),e=e.parentElement;return n}(e,"section").length+1,6);Yr(e,`h${t}`)}))}});var Au=Object.freeze({__proto__:null,name:"core/webidl-index",run:function(){const e=document.querySelector("section#idl-index");if(!e)return;const t=[2,3,4,5,6].map((e=>`h${e}:first-child`)).join(",");if(!e.querySelector(t)){const t=document.createElement("h2");e.title?(t.textContent=e.title,e.removeAttribute("title")):t.textContent="IDL Index",e.prepend(t)}const n=Array.from(document.querySelectorAll("pre.idl:not(.exclude) > code")).filter((e=>!e.closest(Lr)));if(0===n.length){const t="This specification doesn't normatively declare any Web IDL.";return void e.append(t)}const r=document.createElement("pre");r.classList.add("idl","def"),r.id="actual-idl-index",n.map((e=>{const t=document.createDocumentFragment();for(const n of e.children)t.appendChild(n.cloneNode(!0));return t})).forEach((e=>{r.lastChild&&r.append("\n\n"),r.appendChild(e)})),r.querySelectorAll("*[id]").forEach((e=>e.removeAttribute("id"))),e.appendChild(r),Qr(r,document.createElement("code")),hl(r)}});function Pu(e,t){const n=document.createElement("pre");n.classList.add("cddl","def","highlight"),t&&(n.id=t);const r=document.createElement("code");return e.map((e=>{const t=document.createDocumentFragment();return e.childNodes.forEach((e=>t.appendChild(e.cloneNode(!0)))),t})).forEach((e=>{r.lastChild&&r.append("\n\n"),r.appendChild(e)})),r.querySelectorAll("*[id]").forEach((e=>e.removeAttribute("id"))),r.querySelectorAll("dfn").forEach((e=>{const t=Yr(e,"span");t.removeAttribute("data-export");for(const e of[...t.attributes])e.name.startsWith("data-dfn")&&t.removeAttribute(e.name)})),n.append(r),n}var Nu=Object.freeze({__proto__:null,name:"core/cddl-index",run:function(){const e=document.querySelector("section#cddl-index");if(!e)return;if(!e.querySelector(":scope > :is(h2, h3, h4, h5, h6):first-child")){const t=document.createElement("h2");e.title?(t.textContent=e.title,e.removeAttribute("title")):t.textContent="CDDL Index",e.prepend(t)}const t=Array.from(document.querySelectorAll("pre.cddl:not(.exclude) > code")).filter((e=>!e.closest(Lr)));if(0===t.length){const t="This specification doesn't normatively declare any CDDL.";return void e.append(t)}const n=new Map;for(const e of t){const t=e.closest("pre"),r=t?.dataset.cddlModule||"";let s=n.get(r);s||(s=[],n.set(r,s)),s.push(e)}n.size>1||1===n.size&&!n.has("")?n.forEach(((t,n)=>{const r=document.createElement("section"),s=document.createElement("h3"),i=n||"Default";s.textContent=`Module: ${i}`,n&&(s.id=`cddl-index-module-${n.toLowerCase().replace(/[^a-z0-9]+/g,"-")}`),r.append(s),r.append(Pu(t)),e.append(r)})):e.append(Pu(t,"actual-cddl-index"))}});const Iu=["h2","h3","h4","h5","h6"],Du="core/structure",Ou=Ur({en:{toc:"Table of Contents",back_to_top:"Back to Top"},zh:{toc:"内容大纲",back_to_top:"返回顶部"},ko:{toc:"목차",back_to_top:"맨 위로"},ja:{toc:"目次",back_to_top:"先頭に戻る"},nl:{toc:"Inhoudsopgave",back_to_top:"Terug naar boven"},es:{toc:"Tabla de Contenidos",back_to_top:"Volver arriba"},fr:{toc:"Table des matières",back_to_top:"Retourner en haut"},de:{toc:"Inhaltsverzeichnis",back_to_top:"Zurück nach oben"},cs:{toc:"Obsah",back_to_top:"Zpět na začátek"}});function ju(e,t,{prefix:n=""}={}){let r=!1,s=0,i=1;if(n.length&&!n.endsWith(".")&&(n+="."),0===e.length)return null;const o=ur`<ol class="toc"></ol>`;for(const a of e){!a.isAppendix||n||r||(s=i,r=!0);let e=a.isIntro?"":r?zu(i-s+1):n+i;const c=e.split(".").length;if(1===c&&(e+=".",a.header.before(document.createComment("OddPage"))),a.isIntro||(i+=1,a.header.prepend(ur`<bdi class="secno">${e} </bdi>`)),c<=t){const n=a.header.id||a.element.id,r=Uu(a.header,n),s=ju(a.subsections,t,{prefix:e});s&&r.append(s),o.append(r)}}return o}function zu(e){let t="";for(;e>0;)e-=1,t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26);return t}function Mu(e){const t=e.querySelectorAll(":scope > section"),n=[];for(const e of t){const t=e.classList.contains("notoc");if(!e.children.length||t)continue;const r=e.children[0];if(!Iu.includes(r.localName))continue;const s=r.textContent;Kr(e,void 0,s),n.push({element:e,header:r,title:s,isIntro:Boolean(e.closest(".introductory")),isAppendix:e.classList.contains("appendix"),subsections:Mu(e)})}return n}function Uu(e,t){const n=ur`<a href="${`#${t}`}" class="tocxref" />`;var r;return n.append(...e.cloneNode(!0).childNodes),(r=n).querySelectorAll("a").forEach((e=>{const t=Yr(e,"span");t.className="formerLink",t.removeAttribute("href")})),r.querySelectorAll("dfn").forEach((e=>{Yr(e,"span").removeAttribute("id")})),ur`<li class="tocline">${n}</li>`}var qu=Object.freeze({__proto__:null,name:Du,run:function(e){if("maxTocLevel"in e==!1&&(e.maxTocLevel=1/0),function(){const e=[...document.querySelectorAll("section:not(.introductory) :is(h1,h2,h3,h4,h5,h6):first-child")].filter((e=>!e.closest("section.introductory")));if(!e.length)return;e.forEach((e=>{const t=Math.min(function(e,t){const n=[];let r=e.parentElement;for(;r;){const e=r.closest(t);if(!e)break;n.push(e),r=e.parentElement}return n}(e,"section").length+1,6),n=`h${t}`;e.localName!==n&&Yr(e,n)}))}(),!e.noTOC){!function(){const e=document.querySelectorAll("section[data-max-toc]");for(const t of e){const e=parseInt(t.dataset.maxToc??"",10);if(e<0||e>6||Number.isNaN(e)){cs("`data-max-toc` must have a value between 0-6 (inclusive).",Du,{elements:[t]});continue}if(0===e){t.classList.add("notoc");continue}const n=t.querySelectorAll(`:scope > ${Array.from({length:e},(()=>"section")).join(" > ")}`);for(const e of n)e.classList.add("notoc")}}();const t=ju(Mu(document.body),e.maxTocLevel);t&&function(e){if(!e)return;const t=ur`<nav id="toc"></nav>`,n=ur`<h2 class="introductory">${Ou.toc}</h2>`;Kr(n),t.append(n,e);const r=document.getElementById("toc")||document.getElementById("sotd")||document.getElementById("abstract");r&&("toc"===r.id?r.replaceWith(t):r.after(t));const s=ur`<p role="navigation" id="back-to-top">
1111
- <a href="#title"><abbr title="${Ou.back_to_top}">&uarr;</abbr></a>
1112
- </p>`;document.body.append(s)}(t)}ys("toc",void 0)}});const Wu=Ur({en:{informative:"This section is non-normative."},nl:{informative:"Dit onderdeel is niet-normatief."},ko:{informative:"이 부분은 비규범적입니다."},ja:{informative:"この節は仕様には含まれません."},de:{informative:"Dieser Abschnitt ist nicht normativ."},zh:{informative:"本章节不包含规范性内容。"},cs:{informative:"Tato sekce není normativní."},fr:{informative:"Cette section est non normative."}});var Fu=Object.freeze({__proto__:null,name:"core/informative",run:function(){Array.from(document.querySelectorAll("section.informative")).map((e=>e.querySelector("h2, h3, h4, h5, h6"))).filter((e=>null!==e)).forEach((e=>{e.after(ur`<p><em>${Wu.informative}</em></p>`)}))}});const Bu=Ur({en:{permalinkLabel(e,t){let n=`Permalink for${t?"":" this"} ${e}`;return t&&(n+=` ${Mr(t.textContent)}`),n}}});var Hu=Object.freeze({__proto__:null,name:"core/id-headers",run:function(e){const t=document.querySelectorAll("section:not(.head,#abstract,#sotd) h2, h3, h4, h5, h6");for(const n of t){let t=n.id;if(t||(Kr(n),t=n.parentElement?.id||n.id),!e.addSectionLinks)continue;const r=Bu.permalinkLabel(n.closest(".appendix")?"Appendix":"Section",n.querySelector(":scope > bdi.secno")),s=ur`<div class="header-wrapper"></div>`;n.replaceWith(s);const i=ur`<a
1109
+ </section>`;e.append(r);for(const e of r.querySelectorAll(".index-term"))Kr(e,"index-term");ws("toc",$u,{once:!0}),ws("beforesave",Tu)}});const Eu="core/contrib";var Lu=Object.freeze({__proto__:null,name:Eu,run:async function(e){if(!document.getElementById("gh-contributors"))return;if(!e.github){return void cs(ms`Requested list of contributors from GitHub, but ${"[github]"} configuration option is not set.`,Eu)}const t=(e.editors??[]).map((e=>e.name)),n=`${e.github.apiBase}/${e.github.fullName}/`;await async function(e,t){const n=document.getElementById("gh-contributors");if(!n)return;n.textContent="Fetching list of contributors...";const r=await s();null!==r?function(e,t){const n=e.sort(((e,t)=>{const n=e.name||e.login,r=t.name||t.login;return n.toLowerCase().localeCompare(r.toLowerCase())}));if("UL"===t.tagName)return void ur(t)`${n.map((({name:e,login:t})=>`<li><a href="https://github.com/${t}">${e||t}</a></li>`))}`;const r=n.map((e=>e.name||e.login));t.textContent=Or(r)}(r,n):n.textContent="Failed to fetch contributors.";async function s(){const{href:n}=new URL("contributors",t);try{const t=await Br(n);if(!t.ok)throw new Error(`Request to ${n} failed with status code ${t.status}`);return(await t.json()).filter((t=>!e.includes(t.name||t.login)&&!t.login.includes("[bot]")))}catch(e){return cs("Error loading contributors from GitHub.",Eu,{cause:e}),null}}}(t,n)}});var Au=Object.freeze({__proto__:null,name:"core/fix-headers",run:function(){[...document.querySelectorAll("section:not(.introductory)")].map((e=>e.querySelector("h1, h2, h3, h4, h5, h6"))).filter((e=>null!==e)).forEach((e=>{const t=Math.min(function(e,t){const n=[];for(;e&&e!=e.ownerDocument.body;)e.matches(t)&&n.push(e),e=e.parentElement;return n}(e,"section").length+1,6);Yr(e,`h${t}`)}))}});var Pu=Object.freeze({__proto__:null,name:"core/webidl-index",run:function(){const e=document.querySelector("section#idl-index");if(!e)return;const t=[2,3,4,5,6].map((e=>`h${e}:first-child`)).join(",");if(!e.querySelector(t)){const t=document.createElement("h2");e.title?(t.textContent=e.title,e.removeAttribute("title")):t.textContent="IDL Index",e.prepend(t)}const n=Array.from(document.querySelectorAll("pre.idl:not(.exclude) > code")).filter((e=>!e.closest(Lr)));if(0===n.length){const t="This specification doesn't normatively declare any Web IDL.";return void e.append(t)}const r=document.createElement("pre");r.classList.add("idl","def"),r.id="actual-idl-index",n.map((e=>{const t=document.createDocumentFragment();for(const n of e.children)t.appendChild(n.cloneNode(!0));return t})).forEach((e=>{r.lastChild&&r.append("\n\n"),r.appendChild(e)})),r.querySelectorAll("*[id]").forEach((e=>e.removeAttribute("id"))),e.appendChild(r),Qr(r,document.createElement("code")),fl(r)}});function Nu(e,t){const n=document.createElement("pre");n.classList.add("cddl","def","highlight"),t&&(n.id=t);const r=document.createElement("code");return e.map((e=>{const t=document.createDocumentFragment();return e.childNodes.forEach((e=>t.appendChild(e.cloneNode(!0)))),t})).forEach((e=>{r.lastChild&&r.append("\n\n"),r.appendChild(e)})),r.querySelectorAll("*[id]").forEach((e=>e.removeAttribute("id"))),r.querySelectorAll("dfn").forEach((e=>{const t=Yr(e,"span");t.removeAttribute("data-export");for(const e of[...t.attributes])e.name.startsWith("data-dfn")&&t.removeAttribute(e.name)})),n.append(r),n}var Iu=Object.freeze({__proto__:null,name:"core/cddl-index",run:function(){const e=document.querySelector("section#cddl-index");if(!e)return;if(!e.querySelector(":scope > :is(h2, h3, h4, h5, h6):first-child")){const t=document.createElement("h2");e.title?(t.textContent=e.title,e.removeAttribute("title")):t.textContent="CDDL Index",e.prepend(t)}const t=Array.from(document.querySelectorAll("pre.cddl:not(.exclude) > code")).filter((e=>!e.closest(Lr)));if(0===t.length){const t="This specification doesn't normatively declare any CDDL.";return void e.append(t)}const n=new Map;for(const e of t){const t=e.closest("pre"),r=t?.dataset.cddlModule||"";let s=n.get(r);s||(s=[],n.set(r,s)),s.push(e)}n.size>1||1===n.size&&!n.has("")?n.forEach(((t,n)=>{const r=document.createElement("section"),s=document.createElement("h3"),i=n||"Default";s.textContent=`Module: ${i}`,n&&(s.id=`cddl-index-module-${n.toLowerCase().replace(/[^a-z0-9]+/g,"-")}`),r.append(s),r.append(Nu(t)),e.append(r)})):e.append(Nu(t,"actual-cddl-index"))}});const Du=["h2","h3","h4","h5","h6"],Ou="core/structure",ju=Ur({en:{toc:"Table of Contents",back_to_top:"Back to Top"},zh:{toc:"内容大纲",back_to_top:"返回顶部"},ko:{toc:"목차",back_to_top:"맨 위로"},ja:{toc:"目次",back_to_top:"先頭に戻る"},nl:{toc:"Inhoudsopgave",back_to_top:"Terug naar boven"},es:{toc:"Tabla de Contenidos",back_to_top:"Volver arriba"},fr:{toc:"Table des matières",back_to_top:"Retourner en haut"},de:{toc:"Inhaltsverzeichnis",back_to_top:"Zurück nach oben"},cs:{toc:"Obsah",back_to_top:"Zpět na začátek"}});function zu(e,t,{prefix:n=""}={}){let r=!1,s=0,i=1;if(n.length&&!n.endsWith(".")&&(n+="."),0===e.length)return null;const o=ur`<ol class="toc"></ol>`;for(const a of e){!a.isAppendix||n||r||(s=i,r=!0);let e=a.isIntro?"":r?Mu(i-s+1):n+i;const c=e.split(".").length;if(1===c&&(e+=".",a.header.before(document.createComment("OddPage"))),a.isIntro||(i+=1,a.header.prepend(ur`<bdi class="secno">${e} </bdi>`)),c<=t){const n=a.header.id||a.element.id,r=qu(a.header,n),s=zu(a.subsections,t,{prefix:e});s&&r.append(s),o.append(r)}}return o}function Mu(e){let t="";for(;e>0;)e-=1,t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26);return t}function Uu(e){const t=e.querySelectorAll(":scope > section"),n=[];for(const e of t){const t=e.classList.contains("notoc");if(!e.children.length||t)continue;const r=e.children[0];if(!Du.includes(r.localName))continue;const s=r.textContent;Kr(e,void 0,s),n.push({element:e,header:r,title:s,isIntro:Boolean(e.closest(".introductory")),isAppendix:e.classList.contains("appendix"),subsections:Uu(e)})}return n}function qu(e,t){const n=ur`<a href="${`#${t}`}" class="tocxref" />`;var r;return n.append(...e.cloneNode(!0).childNodes),(r=n).querySelectorAll("a").forEach((e=>{const t=Yr(e,"span");t.className="formerLink",t.removeAttribute("href")})),r.querySelectorAll("dfn").forEach((e=>{Yr(e,"span").removeAttribute("id")})),ur`<li class="tocline">${n}</li>`}var Wu=Object.freeze({__proto__:null,name:Ou,run:function(e){if("maxTocLevel"in e==!1&&(e.maxTocLevel=1/0),function(){const e=[...document.querySelectorAll("section:not(.introductory) :is(h1,h2,h3,h4,h5,h6):first-child")].filter((e=>!e.closest("section.introductory")));if(!e.length)return;e.forEach((e=>{const t=Math.min(function(e,t){const n=[];let r=e.parentElement;for(;r;){const e=r.closest(t);if(!e)break;n.push(e),r=e.parentElement}return n}(e,"section").length+1,6),n=`h${t}`;e.localName!==n&&Yr(e,n)}))}(),!e.noTOC){!function(){const e=document.querySelectorAll("section[data-max-toc]");for(const t of e){const e=parseInt(t.dataset.maxToc??"",10);if(e<0||e>6||Number.isNaN(e)){cs("`data-max-toc` must have a value between 0-6 (inclusive).",Ou,{elements:[t]});continue}if(0===e){t.classList.add("notoc");continue}const n=t.querySelectorAll(`:scope > ${Array.from({length:e},(()=>"section")).join(" > ")}`);for(const e of n)e.classList.add("notoc")}}();const t=zu(Uu(document.body),e.maxTocLevel);t&&function(e){if(!e)return;const t=ur`<nav id="toc"></nav>`,n=ur`<h2 class="introductory">${ju.toc}</h2>`;Kr(n),t.append(n,e);const r=document.getElementById("toc")||document.getElementById("sotd")||document.getElementById("abstract");r&&("toc"===r.id?r.replaceWith(t):r.after(t));const s=ur`<p role="navigation" id="back-to-top">
1110
+ <a href="#title"><abbr title="${ju.back_to_top}">&uarr;</abbr></a>
1111
+ </p>`;document.body.append(s)}(t)}ys("toc",void 0)}});const Fu=Ur({en:{informative:"This section is non-normative."},nl:{informative:"Dit onderdeel is niet-normatief."},ko:{informative:"이 부분은 비규범적입니다."},ja:{informative:"この節は仕様には含まれません."},de:{informative:"Dieser Abschnitt ist nicht normativ."},zh:{informative:"本章节不包含规范性内容。"},cs:{informative:"Tato sekce není normativní."},fr:{informative:"Cette section est non normative."}});var Bu=Object.freeze({__proto__:null,name:"core/informative",run:function(){Array.from(document.querySelectorAll("section.informative")).map((e=>e.querySelector("h2, h3, h4, h5, h6"))).filter((e=>null!==e)).forEach((e=>{e.after(ur`<p><em>${Fu.informative}</em></p>`)}))}});const Hu=Ur({en:{permalinkLabel(e,t){let n=`Permalink for${t?"":" this"} ${e}`;return t&&(n+=` ${Mr(t.textContent)}`),n}}});var Gu=Object.freeze({__proto__:null,name:"core/id-headers",run:function(e){const t=document.querySelectorAll("section:not(.head,#abstract,#sotd) h2, h3, h4, h5, h6");for(const n of t){let t=n.id;if(t||(Kr(n),t=n.parentElement?.id||n.id),!e.addSectionLinks)continue;const r=Hu.permalinkLabel(n.closest(".appendix")?"Appendix":"Section",n.querySelector(":scope > bdi.secno")),s=ur`<div class="header-wrapper"></div>`;n.replaceWith(s);const i=ur`<a
1113
1112
  href="#${t}"
1114
1113
  class="self-link"
1115
1114
  aria-label="${r}"
1116
- ></a>`;s.append(n,i)}}});var Gu=String.raw`.caniuse-stats{display:flex;column-gap:2em}
1115
+ ></a>`;s.append(n,i)}}});var Vu=String.raw`.caniuse-stats{display:flex;column-gap:2em}
1117
1116
  .caniuse-group{display:flex;flex:1;flex-direction:column;justify-content:flex-end;flex-basis:auto}
1118
1117
  .caniuse-browsers{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;margin-top:.2em;column-gap:.4em;border-bottom:1px solid #ccc;row-gap:.4em;padding-bottom:.4cm}
1119
1118
  .caniuse-type{align-self:center;border-top:none;text-transform:capitalize;font-size:.8em;margin-top:-.8em;font-weight:700}
@@ -1131,12 +1130,12 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1131
1130
  .caniuse-cell.y::before{content:"✔️";padding:.5em}
1132
1131
  .caniuse-cell.n::before{content:"❌";padding:.5em}
1133
1132
  .caniuse-cell:is(.a,.d,.p,.x,.u)::before{content:"⚠️";padding:.5em}
1134
- }`;const Vu="core/caniuse",Ju="https://respec.org/caniuse/",Ku=new Map([["and_chr",{name:"Android Chrome",path:"chrome",type:"mobile"}],["and_ff",{name:"Android Firefox",path:"firefox",type:"mobile"}],["and_uc",{name:"Android UC",path:"uc",type:"mobile"}],["chrome",{name:"Chrome",type:"desktop"}],["edge",{name:"Edge",type:"desktop"}],["firefox",{name:"Firefox",type:"desktop"}],["ios_saf",{name:"iOS Safari",path:"safari-ios",type:"mobile"}],["op_mob",{name:"Opera Mobile",path:"opera",type:"mobile"}],["opera",{name:"Opera",type:"desktop"}],["safari",{name:"Safari",type:"desktop"}],["samsung",{name:"Samsung Internet",path:"samsung-internet",type:"mobile"}]]),Zu=new Map([["a","almost supported (aka Partial support)"],["d","disabled by default"],["n","no support, or disabled by default"],["p","no support, but has Polyfill"],["u","unknown support"],["x","requires prefix to work"],["y","supported by default"]]);var Yu=Object.freeze({__proto__:null,BROWSERS:Ku,name:Vu,prepare:function(e){if(!e.caniuse)return;!function(e){const t=new Set(Ku.keys());t.delete("op_mob"),t.delete("opera");const n={removeOnSave:!0,browsers:[...t]};if("string"==typeof e.caniuse)return void(e.caniuse={feature:e.caniuse,...n});e.caniuse={...n,...e.caniuse}}(e),function({caniuse:e}){const{browsers:t}=e,n=t.filter((e=>!Ku.has(e)));if(n.length){ls(ms`Invalid browser(s): (${hs(n,{quotes:!0})}) in the \`browser\` property of ${"[caniuse]"}.`,Vu)}}(e);const t=e.caniuse;t.feature&&document.head.appendChild(ur`<style
1133
+ }`;const Ju="core/caniuse",Ku="https://respec.org/caniuse/",Zu=new Map([["and_chr",{name:"Android Chrome",path:"chrome",type:"mobile"}],["and_ff",{name:"Android Firefox",path:"firefox",type:"mobile"}],["and_uc",{name:"Android UC",path:"uc",type:"mobile"}],["chrome",{name:"Chrome",type:"desktop"}],["edge",{name:"Edge",type:"desktop"}],["firefox",{name:"Firefox",type:"desktop"}],["ios_saf",{name:"iOS Safari",path:"safari-ios",type:"mobile"}],["op_mob",{name:"Opera Mobile",path:"opera",type:"mobile"}],["opera",{name:"Opera",type:"desktop"}],["safari",{name:"Safari",type:"desktop"}],["samsung",{name:"Samsung Internet",path:"samsung-internet",type:"mobile"}]]),Yu=new Map([["a","almost supported (aka Partial support)"],["d","disabled by default"],["n","no support, or disabled by default"],["p","no support, but has Polyfill"],["u","unknown support"],["x","requires prefix to work"],["y","supported by default"]]);var Xu=Object.freeze({__proto__:null,BROWSERS:Zu,name:Ju,prepare:function(e){if(!e.caniuse)return;!function(e){const t=new Set(Zu.keys());t.delete("op_mob"),t.delete("opera");const n={removeOnSave:!0,browsers:[...t]};if("string"==typeof e.caniuse)return void(e.caniuse={feature:e.caniuse,...n});e.caniuse={...n,...e.caniuse}}(e),function({caniuse:e}){const{browsers:t}=e,n=t.filter((e=>!Zu.has(e)));if(n.length){ls(ms`Invalid browser(s): (${hs(n,{quotes:!0})}) in the \`browser\` property of ${"[caniuse]"}.`,Ju)}}(e);const t=e.caniuse;t.feature&&document.head.appendChild(ur`<style
1135
1134
  id="caniuse-stylesheet"
1136
1135
  class="${t.removeOnSave?"removeOnSave":""}"
1137
1136
  >
1138
- ${Gu}
1139
- </style>`)},run:async function(e){const t=e.caniuse;if(!t?.feature)return;const n=new URL(t.feature,"https://caniuse.com/").href,r=document.querySelector(".head dl"),s=async function(e){const{feature:t,browsers:n,apiURL:r}=e,s=new URL(r||`./${t}`,Ju);n.forEach((e=>s.searchParams.append("browsers",e)));const i=await fetch(s);if(!i.ok){const{status:e,statusText:t}=i;throw new Error(`Failed to get caniuse data: (${e}) ${t}`)}return i.json()}(e.caniuse).then((e=>async function(e,{feature:t}){const n=e.result,r=new Map([["desktop",[]],["mobile",[]]]),s=function(e){return(t,{browser:n,version:r,caniuse:s})=>{const i=Ku.get(n),{name:o,type:a}=i??{name:n,type:"desktop"},c=Zu.get(s),l=r||"—",u=r?` version ${r}`:" (version unknown)",d=`${e} is ${c} since ${o}${u} on ${a}.`,p=`caniuse-cell ${s}`,h=(f=`${c} since ${o}${u}.`).charAt(0).toUpperCase()+f.slice(1);var f;const m=function(e){const t=Ku.get(e)?.path??e;return`https://www.w3.org/assets/logos/browser-logos/${t}/${t}.svg`}(n),g=ur`
1137
+ ${Vu}
1138
+ </style>`)},run:async function(e){const t=e.caniuse;if(!t?.feature)return;const n=new URL(t.feature,"https://caniuse.com/").href,r=document.querySelector(".head dl"),s=async function(e){const{feature:t,browsers:n,apiURL:r}=e,s=new URL(r||`./${t}`,Ku);n.forEach((e=>s.searchParams.append("browsers",e)));const i=await fetch(s);if(!i.ok){const{status:e,statusText:t}=i;throw new Error(`Failed to get caniuse data: (${e}) ${t}`)}return i.json()}(e.caniuse).then((e=>async function(e,{feature:t}){const n=e.result,r=new Map([["desktop",[]],["mobile",[]]]),s=function(e){return(t,{browser:n,version:r,caniuse:s})=>{const i=Zu.get(n),{name:o,type:a}=i??{name:n,type:"desktop"},c=Yu.get(s),l=r||"—",u=r?` version ${r}`:" (version unknown)",d=`${e} is ${c} since ${o}${u} on ${a}.`,p=`caniuse-cell ${s}`,h=(f=`${c} since ${o}${u}.`).charAt(0).toUpperCase()+f.slice(1);var f;const m=function(e){const t=Zu.get(e)?.path??e;return`https://www.w3.org/assets/logos/browser-logos/${t}/${t}.svg`}(n),g=ur`
1140
1139
  <div
1141
1140
  class="${p}"
1142
1141
  role="img"
@@ -1156,11 +1155,11 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1156
1155
  <div class="caniuse-type"><span>${e}</div>
1157
1156
  </div>`));return i.push(ur`<a class="caniuse-cell" href="https://caniuse.com/${t}"
1158
1157
  >More info</a
1159
- >`),i}(e,t))).catch((e=>function(e,t,n){const r=`Failed to retrieve feature "${t.feature}".`,s=ms`Please check the feature key on [caniuse.com](https://caniuse.com) and update ${"[caniuse]"}.`;return cs(r,Vu,{hint:s,cause:e}),ur`<a href="${n}">caniuse.com</a>`}(e,t,n))),i=ur`<dt class="caniuse-title">Browser support:</dt>
1158
+ >`),i}(e,t))).catch((e=>function(e,t,n){const r=`Failed to retrieve feature "${t.feature}".`,s=ms`Please check the feature key on [caniuse.com](https://caniuse.com) and update ${"[caniuse]"}.`;return cs(r,Ju,{hint:s,cause:e}),ur`<a href="${n}">caniuse.com</a>`}(e,t,n))),i=ur`<dt class="caniuse-title">Browser support:</dt>
1160
1159
  <dd class="caniuse-stats">
1161
1160
  ${{any:s,placeholder:"Fetching data from caniuse.com..."}}
1162
1161
  </dd>`;r?.append(...i.childNodes),await s,ys("amend-user-config",{caniuse:t.feature}),t.removeOnSave&&(r?.querySelectorAll(".caniuse-browser").forEach((e=>e.classList.add("removeOnSave"))),ws("beforesave",(e=>{const t=e.querySelector(".caniuse-stats");if(t)ur.bind(t)`
1163
- <a href="${n}">caniuse.com</a>`;else{ls("Couldn't add the caniuse.com link to the saved document.",Vu,{hint:"The support table is appended to the document header's definition list (`.head dl`), so it was never inserted if that list is absent. The browser support cells are removed on save, so the exported document will have no caniuse.com attribution."})}})))}});var Xu=String.raw`.baseline-title{display:flex;align-items:center;gap:.4em}
1162
+ <a href="${n}">caniuse.com</a>`;else{ls("Couldn't add the caniuse.com link to the saved document.",Ju,{hint:"The support table is appended to the document header's definition list (`.head dl`), so it was never inserted if that list is absent. The browser support cells are removed on save, so the exported document will have no caniuse.com attribution."})}})))}});var Qu=String.raw`.baseline-title{display:flex;align-items:center;gap:.4em}
1164
1163
  .baseline-icon{width:auto;height:.9em;vertical-align:baseline}
1165
1164
  .baseline-status{display:flex;align-items:center;gap:1em}
1166
1165
  .baseline-browsers{display:flex;gap:.5em;align-items:center}
@@ -1182,7 +1181,7 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1182
1181
  @media print{
1183
1182
  .baseline-pill{background:0 0!important;border:1px solid #ccc}
1184
1183
  .baseline-support-icon{color:#333!important}
1185
- }`;const Qu="core/implementation-status",ed="https://respec.org/api/baseline",td="https://respec.org/api/baseline/search",nd="https://www.w3.org/assets/logos/browser-logos",rd=new Map([["chrome",{name:"Chrome",engine:"chromium"}],["edge",{name:"Edge",engine:"chromium"}],["firefox",{name:"Firefox",engine:"gecko"}],["safari",{name:"Safari",engine:"webkit"}]]),sd=new Map([["high","Widely available"],["low","Newly available"],["","Limited availability"]]),id=new Map([["",()=>ur`<svg class="baseline-icon" viewBox="0 0 36 20">
1184
+ }`;const ed="core/implementation-status",td="https://respec.org/api/baseline",nd="https://respec.org/api/baseline/search",rd="https://www.w3.org/assets/logos/browser-logos",sd=new Map([["chrome",{name:"Chrome",engine:"chromium"}],["edge",{name:"Edge",engine:"chromium"}],["firefox",{name:"Firefox",engine:"gecko"}],["safari",{name:"Safari",engine:"webkit"}]]),id=new Map([["high","Widely available"],["low","Newly available"],["","Limited availability"]]),od=new Map([["",()=>ur`<svg class="baseline-icon" viewBox="0 0 36 20">
1186
1185
  <path fill="#f09409" d="M10 0L16 6L14 8L8 2L10 0Z" />
1187
1186
  <path fill="#f09409" d="M22 12L20 14L26 20L28 18L22 12Z" />
1188
1187
  <path fill="#f09409" d="M26 0L28 2L10 20L8 18L26 0Z" />
@@ -1202,7 +1201,7 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1202
1201
  d="m10 0 2 2-2 2-2-2 2-2Zm4 4 2 2-2 2-2-2 2-2Zm16 0 2 2-2 2-2-2 2-2Zm4 4 2 2-2 2-2-2 2-2Zm-4 4 2 2-2 2-2-2 2-2Zm-4 4 2 2-2 2-2-2 2-2Zm-4-4 2 2-2 2-2-2 2-2ZM6 4l2 2-2 2-2-2 2-2Z"
1203
1202
  />
1204
1203
  <path fill="#1b6ef3" d="m26 0 2 2-18 18L0 10l2-2 8 8L26 0Z" />
1205
- </svg>`]]),od={available:()=>ur`<svg
1204
+ </svg>`]]),ad={available:()=>ur`<svg
1206
1205
  class="baseline-support-icon"
1207
1206
  xmlns="http://www.w3.org/2000/svg"
1208
1207
  width="17"
@@ -1234,12 +1233,12 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1234
1233
  fill="currentColor"
1235
1234
  d="m10.321 8.126-1.987 1.972 1.987 1.972-.993.986-1.987-1.972-1.987 1.972-.993-.986 1.986-1.972-1.986-1.972.993-.986 1.987 1.972L9.328 7.14l.993.986Z"
1236
1235
  />
1237
- </svg>`},ad=Map.groupBy(rd.keys(),(e=>rd.get(e).engine));function cd(){return{dt:ur`Implementation status:`,dd:ur`<a href="https://webstatus.dev/">Web Platform Status</a>`,moreInfoUrl:"https://webstatus.dev/"}}function ld(e){const t=ms`Check the ${"[implementationStatus]"} configuration.`;return ls("Failed to retrieve implementation status data.",Qu,{hint:t,cause:e instanceof Error?e:void 0}),cd()}async function ud(e){const t=e.apiURL||ed,n=await Br(t);if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);return n.json()}function dd(e){return!e.kind||"feature"===e.kind}function pd(e,t,n){const r=e.features||e;if(n.feature){const e=r[n.feature];return e&&dd(e)?[{id:n.feature,...e}]:[]}const s=hd(t);return s.length?Object.entries(r).filter((([,e])=>{if(!dd(e))return!1;return[e.spec].flat().filter(Boolean).some((e=>{const t=fd(e);return s.some((e=>t.startsWith(e)))}))})).map((([e,t])=>({id:e,...t}))):[]}function hd(e){const t=new Set;return e.edDraftURI&&t.add(fd(e.edDraftURI)),e.shortName&&(t.add(fd(`https://www.w3.org/TR/${e.shortName}/`)),t.add(fd(`https://w3c.github.io/${e.shortName}/`))),e.thisVersion&&t.add(fd(e.thisVersion)),[...t]}function fd(e){try{const t=new URL(e);return t.hash="",t.pathname.endsWith("/")||t.pathname.includes(".")||(t.pathname+="/"),t.href}catch{return e}}var md=Object.freeze({__proto__:null,name:Qu,prepare:function(e){if(!e.implementationStatus)return;!function(e){const t={removeOnSave:!1};if("boolean"==typeof e.implementationStatus)return void(e.implementationStatus={feature:null,...t});if("string"==typeof e.implementationStatus)return void(e.implementationStatus={feature:e.implementationStatus,...t});e.implementationStatus={...t,...e.implementationStatus}}(e);const t=e.implementationStatus;document.head.appendChild(ur`<style
1236
+ </svg>`},cd=Map.groupBy(sd.keys(),(e=>sd.get(e).engine));function ld(){return{dt:ur`Implementation status:`,dd:ur`<a href="https://webstatus.dev/">Web Platform Status</a>`,moreInfoUrl:"https://webstatus.dev/"}}function ud(e){const t=ms`Check the ${"[implementationStatus]"} configuration.`;return ls("Failed to retrieve implementation status data.",ed,{hint:t,cause:e instanceof Error?e:void 0}),ld()}async function dd(e){const t=e.apiURL||td,n=await Br(t);if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);return n.json()}function pd(e){return!e.kind||"feature"===e.kind}function hd(e,t,n){const r=e.features||e;if(n.feature){const e=r[n.feature];return e&&pd(e)?[{id:n.feature,...e}]:[]}const s=fd(t);return s.length?Object.entries(r).filter((([,e])=>{if(!pd(e))return!1;return[e.spec].flat().filter(Boolean).some((e=>{const t=md(e);return s.some((e=>t.startsWith(e)))}))})).map((([e,t])=>({id:e,...t}))):[]}function fd(e){const t=new Set;return e.edDraftURI&&t.add(md(e.edDraftURI)),e.shortName&&(t.add(md(`https://www.w3.org/TR/${e.shortName}/`)),t.add(md(`https://w3c.github.io/${e.shortName}/`))),e.thisVersion&&t.add(md(e.thisVersion)),[...t]}function md(e){try{const t=new URL(e);return t.hash="",t.pathname.endsWith("/")||t.pathname.includes(".")||(t.pathname+="/"),t.href}catch{return e}}var gd=Object.freeze({__proto__:null,name:ed,prepare:function(e){if(!e.implementationStatus)return;!function(e){const t={removeOnSave:!1};if("boolean"==typeof e.implementationStatus)return void(e.implementationStatus={feature:null,...t});if("string"==typeof e.implementationStatus)return void(e.implementationStatus={feature:e.implementationStatus,...t});e.implementationStatus={...t,...e.implementationStatus}}(e);const t=e.implementationStatus;document.head.appendChild(ur`<style
1238
1237
  id="baseline-stylesheet"
1239
1238
  class="${t.removeOnSave?"removeOnSave":""}"
1240
1239
  >
1241
- ${Xu}
1242
- </style>`)},run:async function(e){if(!e.implementationStatus)return;const t=e.implementationStatus,n=document.querySelector(".head dl");if(!n)return;const r=async function(e,t){const n=await async function(e,t){if(t.apiURL){return pd(await ud(t),e,t)}if(t.feature){const e=`${ed}/${encodeURIComponent(t.feature)}`,n=await Br(e);if(!n.ok){if(404===n.status)return[];throw new Error(`Failed to fetch Baseline data for feature "${t.feature}": HTTP ${n.status}`)}const r=await n.json();return r.split_into?.length?r.split_into.filter(dd):[{id:t.feature,...r}]}const n=hd(e);if(!n.length)return[];try{const e=await fetch(td,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specs:n})});if(!e.ok)throw new Error(`HTTP ${e.status}`);const{result:t}=await e.json();return t||[]}catch(n){console.warn(`[${Qu}] Search endpoint failed, falling back to full dataset`,n);return pd(await ud(t),e,t)}}(e,t);if(!n.length){const e=t.feature?`No Baseline data found for feature "${t.feature}".`:"No Baseline data found for this specification.",n=t.feature?"Find feature IDs in [web-features data](https://github.com/web-platform-dx/web-features/blob/main/data.json).":void 0;return ls(e,Qu,{hint:n}),cd()}const r=function(e){const t=e.map((e=>e.status?.baseline));return t.every((e=>"high"===e))?"high":t.every((e=>"low"===e||"high"===e))?"low":""}(n),s=sd.get(r),i=function(e){const t=new Map;for(const n of rd.keys()){const r=e.every((e=>null!=e.status?.support?.[n]));t.set(n,r)}return t}(n);return ys("amend-user-config",{implementationStatus:t.feature||!0}),function(e,t,n,r){const s=(id.get(e)??id.get("")??(()=>ur`<span></span>`))();s.setAttribute("aria-hidden","true");const i=[...ad.values()].map((e=>{const t=e.map((e=>{const t=rd.get(e)?.name||e,r=n.get(e),s=r?`${t}: Supported`:`${t}: Not supported`,i=r?od.available():od.unavailable();return ur`<span
1240
+ ${Qu}
1241
+ </style>`)},run:async function(e){if(!e.implementationStatus)return;const t=e.implementationStatus,n=document.querySelector(".head dl");if(!n)return;const r=async function(e,t){const n=await async function(e,t){if(t.apiURL){return hd(await dd(t),e,t)}if(t.feature){const e=`${td}/${encodeURIComponent(t.feature)}`,n=await Br(e);if(!n.ok){if(404===n.status)return[];throw new Error(`Failed to fetch Baseline data for feature "${t.feature}": HTTP ${n.status}`)}const r=await n.json();return r.split_into?.length?r.split_into.filter(pd):[{id:t.feature,...r}]}const n=fd(e);if(!n.length)return[];try{const e=await fetch(nd,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specs:n})});if(!e.ok)throw new Error(`HTTP ${e.status}`);const{result:t}=await e.json();return t||[]}catch(n){console.warn(`[${ed}] Search endpoint failed, falling back to full dataset`,n);return hd(await dd(t),e,t)}}(e,t);if(!n.length){const e=t.feature?`No Baseline data found for feature "${t.feature}".`:"No Baseline data found for this specification.",n=t.feature?"Find feature IDs in [web-features data](https://github.com/web-platform-dx/web-features/blob/main/data.json).":void 0;return ls(e,ed,{hint:n}),ld()}const r=function(e){const t=e.map((e=>e.status?.baseline));return t.every((e=>"high"===e))?"high":t.every((e=>"low"===e||"high"===e))?"low":""}(n),s=id.get(r),i=function(e){const t=new Map;for(const n of sd.keys()){const r=e.every((e=>null!=e.status?.support?.[n]));t.set(n,r)}return t}(n);return ys("amend-user-config",{implementationStatus:t.feature||!0}),function(e,t,n,r){const s=(od.get(e)??od.get("")??(()=>ur`<span></span>`))();s.setAttribute("aria-hidden","true");const i=[...cd.values()].map((e=>{const t=e.map((e=>{const t=sd.get(e)?.name||e,r=n.get(e),s=r?`${t}: Supported`:`${t}: Not supported`,i=r?ad.available():ad.unavailable();return ur`<span
1243
1242
  class="baseline-browser ${r?"support-available":"support-unavailable"}"
1244
1243
  role="img"
1245
1244
  title="${s}"
@@ -1249,7 +1248,7 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1249
1248
  class="baseline-browser-logo"
1250
1249
  width="24"
1251
1250
  height="24"
1252
- src="${function(e){return`${nd}/${e}/${e}.svg`}(e)}"
1251
+ src="${function(e){return`${rd}/${e}/${e}.svg`}(e)}"
1253
1252
  alt=""
1254
1253
  />${i}
1255
1254
  </span>`})),r=e.every((e=>n.get(e)));return ur`<span class="${r?"baseline-pill supported":"baseline-pill unsupported"}">${t}</span>`})),o=ur`<span class="baseline-browsers">${i}</span>`,a=1===r.length?r[0]:null,c=a?`https://webstatus.dev/features/${encodeURIComponent(a.id)}`:"https://webstatus.dev/",l=a?.name?`More info about ${a.name} support`:"More info about browser support",u=ur`${t}:${s}`,d=ur`${o}
@@ -1258,12 +1257,12 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1258
1257
  href="${c}"
1259
1258
  aria-label="${l}"
1260
1259
  >More info</a
1261
- >`;return{dt:u,dd:d,moreInfoUrl:c}}(r,s,i,n)}(e,t).catch(ld),s=r.then((e=>e.dt)),i=r.then((e=>e.dd)),o=ur`<dt class="baseline-title">
1260
+ >`;return{dt:u,dd:d,moreInfoUrl:c}}(r,s,i,n)}(e,t).catch(ud),s=r.then((e=>e.dt)),i=r.then((e=>e.dd)),o=ur`<dt class="baseline-title">
1262
1261
  ${{any:s,placeholder:"Implementation status:"}}
1263
1262
  </dt>
1264
1263
  <dd class="baseline-status">
1265
1264
  ${{any:i,placeholder:"Checking availability..."}}
1266
- </dd>`;n.append(...o.childNodes);const a=await r;if(t.removeOnSave){const e=a.moreInfoUrl||"https://webstatus.dev/";ws("beforesave",(t=>{const n=t.querySelector(".baseline-status");n&&ur.bind(n)`<a href="${e}">Web Platform Status</a>`}))}}});var gd=String.raw`.mdn{font-size:.75em;position:absolute;right:.3em;min-width:0;margin-top:3rem}
1265
+ </dd>`;n.append(...o.childNodes);const a=await r;if(t.removeOnSave){const e=a.moreInfoUrl||"https://webstatus.dev/";ws("beforesave",(t=>{const n=t.querySelector(".baseline-status");n&&ur.bind(n)`<a href="${e}">Web Platform Status</a>`}))}}});var bd=String.raw`.mdn{font-size:.75em;position:absolute;right:.3em;min-width:0;margin-top:3rem}
1267
1266
  .mdn details{width:100%;margin:1px 0;position:relative;z-index:10;box-sizing:border-box;padding:.4em;padding-top:0}
1268
1267
  .mdn details[open]{min-width:25ch;max-width:32ch;background:#fff;background:var(--indextable-hover-bg,#fff);color:#000;color:var(--indextable-hover-text,#000);box-shadow:0 1em 3em -.4em rgba(0,0,0,.3),0 0 1px 1px rgba(0,0,0,.05);box-shadow:0 1em 3em -.4em var(--tocsidebar-shadow,rgba(0,0,0,.3)),0 0 1px 1px var(--tocsidebar-shadow,rgba(0,0,0,.05));border-radius:2px;z-index:11;margin-bottom:.4em}
1269
1268
  .mdn summary{text-align:right;cursor:default;margin-right:-.4em}
@@ -1286,18 +1285,18 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1286
1285
  .mdn .safari::before{background-image:url(https://www.w3.org/assets/logos/browser-logos/safari/safari.svg)}
1287
1286
  .mdn .safari_ios::before{background-image:url(https://www.w3.org/assets/logos/browser-logos/safari-ios/safari-ios.svg)}
1288
1287
  .mdn .samsunginternet_android::before{background-image:url(https://www.w3.org/assets/logos/browser-logos/samsung-internet/samsung-internet.svg)}
1289
- .mdn .webview_android::before{background-image:url(https://www.w3.org/assets/logos/browser-logos/android-webview/android-webview.png)}`;const bd="core/mdn-annotation",yd="https://w3c.github.io/mdn-spec-links/",wd="https://developer.mozilla.org/en-US/docs/Web/",vd={chrome:"Chrome",chrome_android:"Chrome Android",edge:"Edge",edge_mobile:"Edge Mobile",firefox:"Firefox",firefox_android:"Firefox Android",opera:"Opera",opera_android:"Opera Android",safari:"Safari",safari_ios:"Safari iOS",samsunginternet_android:"Samsung Internet",webview_android:"WebView Android"},kd=Ur({en:{inAllEngines:"This feature is in all major engines.",inSomeEngines:"This feature has limited support."},zh:{inAllEngines:"所有主要引擎均支持此特性。",inSomeEngines:"此功能支持有限。"},cs:{inAllEngines:"Tato funkce je podporována ve všech hlavních prohlížečích.",inSomeEngines:"Tato funkce má omezenou podporu."}});function $d(e){const t=e.closest("section");if(!t)return;const{previousElementSibling:n}=t;if(n&&n.classList.contains("mdn"))return n;const r=ur`<aside class="mdn"></aside>`;return t.before(r),r}function xd(e){const{name:t,slug:n,summary:r,support:s,engines:i}=e,o=n.slice(n.indexOf("/")+1),a=`${wd}${n}`,c=`Expand MDN details for ${t}`,l=function(e){if(3===e.length)return ur`<span role="img" aria-label="${kd.inAllEngines}">✅</span>`;if(e.length<2)return ur`<span role="img" aria-label="${kd.inSomeEngines}">🚫</span>`;return ur`<span aria-hidden="true">&emsp;</span>`}(i);return ur`<details>
1288
+ .mdn .webview_android::before{background-image:url(https://www.w3.org/assets/logos/browser-logos/android-webview/android-webview.png)}`;const yd="core/mdn-annotation",wd="https://w3c.github.io/mdn-spec-links/",vd="https://developer.mozilla.org/en-US/docs/Web/",kd={chrome:"Chrome",chrome_android:"Chrome Android",edge:"Edge",edge_mobile:"Edge Mobile",firefox:"Firefox",firefox_android:"Firefox Android",opera:"Opera",opera_android:"Opera Android",safari:"Safari",safari_ios:"Safari iOS",samsunginternet_android:"Samsung Internet",webview_android:"WebView Android"},$d=Ur({en:{inAllEngines:"This feature is in all major engines.",inSomeEngines:"This feature has limited support."},zh:{inAllEngines:"所有主要引擎均支持此特性。",inSomeEngines:"此功能支持有限。"},cs:{inAllEngines:"Tato funkce je podporována ve všech hlavních prohlížečích.",inSomeEngines:"Tato funkce má omezenou podporu."}});function xd(e){const t=e.closest("section");if(!t)return;const{previousElementSibling:n}=t;if(n&&n.classList.contains("mdn"))return n;const r=ur`<aside class="mdn"></aside>`;return t.before(r),r}function Cd(e){const{name:t,slug:n,summary:r,support:s,engines:i}=e,o=n.slice(n.indexOf("/")+1),a=`${vd}${n}`,c=`Expand MDN details for ${t}`,l=function(e){if(3===e.length)return ur`<span role="img" aria-label="${$d.inAllEngines}">✅</span>`;if(e.length<2)return ur`<span role="img" aria-label="${$d.inSomeEngines}">🚫</span>`;return ur`<span aria-hidden="true">&emsp;</span>`}(i);return ur`<details>
1290
1289
  <summary aria-label="${c}"><span>MDN</span>${l}</summary>
1291
1290
  <a title="${r}" href="${a}">${o}</a>
1292
- ${function(e){if(3===e.length)return ur`<p class="engines-all">${kd.inAllEngines}</p>`;if(e.length<2)return ur`<p class="engines-some">${kd.inSomeEngines}</p>`}(i)}
1291
+ ${function(e){if(3===e.length)return ur`<p class="engines-all">${$d.inAllEngines}</p>`;if(e.length<2)return ur`<p class="engines-some">${$d.inSomeEngines}</p>`}(i)}
1293
1292
  ${s?function(e){function t(e,t,n){const r="Unknown"===t?"?":t,s=`${e} ${t.toLowerCase()}`;return ur`<tr class="${s}">
1294
- <td>${vd[e]}</td>
1293
+ <td>${kd[e]}</td>
1295
1294
  <td>${n||r}</td>
1296
- </tr>`}function n(e,n){if(n.version_removed)return t(e,"No","");const r=n.version_added;return"boolean"==typeof r?t(e,r?"Yes":"No",""):r?t(e,"Yes",`${r}+`):t(e,"Unknown","")}const r=Object.keys(vd);return ur`<table>
1295
+ </tr>`}function n(e,n){if(n.version_removed)return t(e,"No","");const r=n.version_added;return"boolean"==typeof r?t(e,r?"Yes":"No",""):r?t(e,"Yes",`${r}+`):t(e,"Unknown","")}const r=Object.keys(kd);return ur`<table>
1297
1296
  ${r.map((r=>e[r]?n(r,e[r]):t(r,"Unknown","")))}
1298
1297
  </table>`}(s):ur`<p class="nosupportdata">No support data.</p>`}
1299
- </details>`}var Cd=Object.freeze({__proto__:null,name:bd,run:async function(e){const t=function(e){const{shortName:t,mdn:n}=e;if(!n)return;return!0===n?t:"string"==typeof n?n:n.key||t}(e);if(!t)return;const n="object"==typeof e.mdn?e.mdn:{},r=await async function(e,t){const{baseJsonPath:n=yd,maxAge:r=864e5}=t,s=new URL(`${e}.json`,n).href,i=await Br(s,r);return 404===i.status?null:await i.json()}(t,n);if(!r){const n=`Could not find MDN data associated with key "${t}".`,r=!0===e.mdn?ms`When using \`mdn: true\`, the key defaults to ${"[shortName]"} ("${t}"). Check that your shortName matches an entry in the [MDN spec links map](https://github.com/w3c/mdn-spec-links/blob/main/SPECMAP.json), or set ${"[mdn]"} to the correct key.`:ms`Search for your spec's URL in the [MDN spec links map](https://github.com/w3c/mdn-spec-links/blob/main/SPECMAP.json) to find the correct key, then set ${"[mdn]"} to it.`;return void cs(n,bd,{hint:r})}const s=document.createElement("style");s.textContent=gd,document.head.append(s);for(const e of function(e){return[...document.body.querySelectorAll("[id]:not(script)")].filter((({id:t})=>Array.isArray(e[t])))}(r)){const t=r[e.id],n=$d(e);if(n)for(const e of t)n.append(xd(e))}}});const Sd="ui/save-html",_d=Ur({en:{save_snapshot:"Export"},nl:{save_snapshot:"Bewaar Snapshot"},ja:{save_snapshot:"保存する"},de:{save_snapshot:"Exportieren"},zh:{save_snapshot:"导出"}}),Td=[{id:"respec-save-as-html",ext:"html",title:"HTML",type:"text/html",get href(){return $s(this.type)}},{id:"respec-save-as-xml",ext:"xhtml",title:"XML",type:"application/xml",get href(){return $s(this.type)}},{id:"respec-save-as-epub",ext:"epub",title:"EPUB 3",type:"application/epub+zip",get href(){const e=new URL("https://labs.w3.org/r2epub/");return e.searchParams.append("respec","true"),e.searchParams.append("url",document.location.href),e.href}}];var Rd=Object.freeze({__proto__:null,exportDocument:function(e,t){return ls("Exporting via ui/save-html module's `exportDocument()` is deprecated and will be removed.",Sd,{hint:"Use core/exporter `rsDocToDataURL()` instead."}),$s(t)},name:Sd,run:function(e){const t={async show(t){await document.respec.ready;const n=ur`<div class="respec-save-buttons">
1300
- ${Td.map((t=>function(e,t){const{id:n,href:r,ext:s,title:i,type:o}=e,a=Wr(t.publishDate||new Date),c=[t.specStatus,t.shortName||"spec",a].join("-");return ur`<a
1298
+ </details>`}var Sd=Object.freeze({__proto__:null,name:yd,run:async function(e){const t=function(e){const{shortName:t,mdn:n}=e;if(!n)return;return!0===n?t:"string"==typeof n?n:n.key||t}(e);if(!t)return;const n="object"==typeof e.mdn?e.mdn:{},r=await async function(e,t){const{baseJsonPath:n=wd,maxAge:r=864e5}=t,s=new URL(`${e}.json`,n).href,i=await Br(s,r);return 404===i.status?null:await i.json()}(t,n);if(!r){const n=`Could not find MDN data associated with key "${t}".`,r=!0===e.mdn?ms`When using \`mdn: true\`, the key defaults to ${"[shortName]"} ("${t}"). Check that your shortName matches an entry in the [MDN spec links map](https://github.com/w3c/mdn-spec-links/blob/main/SPECMAP.json), or set ${"[mdn]"} to the correct key.`:ms`Search for your spec's URL in the [MDN spec links map](https://github.com/w3c/mdn-spec-links/blob/main/SPECMAP.json) to find the correct key, then set ${"[mdn]"} to it.`;return void cs(n,yd,{hint:r})}const s=document.createElement("style");s.textContent=bd,document.head.append(s);for(const e of function(e){return[...document.body.querySelectorAll("[id]:not(script)")].filter((({id:t})=>Array.isArray(e[t])))}(r)){const t=r[e.id],n=xd(e);if(n)for(const e of t)n.append(Cd(e))}}});const _d="ui/save-html",Td=Ur({en:{save_snapshot:"Export"},nl:{save_snapshot:"Bewaar Snapshot"},ja:{save_snapshot:"保存する"},de:{save_snapshot:"Exportieren"},zh:{save_snapshot:"导出"}}),Rd=[{id:"respec-save-as-html",ext:"html",title:"HTML",type:"text/html",get href(){return $s(this.type)}},{id:"respec-save-as-xml",ext:"xhtml",title:"XML",type:"application/xml",get href(){return $s(this.type)}},{id:"respec-save-as-epub",ext:"epub",title:"EPUB 3",type:"application/epub+zip",get href(){const e=new URL("https://labs.w3.org/r2epub/");return e.searchParams.append("respec","true"),e.searchParams.append("url",document.location.href),e.href}}];var Ed=Object.freeze({__proto__:null,exportDocument:function(e,t){return ls("Exporting via ui/save-html module's `exportDocument()` is deprecated and will be removed.",_d,{hint:"Use core/exporter `rsDocToDataURL()` instead."}),$s(t)},name:_d,run:function(e){const t={async show(t){await document.respec.ready;const n=ur`<div class="respec-save-buttons">
1299
+ ${Rd.map((t=>function(e,t){const{id:n,href:r,ext:s,title:i,type:o}=e,a=Wr(t.publishDate||new Date),c=[t.specStatus,t.shortName||"spec",a].join("-");return ur`<a
1301
1300
  href="${r}"
1302
1301
  id="${n}"
1303
1302
  download="${c}.${s}"
@@ -1306,13 +1305,13 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1306
1305
  onclick=${()=>ci.closeModal()}
1307
1306
  >${i}</a
1308
1307
  >`}(t,e)))}
1309
- </div>`;ci.freshModal(_d.save_snapshot,n,t)}},n="download"in HTMLAnchorElement.prototype;let r;n&&(r=ci.addCommand(_d.save_snapshot,(function(){if(!n)return;t.show(r)}),"Ctrl+Shift+Alt+S","💾"))}});const Ed="https://respec.org/specref/",Ld=Ur({en:{search_specref:"Search Specref"},nl:{search_specref:"Doorzoek Specref"},ja:{search_specref:"仕様検索"},de:{search_specref:"Spezifikationen durchsuchen"},zh:{search_specref:"搜索 Specref"},cs:{search_specref:"Hledat ve Specref"}}),Ad=ci.addCommand(Ld.search_specref,(function(){const e=ur`
1310
- <iframe class="respec-iframe" src="${Ed}" onload=${e=>e.target.classList.add("ready")}></iframe>
1311
- <a href="${Ed}" target="_blank">Open Search UI in a new tab</a>
1312
- `;ci.freshModal(Ld.search_specref,e,Ad)}),"Ctrl+Shift+Alt+space","🔎");var Pd=Object.freeze({__proto__:null});const Nd="https://respec.org/xref/",Id=Ur({en:{title:"Search definitions"},ja:{title:"定義検索"},de:{title:"Definitionen durchsuchen"},zh:{title:"搜索定义"},cs:{title:"Hledat definice"}}),Dd=ci.addCommand(Id.title,(function(){const e=ur`
1313
- <iframe class="respec-iframe" src="${Nd}" onload="${e=>e.target.classList.add("ready")}"></iframe>
1314
- <a href="${Nd}" target="_blank">Open Search UI in a new tab</a>
1315
- `;ci.freshModal(Id.title,e,Dd)}),"Ctrl+Shift+Alt+x","📚");var Od=Object.freeze({__proto__:null});const jd=Ur({en:{about_respec:"About"},zh:{about_respec:"关于"},nl:{about_respec:"Over"},ja:{about_respec:"これについて"},de:{about_respec:"Über"},cs:{about_respec:"O aplikaci"}});window.respecVersion=window.respecVersion||"Developer Edition";const zd=document.createElement("div"),Md=ur.bind(zd),Ud=ci.addCommand(`${jd.about_respec} ${window.respecVersion}`,(function(){const e=[];"getEntriesByType"in performance&&performance.getEntriesByType("measure").sort(((e,t)=>t.duration-e.duration)).map((({name:e,duration:t})=>({name:e,duration:t>1e3?`${Math.round(t/1e3)} second(s)`:`${t.toFixed(2)} milliseconds`}))).map(qd).forEach((t=>{e.push(t)}));Md`
1308
+ </div>`;ci.freshModal(Td.save_snapshot,n,t)}},n="download"in HTMLAnchorElement.prototype;let r;n&&(r=ci.addCommand(Td.save_snapshot,(function(){if(!n)return;t.show(r)}),"Ctrl+Shift+Alt+S","💾"))}});const Ld="https://respec.org/specref/",Ad=Ur({en:{search_specref:"Search Specref"},nl:{search_specref:"Doorzoek Specref"},ja:{search_specref:"仕様検索"},de:{search_specref:"Spezifikationen durchsuchen"},zh:{search_specref:"搜索 Specref"},cs:{search_specref:"Hledat ve Specref"}}),Pd=ci.addCommand(Ad.search_specref,(function(){const e=ur`
1309
+ <iframe class="respec-iframe" src="${Ld}" onload=${e=>e.target.classList.add("ready")}></iframe>
1310
+ <a href="${Ld}" target="_blank">Open Search UI in a new tab</a>
1311
+ `;ci.freshModal(Ad.search_specref,e,Pd)}),"Ctrl+Shift+Alt+space","🔎");var Nd=Object.freeze({__proto__:null});const Id="https://respec.org/xref/",Dd=Ur({en:{title:"Search definitions"},ja:{title:"定義検索"},de:{title:"Definitionen durchsuchen"},zh:{title:"搜索定义"},cs:{title:"Hledat definice"}}),Od=ci.addCommand(Dd.title,(function(){const e=ur`
1312
+ <iframe class="respec-iframe" src="${Id}" onload="${e=>e.target.classList.add("ready")}"></iframe>
1313
+ <a href="${Id}" target="_blank">Open Search UI in a new tab</a>
1314
+ `;ci.freshModal(Dd.title,e,Od)}),"Ctrl+Shift+Alt+x","📚");var jd=Object.freeze({__proto__:null});const zd=Ur({en:{about_respec:"About"},zh:{about_respec:"关于"},nl:{about_respec:"Over"},ja:{about_respec:"これについて"},de:{about_respec:"Über"},cs:{about_respec:"O aplikaci"}});window.respecVersion=window.respecVersion||"Developer Edition";const Md=document.createElement("div"),Ud=ur.bind(Md),qd=ci.addCommand(`${zd.about_respec} ${window.respecVersion}`,(function(){const e=[];"getEntriesByType"in performance&&performance.getEntriesByType("measure").sort(((e,t)=>t.duration-e.duration)).map((({name:e,duration:t})=>({name:e,duration:t>1e3?`${Math.round(t/1e3)} second(s)`:`${t.toFixed(2)} milliseconds`}))).map(Wd).forEach((t=>{e.push(t)}));Ud`
1316
1315
  <p>
1317
1316
  ReSpec is a document production toolchain, with a notable focus on W3C specifications.
1318
1317
  </p>
@@ -1336,19 +1335,19 @@ img.caniuse-browser{filter:drop-shadow(0 0 .1cm #666);background:0 0}
1336
1335
  </thead>
1337
1336
  <tbody>${e}</tbody>
1338
1337
  </table>
1339
- `,ci.freshModal(`${jd.about_respec} - ${window.respecVersion}`,zd,Ud)}),"Ctrl+Shift+Alt+A","ℹ️");function qd({name:e,duration:t}){return ur`
1338
+ `,ci.freshModal(`${zd.about_respec} - ${window.respecVersion}`,Md,qd)}),"Ctrl+Shift+Alt+A","ℹ️");function Wd({name:e,duration:t}){return ur`
1340
1339
  <tr>
1341
1340
  <td><a href="${`https://github.com/speced/respec/blob/develop/src/${e}.js`}">${e}</a></td>
1342
1341
  <td>${t}</td>
1343
1342
  </tr>
1344
- `}var Wd=Object.freeze({__proto__:null});var Fd=Object.freeze({__proto__:null,name:"core/seo",run:function(e){if(e.gitRevision){const t=ur`<meta
1343
+ `}var Fd=Object.freeze({__proto__:null});var Bd=Object.freeze({__proto__:null,name:"core/seo",run:function(e){if(e.gitRevision){const t=ur`<meta
1345
1344
  name="revision"
1346
1345
  content="${e.gitRevision}"
1347
- />`;document.head.appendChild(t)}const t=document.querySelector("#abstract p:first-of-type");if(!t)return;const n=t.textContent.replace(/\s+/," ").trim(),r=document.createElement("meta");r.name="description",r.content=n,document.head.appendChild(r)}});const Bd="w3c/seo",Hd={NOTE:"w3p:NOTE",WD:"w3p:WD",LC:"w3p:LastCall",CR:"w3p:CR",CRD:"w3p:CRD",PR:"w3p:PR",REC:"w3p:REC",RSCND:"w3p:RSCND"},Gd=new Set([...Vi,...Ji,...Ki,"BG-FINAL","CG-FINAL","CRY","DRY","draft-finding","finding"]);function Vd({name:e,url:t,mailto:n,company:r,companyURL:s}){const i={type:"Person",name:e,url:t,"foaf:mbox":n};return(r||s)&&(i.worksFor={name:r,url:s}),i}function Jd(e){const{href:t,title:n,href:r}=e,s={id:t,type:"TechArticle",name:n,url:r};return e.authors&&(s.creator=e.authors.map((e=>({name:e})))),e.rawDate&&(s.datePublished=e.rawDate),e.isbn&&(s.identifier=e.isbn),e.publisher&&(s.publisher={name:e.publisher}),s}var Kd=Object.freeze({__proto__:null,name:Bd,requiresCanonicalLink:Gd,run:async function(e){if((e.canonicalURI||Gd.has(e.specStatus))&&e.shortName){switch(e.canonicalURI){case"edDraft":if(e.edDraftURI)e.canonicalURI=new URL(e.edDraftURI,document.location.href).href;else{ls("Canonical URI set to edDraft, but no edDraftURI is set in configuration",Bd),e.canonicalURI=null}break;case"TR":if(e.latestVersion)e.canonicalURI=e.latestVersion;else{ls("Canonical URI set to TR, but no shortName is set in configuration",Bd),e.canonicalURI=null}break;default:e.latestVersion&&!e.canonicalURI&&(e.canonicalURI=e.latestVersion)}if(e.canonicalURI){const t=ur`<link rel="canonical" href="${e.canonicalURI}" />`;document.head.appendChild(t)}e.doJsonLd&&await async function(e,t){const n=Hd[e.specStatus],r=["TechArticle"];n&&r.push(n);const s={"@context":["https://schema.org",{"@vocab":"https://schema.org/","@language":t.documentElement.lang||"en",w3p:"http://www.w3.org/2001/02pd/rec54#",foaf:"http://xmlns.com/foaf/0.1/",datePublished:{"@type":"http://www.w3.org/2001/XMLSchema#date"},inLanguage:{"@language":null},isBasedOn:{"@type":"@id"},license:{"@type":"@id"}}],id:e.canonicalURI||e.thisVersion,type:r,name:document.title,inLanguage:t.documentElement.lang||"en",license:e.licenseInfo?.url,datePublished:e.dashDate,copyrightHolder:{name:"World Wide Web Consortium",url:"https://www.w3.org/"},discussionUrl:e.issueBase,alternativeHeadline:e.subtitle,isBasedOn:e.prevVersion};if(e.additionalCopyrightHolders){const t=Array.isArray(e.additionalCopyrightHolders)?e.additionalCopyrightHolders:[e.additionalCopyrightHolders];s.copyrightHolder=[s.copyrightHolder,...t.map((e=>({name:e})))]}const i=t.head.querySelector("meta[name=description]");i&&(s.description=i.content);e.editors&&(s.editor=e.editors.map(Vd));e.authors&&(s.contributor=e.authors.map(Vd));const o=[...e.normativeReferences,...e.informativeReferences],a=await Promise.all(o.map((e=>Ra(e))));s.citation=a.filter((e=>null!==e&&"object"==typeof e)).map(Jd);const c=t.createElement("script");c.type="application/ld+json",c.textContent=JSON.stringify(s,null,2),t.head.appendChild(c)}(e,document)}}});const Zd="\n --base: #282c34;\n --mono-1: #abb2bf;\n --mono-2: #818896;\n --mono-3: #5c6370;\n --hue-1: #56b6c2;\n --hue-2: #61aeee;\n --hue-3: #c678dd;\n --hue-4: #98c379;\n --hue-5: #e06c75;\n --hue-5-2: #be5046;\n --hue-6: #d19a66;\n --hue-6-2: #e6c07b;\n";var Yd=String.raw`.hljs,body:has(input[name=color-scheme][value=light]:checked) .hljs,head:not(:has(meta[name=color-scheme][content~=dark]))+body .hljs{--base:#fafafa;--mono-1:#383a42;--mono-2:#686b77;--mono-3:#717277;--hue-1:#0b76c5;--hue-2:#336ae3;--hue-3:#a626a4;--hue-4:#42803c;--hue-5:#ca4706;--hue-5-2:#c91243;--hue-6:#986801;--hue-6-2:#9a6a01}
1346
+ />`;document.head.appendChild(t)}const t=document.querySelector("#abstract p:first-of-type");if(!t)return;const n=t.textContent.replace(/\s+/," ").trim(),r=document.createElement("meta");r.name="description",r.content=n,document.head.appendChild(r)}});const Hd="w3c/seo",Gd={NOTE:"w3p:NOTE",WD:"w3p:WD",LC:"w3p:LastCall",CR:"w3p:CR",CRD:"w3p:CRD",PR:"w3p:PR",REC:"w3p:REC",RSCND:"w3p:RSCND"},Vd=new Set([...Vi,...Ji,...Ki,"BG-FINAL","CG-FINAL","CRY","DRY","draft-finding","finding"]);function Jd({name:e,url:t,mailto:n,company:r,companyURL:s}){const i={type:"Person",name:e,url:t,"foaf:mbox":n};return(r||s)&&(i.worksFor={name:r,url:s}),i}function Kd(e){const{href:t,title:n,href:r}=e,s={id:t,type:"TechArticle",name:n,url:r};return e.authors&&(s.creator=e.authors.map((e=>({name:e})))),e.rawDate&&(s.datePublished=e.rawDate),e.isbn&&(s.identifier=e.isbn),e.publisher&&(s.publisher={name:e.publisher}),s}var Zd=Object.freeze({__proto__:null,name:Hd,requiresCanonicalLink:Vd,run:async function(e){if((e.canonicalURI||Vd.has(e.specStatus))&&e.shortName){switch(e.canonicalURI){case"edDraft":if(e.edDraftURI)e.canonicalURI=new URL(e.edDraftURI,document.location.href).href;else{ls("Canonical URI set to edDraft, but no edDraftURI is set in configuration",Hd),e.canonicalURI=null}break;case"TR":if(e.latestVersion)e.canonicalURI=e.latestVersion;else{ls("Canonical URI set to TR, but no shortName is set in configuration",Hd),e.canonicalURI=null}break;default:e.latestVersion&&!e.canonicalURI&&(e.canonicalURI=e.latestVersion)}if(e.canonicalURI){const t=ur`<link rel="canonical" href="${e.canonicalURI}" />`;document.head.appendChild(t)}e.doJsonLd&&await async function(e,t){const n=Gd[e.specStatus],r=["TechArticle"];n&&r.push(n);const s={"@context":["https://schema.org",{"@vocab":"https://schema.org/","@language":t.documentElement.lang||"en",w3p:"http://www.w3.org/2001/02pd/rec54#",foaf:"http://xmlns.com/foaf/0.1/",datePublished:{"@type":"http://www.w3.org/2001/XMLSchema#date"},inLanguage:{"@language":null},isBasedOn:{"@type":"@id"},license:{"@type":"@id"}}],id:e.canonicalURI||e.thisVersion,type:r,name:document.title,inLanguage:t.documentElement.lang||"en",license:e.licenseInfo?.url,datePublished:e.dashDate,copyrightHolder:{name:"World Wide Web Consortium",url:"https://www.w3.org/"},discussionUrl:e.issueBase,alternativeHeadline:e.subtitle,isBasedOn:e.prevVersion};if(e.additionalCopyrightHolders){const t=Array.isArray(e.additionalCopyrightHolders)?e.additionalCopyrightHolders:[e.additionalCopyrightHolders];s.copyrightHolder=[s.copyrightHolder,...t.map((e=>({name:e})))]}const i=t.head.querySelector("meta[name=description]");i&&(s.description=i.content);e.editors&&(s.editor=e.editors.map(Jd));e.authors&&(s.contributor=e.authors.map(Jd));const o=[...e.normativeReferences,...e.informativeReferences],a=await Promise.all(o.map((e=>Ea(e))));s.citation=a.filter((e=>null!==e&&"object"==typeof e)).map(Kd);const c=t.createElement("script");c.type="application/ld+json",c.textContent=JSON.stringify(s,null,2),t.head.appendChild(c)}(e,document)}}});const Yd="\n --base: #282c34;\n --mono-1: #abb2bf;\n --mono-2: #818896;\n --mono-3: #5c6370;\n --hue-1: #56b6c2;\n --hue-2: #61aeee;\n --hue-3: #c678dd;\n --hue-4: #98c379;\n --hue-5: #e06c75;\n --hue-5-2: #be5046;\n --hue-6: #d19a66;\n --hue-6-2: #e6c07b;\n";var Xd=String.raw`.hljs,body:has(input[name=color-scheme][value=light]:checked) .hljs,head:not(:has(meta[name=color-scheme][content~=dark]))+body .hljs{--base:#fafafa;--mono-1:#383a42;--mono-2:#686b77;--mono-3:#717277;--hue-1:#0b76c5;--hue-2:#336ae3;--hue-3:#a626a4;--hue-4:#42803c;--hue-5:#ca4706;--hue-5-2:#c91243;--hue-6:#986801;--hue-6-2:#9a6a01}
1348
1347
  @media (prefers-color-scheme:dark){
1349
- .hljs{${Zd}}
1348
+ .hljs{${Yd}}
1350
1349
  }
1351
- body:has(input[name=color-scheme][value=dark]:checked) .hljs{${Zd}}
1350
+ body:has(input[name=color-scheme][value=dark]:checked) .hljs{${Yd}}
1352
1351
  .hljs{display:block;overflow-x:auto;padding:.5em;color:#383a42;color:var(--mono-1,#383a42);background:#fafafa;background:var(--base,#fafafa)}
1353
1352
  .hljs-comment,.hljs-quote{color:#717277;color:var(--mono-3,#717277);font-style:italic}
1354
1353
  .hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4;color:var(--hue-3,#a626a4)}
@@ -1360,21 +1359,21 @@ body:has(input[name=color-scheme][value=dark]:checked) .hljs{${Zd}}
1360
1359
  .hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#336ae3;color:var(--hue-2,#336ae3)}
1361
1360
  .hljs-emphasis{font-style:italic}
1362
1361
  .hljs-strong{font-weight:700}
1363
- .hljs-link{text-decoration:underline}`;const Xd=function(e,t=0){const n=function*(e,t){for(;;)yield`${e}:${t}`,t++}(e,t);return()=>n.next().value}("highlight");async function Qd(e){const t=e;t.setAttribute("aria-busy","true");const n=(r=t.classList,Array.from(r).filter((e=>"highlight"!==e&&"nolinks"!==e)).map((e=>e.toLowerCase())));var r;let s;try{s=await async function(e,t){const n={action:"highlight",code:e,id:Xd(),languages:t},r=await Es;return r.postMessage(n),new Promise(((e,t)=>{const s=setTimeout((()=>{t(new Error("Timed out waiting for highlight."))}),4e3);r.addEventListener("message",(function t(i){const{data:{id:o,language:a,value:c}}=i;o===n.id&&(r.removeEventListener("message",t),clearTimeout(s),e({language:a,value:c}))}))}))}(t.textContent,n)}catch(e){return void console.error(e)}const{language:i,value:o}=s;switch(t.localName){case"pre":t.classList.remove(i),t.innerHTML=`<code class="hljs${i?` ${i}`:""}">${o}</code>`,t.classList.length||t.removeAttribute("class");break;case"code":t.innerHTML=o,t.classList.add("hljs"),i&&t.classList.add(i)}t.setAttribute("aria-busy","false")}var ep=Object.freeze({__proto__:null,name:"core/highlight",run:async function(e){if(e.noHighlightCSS)return;const t=[...document.querySelectorAll("\n pre:not(.idl):not(.cddl):not(.nohighlight) > code:not(.nohighlight),\n pre:not(.idl):not(.cddl):not(.nohighlight),\n code.highlight\n ")].filter((e=>"pre"!==e.localName||!e.querySelector("code")));if(!t.length)return;const n=t.filter((e=>e.textContent.trim())).map(Qd);document.head.appendChild(ur`<style>
1364
- ${Yd}
1365
- </style>`),await Promise.all(n)}});const tp=Ur({en:{missing_test_suite_uri:ms`Found tests in your spec, but missing ${"[testSuiteURI]"} in your ReSpec config.`,tests:"tests",test:"test"},ja:{missing_test_suite_uri:ms`この仕様内にテストの項目を検出しましたが,ReSpec の設定に ${"[testSuiteURI]"} が見つかりません.`,tests:"テスト",test:"テスト"},de:{missing_test_suite_uri:ms`Die Spezifikation enthält Tests, aber in der ReSpec-Konfiguration ist keine ${"[testSuiteURI]"} angegeben.`,tests:"Tests",test:"Test"},zh:{missing_test_suite_uri:ms`本规范中包含测试,但在 ReSpec 配置中缺少 ${"[testSuiteURI]"}。`,tests:"测试",test:"测试"}}),np="core/data-tests";function rp(e){const t=[],[n]=new URL(e).pathname.split("/").reverse(),r=n.split(".");let[s]=r;if(r.find((e=>"https"===e))){const e=document.createElement("span");e.textContent="🔒",e.setAttribute("aria-label","requires a secure connection"),e.setAttribute("title","Test requires HTTPS"),s=s.replace(".https",""),t.push(e)}if(s.split(".").join("-").split("-").find((e=>"manual"===e))){const e=document.createElement("span");e.textContent="💪",e.setAttribute("aria-label","the test must be run manually"),e.setAttribute("title","Manual test"),s=s.replace("-manual",""),t.push(e)}return ur`
1362
+ .hljs-link{text-decoration:underline}`;const Qd=function(e,t=0){const n=function*(e,t){for(;;)yield`${e}:${t}`,t++}(e,t);return()=>n.next().value}("highlight");async function ep(e){const t=e;t.setAttribute("aria-busy","true");const n=(r=t.classList,Array.from(r).filter((e=>"highlight"!==e&&"nolinks"!==e)).map((e=>e.toLowerCase())));var r;let s;try{s=await async function(e,t){const n={action:"highlight",code:e,id:Qd(),languages:t},r=await Es;return r.postMessage(n),new Promise(((e,t)=>{const s=setTimeout((()=>{t(new Error("Timed out waiting for highlight."))}),4e3);r.addEventListener("message",(function t(i){const{data:{id:o,language:a,value:c}}=i;o===n.id&&(r.removeEventListener("message",t),clearTimeout(s),e({language:a,value:c}))}))}))}(t.textContent,n)}catch(e){return void console.error(e)}const{language:i,value:o}=s;switch(t.localName){case"pre":t.classList.remove(i),t.innerHTML=`<code class="hljs${i?` ${i}`:""}">${o}</code>`,t.classList.length||t.removeAttribute("class");break;case"code":t.innerHTML=o,t.classList.add("hljs"),i&&t.classList.add(i)}t.setAttribute("aria-busy","false")}var tp=Object.freeze({__proto__:null,name:"core/highlight",run:async function(e){if(e.noHighlightCSS)return;const t=[...document.querySelectorAll("\n pre:not(.idl):not(.cddl):not(.nohighlight) > code:not(.nohighlight),\n pre:not(.idl):not(.cddl):not(.nohighlight),\n code.highlight\n ")].filter((e=>"pre"!==e.localName||!e.querySelector("code")));if(!t.length)return;const n=t.filter((e=>e.textContent.trim())).map(ep);document.head.appendChild(ur`<style>
1363
+ ${Xd}
1364
+ </style>`),await Promise.all(n)}});const np=Ur({en:{missing_test_suite_uri:ms`Found tests in your spec, but missing ${"[testSuiteURI]"} in your ReSpec config.`,tests:"tests",test:"test"},ja:{missing_test_suite_uri:ms`この仕様内にテストの項目を検出しましたが,ReSpec の設定に ${"[testSuiteURI]"} が見つかりません.`,tests:"テスト",test:"テスト"},de:{missing_test_suite_uri:ms`Die Spezifikation enthält Tests, aber in der ReSpec-Konfiguration ist keine ${"[testSuiteURI]"} angegeben.`,tests:"Tests",test:"Test"},zh:{missing_test_suite_uri:ms`本规范中包含测试,但在 ReSpec 配置中缺少 ${"[testSuiteURI]"}。`,tests:"测试",test:"测试"}}),rp="core/data-tests";function sp(e){const t=[],[n]=new URL(e).pathname.split("/").reverse(),r=n.split(".");let[s]=r;if(r.find((e=>"https"===e))){const e=document.createElement("span");e.textContent="🔒",e.setAttribute("aria-label","requires a secure connection"),e.setAttribute("title","Test requires HTTPS"),s=s.replace(".https",""),t.push(e)}if(s.split(".").join("-").split("-").find((e=>"manual"===e))){const e=document.createElement("span");e.textContent="💪",e.setAttribute("aria-label","the test must be run manually"),e.setAttribute("title","Manual test"),s=s.replace("-manual",""),t.push(e)}return ur`
1366
1365
  <li>
1367
1366
  <a href="${e}">${s}</a>
1368
1367
  ${t}
1369
1368
  </li>
1370
- `}function sp(e,t,n){return e.map((e=>{try{return new URL(e,t).href}catch{ls(ms`Invalid URL in ${"[data-tests]"} attribute: ${e}.`,np,{elements:[n]})}})).filter((e=>e))}function ip(e,t){const n=e.filter(((e,t,n)=>n.indexOf(e)!==t));if(n.length){const e=ms`Duplicate tests found in the ${"[data-tests]"} attribute.`,r=ms`To fix, remove duplicates from ${"[data-tests]"}: ${hs(n,{quotes:!0})}.`;ls(e,np,{hint:r,elements:[t]})}}function op(e){const t=[...new Set(e)];return ur`
1369
+ `}function ip(e,t,n){return e.map((e=>{try{return new URL(e,t).href}catch{ls(ms`Invalid URL in ${"[data-tests]"} attribute: ${e}.`,rp,{elements:[n]})}})).filter((e=>e))}function op(e,t){const n=e.filter(((e,t,n)=>n.indexOf(e)!==t));if(n.length){const e=ms`Duplicate tests found in the ${"[data-tests]"} attribute.`,r=ms`To fix, remove duplicates from ${"[data-tests]"}: ${hs(n,{quotes:!0})}.`;ls(e,rp,{hint:r,elements:[t]})}}function ap(e){const t=[...new Set(e)];return ur`
1371
1370
  <details class="respec-tests-details removeOnSave">
1372
1371
  <summary>tests: ${t.length}</summary>
1373
1372
  <ul>
1374
- ${t.map(rp)}
1373
+ ${t.map(sp)}
1375
1374
  </ul>
1376
1375
  </details>
1377
- `}var ap=Object.freeze({__proto__:null,name:np,run:function(e){const t=[...document.querySelectorAll("[data-tests]")].filter((e=>e.dataset.tests));if(t.length)if(e.testSuiteURI)for(const n of t){const t=sp((n.dataset.tests??"").split(/,/gm).map((e=>e.trim())),e.testSuiteURI,n).filter((e=>void 0!==e));ip(t,n);const r=op(t);n.append(r)}else cs(tp.missing_test_suite_uri,np)}});const cp="core/list-sorter";function lp(e){const t="ascending"===e?1:-1;return(e,n)=>{const r=e.textContent??"",s=n.textContent??"";return t*r.trim().localeCompare(s.trim())}}function up(e,t){return[...e.querySelectorAll(":scope > li")].sort(lp(t)).reduce(((e,t)=>(e.appendChild(t),e)),document.createDocumentFragment())}function dp(e,t){return[...e.querySelectorAll(":scope > dt")].sort(lp(t)).reduce(((e,t)=>{const{nodeType:n,nodeName:r}=t,s=document.createDocumentFragment();let{nextSibling:i}=t;for(;i&&i.nextSibling;){s.appendChild(i.cloneNode(!0));const{nodeType:e,nodeName:t}=i.nextSibling;if(e===n&&t===r)break;i=i.nextSibling}return s.prepend(t.cloneNode(!0)),e.appendChild(s),e}),document.createDocumentFragment())}var pp=Object.freeze({__proto__:null,name:cp,run:function(){const e=document.querySelectorAll("[data-sort]");for(const t of e){let e;const n=t.dataset.sort||"ascending";switch(t.localName){case"dl":e=dp(t,n);break;case"ol":case"ul":e=up(t,n);break;default:ls(`ReSpec can't sort ${t.localName} elements.`,cp,{elements:[t]})}if(e){const n=document.createRange();n.selectNodeContents(t),n.deleteContents(),t.appendChild(e)}}},sortDefinitionTerms:dp,sortListItems:up});var hp=String.raw`var:hover{text-decoration:underline;cursor:pointer}
1376
+ `}var cp=Object.freeze({__proto__:null,name:rp,run:function(e){const t=[...document.querySelectorAll("[data-tests]")].filter((e=>e.dataset.tests));if(t.length)if(e.testSuiteURI)for(const n of t){const t=ip((n.dataset.tests??"").split(/,/gm).map((e=>e.trim())),e.testSuiteURI,n).filter((e=>void 0!==e));op(t,n);const r=ap(t);n.append(r)}else cs(np.missing_test_suite_uri,rp)}});const lp="core/list-sorter";function up(e){const t="ascending"===e?1:-1;return(e,n)=>{const r=e.textContent??"",s=n.textContent??"";return t*r.trim().localeCompare(s.trim())}}function dp(e,t){return[...e.querySelectorAll(":scope > li")].sort(up(t)).reduce(((e,t)=>(e.appendChild(t),e)),document.createDocumentFragment())}function pp(e,t){return[...e.querySelectorAll(":scope > dt")].sort(up(t)).reduce(((e,t)=>{const{nodeType:n,nodeName:r}=t,s=document.createDocumentFragment();let{nextSibling:i}=t;for(;i&&i.nextSibling;){s.appendChild(i.cloneNode(!0));const{nodeType:e,nodeName:t}=i.nextSibling;if(e===n&&t===r)break;i=i.nextSibling}return s.prepend(t.cloneNode(!0)),e.appendChild(s),e}),document.createDocumentFragment())}var hp=Object.freeze({__proto__:null,name:lp,run:function(){const e=document.querySelectorAll("[data-sort]");for(const t of e){let e;const n=t.dataset.sort||"ascending";switch(t.localName){case"dl":e=pp(t,n);break;case"ol":case"ul":e=dp(t,n);break;default:ls(`ReSpec can't sort ${t.localName} elements.`,lp,{elements:[t]})}if(e){const n=document.createRange();n.selectNodeContents(t),n.deleteContents(),t.appendChild(e)}}},sortDefinitionTerms:pp,sortListItems:dp});var fp=String.raw`var:hover{text-decoration:underline;cursor:pointer}
1378
1377
  var.respec-hl{color:var(--color,#000);background-color:var(--bg-color);box-shadow:0 0 0 2px var(--bg-color)}
1379
1378
  @media (prefers-color-scheme:dark){
1380
1379
  var.respec-hl{filter:saturate(.9) brightness(.9)}
@@ -1388,11 +1387,11 @@ var.respec-hl-c6{--bg-color:#82ddff}
1388
1387
  var.respec-hl-c7{--bg-color:#ffbcf2}
1389
1388
  @media print{
1390
1389
  var.respec-hl{background:0 0;color:#000;box-shadow:unset}
1391
- }`;var fp=Object.freeze({__proto__:null,name:"core/highlight-vars",run:async function(e){if(!e.highlightVars)return;const t=document.createElement("style");t.textContent=hp,document.head.appendChild(t);const n=document.createElement("script");n.id="respec-highlight-vars",n.textContent=await async function(){try{return(await Promise.resolve().then((function(){return jh}))).default}catch{return Cs("./src/core/highlight-vars.runtime.js")}}(),document.body.append(n),ws("beforesave",(e=>{e.querySelectorAll("var.respec-hl").forEach((e=>{const t=[...e.classList.values()].filter((e=>e.startsWith("respec-hl")));e.classList.remove(...t),e.classList.length||e.removeAttribute("class")}))}))}});var mp=String.raw`var[data-type]{position:relative}
1390
+ }`;var mp=Object.freeze({__proto__:null,name:"core/highlight-vars",run:async function(e){if(!e.highlightVars)return;const t=document.createElement("style");t.textContent=fp,document.head.appendChild(t);const n=document.createElement("script");n.id="respec-highlight-vars",n.textContent=await async function(){try{return(await Promise.resolve().then((function(){return zh}))).default}catch{return Cs("./src/core/highlight-vars.runtime.js")}}(),document.body.append(n),ws("beforesave",(e=>{e.querySelectorAll("var.respec-hl").forEach((e=>{const t=[...e.classList.values()].filter((e=>e.startsWith("respec-hl")));e.classList.remove(...t),e.classList.length||e.removeAttribute("class")}))}))}});var gp=String.raw`var[data-type]{position:relative}
1392
1391
  var[data-type]::after,var[data-type]::before{position:absolute;left:50%;top:-6px;opacity:0;transition:opacity .4s;pointer-events:none}
1393
1392
  var[data-type]::before{content:"";transform:translateX(-50%);border-width:4px 6px 0 6px;border-style:solid;border-color:transparent;border-top-color:#222}
1394
1393
  var[data-type]::after{content:attr(data-type);transform:translateX(-50%) translateY(-100%);background:#222;text-align:center;font-family:"Dank Mono","Fira Code",monospace;font-style:normal;padding:6px;border-radius:3px;color:#daca88;text-indent:0;font-weight:400}
1395
- var[data-type]:hover::after,var[data-type]:hover::before{opacity:1}`;var gp=Object.freeze({__proto__:null,name:"core/data-type",run:function(e){if(!e.highlightVars)return;const t=document.createElement("style");t.textContent=mp,document.head.appendChild(t);let n=null;const r=new Map,s=document.querySelectorAll("section var");for(const e of s){const t=e.closest("section");if(n!==t&&(n=t,r.clear()),e.dataset.type){r.set(e.textContent.trim(),e.dataset.type);continue}const s=r.get(e.textContent.trim());s&&(e.dataset.type=s)}}});const bp="core/anchor-expander";function yp(e,t,n){const r=e.querySelector(".marker .self-link");if(!r){n.textContent=n.getAttribute("href");return void cs(`Found matching element "${t}", but it has no title or marker.`,bp,{title:"Missing title.",elements:[n]})}const s=rs(r);n.append(...s.childNodes),n.classList.add("box-ref")}function wp(e,t,n){const r=e.querySelector("figcaption");if(!r){n.textContent=n.getAttribute("href");return void cs(`Found matching figure "${t}", but figure is lacking a \`<figcaption>\`.`,bp,{title:"Missing figcaption in referenced figure.",elements:[n]})}const s=[...rs(r.querySelector(".self-link")).childNodes].map((e=>(e.classList?.remove("figno"),e)));n.append(...s),n.classList.add("fig-ref");const i=r.querySelector(".fig-title");!n.hasAttribute("title")&&i&&(n.title=Mr(i.textContent))}function vp(e,t,n){if(!e.classList.contains("numbered"))return;const r=e.querySelector("caption");if(!r){n.textContent=n.getAttribute("href");return void cs(`Found matching table "${t}", but table is lacking a \`<caption>\`.`,bp,{title:"Missing caption in referenced table.",elements:[n]})}const s=[...rs(r.querySelector(".self-link")).childNodes].map((e=>(e.classList?.remove("tableno"),e)));n.append(...s),n.classList.add("table-ref");const i=r.querySelector(".table-title");!n.hasAttribute("title")&&i&&(n.title=Mr(i.textContent))}function kp(e,t,n){const r=e.querySelector("h6, h5, h4, h3, h2");if(r)$p(r,n),xp(r,n);else{n.textContent=n.getAttribute("href");cs("Found matching section, but the section was lacking a heading element.",bp,{title:`No matching id in document: "${t}".`,elements:[n]})}}function $p(e,t){const n=e.querySelector(".self-link"),r=[...rs(e).childNodes].filter((e=>!e.classList||!e.classList.contains("self-link")));t.append(...r),n&&t.prepend("§ "),t.classList.add("sec-ref"),t.lastChild&&t.lastChild.nodeType===Node.TEXT_NODE&&(t.lastChild.textContent=(t.lastChild.textContent??"").trimEnd()),t.querySelectorAll("a").forEach((e=>{const t=Yr(e,"span");for(const e of[...t.attributes])t.removeAttributeNode(e)}))}function xp(e,t){for(const n of["dir","lang"]){if(t.hasAttribute(n))continue;const r=e.closest(`[${n}]`);if(!r)continue;const s=t.closest(`[${n}]`);s&&s.getAttribute(n)===r.getAttribute(n)||t.setAttribute(n,r.getAttribute(n)??"")}}var Cp=Object.freeze({__proto__:null,name:bp,run:function(){const e=[...document.querySelectorAll("a[href^='#']:not(.self-link):not([href$='the-empty-string'])")].filter((e=>""===e.textContent.trim()));for(const t of e){const e=(t.getAttribute("href")??"").slice(1),n=document.getElementById(e);if(n){switch(n.localName){case"h6":case"h5":case"h4":case"h3":case"h2":$p(n,t);break;case"section":kp(n,e,t);break;case"figure":wp(n,e,t);break;case"table":vp(n,e,t);break;case"aside":case"div":yp(n,e,t);break;case"dfn":{const e=rs(n);t.append(...e.childNodes),t.classList.add("dfn-ref");break}default:t.textContent=t.getAttribute("href");cs("ReSpec doesn't support expanding this kind of reference.",bp,{title:`Can't expand "#${e}".`,elements:[t]})}xp(n,t),t.normalize()}else{t.textContent=t.getAttribute("href");cs(`Couldn't expand inline reference. The id "${e}" is not in the document.`,bp,{title:`No matching id in document: ${e}.`,elements:[t]})}}}});var Sp=String.raw`dfn{cursor:pointer}
1394
+ var[data-type]:hover::after,var[data-type]:hover::before{opacity:1}`;var bp=Object.freeze({__proto__:null,name:"core/data-type",run:function(e){if(!e.highlightVars)return;const t=document.createElement("style");t.textContent=gp,document.head.appendChild(t);let n=null;const r=new Map,s=document.querySelectorAll("section var");for(const e of s){const t=e.closest("section");if(n!==t&&(n=t,r.clear()),e.dataset.type){r.set(e.textContent.trim(),e.dataset.type);continue}const s=r.get(e.textContent.trim());s&&(e.dataset.type=s)}}});const yp="core/anchor-expander";function wp(e,t,n){const r=e.querySelector(".marker .self-link");if(!r){n.textContent=n.getAttribute("href");return void cs(`Found matching element "${t}", but it has no title or marker.`,yp,{title:"Missing title.",elements:[n]})}const s=rs(r);n.append(...s.childNodes),n.classList.add("box-ref")}function vp(e,t,n){const r=e.querySelector("figcaption");if(!r){n.textContent=n.getAttribute("href");return void cs(`Found matching figure "${t}", but figure is lacking a \`<figcaption>\`.`,yp,{title:"Missing figcaption in referenced figure.",elements:[n]})}const s=[...rs(r.querySelector(".self-link")).childNodes].map((e=>(e.classList?.remove("figno"),e)));n.append(...s),n.classList.add("fig-ref");const i=r.querySelector(".fig-title");!n.hasAttribute("title")&&i&&(n.title=Mr(i.textContent))}function kp(e,t,n){if(!e.classList.contains("numbered"))return;const r=e.querySelector("caption");if(!r){n.textContent=n.getAttribute("href");return void cs(`Found matching table "${t}", but table is lacking a \`<caption>\`.`,yp,{title:"Missing caption in referenced table.",elements:[n]})}const s=[...rs(r.querySelector(".self-link")).childNodes].map((e=>(e.classList?.remove("tableno"),e)));n.append(...s),n.classList.add("table-ref");const i=r.querySelector(".table-title");!n.hasAttribute("title")&&i&&(n.title=Mr(i.textContent))}function $p(e,t,n){const r=e.querySelector("h6, h5, h4, h3, h2");if(r)xp(r,n),Cp(r,n);else{n.textContent=n.getAttribute("href");cs("Found matching section, but the section was lacking a heading element.",yp,{title:`No matching id in document: "${t}".`,elements:[n]})}}function xp(e,t){const n=e.querySelector(".self-link"),r=[...rs(e).childNodes].filter((e=>!e.classList||!e.classList.contains("self-link")));t.append(...r),n&&t.prepend("§ "),t.classList.add("sec-ref"),t.lastChild&&t.lastChild.nodeType===Node.TEXT_NODE&&(t.lastChild.textContent=(t.lastChild.textContent??"").trimEnd()),t.querySelectorAll("a").forEach((e=>{const t=Yr(e,"span");for(const e of[...t.attributes])t.removeAttributeNode(e)}))}function Cp(e,t){for(const n of["dir","lang"]){if(t.hasAttribute(n))continue;const r=e.closest(`[${n}]`);if(!r)continue;const s=t.closest(`[${n}]`);s&&s.getAttribute(n)===r.getAttribute(n)||t.setAttribute(n,r.getAttribute(n)??"")}}var Sp=Object.freeze({__proto__:null,name:yp,run:function(){const e=[...document.querySelectorAll("a[href^='#']:not(.self-link):not([href$='the-empty-string'])")].filter((e=>""===e.textContent.trim()));for(const t of e){const e=(t.getAttribute("href")??"").slice(1),n=document.getElementById(e);if(n){switch(n.localName){case"h6":case"h5":case"h4":case"h3":case"h2":xp(n,t);break;case"section":$p(n,e,t);break;case"figure":vp(n,e,t);break;case"table":kp(n,e,t);break;case"aside":case"div":wp(n,e,t);break;case"dfn":{const e=rs(n);t.append(...e.childNodes),t.classList.add("dfn-ref");break}default:t.textContent=t.getAttribute("href");cs("ReSpec doesn't support expanding this kind of reference.",yp,{title:`Can't expand "#${e}".`,elements:[t]})}Cp(n,t),t.normalize()}else{t.textContent=t.getAttribute("href");cs(`Couldn't expand inline reference. The id "${e}" is not in the document.`,yp,{title:`No matching id in document: ${e}.`,elements:[t]})}}}});var _p=String.raw`dfn{cursor:pointer}
1396
1395
  .dfn-panel{position:absolute;z-index:35;min-width:300px;max-width:500px;padding:.5em .75em;margin-top:.6em;font-family:"Helvetica Neue",sans-serif;font-size:small;background:#fff;background:var(--indextable-hover-bg,#fff);color:#000;color:var(--text,#000);box-shadow:0 1em 3em -.4em rgba(0,0,0,.3),0 0 1px 1px rgba(0,0,0,.05);box-shadow:0 1em 3em -.4em var(--tocsidebar-shadow,rgba(0,0,0,.3)),0 0 1px 1px var(--tocsidebar-shadow,rgba(0,0,0,.05));border-radius:2px}
1397
1396
  .dfn-panel:not(.docked)>.caret{position:absolute;top:-9px}
1398
1397
  .dfn-panel:not(.docked)>.caret::after,.dfn-panel:not(.docked)>.caret::before{content:"";position:absolute;border:10px solid transparent;border-top:0;border-bottom:10px solid #fff;border-bottom-color:var(--indextable-hover-bg,#fff);top:0}
@@ -1410,7 +1409,7 @@ var[data-type]:hover::after,var[data-type]:hover::before{opacity:1}`;var gp=Obje
1410
1409
  .dfn-panel a[href]:hover{border-bottom-width:1px}
1411
1410
  .dfn-panel ul{padding:0}
1412
1411
  .dfn-panel li{margin-left:1em}
1413
- .dfn-panel.docked{position:fixed;left:.5em;top:unset;bottom:2em;margin:0 auto;max-width:calc(100vw - .75em * 2 - .5em - .2em * 2);max-height:30vh;overflow:auto}`;function _p(e){const{id:t}=e,n=e.dataset.href||`#${t}`,r=document.querySelectorAll(`a[href="${n}"]:not(.index-term)`),s=`dfn-panel-for-${e.id}`,i=e.getAttribute("aria-label")||Mr(e.textContent),o=ur`
1412
+ .dfn-panel.docked{position:fixed;left:.5em;top:unset;bottom:2em;margin:0 auto;max-width:calc(100vw - .75em * 2 - .5em - .2em * 2);max-height:30vh;overflow:auto}`;function Tp(e){const{id:t}=e,n=e.dataset.href||`#${t}`,r=document.querySelectorAll(`a[href="${n}"]:not(.index-term)`),s=`dfn-panel-for-${e.id}`,i=e.getAttribute("aria-label")||Mr(e.textContent),o=ur`
1414
1413
  <div
1415
1414
  class="dfn-panel"
1416
1415
  id="${s}"
@@ -1454,17 +1453,17 @@ var[data-type]:hover::after,var[data-type]:hover::before{opacity:1}`;var gp=Obje
1454
1453
  ${[...n].map(s)}
1455
1454
  </ul>`}(t,r)}
1456
1455
  </div>
1457
- `;return o}var Tp=Object.freeze({__proto__:null,name:"core/dfn-panel",run:async function(){document.head.insertBefore(ur`<style>
1458
- ${Sp}
1459
- </style>`,document.querySelector("link"));const e=document.querySelectorAll("dfn[id]:not([data-cite]), #index-defined-elsewhere .index-term"),t=document.createDocumentFragment();for(const n of e)t.append(_p(n)),n.tabIndex=0,n.setAttribute("aria-haspopup","dialog");const n=document.body.querySelector("script");n?n.before(t):document.body.append(t);const r=document.createElement("script");r.id="respec-dfn-panel",r.textContent=await async function(){try{return(await Promise.resolve().then((function(){return zh}))).default}catch{return Cs("./src/core/dfn-panel.runtime.js")}}(),document.body.append(r)}});const Rp="rs-changelog",Ep=class extends HTMLElement{constructor(){super();const e=this.getAttribute("filter"),t=e&&"function"==typeof window[e]?window[e]:()=>!0;this.props={from:this.getAttribute("from"),to:this.getAttribute("to")||"HEAD",repo:this.getAttribute("repo"),path:this.getAttribute("path"),filter:t}}connectedCallback(){const{from:e,to:t,filter:n,repo:r,path:s}=this.props;ur.bind(this)`
1456
+ `;return o}var Rp=Object.freeze({__proto__:null,name:"core/dfn-panel",run:async function(){document.head.insertBefore(ur`<style>
1457
+ ${_p}
1458
+ </style>`,document.querySelector("link"));const e=document.querySelectorAll("dfn[id]:not([data-cite]), #index-defined-elsewhere .index-term"),t=document.createDocumentFragment();for(const n of e)t.append(Tp(n)),n.tabIndex=0,n.setAttribute("aria-haspopup","dialog");const n=document.body.querySelector("script");n?n.before(t):document.body.append(t);const r=document.createElement("script");r.id="respec-dfn-panel",r.textContent=await async function(){try{return(await Promise.resolve().then((function(){return Mh}))).default}catch{return Cs("./src/core/dfn-panel.runtime.js")}}(),document.body.append(r)}});const Ep="rs-changelog",Lp=class extends HTMLElement{constructor(){super();const e=this.getAttribute("filter"),t=e&&"function"==typeof window[e]?window[e]:()=>!0;this.props={from:this.getAttribute("from"),to:this.getAttribute("to")||"HEAD",repo:this.getAttribute("repo"),path:this.getAttribute("path"),filter:t}}connectedCallback(){const{from:e,to:t,filter:n,repo:r,path:s}=this.props;ur.bind(this)`
1460
1459
  <ul>
1461
- ${{any:Lp(e,t,n,r,s).then((e=>async function(e,t){const n=await To,r=t?`https://github.com/${t}/`:n?.repoURL;return e.map((e=>{const[t,n=null]=e.message.split(/\(#(\d+)\)/,2),s=`${r}commit/${e.hash}`,i=n&&ur` (<a href="${n?`${r}pull/${n}`:null}">#${n}</a>)`;return ur`<li><a href="${s}">${t.trim()}</a>${i}</li>`}))}(e,r))).catch((e=>cs(e.message,Rp,{elements:[this],cause:e}))).finally((()=>{this.dispatchEvent(new CustomEvent("done"))})),placeholder:"Loading list of commits..."}}
1460
+ ${{any:Ap(e,t,n,r,s).then((e=>async function(e,t){const n=await Ro,r=t?`https://github.com/${t}/`:n?.repoURL;return e.map((e=>{const[t,n=null]=e.message.split(/\(#(\d+)\)/,2),s=`${r}commit/${e.hash}`,i=n&&ur` (<a href="${n?`${r}pull/${n}`:null}">#${n}</a>)`;return ur`<li><a href="${s}">${t.trim()}</a>${i}</li>`}))}(e,r))).catch((e=>cs(e.message,Ep,{elements:[this],cause:e}))).finally((()=>{this.dispatchEvent(new CustomEvent("done"))})),placeholder:"Loading list of commits..."}}
1462
1461
  </ul>
1463
- `}};async function Lp(e,t,n,r,s){let i;try{const o=await To;if(!o)throw new Error("`respecConfig.github` is not set");const a=r||o.fullName,c=new URL("commits",`${o.apiBase}/${a}/`);e&&c.searchParams.set("from",e),c.searchParams.set("to",t),s&&c.searchParams.set("path",s);const l=await fetch(c.href);if(!l.ok)throw new Error(`Request to ${c} failed with status code ${l.status}`);if(i=await l.json(),!i.length)throw new Error(`No commits between ${e}..${t}.`);i=i.filter(n)}catch(e){const t=`Error loading commits from GitHub. ${e.message}`;throw new Error(t,{cause:e})}return i}const Ap=[Object.freeze({__proto__:null,element:Ep,name:Rp})];var Pp=Object.freeze({__proto__:null,name:"core/custom-elements/index",run:async function(){Ap.forEach((e=>{customElements.define(e.name,e.element)}));const e=Ap.map((e=>e.name)).join(", "),t=[...document.querySelectorAll(e)].map((e=>new Promise((t=>e.addEventListener("done",t,{once:!0})))));await Promise.all(t)}});var Np=Object.freeze({__proto__:null,name:"core/web-monetization",run:function(e){if(!1===e.monetization)return;const{monetization:t}=e,{removeOnSave:n,paymentPointer:r}=function(e){const t={paymentPointer:"$respec.org",removeOnSave:!0};switch(typeof e){case"string":t.paymentPointer=e;break;case"object":e.paymentPointer&&(t.paymentPointer=String(e.paymentPointer)),!1===e.removeOnSave&&(t.removeOnSave=!1)}return t}(t),s=n?"removeOnSave":null;document.head.append(ur`<meta
1462
+ `}};async function Ap(e,t,n,r,s){let i;try{const o=await Ro;if(!o)throw new Error("`respecConfig.github` is not set");const a=r||o.fullName,c=new URL("commits",`${o.apiBase}/${a}/`);e&&c.searchParams.set("from",e),c.searchParams.set("to",t),s&&c.searchParams.set("path",s);const l=await fetch(c.href);if(!l.ok)throw new Error(`Request to ${c} failed with status code ${l.status}`);if(i=await l.json(),!i.length)throw new Error(`No commits between ${e}..${t}.`);i=i.filter(n)}catch(e){const t=`Error loading commits from GitHub. ${e.message}`;throw new Error(t,{cause:e})}return i}const Pp=[Object.freeze({__proto__:null,element:Lp,name:Ep})];var Np=Object.freeze({__proto__:null,name:"core/custom-elements/index",run:async function(){Pp.forEach((e=>{customElements.define(e.name,e.element)}));const e=Pp.map((e=>e.name)).join(", "),t=[...document.querySelectorAll(e)].map((e=>new Promise((t=>e.addEventListener("done",t,{once:!0})))));await Promise.all(t)}});var Ip=Object.freeze({__proto__:null,name:"core/web-monetization",run:function(e){if(!1===e.monetization)return;const{monetization:t}=e,{removeOnSave:n,paymentPointer:r}=function(e){const t={paymentPointer:"$respec.org",removeOnSave:!0};switch(typeof e){case"string":t.paymentPointer=e;break;case"object":e.paymentPointer&&(t.paymentPointer=String(e.paymentPointer)),!1===e.removeOnSave&&(t.removeOnSave=!1)}return t}(t),s=n?"removeOnSave":null;document.head.append(ur`<meta
1464
1463
  name="monetization"
1465
1464
  content="${r}"
1466
1465
  class="${s}"
1467
- />`)}});var Ip=Object.freeze({__proto__:null,name:"core/dfn-contract",run:function(){!function(){const e=document.querySelectorAll("dfn:is([data-dfn-type=''],:not([data-dfn-type]))");for(const t of e)t.dataset.dfnType="dfn";const t=document.querySelectorAll("dfn:not([data-noexport], [data-export], [data-dfn-type='dfn'], [data-cite])");for(const e of t)e.dataset.export=""}(),function(){const e=document.querySelectorAll("dl.definitions dt:has(dfn[data-dfn-type])");for(const t of e){const e=t.querySelector("dfn[data-dfn-type]").id,n=t.nextElementSibling;n&&!n.dataset.defines&&e&&(n.dataset.defines=`#${e}`)}const t=document.querySelectorAll(".definition:has(dfn[data-dfn-type])");for(const e of t){const t=e.querySelector("dfn[data-dfn-type]");t.id&&!e.dataset.defines&&(e.dataset.defines=`#${t.id}`)}}()}});const Dp="core/before-save";var Op=Object.freeze({__proto__:null,name:Dp,run:function(e){if(e.beforeSave)if(Array.isArray(e.beforeSave)&&!e.beforeSave.some((e=>"function"!=typeof e||"AsyncFunction"===e.constructor.name)))ws("beforesave",(t=>{!function(e,t){let n=0;for(const r of e)try{r(t)}catch(e){cs(ms`Function ${r.name?`\`${r.name}\``:`at position ${n}`}\` threw an error during processing of ${"[beforeSave]"}.`,Dp,{hint:"See developer console.",cause:e})}finally{n++}}(e.beforeSave,t.ownerDocument)}),{once:!0});else{cs(ms`${"[beforeSave]"} configuration option must be an array of synchronous JS functions.`,Dp)}}});const jp="core/linter-rules/check-charset",zp=Ur({en:{msg:"Document must only contain one `<meta>` tag with charset set to 'utf-8'",hint:'Add this line in your document `<head>` section - `<meta charset="utf-8">` or set charset to "utf-8" if not set already.'},zh:{msg:"文档只能包含一个 charset 属性为 utf-8 的 `<meta>` 标签",hint:'将此行添加到文档的 `<head>` 部分—— `<meta charset="utf-8">` 或将 charset 设置为 utf-8(如果尚未设置)。'},cs:{msg:"Dokument smí obsahovat pouze jeden tag `<meta>` s charset nastaveným na 'utf-8'",hint:'Přidejte tento řádek do sekce `<head>` vašeho dokumentu - `<meta charset="utf-8">` nebo nastavte charset na "utf-8", pokud ještě není nastaven.'}});var Mp=Object.freeze({__proto__:null,name:jp,run:function(e){if(!e.lint?.["check-charset"])return;const t=document.querySelectorAll("meta[charset]"),n=[];for(const e of t)n.push((e.getAttribute("charset")??"").trim().toLowerCase());n.includes("utf-8")&&1===t.length||ls(zp.msg,jp,{hint:zp.hint,elements:[...t]})}});const Up="core/linter-rules/check-punctuation",qp=[".",":","!","?"],Wp=qp.map((e=>`"${e}"`)).join(", "),Fp=Ur({en:{msg:"`p` elements should end with a punctuation mark.",hint:`Please make sure \`p\` elements end with one of: ${Wp}.`},cs:{msg:"Elementy `p` by měly končit interpunkčním znaménkem.",hint:`Ujistěte se, že elementy \`p\` končí jedním z těchto znaků: ${Wp}.`}});var Bp=Object.freeze({__proto__:null,name:Up,run:function(e){if(!e.lint?.["check-punctuation"])return;const t=new RegExp(`[${qp.join("")}\\]]$|^ *$`,"m"),n=[...document.querySelectorAll("p:not(#back-to-top,#w3c-state)")].filter((e=>!t.test(e.textContent.trim())));n.length&&ls(Fp.msg,Up,{hint:Fp.hint,elements:n})}});const Hp="core/linter-rules/check-internal-slots",Gp=Ur({en:{msg:"Internal slots should be preceded by a '.'",hint:"Add a '.' between the elements mentioned."},cs:{msg:"Interní sloty by měly být uvedeny s tečkou '.' před názvem",hint:"Přidejte tečku '.' mezi uvedené prvky."}});var Vp=Object.freeze({__proto__:null,name:Hp,run:function(e){if(!e.lint?.["check-internal-slots"])return;const t=[...document.querySelectorAll("var+a")].filter((e=>{const t=e.previousSibling?.nodeName;return"VAR"===t}));t.length&&ls(Gp.msg,Hp,{hint:Gp.hint,elements:t})}});const Jp="core/linter-rules/local-refs-exist",Kp=Ur({en:{msg:"Broken local reference found in document.",hint:"Please fix the links mentioned."},cs:{msg:"V dokumentu byla nalezena nefunkční lokální reference.",hint:"Opravte prosím uvedené odkazy."}});function Zp(e){const t=e.getAttribute("href")?.substring(1);if(!t)return;const n=e.ownerDocument;return!n.getElementById(t)&&!n.getElementsByName(t).length}var Yp=Object.freeze({__proto__:null,name:Jp,run:function(e){if(!e.lint?.["local-refs-exist"])return;const t=[...document.querySelectorAll("a[href^='#']")].filter(Zp);t.length&&ls(Kp.msg,Jp,{hint:Kp.hint,elements:t})}});const Xp="core/linter-rules/no-captionless-tables",Qp=Ur({en:{msg:"All tables marked with class='numbered' must start with a caption element.",hint:"Add a `caption` to the offending table."},cs:{msg:"Všechny tabulky označené class='numbered' musí začínat elementem caption.",hint:"Přidejte k dané tabulce element `caption`."}});var eh=Object.freeze({__proto__:null,name:Xp,run:function(e){if(!e.lint?.["no-captionless-tables"])return;const t=[...document.querySelectorAll("table.numbered")].filter((e=>!(e.firstElementChild instanceof HTMLTableCaptionElement)));t.length&&ls(Qp.msg,Xp,{hint:Qp.hint,elements:t})}});const th="no-unused-dfns",nh="core/linter-rules/no-unused-dfns",rh=Ur({en:{msg:e=>`Found definition for "${e}", but nothing links to it. This is usually a spec bug!`,get hint(){return ms`
1466
+ />`)}});var Dp=Object.freeze({__proto__:null,name:"core/dfn-contract",run:function(){!function(){const e=document.querySelectorAll("dfn:is([data-dfn-type=''],:not([data-dfn-type]))");for(const t of e)t.dataset.dfnType="dfn";const t=document.querySelectorAll("dfn:not([data-noexport], [data-export], [data-dfn-type='dfn'], [data-cite])");for(const e of t)e.dataset.export=""}(),function(){const e=document.querySelectorAll("dl.definitions dt:has(dfn[data-dfn-type])");for(const t of e){const e=t.querySelector("dfn[data-dfn-type]").id,n=t.nextElementSibling;n&&!n.dataset.defines&&e&&(n.dataset.defines=`#${e}`)}const t=document.querySelectorAll(".definition:has(dfn[data-dfn-type])");for(const e of t){const t=e.querySelector("dfn[data-dfn-type]");t.id&&!e.dataset.defines&&(e.dataset.defines=`#${t.id}`)}}()}});const Op="core/before-save";var jp=Object.freeze({__proto__:null,name:Op,run:function(e){if(e.beforeSave)if(Array.isArray(e.beforeSave)&&!e.beforeSave.some((e=>"function"!=typeof e||"AsyncFunction"===e.constructor.name)))ws("beforesave",(t=>{!function(e,t){let n=0;for(const r of e)try{r(t)}catch(e){cs(ms`Function ${r.name?`\`${r.name}\``:`at position ${n}`}\` threw an error during processing of ${"[beforeSave]"}.`,Op,{hint:"See developer console.",cause:e})}finally{n++}}(e.beforeSave,t.ownerDocument)}),{once:!0});else{cs(ms`${"[beforeSave]"} configuration option must be an array of synchronous JS functions.`,Op)}}});const zp="core/linter-rules/check-charset",Mp=Ur({en:{msg:"Document must only contain one `<meta>` tag with charset set to 'utf-8'",hint:'Add this line in your document `<head>` section - `<meta charset="utf-8">` or set charset to "utf-8" if not set already.'},zh:{msg:"文档只能包含一个 charset 属性为 utf-8 的 `<meta>` 标签",hint:'将此行添加到文档的 `<head>` 部分—— `<meta charset="utf-8">` 或将 charset 设置为 utf-8(如果尚未设置)。'},cs:{msg:"Dokument smí obsahovat pouze jeden tag `<meta>` s charset nastaveným na 'utf-8'",hint:'Přidejte tento řádek do sekce `<head>` vašeho dokumentu - `<meta charset="utf-8">` nebo nastavte charset na "utf-8", pokud ještě není nastaven.'}});var Up=Object.freeze({__proto__:null,name:zp,run:function(e){if(!e.lint?.["check-charset"])return;const t=document.querySelectorAll("meta[charset]"),n=[];for(const e of t)n.push((e.getAttribute("charset")??"").trim().toLowerCase());n.includes("utf-8")&&1===t.length||ls(Mp.msg,zp,{hint:Mp.hint,elements:[...t]})}});const qp="core/linter-rules/check-punctuation",Wp=[".",":","!","?"],Fp=Wp.map((e=>`"${e}"`)).join(", "),Bp=Ur({en:{msg:"`p` elements should end with a punctuation mark.",hint:`Please make sure \`p\` elements end with one of: ${Fp}.`},cs:{msg:"Elementy `p` by měly končit interpunkčním znaménkem.",hint:`Ujistěte se, že elementy \`p\` končí jedním z těchto znaků: ${Fp}.`}});var Hp=Object.freeze({__proto__:null,name:qp,run:function(e){if(!e.lint?.["check-punctuation"])return;const t=new RegExp(`[${Wp.join("")}\\]]$|^ *$`,"m"),n=[...document.querySelectorAll("p:not(#back-to-top,#w3c-state)")].filter((e=>!t.test(e.textContent.trim())));n.length&&ls(Bp.msg,qp,{hint:Bp.hint,elements:n})}});const Gp="core/linter-rules/check-internal-slots",Vp=Ur({en:{msg:"Internal slots should be preceded by a '.'",hint:"Add a '.' between the elements mentioned."},cs:{msg:"Interní sloty by měly být uvedeny s tečkou '.' před názvem",hint:"Přidejte tečku '.' mezi uvedené prvky."}});var Jp=Object.freeze({__proto__:null,name:Gp,run:function(e){if(!e.lint?.["check-internal-slots"])return;const t=[...document.querySelectorAll("var+a")].filter((e=>{const t=e.previousSibling?.nodeName;return"VAR"===t}));t.length&&ls(Vp.msg,Gp,{hint:Vp.hint,elements:t})}});const Kp="core/linter-rules/local-refs-exist",Zp=Ur({en:{msg:"Broken local reference found in document.",hint:"Please fix the links mentioned."},cs:{msg:"V dokumentu byla nalezena nefunkční lokální reference.",hint:"Opravte prosím uvedené odkazy."}});function Yp(e){const t=e.getAttribute("href")?.substring(1);if(!t)return;const n=e.ownerDocument;return!n.getElementById(t)&&!n.getElementsByName(t).length}var Xp=Object.freeze({__proto__:null,name:Kp,run:function(e){if(!e.lint?.["local-refs-exist"])return;const t=[...document.querySelectorAll("a[href^='#']")].filter(Yp);t.length&&ls(Zp.msg,Kp,{hint:Zp.hint,elements:t})}});const Qp="core/linter-rules/no-captionless-tables",eh=Ur({en:{msg:"All tables marked with class='numbered' must start with a caption element.",hint:"Add a `caption` to the offending table."},cs:{msg:"Všechny tabulky označené class='numbered' musí začínat elementem caption.",hint:"Přidejte k dané tabulce element `caption`."}});var th=Object.freeze({__proto__:null,name:Qp,run:function(e){if(!e.lint?.["no-captionless-tables"])return;const t=[...document.querySelectorAll("table.numbered")].filter((e=>!(e.firstElementChild instanceof HTMLTableCaptionElement)));t.length&&ls(eh.msg,Qp,{hint:eh.hint,elements:t})}});const nh="no-unused-dfns",rh="core/linter-rules/no-unused-dfns",sh=Ur({en:{msg:e=>`Found definition for "${e}", but nothing links to it. This is usually a spec bug!`,get hint(){return ms`
1468
1467
  You can do one of the following...
1469
1468
 
1470
1469
  * Add a \`class="lint-ignore"\` attribute the definition.
@@ -1478,28 +1477,28 @@ var[data-type]:hover::after,var[data-type]:hover::before{opacity:1}`;var gp=Obje
1478
1477
  * Definici buď odstraňte, nebo změňte \`<dfn>\` na jiný typ HTML elementu.
1479
1478
  * Pokud jste chtěli ${"[export|#data-export]"} tuto definici, přidejte k ní \`class="export"\`.
1480
1479
 
1481
- Pro úplné potlačení tohoto varování nastavte \`lint: { "no-unused-dfns": false }\` ve vaší \`respecConfig\`.`}}});function sh(e){return!document.querySelector(`a[href="#${e.id}"]:not(.index-term, .self-link)`)}var ih=Object.freeze({__proto__:null,name:nh,run:function(e){if(!e.lint?.[th])return;const t="error"===e.lint[th]?cs:ls;[...document.querySelectorAll("dfn:not(.lint-ignore, [data-export], [data-cite])")].filter(sh).forEach((e=>{const n=[e],r=Mr(e.textContent);t(rh.msg(r),nh,{elements:n,hint:rh.hint})}))}});const oh="core/linter-rules/no-headingless-sections",ah=Ur({en:{msg:"All sections must start with a `h2-6` element.",hint:"Add a `h2-6` to the offending section or use a `<div>`."},nl:{msg:"Alle secties moeten beginnen met een `h2-6` element.",hint:"Voeg een `h2-6` toe aan de conflicterende sectie of gebruik een `<div>`."},zh:{msg:"所有章节(section)都必须以 `h2-6` 元素开头。",hint:"将 `h2-6` 添加到有问题的章节或使用 `<div>`。"},cs:{msg:"Všechny sekce musí začínat elementem `h2-6`.",hint:"Přidejte do problematické sekce `h2-6` nebo použijte `<div>`."}});var ch=Object.freeze({__proto__:null,name:oh,run:function(e){if(!e.lint?.["no-headingless-sections"])return;const t=[...document.querySelectorAll("section:not(.head,#abstract,#sotd)")].filter((({firstElementChild:e})=>!e||!(e.matches(".header-wrapper")||e instanceof HTMLHeadingElement)));t.length&&ls(ah.msg,oh,{hint:ah.hint,elements:t})}});const lh="core/linter-rules/no-unused-vars",uh=Ur({en:{msg:"Variable was defined, but never used.",hint:"Add a `data-ignore-unused` attribute to the `<var>`."},cs:{msg:"Proměnná byla definována, ale nikdy nebyla použita.",hint:"Přidejte atribut `data-ignore-unused` k elementu `<var>`."}});var dh=Object.freeze({__proto__:null,name:lh,run:function(e){if(!e.lint?.["no-unused-vars"])return;const t=[],n=e=>!!e.querySelector(":scope > :not(section) ~ .algorithm, :scope > :not(section) .algorithm");for(const e of document.querySelectorAll("section")){if(!n(e))continue;const r=e.querySelectorAll(":scope > :not(section) var");if(!r.length)continue;const s=new Map;for(const e of r){const t=Mr(e.textContent),n=s.get(t)||s.set(t,[]).get(t);n?.push(e)}for(const e of s.values())1!==e.length||e[0].hasAttribute("data-ignore-unused")||t.push(e[0])}t.length&&ls(uh.msg,lh,{hint:uh.hint,elements:t})}});const ph="no-dfn-in-abstract",hh=`core/linter-rules/${ph}`,fh=Ur({en:{msg:e=>`Definition \`${e}\` is in an unnumbered section (e.g. abstract or SotD).`,get hint(){return ms`Definitions in unnumbered sections (abstract, SotD) are semantically out of place and appear in the terms index without a section number. Move this definition to a numbered section such as "Terminology". See ${"[export|#data-export]"}.`}}}),mh=["section#abstract","section#sotd","section.introductory"].join(", ");var gh=Object.freeze({__proto__:null,name:hh,run:function(e){if(!e.lint?.[ph])return;const t=[...document.querySelectorAll("dfn")].filter((e=>e.closest(mh)));t.forEach((e=>{const t=Mr(e.textContent);ls(fh.msg(t),hh,{hint:fh.hint,elements:[e]})}))}});const bh="required-sections",yh="w3c/linter-rules/required-sections",wh={en:{msg:e=>`W3C Recommendation track documents require a separate "${e}" section.`,hint:e=>ms`Add a \`<section>\` with a "${e}" header. See the [Horizontal review guidelines](https://www.w3.org/Guide/documentreview/#how_to_get_horizontal_review).
1480
+ Pro úplné potlačení tohoto varování nastavte \`lint: { "no-unused-dfns": false }\` ve vaší \`respecConfig\`.`}}});function ih(e){return!document.querySelector(`a[href="#${e.id}"]:not(.index-term, .self-link)`)}var oh=Object.freeze({__proto__:null,name:rh,run:function(e){if(!e.lint?.[nh])return;const t="error"===e.lint[nh]?cs:ls;[...document.querySelectorAll("dfn:not(.lint-ignore, [data-export], [data-cite])")].filter(ih).forEach((e=>{const n=[e],r=Mr(e.textContent);t(sh.msg(r),rh,{elements:n,hint:sh.hint})}))}});const ah="core/linter-rules/no-headingless-sections",ch=Ur({en:{msg:"All sections must start with a `h2-6` element.",hint:"Add a `h2-6` to the offending section or use a `<div>`."},nl:{msg:"Alle secties moeten beginnen met een `h2-6` element.",hint:"Voeg een `h2-6` toe aan de conflicterende sectie of gebruik een `<div>`."},zh:{msg:"所有章节(section)都必须以 `h2-6` 元素开头。",hint:"将 `h2-6` 添加到有问题的章节或使用 `<div>`。"},cs:{msg:"Všechny sekce musí začínat elementem `h2-6`.",hint:"Přidejte do problematické sekce `h2-6` nebo použijte `<div>`."}});var lh=Object.freeze({__proto__:null,name:ah,run:function(e){if(!e.lint?.["no-headingless-sections"])return;const t=[...document.querySelectorAll("section:not(.head,#abstract,#sotd)")].filter((({firstElementChild:e})=>!e||!(e.matches(".header-wrapper")||e instanceof HTMLHeadingElement)));t.length&&ls(ch.msg,ah,{hint:ch.hint,elements:t})}});const uh="core/linter-rules/no-unused-vars",dh=Ur({en:{msg:"Variable was defined, but never used.",hint:"Add a `data-ignore-unused` attribute to the `<var>`."},cs:{msg:"Proměnná byla definována, ale nikdy nebyla použita.",hint:"Přidejte atribut `data-ignore-unused` k elementu `<var>`."}});var ph=Object.freeze({__proto__:null,name:uh,run:function(e){if(!e.lint?.["no-unused-vars"])return;const t=[],n=e=>!!e.querySelector(":scope > :not(section) ~ .algorithm, :scope > :not(section) .algorithm");for(const e of document.querySelectorAll("section")){if(!n(e))continue;const r=e.querySelectorAll(":scope > :not(section) var");if(!r.length)continue;const s=new Map;for(const e of r){const t=Mr(e.textContent),n=s.get(t)||s.set(t,[]).get(t);n?.push(e)}for(const e of s.values())1!==e.length||e[0].hasAttribute("data-ignore-unused")||t.push(e[0])}t.length&&ls(dh.msg,uh,{hint:dh.hint,elements:t})}});const hh="no-dfn-in-abstract",fh=`core/linter-rules/${hh}`,mh=Ur({en:{msg:e=>`Definition \`${e}\` is in an unnumbered section (e.g. abstract or SotD).`,get hint(){return ms`Definitions in unnumbered sections (abstract, SotD) are semantically out of place and appear in the terms index without a section number. Move this definition to a numbered section such as "Terminology". See ${"[export|#data-export]"}.`}}}),gh=["section#abstract","section#sotd","section.introductory"].join(", ");var bh=Object.freeze({__proto__:null,name:fh,run:function(e){if(!e.lint?.[hh])return;const t=[...document.querySelectorAll("dfn")].filter((e=>e.closest(gh)));t.forEach((e=>{const t=Mr(e.textContent);ls(mh.msg(t),fh,{hint:mh.hint,elements:[e]})}))}});const yh="required-sections",wh="w3c/linter-rules/required-sections",vh={en:{msg:e=>`W3C Recommendation track documents require a separate "${e}" section.`,hint:e=>ms`Add a \`<section>\` with a "${e}" header. See the [Horizontal review guidelines](https://www.w3.org/Guide/documentreview/#how_to_get_horizontal_review).
1482
1481
  If the document is not intended for the W3C Recommendation track, set ${"[noRecTrack]"} to \`true\`
1483
- or turn off the ${`[${bh}]`} linter rule.`,privacy_considerations:"Privacy Considerations",security_considerations:"Security Considerations"},es:{msg:e=>`Documentos que van a ser "W3C Recommendation" requieren una sección "${e}" separada.`,hint:e=>ms`Agrega una \`<section>\` con título "${e}". Ver los [Horizontal review guidelines](https://www.w3.org/Guide/documentreview/#how_to_get_horizontal_review).
1482
+ or turn off the ${`[${yh}]`} linter rule.`,privacy_considerations:"Privacy Considerations",security_considerations:"Security Considerations"},es:{msg:e=>`Documentos que van a ser "W3C Recommendation" requieren una sección "${e}" separada.`,hint:e=>ms`Agrega una \`<section>\` con título "${e}". Ver los [Horizontal review guidelines](https://www.w3.org/Guide/documentreview/#how_to_get_horizontal_review).
1484
1483
  Si el documento no está destinado a ser un W3C Recommendation, puedes poner ${"[noRecTrack]"} a \`true\`
1485
- o apaga la regla de linter ${`[${bh}]`}.`,privacy_considerations:"Consideraciones de privacidad",security_considerations:"Consideraciones de Seguridad"},cs:{msg:e=>`Dokumenty na "W3C Recommendation track" vyžadují samostatnou sekci "${e}".`,hint:e=>ms`Přidejte \`<section>\` s nadpisem "${e}". Viz [Horizontal review guidelines](https://www.w3.org/Guide/documentreview/#how_to_get_horizontal_review).
1484
+ o apaga la regla de linter ${`[${yh}]`}.`,privacy_considerations:"Consideraciones de privacidad",security_considerations:"Consideraciones de Seguridad"},cs:{msg:e=>`Dokumenty na "W3C Recommendation track" vyžadují samostatnou sekci "${e}".`,hint:e=>ms`Přidejte \`<section>\` s nadpisem "${e}". Viz [Horizontal review guidelines](https://www.w3.org/Guide/documentreview/#how_to_get_horizontal_review).
1486
1485
  Pokud dokument není určen pro "W3C Recommendation track", nastavte ${"[noRecTrack]"} na \`true\`
1487
- nebo vypněte linter pravidlo ${`[${bh}]`}.
1486
+ nebo vypněte linter pravidlo ${`[${yh}]`}.
1488
1487
  `,privacy_considerations:"Zásady ochrany soukromí",security_considerations:"Zásady bezpečnosti"},nl:{msg:e=>`Documenten op de "W3C Recommendation track" vereisen een aparte "${e}" sectie.`,hint:e=>ms`Voeg een \`<section>\` toe met als titel "${e}". Zie de [Horizontal review guidelines](https://www.w3.org/Guide/documentreview/#how_to_get_horizontal_review).
1489
1488
  Als het document niet bedoeld is voor de "W3C Recommendation track", zet ${"[noRecTrack]"} dan op \`true\`
1490
- of schakel de linterregel ${`[${bh}]`} uit.`,privacy_considerations:"Privacyoverwegingen",security_considerations:"Beveiligingsoverwegingen"}},vh=Ur(wh),kh=new Set([...Ji]);kh.delete("DISC"),Vi.forEach((e=>kh.delete(e)));var $h=Object.freeze({__proto__:null,name:yh,requiresSomeSectionStatus:kh,run:function(e){if(!e.lint?.[bh])return;if(!qr(wh,"privacy_considerations")){return void ls("Cannot check for required sections as translations are not available.",yh,{hint:"File an issue to add translations or use a supported language."})}if(e.noRecTrack||!kh.has(e.specStatus))return;const t="error"===e.lint[bh]?cs:ls,n=new ns([vh.privacy_considerations,vh.security_considerations]),r=document.querySelectorAll("h2, h3, h4, h5, h6");for(const e of r){const t=e.cloneNode(!0);t.querySelectorAll("bdi")?.forEach((e=>e.remove()));const r=Mr(t.textContent);if(n.has(r)&&(n.delete(r),0===n.size))return}for(const e of n)t(vh.msg(e),yh,{hint:vh.hint(e)})}});const xh="core/linter-rules/wpt-tests-exist",Ch=Ur({en:{msg:"The following test could not be found in Web Platform Tests:",hint:"Check [wpt.live](https://wpt.live) to see if it was deleted or renamed."},cs:{msg:"Následující test nebyl nalezen ve Web Platform Tests:",hint:"Zkontrolujte [wpt.live](https://wpt.live), zda nebyl smazán nebo přejmenován."}});var Sh=Object.freeze({__proto__:null,name:xh,run:async function(e){if(!e.lint?.["wpt-tests-exist"])return;const t=await async function(e,t){let n;try{const t=new URL(e);if(t.pathname.startsWith("/web-platform-tests/wpt/tree/master/")){const e=/web-platform-tests\/wpt\/tree\/master\/(.+)/;n=(t.pathname.match(e)?.[1]??"").replace(/\//g,"")}else n=t.pathname.replace(/\//g,"")}catch(e){return ls("Failed to parse WPT directory from testSuiteURI",`linter/${xh}`),console.error(e),null}const r=new URL("web-platform-tests/wpt/files",`${t}/`);r.searchParams.set("path",n);const s=await fetch(r);if(!s.ok){return ls(`Failed to fetch files from WPT repository. Request failed with error: ${await s.text()} (${s.status})`,`linter/${xh}`),null}const{entries:i}=await s.json(),o=i.filter((e=>!e.endsWith("/")));return new Set(o)}(e.testSuiteURI,e.githubAPI);if(!t)return;const n=[...document.querySelectorAll("[data-tests]")].filter((e=>e.dataset.tests));for(const e of n)e.dataset.tests?.split(/,/gm).map((e=>e.trim().split(/\?|#/)[0])).filter((e=>e&&!t.has(e))).map((t=>{ls(`${Ch.msg} \`${t}\`.`,xh,{hint:Ch.hint,elements:[e]})}))}});const _h="core/linter-rules/no-http-props",Th=Ur({en:{msg:ms`Insecure URLs are not allowed in ${"[respecConfig]"}.`,hint:"Please change the following properties to 'https://': "},zh:{msg:ms`${"[respecConfig]"} 中不允许使用不安全的URL.`,hint:"请将以下属性更改为 https://:"},cs:{msg:ms`V ${"[respecConfig]"} nejsou povoleny nezabezpečené URL adresy.`,hint:"Změňte prosím následující vlastnosti na 'https://': "}});var Rh=Object.freeze({__proto__:null,name:_h,run:function(e){if(!e.lint?.["no-http-props"])return;if(!parent.location.href.startsWith("http"))return;const t=Object.getOwnPropertyNames(e).filter((t=>t.endsWith("URI")&&e[t]||"prevED"===t)).filter((t=>new URL(e[t],parent.location.href).href.startsWith("http://")));if(t.length){const e=Or(t,(e=>ms`${`[${e}]`}`));ls(Th.msg,_h,{hint:Th.hint+e})}}});const Eh="core/linter-rules/a11y",Lh=["color-contrast","landmark-one-main","landmark-unique","region"];function Ah(e){const t=[];for(const n of e.split("\n\n")){const[e,...r]=n.split(/^\s{2}/m),s=r.map((e=>`- ${e.trimEnd()}`)).join("\n");t.push(`${e}${s}`)}return t.join("\n\n")}var Ph=Object.freeze({__proto__:null,name:Eh,run:async function(e){if(!e.lint?.a11y&&!e.a11y)return;const t=e.lint?.a11y||e.a11y,n=!0===t?{}:t,r=await async function(e){const{rules:t,...n}=e,r={rules:{...Object.fromEntries(Lh.map((e=>[e,{enabled:!1}]))),...t},...n,elementRef:!0,resultTypes:["violations"],reporter:"v1"};let s;try{s=await function(){const e=document.createElement("script");return e.classList.add("remove"),e.src="https://cdn.jsdelivr.net/npm/axe-core@4/axe.min.js",document.head.appendChild(e),new Promise(((t,n)=>{e.onload=()=>t(window.axe),e.onerror=n}))}()}catch(e){return cs("Failed to load a11y linter.",Eh),console.error(e),[]}try{const e=await(s?.run(document,r));return e?.violations??[]}catch(e){return cs("Error while looking for a11y issues.",Eh),console.error(e),[]}}(n);for(const e of r){const t=new Map;for(const n of e.nodes){const{failureSummary:e,element:r}=n,s=t.get(e)||t.set(e,[]).get(e);s?.push(r)}const{id:n,help:r,description:s,helpUrl:i}=e,o=`a11y/${n}: ${r}.`;for(const[e,n]of t){const t=Ah(e);ls(o,Eh,{details:`\n\n${s}.\n\n${t}. ([Learn more](${i}))`,elements:n})}}}});const Nh="informative-dfn",Ih="core/linter-rules/informative-dfn",Dh=Ur({en:{msg:(e,t)=>`Normative reference to "${e}" found but term is defined "informatively" in "${t}".`,get hint(){return ms`
1489
+ of schakel de linterregel ${`[${yh}]`} uit.`,privacy_considerations:"Privacyoverwegingen",security_considerations:"Beveiligingsoverwegingen"}},kh=Ur(vh),$h=new Set([...Ji]);$h.delete("DISC"),Vi.forEach((e=>$h.delete(e)));var xh=Object.freeze({__proto__:null,name:wh,requiresSomeSectionStatus:$h,run:function(e){if(!e.lint?.[yh])return;if(!qr(vh,"privacy_considerations")){return void ls("Cannot check for required sections as translations are not available.",wh,{hint:"File an issue to add translations or use a supported language."})}if(e.noRecTrack||!$h.has(e.specStatus))return;const t="error"===e.lint[yh]?cs:ls,n=new ns([kh.privacy_considerations,kh.security_considerations]),r=document.querySelectorAll("h2, h3, h4, h5, h6");for(const e of r){const t=e.cloneNode(!0);t.querySelectorAll("bdi")?.forEach((e=>e.remove()));const r=Mr(t.textContent);if(n.has(r)&&(n.delete(r),0===n.size))return}for(const e of n)t(kh.msg(e),wh,{hint:kh.hint(e)})}});const Ch="core/linter-rules/wpt-tests-exist",Sh=Ur({en:{msg:"The following test could not be found in Web Platform Tests:",hint:"Check [wpt.live](https://wpt.live) to see if it was deleted or renamed."},cs:{msg:"Následující test nebyl nalezen ve Web Platform Tests:",hint:"Zkontrolujte [wpt.live](https://wpt.live), zda nebyl smazán nebo přejmenován."}});var _h=Object.freeze({__proto__:null,name:Ch,run:async function(e){if(!e.lint?.["wpt-tests-exist"])return;const t=await async function(e,t){let n;try{const t=new URL(e);if(t.pathname.startsWith("/web-platform-tests/wpt/tree/master/")){const e=/web-platform-tests\/wpt\/tree\/master\/(.+)/;n=(t.pathname.match(e)?.[1]??"").replace(/\//g,"")}else n=t.pathname.replace(/\//g,"")}catch(e){return ls("Failed to parse WPT directory from testSuiteURI",`linter/${Ch}`),console.error(e),null}const r=new URL("web-platform-tests/wpt/files",`${t}/`);r.searchParams.set("path",n);const s=await fetch(r);if(!s.ok){return ls(`Failed to fetch files from WPT repository. Request failed with error: ${await s.text()} (${s.status})`,`linter/${Ch}`),null}const{entries:i}=await s.json(),o=i.filter((e=>!e.endsWith("/")));return new Set(o)}(e.testSuiteURI,e.githubAPI);if(!t)return;const n=[...document.querySelectorAll("[data-tests]")].filter((e=>e.dataset.tests));for(const e of n)e.dataset.tests?.split(/,/gm).map((e=>e.trim().split(/\?|#/)[0])).filter((e=>e&&!t.has(e))).map((t=>{ls(`${Sh.msg} \`${t}\`.`,Ch,{hint:Sh.hint,elements:[e]})}))}});const Th="core/linter-rules/no-http-props",Rh=Ur({en:{msg:ms`Insecure URLs are not allowed in ${"[respecConfig]"}.`,hint:"Please change the following properties to 'https://': "},zh:{msg:ms`${"[respecConfig]"} 中不允许使用不安全的URL.`,hint:"请将以下属性更改为 https://:"},cs:{msg:ms`V ${"[respecConfig]"} nejsou povoleny nezabezpečené URL adresy.`,hint:"Změňte prosím následující vlastnosti na 'https://': "}});var Eh=Object.freeze({__proto__:null,name:Th,run:function(e){if(!e.lint?.["no-http-props"])return;if(!parent.location.href.startsWith("http"))return;const t=Object.getOwnPropertyNames(e).filter((t=>t.endsWith("URI")&&e[t]||"prevED"===t)).filter((t=>new URL(e[t],parent.location.href).href.startsWith("http://")));if(t.length){const e=Or(t,(e=>ms`${`[${e}]`}`));ls(Rh.msg,Th,{hint:Rh.hint+e})}}});const Lh="core/linter-rules/a11y",Ah=["color-contrast","landmark-one-main","landmark-unique","region"];function Ph(e){const t=[];for(const n of e.split("\n\n")){const[e,...r]=n.split(/^\s{2}/m),s=r.map((e=>`- ${e.trimEnd()}`)).join("\n");t.push(`${e}${s}`)}return t.join("\n\n")}var Nh=Object.freeze({__proto__:null,name:Lh,run:async function(e){if(!e.lint?.a11y&&!e.a11y)return;const t=e.lint?.a11y||e.a11y,n=!0===t?{}:t,r=await async function(e){const{rules:t,...n}=e,r={rules:{...Object.fromEntries(Ah.map((e=>[e,{enabled:!1}]))),...t},...n,elementRef:!0,resultTypes:["violations"],reporter:"v1"};let s;try{s=await function(){const e=document.createElement("script");return e.classList.add("remove"),e.src="https://cdn.jsdelivr.net/npm/axe-core@4/axe.min.js",document.head.appendChild(e),new Promise(((t,n)=>{e.onload=()=>t(window.axe),e.onerror=n}))}()}catch(e){return cs("Failed to load a11y linter.",Lh),console.error(e),[]}try{const e=await(s?.run(document,r));return e?.violations??[]}catch(e){return cs("Error while looking for a11y issues.",Lh),console.error(e),[]}}(n);for(const e of r){const t=new Map;for(const n of e.nodes){const{failureSummary:e,element:r}=n,s=t.get(e)||t.set(e,[]).get(e);s?.push(r)}const{id:n,help:r,description:s,helpUrl:i}=e,o=`a11y/${n}: ${r}.`;for(const[e,n]of t){const t=Ph(e);ls(o,Lh,{details:`\n\n${s}.\n\n${t}. ([Learn more](${i}))`,elements:n})}}}});const Ih="informative-dfn",Dh="core/linter-rules/informative-dfn",Oh=Ur({en:{msg:(e,t)=>`Normative reference to "${e}" found but term is defined "informatively" in "${t}".`,get hint(){return ms`
1491
1490
  You can do one of the following...
1492
1491
 
1493
1492
  * Get the source definition to be made normative
1494
1493
  * Add a \`class="lint-ignore"\` attribute to the link.
1495
1494
  * Use a local normative proxy for the definition à la \`<dfn data-cite="spec">term</dfn>\`
1496
1495
 
1497
- To silence this warning entirely, set \`lint: { "${Nh}": false }\` in your \`respecConfig\`.`}},cs:{msg:(e,t)=>`Nalezen normativní odkaz na "${e}", ale pojem je definován pouze informativně v "${t}".`,get hint(){return ms`
1496
+ To silence this warning entirely, set \`lint: { "${Ih}": false }\` in your \`respecConfig\`.`}},cs:{msg:(e,t)=>`Nalezen normativní odkaz na "${e}", ale pojem je definován pouze informativně v "${t}".`,get hint(){return ms`
1498
1497
  Můžete udělat jedno z následujícího...
1499
1498
 
1500
1499
  * Požádejte o to, aby zdrojová definice byla normativní
1501
1500
  * Přidejte atribut \`class=\"lint-ignore\"\` k odkazu.
1502
1501
  * Použijte lokální normativní proxy pro definici, např. \`<dfn data-cite=\"spec\">term</dfn>\`
1503
1502
 
1504
- Pro úplné potlačení tohoto varování nastavte \`lint: { \"${Nh}\": false }\` ve vaší \`respecConfig\`.`}}});var Oh=Object.freeze({__proto__:null,name:Ih,run:function(e){if(!e.lint?.[Nh])return;const t="error"===e.lint[Nh]?cs:ls;Zl.forEach((({term:e,spec:n,element:r})=>{r.classList.contains("lint-ignore")||t(Dh.msg(e,n),Ih,{title:"Normative reference to non-normative term.",elements:[r],hint:Dh.hint})}))}}),jh=Object.freeze({__proto__:null,default:'(() => {\n// @ts-check\n\nif (document.respec) {\n document.respec.ready.then(setupVarHighlighter);\n} else {\n setupVarHighlighter();\n}\n\nfunction setupVarHighlighter() {\n document\n .querySelectorAll("var")\n .forEach(varElem => varElem.addEventListener("click", highlightListener));\n}\n\n/**\n * @param {MouseEvent} ev\n */\nfunction highlightListener(ev) {\n ev.stopPropagation();\n const varElem = /** @type {HTMLElement} */ (ev.target);\n const hightligtedElems = highlightVars(varElem);\n const resetListener = () => {\n const hlColor = getHighlightColor(varElem);\n hightligtedElems.forEach(el => removeHighlight(el, hlColor));\n [...HL_COLORS.keys()].forEach(key => HL_COLORS.set(key, true));\n };\n if (hightligtedElems.length) {\n document.body.addEventListener("click", resetListener, { once: true });\n }\n}\n\n// availability of highlight colors. colors from var.css\nconst HL_COLORS = new Map([\n ["respec-hl-c1", true],\n ["respec-hl-c2", true],\n ["respec-hl-c3", true],\n ["respec-hl-c4", true],\n ["respec-hl-c5", true],\n ["respec-hl-c6", true],\n ["respec-hl-c7", true],\n]);\n\n/**\n * @param {HTMLElement} target\n */\nfunction getHighlightColor(target) {\n // return current colors if applicable\n const { value } = target.classList;\n const re = /respec-hl-\\w+/;\n const activeClass = re.test(value) && value.match(re);\n if (activeClass) return activeClass[0];\n\n // first color preference\n if (HL_COLORS.get("respec-hl-c1") === true) return "respec-hl-c1";\n\n // otherwise get some other available color\n return [...HL_COLORS.keys()].find(c => HL_COLORS.get(c)) || "respec-hl-c1";\n}\n\n/**\n * @param {HTMLElement} varElem\n */\nfunction highlightVars(varElem) {\n const textContent = norm(varElem.textContent);\n const parent = /** @type {HTMLElement} */ (\n varElem.closest(".algorithm, section")\n );\n if (!parent) return [];\n const highlightColor = getHighlightColor(varElem);\n\n const varsToHighlight = [...parent.querySelectorAll("var")].filter(\n el =>\n norm(el.textContent) === textContent &&\n el.closest(".algorithm, section") === parent\n );\n\n // update availability of highlight color\n const colorStatus = varsToHighlight[0].classList.contains("respec-hl");\n HL_COLORS.set(highlightColor, colorStatus);\n\n // highlight vars\n if (colorStatus) {\n varsToHighlight.forEach(el => removeHighlight(el, highlightColor));\n return [];\n } else {\n varsToHighlight.forEach(el => addHighlight(el, highlightColor));\n }\n return varsToHighlight;\n}\n\n/**\n * @param {HTMLElement} el\n * @param {string} highlightColor\n */\nfunction removeHighlight(el, highlightColor) {\n el.classList.remove("respec-hl", highlightColor);\n // clean up empty class attributes so they don\'t come in export\n if (!el.classList.length) el.removeAttribute("class");\n}\n\n/**\n * @param {HTMLElement} elem\n * @param {string} highlightColor\n */\nfunction addHighlight(elem, highlightColor) {\n elem.classList.add("respec-hl", highlightColor);\n}\n\n/**\n * Same as `norm` from src/core/utils, but our build process doesn\'t allow\n * imports in runtime scripts, so duplicated here.\n * @param {string} str\n */\nfunction norm(str) {\n return str.trim().replace(/\\s+/g, " ");\n}\n})()'}),zh=Object.freeze({__proto__:null,default:'(() => {\n// @ts-check\nif (document.respec) {\n document.respec.ready.then(setupPanel);\n} else {\n setupPanel();\n}\n\nfunction setupPanel() {\n const listener = panelListener();\n document.body.addEventListener("keydown", listener);\n document.body.addEventListener("click", listener);\n}\n\nfunction panelListener() {\n /** @type {HTMLElement | null} */\n let panel = null;\n /**\n * @param {KeyboardEvent|MouseEvent} event\n */\n return event => {\n const { target, type } = event;\n\n if (!(target instanceof HTMLElement)) return;\n\n // For keys, we only care about Enter key to activate the panel\n // otherwise it\'s activated via a click.\n if (\n type === "keydown" &&\n /** @type {KeyboardEvent} */ (event).key !== "Enter"\n )\n return;\n\n const action = deriveAction(event);\n\n switch (action) {\n case "show": {\n hidePanel(panel);\n /** @type {HTMLElement | null} */\n const dfn = target.closest("dfn, .index-term");\n if (!dfn?.id) break;\n panel = document.getElementById(`dfn-panel-for-${dfn.id}`);\n if (!panel) break;\n const coords = deriveCoordinates(\n /** @type {MouseEvent|KeyboardEvent} */ (event)\n );\n displayPanel(dfn, panel, coords);\n break;\n }\n case "dock": {\n if (panel) {\n panel.style.left = "";\n panel.style.top = "";\n panel.classList.add("docked");\n }\n break;\n }\n case "hide": {\n hidePanel(panel);\n panel = null;\n break;\n }\n }\n };\n}\n\n/**\n * @param {MouseEvent|KeyboardEvent} event\n */\nfunction deriveCoordinates(event) {\n const target = /** @type HTMLElement */ (event.target);\n\n // We prevent synthetic AT clicks from putting\n // the dialog in a weird place. The AT events sometimes\n // lack coordinates, so they have clientX/Y = 0\n const rect = target.getBoundingClientRect();\n if (\n event instanceof MouseEvent &&\n event.clientX >= rect.left &&\n event.clientY >= rect.top\n ) {\n // The event probably happened inside the bounding rect...\n return { x: event.clientX, y: event.clientY };\n }\n\n // Offset to the middle of the element\n const x = rect.x + rect.width / 2;\n // Placed at the bottom of the element\n const y = rect.y + rect.height;\n return { x, y };\n}\n\n/**\n * @param {Event} event\n */\nfunction deriveAction(event) {\n const target = /** @type {HTMLElement} */ (event.target);\n const hitALink = !!target.closest("a");\n if (target.closest("dfn:not([data-cite]), .index-term")) {\n return hitALink ? "none" : "show";\n }\n if (target.closest(".dfn-panel")) {\n if (hitALink) {\n return target.classList.contains("self-link") ? "hide" : "dock";\n }\n\n const panel = /** @type {HTMLElement} */ (target.closest(".dfn-panel"));\n return panel.classList.contains("docked") ? "hide" : "none";\n }\n if (document.querySelector(".dfn-panel:not([hidden])")) {\n return "hide";\n }\n return "none";\n}\n\n/**\n * @param {HTMLElement} dfn\n * @param {HTMLElement} panel\n * @param {{ x: number, y: number }} clickPosition\n */\nfunction displayPanel(dfn, panel, { x, y }) {\n panel.hidden = false;\n // distance (px) between edge of panel and the pointing triangle (caret)\n const MARGIN = 20;\n\n const dfnRects = dfn.getClientRects();\n // Find the `top` offset when the `dfn` can be spread across multiple lines\n let closestTop = 0;\n let minDiff = Infinity;\n for (const rect of dfnRects) {\n const { top, bottom } = rect;\n const diffFromClickY = Math.abs((top + bottom) / 2 - y);\n if (diffFromClickY < minDiff) {\n minDiff = diffFromClickY;\n closestTop = top;\n }\n }\n\n const top = window.scrollY + closestTop + dfnRects[0].height;\n const left = x - MARGIN;\n panel.style.left = `${left}px`;\n panel.style.top = `${top}px`;\n\n // Find if the panel is flowing out of the window\n const panelRect = panel.getBoundingClientRect();\n const SCREEN_WIDTH = Math.min(window.innerWidth, window.screen.width);\n if (panelRect.right > SCREEN_WIDTH) {\n const newLeft = Math.max(MARGIN, x + MARGIN - panelRect.width);\n const newCaretOffset = left - newLeft;\n panel.style.left = `${newLeft}px`;\n /** @type {HTMLElement | null} */\n const caret = panel.querySelector(".caret");\n if (caret) caret.style.left = `${newCaretOffset}px`;\n }\n\n // As it\'s a dialog, we trap focus.\n // TODO: when <dialog> becomes a implemented, we should really\n // use that.\n trapFocus(panel, dfn);\n}\n\n/**\n * @param {HTMLElement} panel\n * @param {HTMLElement} dfn\n * @returns\n */\nfunction trapFocus(panel, dfn) {\n /** @type NodeListOf<HTMLAnchorElement> elements */\n const anchors = panel.querySelectorAll("a[href]");\n // No need to trap focus\n if (!anchors.length) return;\n\n // Move focus to first anchor element\n const first = anchors.item(0);\n first.focus();\n\n const trapListener = createTrapListener(anchors, panel, dfn);\n panel.addEventListener("keydown", trapListener);\n\n // Hiding the panel releases the trap\n const mo = new MutationObserver(records => {\n const [record] = records;\n const target = /** @type HTMLElement */ (record.target);\n if (target.hidden) {\n panel.removeEventListener("keydown", trapListener);\n mo.disconnect();\n }\n });\n mo.observe(panel, { attributes: true, attributeFilter: ["hidden"] });\n}\n\n/**\n *\n * @param {NodeListOf<HTMLAnchorElement>} anchors\n * @param {HTMLElement} panel\n * @param {HTMLElement} dfn\n * @returns\n */\nfunction createTrapListener(anchors, panel, dfn) {\n const lastIndex = anchors.length - 1;\n let currentIndex = 0;\n /**\n * @param {KeyboardEvent} event\n */\n return event => {\n switch (event.key) {\n // Hitting "Tab" traps us in a nice loop around elements.\n case "Tab": {\n event.preventDefault();\n currentIndex += event.shiftKey ? -1 : +1;\n if (currentIndex < 0) {\n currentIndex = lastIndex;\n } else if (currentIndex > lastIndex) {\n currentIndex = 0;\n }\n anchors.item(currentIndex).focus();\n break;\n }\n\n // Hitting "Enter" on an anchor releases the trap.\n case "Enter":\n hidePanel(panel);\n break;\n\n // Hitting "Escape" returns focus to dfn.\n case "Escape":\n hidePanel(panel);\n dfn.focus();\n return;\n }\n };\n}\n\n/** @param {HTMLElement | null} panel */\nfunction hidePanel(panel) {\n if (!panel) return;\n panel.hidden = true;\n panel.classList.remove("docked");\n}\n})()'})}();
1503
+ Pro úplné potlačení tohoto varování nastavte \`lint: { \"${Ih}\": false }\` ve vaší \`respecConfig\`.`}}});var jh=Object.freeze({__proto__:null,name:Dh,run:function(e){if(!e.lint?.[Ih])return;const t="error"===e.lint[Ih]?cs:ls;Yl.forEach((({term:e,spec:n,element:r})=>{r.classList.contains("lint-ignore")||t(Oh.msg(e,n),Dh,{title:"Normative reference to non-normative term.",elements:[r],hint:Oh.hint})}))}}),zh=Object.freeze({__proto__:null,default:'(() => {\n// @ts-check\n\nif (document.respec) {\n document.respec.ready.then(setupVarHighlighter);\n} else {\n setupVarHighlighter();\n}\n\nfunction setupVarHighlighter() {\n document\n .querySelectorAll("var")\n .forEach(varElem => varElem.addEventListener("click", highlightListener));\n}\n\n/**\n * @param {MouseEvent} ev\n */\nfunction highlightListener(ev) {\n ev.stopPropagation();\n const varElem = /** @type {HTMLElement} */ (ev.target);\n const hightligtedElems = highlightVars(varElem);\n const resetListener = () => {\n const hlColor = getHighlightColor(varElem);\n hightligtedElems.forEach(el => removeHighlight(el, hlColor));\n [...HL_COLORS.keys()].forEach(key => HL_COLORS.set(key, true));\n };\n if (hightligtedElems.length) {\n document.body.addEventListener("click", resetListener, { once: true });\n }\n}\n\n// availability of highlight colors. colors from var.css\nconst HL_COLORS = new Map([\n ["respec-hl-c1", true],\n ["respec-hl-c2", true],\n ["respec-hl-c3", true],\n ["respec-hl-c4", true],\n ["respec-hl-c5", true],\n ["respec-hl-c6", true],\n ["respec-hl-c7", true],\n]);\n\n/**\n * @param {HTMLElement} target\n */\nfunction getHighlightColor(target) {\n // return current colors if applicable\n const { value } = target.classList;\n const re = /respec-hl-\\w+/;\n const activeClass = re.test(value) && value.match(re);\n if (activeClass) return activeClass[0];\n\n // first color preference\n if (HL_COLORS.get("respec-hl-c1") === true) return "respec-hl-c1";\n\n // otherwise get some other available color\n return [...HL_COLORS.keys()].find(c => HL_COLORS.get(c)) || "respec-hl-c1";\n}\n\n/**\n * @param {HTMLElement} varElem\n */\nfunction highlightVars(varElem) {\n const textContent = norm(varElem.textContent);\n const parent = /** @type {HTMLElement} */ (\n varElem.closest(".algorithm, section")\n );\n if (!parent) return [];\n const highlightColor = getHighlightColor(varElem);\n\n const varsToHighlight = [...parent.querySelectorAll("var")].filter(\n el =>\n norm(el.textContent) === textContent &&\n el.closest(".algorithm, section") === parent\n );\n\n // update availability of highlight color\n const colorStatus = varsToHighlight[0].classList.contains("respec-hl");\n HL_COLORS.set(highlightColor, colorStatus);\n\n // highlight vars\n if (colorStatus) {\n varsToHighlight.forEach(el => removeHighlight(el, highlightColor));\n return [];\n } else {\n varsToHighlight.forEach(el => addHighlight(el, highlightColor));\n }\n return varsToHighlight;\n}\n\n/**\n * @param {HTMLElement} el\n * @param {string} highlightColor\n */\nfunction removeHighlight(el, highlightColor) {\n el.classList.remove("respec-hl", highlightColor);\n // clean up empty class attributes so they don\'t come in export\n if (!el.classList.length) el.removeAttribute("class");\n}\n\n/**\n * @param {HTMLElement} elem\n * @param {string} highlightColor\n */\nfunction addHighlight(elem, highlightColor) {\n elem.classList.add("respec-hl", highlightColor);\n}\n\n/**\n * Same as `norm` from src/core/utils, but our build process doesn\'t allow\n * imports in runtime scripts, so duplicated here.\n * @param {string} str\n */\nfunction norm(str) {\n return str.trim().replace(/\\s+/g, " ");\n}\n})()'}),Mh=Object.freeze({__proto__:null,default:'(() => {\n// @ts-check\nif (document.respec) {\n document.respec.ready.then(setupPanel);\n} else {\n setupPanel();\n}\n\nfunction setupPanel() {\n const listener = panelListener();\n document.body.addEventListener("keydown", listener);\n document.body.addEventListener("click", listener);\n}\n\nfunction panelListener() {\n /** @type {HTMLElement | null} */\n let panel = null;\n /**\n * @param {KeyboardEvent|MouseEvent} event\n */\n return event => {\n const { target, type } = event;\n\n if (!(target instanceof HTMLElement)) return;\n\n // For keys, we only care about Enter key to activate the panel\n // otherwise it\'s activated via a click.\n if (\n type === "keydown" &&\n /** @type {KeyboardEvent} */ (event).key !== "Enter"\n )\n return;\n\n const action = deriveAction(event);\n\n switch (action) {\n case "show": {\n hidePanel(panel);\n /** @type {HTMLElement | null} */\n const dfn = target.closest("dfn, .index-term");\n if (!dfn?.id) break;\n panel = document.getElementById(`dfn-panel-for-${dfn.id}`);\n if (!panel) break;\n const coords = deriveCoordinates(\n /** @type {MouseEvent|KeyboardEvent} */ (event)\n );\n displayPanel(dfn, panel, coords);\n break;\n }\n case "dock": {\n if (panel) {\n panel.style.left = "";\n panel.style.top = "";\n panel.classList.add("docked");\n }\n break;\n }\n case "hide": {\n hidePanel(panel);\n panel = null;\n break;\n }\n }\n };\n}\n\n/**\n * @param {MouseEvent|KeyboardEvent} event\n */\nfunction deriveCoordinates(event) {\n const target = /** @type HTMLElement */ (event.target);\n\n // We prevent synthetic AT clicks from putting\n // the dialog in a weird place. The AT events sometimes\n // lack coordinates, so they have clientX/Y = 0\n const rect = target.getBoundingClientRect();\n if (\n event instanceof MouseEvent &&\n event.clientX >= rect.left &&\n event.clientY >= rect.top\n ) {\n // The event probably happened inside the bounding rect...\n return { x: event.clientX, y: event.clientY };\n }\n\n // Offset to the middle of the element\n const x = rect.x + rect.width / 2;\n // Placed at the bottom of the element\n const y = rect.y + rect.height;\n return { x, y };\n}\n\n/**\n * @param {Event} event\n */\nfunction deriveAction(event) {\n const target = /** @type {HTMLElement} */ (event.target);\n const hitALink = !!target.closest("a");\n if (target.closest("dfn:not([data-cite]), .index-term")) {\n return hitALink ? "none" : "show";\n }\n if (target.closest(".dfn-panel")) {\n if (hitALink) {\n return target.classList.contains("self-link") ? "hide" : "dock";\n }\n\n const panel = /** @type {HTMLElement} */ (target.closest(".dfn-panel"));\n return panel.classList.contains("docked") ? "hide" : "none";\n }\n if (document.querySelector(".dfn-panel:not([hidden])")) {\n return "hide";\n }\n return "none";\n}\n\n/**\n * @param {HTMLElement} dfn\n * @param {HTMLElement} panel\n * @param {{ x: number, y: number }} clickPosition\n */\nfunction displayPanel(dfn, panel, { x, y }) {\n panel.hidden = false;\n // distance (px) between edge of panel and the pointing triangle (caret)\n const MARGIN = 20;\n\n const dfnRects = dfn.getClientRects();\n // Find the `top` offset when the `dfn` can be spread across multiple lines\n let closestTop = 0;\n let minDiff = Infinity;\n for (const rect of dfnRects) {\n const { top, bottom } = rect;\n const diffFromClickY = Math.abs((top + bottom) / 2 - y);\n if (diffFromClickY < minDiff) {\n minDiff = diffFromClickY;\n closestTop = top;\n }\n }\n\n const top = window.scrollY + closestTop + dfnRects[0].height;\n const left = x - MARGIN;\n panel.style.left = `${left}px`;\n panel.style.top = `${top}px`;\n\n // Find if the panel is flowing out of the window\n const panelRect = panel.getBoundingClientRect();\n const SCREEN_WIDTH = Math.min(window.innerWidth, window.screen.width);\n if (panelRect.right > SCREEN_WIDTH) {\n const newLeft = Math.max(MARGIN, x + MARGIN - panelRect.width);\n const newCaretOffset = left - newLeft;\n panel.style.left = `${newLeft}px`;\n /** @type {HTMLElement | null} */\n const caret = panel.querySelector(".caret");\n if (caret) caret.style.left = `${newCaretOffset}px`;\n }\n\n // As it\'s a dialog, we trap focus.\n // TODO: when <dialog> becomes a implemented, we should really\n // use that.\n trapFocus(panel, dfn);\n}\n\n/**\n * @param {HTMLElement} panel\n * @param {HTMLElement} dfn\n * @returns\n */\nfunction trapFocus(panel, dfn) {\n /** @type NodeListOf<HTMLAnchorElement> elements */\n const anchors = panel.querySelectorAll("a[href]");\n // No need to trap focus\n if (!anchors.length) return;\n\n // Move focus to first anchor element\n const first = anchors.item(0);\n first.focus();\n\n const trapListener = createTrapListener(anchors, panel, dfn);\n panel.addEventListener("keydown", trapListener);\n\n // Hiding the panel releases the trap\n const mo = new MutationObserver(records => {\n const [record] = records;\n const target = /** @type HTMLElement */ (record.target);\n if (target.hidden) {\n panel.removeEventListener("keydown", trapListener);\n mo.disconnect();\n }\n });\n mo.observe(panel, { attributes: true, attributeFilter: ["hidden"] });\n}\n\n/**\n *\n * @param {NodeListOf<HTMLAnchorElement>} anchors\n * @param {HTMLElement} panel\n * @param {HTMLElement} dfn\n * @returns\n */\nfunction createTrapListener(anchors, panel, dfn) {\n const lastIndex = anchors.length - 1;\n let currentIndex = 0;\n /**\n * @param {KeyboardEvent} event\n */\n return event => {\n switch (event.key) {\n // Hitting "Tab" traps us in a nice loop around elements.\n case "Tab": {\n event.preventDefault();\n currentIndex += event.shiftKey ? -1 : +1;\n if (currentIndex < 0) {\n currentIndex = lastIndex;\n } else if (currentIndex > lastIndex) {\n currentIndex = 0;\n }\n anchors.item(currentIndex).focus();\n break;\n }\n\n // Hitting "Enter" on an anchor releases the trap.\n case "Enter":\n hidePanel(panel);\n break;\n\n // Hitting "Escape" returns focus to dfn.\n case "Escape":\n hidePanel(panel);\n dfn.focus();\n return;\n }\n };\n}\n\n/** @param {HTMLElement | null} panel */\nfunction hidePanel(panel) {\n if (!panel) return;\n panel.hidden = true;\n panel.classList.remove("docked");\n}\n})()'})}();
1505
1504
  //# sourceMappingURL=respec-w3c.js.map