"use strict";var OnigurumaParser=(()=>{var ne=Object.defineProperty;var nt=Object.getOwnPropertyDescriptor;var at=Object.getOwnPropertyNames;var ot=Object.prototype.hasOwnProperty;var it=(e,t)=>{for(var r in t)ne(e,r,{get:t[r],enumerable:!0})},st=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of at(t))!ot.call(e,o)&&o!==r&&ne(e,o,{get:()=>t[o],enumerable:!(n=nt(t,o))||n.enumerable});return e};var lt=e=>st(ne({},"__esModule",{value:!0}),e);var mr={};it(mr,{OnigUnicodePropertyMap:()=>G,generate:()=>H,getOptionalOptimizations:()=>le,optimize:()=>rt,parse:()=>M,toOnigurumaAst:()=>Ee,traverse:()=>Y});function y(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`);return e.codePointAt(0)}function pe(e,t,r){return e.has(t)||e.set(t,r),e.get(t)}var U=new Set(["alnum","alpha","ascii","blank","cntrl","digit","graph","lower","print","punct","space","upper","word","xdigit"]),c=String.raw;function m(e,t){if(e==null)throw new Error(t??"Value expected");return e}function H(e){let t=[],r=e,n={inCharClass:!1,lastNode:r,parent:e},o=i=>{n.lastNode=r,r=i,dt(n.lastNode)===i&&(n.parent=n.lastNode,t.push(n.parent));let s=m(ut[i.type],`Unexpected node type "${i.type}"`)(i,n,o);return ft(n.parent)===i&&(t.pop(),n.parent=t.at(-1)??e),s};return{pattern:e.body.map(o).join("|"),flags:o(e.flags)}}var ut={AbsenceFunction({body:e,kind:t},r,n){if(t!=="repeater")throw new Error(`Unexpected absence function kind "${t}"`);return`(?~${e.map(n).join("|")})`},Alternative({body:e},t,r){return e.map(r).join("")},Assertion({kind:e,negate:t}){return e==="text_segment_boundary"?t?c`\Y`:c`\y`:e==="word_boundary"?t?c`\B`:c`\b`:m({line_end:"$",line_start:"^",search_start:c`\G`,string_end:c`\z`,string_end_newline:c`\Z`,string_start:c`\A`}[e],`Unexpected assertion kind "${e}"`)},Backreference({ref:e}){return typeof e=="number"?"\\"+e:`\\k<${e}>`},CapturingGroup({body:e,name:t},r,n){return`(${t?`?${t.includes(">")?`'${t}'`:`<${t}>`}`:""}${e.map(n).join("|")})`},Character(e,{inCharClass:t,lastNode:r,parent:n}){let{value:o}=e;if(ce.has(o))return ce.get(o);let i=r.type==="Backreference";if(o<32||o>126&&o<160||o>262143||i&&_t(o))return o>127?`\\x{${o.toString(16).toUpperCase()}}`:`\\x${o.toString(16).toUpperCase().padStart(2,"0")}`;let a=String.fromCodePoint(o),s=!1;if(t){let l=n.type==="CharacterClass",p=l&&n.body[0]===e,d=l&&n.body.at(-1)===e;a==="^"?s=p&&!n.negate:a==="]"?s=!p:a==="-"?s=!p&&!d:s=ct.has(a)}else s=pt.has(a);return`${s?"\\":""}${a}`},CharacterClass({body:e,kind:t,negate:r},n,o){function i(){return n.parent.type==="CharacterClass"&&n.parent.kind==="intersection"&&t==="union"&&!e.length?"":`[${r?"^":""}${e.map(o).join(t==="intersection"?"&&":"")}]`}if(!n.inCharClass){n.inCharClass=!0;let a=i();return n.inCharClass=!1,a}return i()},CharacterClassRange({min:e,max:t},r,n){return`${n(e)}-${n(t)}`},CharacterSet({kind:e,negate:t,value:r},{inCharClass:n}){switch(e){case"any":return c`\O`;case"digit":return t?c`\D`:c`\d`;case"dot":return".";case"hex":return t?c`\H`:c`\h`;case"newline":return t?c`\N`:c`\R`;case"posix":return n?`[:${t?"^":""}${r}:]`:`${t?c`\P`:c`\p`}{${r}}`;case"property":return`${t?c`\P`:c`\p`}{${r}}`;case"space":return t?c`\S`:c`\s`;case"text_segment":return c`\X`;case"word":return t?c`\W`:c`\w`;default:throw new Error(`Unexpected character set kind "${e}"`)}},Directive({kind:e,flags:t}){if(e==="flags"){let{enable:r={},disable:n={}}=t,o=$(r),i=$(n);return o||i?`(?${o}${i?`-${i}`:""})`:""}if(e==="keep")return c`\K`;throw new Error(`Unexpected directive kind "${e}"`)},Flags(e){return $(e)},Group({atomic:e,body:t,flags:r},n,o){let i=t.map(o).join("|");return`(?${ht(e,r)}${i})`},LookaroundAssertion({body:e,kind:t,negate:r},n,o){return`(?${`${t==="lookahead"?"":"<"}${r?"!":"="}`}${e.map(o).join("|")})`},NamedCallout({kind:e,tag:t,arguments:r}){if(e==="custom")throw new Error(`Unexpected named callout kind "${e}"`);return`(*${e.toUpperCase()}${t?`[${t}]`:""}${r?`{${r.join(",")}}`:""})`},Quantifier(e,{parent:t},r){let{body:n,kind:o,max:i,min:a}=e;if(a===1/0)throw new Error("Invalid quantifier: infinite min");if(a>i)throw new Error(`Invalid quantifier: min "${a}" > max "${i}"`);let s=n.type==="Quantifier"&&n.kind==="greedy",l=t.type==="Quantifier"&&t.kind==="possessive"&&t.min===1&&t.max===1/0,p=o==="greedy"&&l,d;de(e)&&!p&&(!a&&i===1&&!s?d="?":!a&&i===1/0?d="*":a===1&&i===1/0&&(!(s&&de(n))||o==="possessive")&&(d="+"));let _=!d;if(_)if(o==="possessive"){if(a===i)throw new Error(`Invalid possessive quantifier: min and max are equal "${a}"`);if(i===1/0)throw new Error(`Invalid possessive quantifier: min "${a}" with infinite max"`);d=`{${i},${a}}`}else a===i?d=`{${a}}`:d=`{${a},${i===1/0?"":i}}`;let u={greedy:"",lazy:"?",possessive:_?"":"+"}[o];return`${r(n)}${d}${u}`},Subroutine({ref:e}){return typeof e=="string"&&e.includes(">")?c`\g'${e}'`:c`\g<${e}>`}},pt=new Set(["$","(",")","*","+",".","?","[","\\","^","{","|"]),ct=new Set(["&","-","[","\\","]","^"]),ce=new Map([[7,c`\a`],[9,c`\t`],[10,c`\n`],[11,c`\v`],[12,c`\f`],[13,c`\r`],[27,c`\e`],[8232,c`\u2028`],[8233,c`\u2029`],[65279,c`\uFEFF`]]);function dt(e){return"body"in e?Array.isArray(e.body)?e.body[0]??null:e.body:"min"in e&&e.min.type?e.min:null}function ft(e){return"body"in e?Array.isArray(e.body)?e.body.at(-1)??null:e.body:"max"in e&&e.max.type?e.max:null}function $({ignoreCase:e,dotAll:t,extended:r,digitIsAscii:n,posixIsAscii:o,spaceIsAscii:i,wordIsAscii:a,textSegmentMode:s}){return`${e?"i":""}${t?"m":""}${r?"x":""}${n?"D":""}${o?"P":""}${i?"S":""}${a?"W":""}${s?m({grapheme:"y{g}",word:"y{w}"}[s],`Unexpected text segment mode "${s}"`):""}`}function ht(e,t){if(e)return">";let r="";if(t){let{enable:n={},disable:o={}}=t,i=$(n),a=$(o);r=`${i}${a?`-${a}`:""}`}return`${r}:`}function _t(e){return e>47&&e<58}function de({min:e,max:t}){return!e&&t===1||!e&&t===1/0||e===1&&t===1/0}var ge=c`\[\^?`,Ce=`c.? | C(?:-.?)?|${c`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${c`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${c`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${c`o\{[^\}]*\}?`}|${c`\d{1,3}`}`,oe=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,Q=new RegExp(c` \\ (?: ${Ce} | [gk]<[^>]*>? | [gk]'[^']*'? | . ) | \( (?: \? (?: [:=!>({] | <[=!] | <[^>]*> | '[^']*' | ~\|? | #(?:[^)\\]|\\.?)* | [^:)]*[:)] )? | \*[^\)]*\)? )? | (?:${oe.source})+ | ${ge} | . `.replace(/\s+/g,""),"gsu"),ae=new RegExp(c` \\ (?: ${Ce} | . ) | \[:(?:\^?\p{Alpha}+|\^):\] | ${ge} | && | . `.replace(/\s+/g,""),"gsu");function be(e,t={}){let r={flags:"",...t,rules:{captureGroup:!1,singleline:!1,...t.rules}};if(typeof e!="string")throw new Error("String expected as pattern");let n=Gt(r.flags),o=[n.extended],i={captureGroup:r.rules.captureGroup,getCurrentModX(){return o.at(-1)},numOpenGroups:0,popModX(){o.pop()},pushModX(u){o.push(u)},replaceCurrentModX(u){o[o.length-1]=u},singleline:r.rules.singleline},a=[],s;for(Q.lastIndex=0;s=Q.exec(e);){let u=mt(i,e,s[0],Q.lastIndex);u.tokens?a.push(...u.tokens):u.token&&a.push(u.token),u.lastIndex!==void 0&&(Q.lastIndex=u.lastIndex)}let l=[],p=0;a.filter(u=>u.type==="GroupOpen").forEach(u=>{u.kind==="capturing"?u.number=++p:u.raw==="("&&l.push(u)}),p||l.forEach((u,h)=>{u.kind="capturing",u.number=h+1});let d=p||l.length;return{tokens:a.map(u=>u.type==="EscapedNumber"?Ft(u,d):u).flat(),flags:n}}function mt(e,t,r,n){let[o,i]=r;if(r==="["||r==="[^"){let a=yt(t,r,n);return{tokens:a.tokens,lastIndex:a.lastIndex}}if(o==="\\"){if("AbBGyYzZ".includes(i))return{token:fe(r,r)};if(/^\\g[<']/.test(r)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:vt(r)}}if(/^\\k[<']/.test(r)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(r))throw new Error(`Invalid group name "${r}"`);return{token:Ie(r)}}if(i==="K")return{token:ke("keep",r)};if(i==="N"||i==="R")return{token:T("newline",r,{negate:i==="N"})};if(i==="O")return{token:T("any",r)};if(i==="X")return{token:T("text_segment",r)};let a=Ne(r,{inCharClass:!1});return Array.isArray(a)?{tokens:a}:{token:a}}if(o==="("){if(i==="*")return{token:Pt(r)};if(r==="(?{")throw new Error(`Unsupported callout "${r}"`);if(r.startsWith("(?#")){if(t[n]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:n+1}}if(/^\(\?[-imx]+[:)]$/.test(r))return{token:Et(r,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,r==="("&&!e.captureGroup||r==="(?:")return{token:P("group",r)};if(r==="(?>")return{token:P("atomic",r)};if(r==="(?="||r==="(?!"||r==="(?<="||r==="(?")||r.startsWith("(?'")&&r.endsWith("'"))return{token:P("capturing",r,{...r!=="("&&{name:r.slice(3,-1)}})};if(r.startsWith("(?~")){if(r==="(?~|")throw new Error(`Unsupported absence function kind "${r}"`);return{token:P("absence_repeater",r)}}throw r==="(?("?new Error(`Unsupported conditional "${r}"`):new Error(`Invalid or unsupported group option "${r}"`)}if(r===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:At(r)}}if(e.getCurrentModX()){if(r==="#"){let a=t.indexOf(` `,n);return{lastIndex:a===-1?t.length:a}}if(/^\s$/.test(r)){let a=/\s+/y;return a.lastIndex=n,{lastIndex:a.exec(t)?a.lastIndex:n}}}if(r===".")return{token:T("dot",r)};if(r==="^"||r==="$"){let a=e.singleline?{"^":c`\A`,$:c`\Z`}[r]:r;return{token:fe(a,r)}}return r==="|"?{token:Ct(r)}:oe.test(r)?{tokens:Ut(r)}:{token:A(y(r),r)}}function yt(e,t,r){let n=[he(t[1]==="^",t)],o=1,i;for(ae.lastIndex=r;i=ae.exec(e);){let a=i[0];if(a[0]==="["&&a[1]!==":")o++,n.push(he(a[1]==="^",a));else if(a==="]"){if(n.at(-1).type==="CharacterClassOpen")n.push(A(93,a));else if(o--,n.push(bt(a)),!o)break}else{let s=gt(a);Array.isArray(s)?n.push(...s):n.push(s)}}return{tokens:n,lastIndex:ae.lastIndex||e.length}}function gt(e){if(e[0]==="\\")return Ne(e,{inCharClass:!0});if(e[0]==="["){let t=/\[:(?\^?)(?[a-z]+):\]/.exec(e);if(!t||!U.has(t.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return T("posix",e,{value:t.groups.name,negate:!!t.groups.negate})}return e==="-"?Nt(e):e==="&&"?It(e):A(y(e),e)}function Ne(e,{inCharClass:t}){let r=e[1];if(r==="c"||r==="C")return Tt(e);if("dDhHsSwW".includes(r))return Ot(e);if(e.startsWith(c`\o{`))throw new Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw new Error(`Incomplete or invalid Unicode property "${e}"`);return Mt(e)}if(/^\\x[89A-Fa-f]\p{AHex}/u.test(e))try{let n=e.split(/\\x/).slice(1).map(s=>parseInt(s,16)),o=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(n)),i=new TextEncoder;return[...o].map(s=>{let l=[...i.encode(s)].map(p=>`\\x${p.toString(16)}`).join("");return A(y(s),l)})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(r==="u"||r==="x")return A(Lt(e),e);if(_e.has(r))return A(_e.get(r),e);if(/\d/.test(r))return kt(t,e);if(e==="\\")throw new Error(c`Incomplete escape "\"`);if(r==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return A(e.codePointAt(1),e);throw new Error(`Unexpected escape "${e}"`)}function Ct(e){return{type:"Alternator",raw:e}}function fe(e,t){return{type:"Assertion",kind:e,raw:t}}function Ie(e){return{type:"Backreference",raw:e}}function A(e,t){return{type:"Character",value:e,raw:t}}function bt(e){return{type:"CharacterClassClose",raw:e}}function Nt(e){return{type:"CharacterClassHyphen",raw:e}}function It(e){return{type:"CharacterClassIntersector",raw:e}}function he(e,t){return{type:"CharacterClassOpen",negate:e,raw:t}}function T(e,t,r={}){return{type:"CharacterSet",kind:e,...r,raw:t}}function ke(e,t,r={}){return e==="keep"?{type:"Directive",kind:e,raw:t}:{type:"Directive",kind:e,flags:m(r.flags),raw:t}}function kt(e,t){return{type:"EscapedNumber",inCharClass:e,raw:t}}function At(e){return{type:"GroupClose",raw:e}}function P(e,t,r={}){return{type:"GroupOpen",kind:e,...r,raw:t}}function St(e,t,r,n){return{type:"NamedCallout",kind:e,tag:t,arguments:r,raw:n}}function xt(e,t,r,n){return{type:"Quantifier",kind:e,min:t,max:r,raw:n}}function vt(e){return{type:"Subroutine",raw:e}}var wt=new Set(["COUNT","CMP","ERROR","FAIL","MAX","MISMATCH","SKIP","TOTAL_COUNT"]),_e=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]);function Tt(e){let t=e[1]==="c"?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))throw new Error(`Unsupported control character "${e}"`);return A(y(t.toUpperCase())-64,e)}function Et(e,t){let{on:r,off:n}=/^\(\?(?[imx]*)(?:-(?[-imx]*))?/.exec(e).groups;n??="";let o=(t.getCurrentModX()||r.includes("x"))&&!n.includes("x"),i=ye(r),a=ye(n),s={};if(i&&(s.enable=i),a&&(s.disable=a),e.endsWith(")"))return t.replaceCurrentModX(o),ke("flags",e,{flags:s});if(e.endsWith(":"))return t.pushModX(o),t.numOpenGroups++,P("group",e,{...(i||a)&&{flags:s}});throw new Error(`Unexpected flag modifier "${e}"`)}function Pt(e){let t=/\(\*(?[A-Za-z_]\w*)?(?:\[(?(?:[A-Za-z_]\w*)?)\])?(?:\{(?[^}]*)\})?\)/.exec(e);if(!t)throw new Error(`Incomplete or invalid named callout "${e}"`);let{name:r,tag:n,args:o}=t.groups;if(!r)throw new Error(`Invalid named callout "${e}"`);if(n==="")throw new Error(`Named callout tag with empty value not allowed "${e}"`);let i=o?o.split(",").filter(d=>d!=="").map(d=>/^[+-]?\d+$/.test(d)?+d:d):[],[a,s,l]=i,p=wt.has(r)?r.toLowerCase():"custom";switch(p){case"fail":case"mismatch":case"skip":if(i.length>0)throw new Error(`Named callout arguments not allowed "${i}"`);break;case"error":if(i.length>1)throw new Error(`Named callout allows only one argument "${i}"`);if(typeof a=="string")throw new Error(`Named callout argument must be a number "${a}"`);break;case"max":if(!i.length||i.length>2)throw new Error(`Named callout must have one or two arguments "${i}"`);if(typeof a=="string"&&!/^[A-Za-z_]\w*$/.test(a))throw new Error(`Named callout argument one must be a tag or number "${a}"`);if(i.length===2&&(typeof s=="number"||!/^[<>X]$/.test(s)))throw new Error(`Named callout optional argument two must be '<', '>', or 'X' "${s}"`);break;case"count":case"total_count":if(i.length>1)throw new Error(`Named callout allows only one argument "${i}"`);if(i.length===1&&(typeof a=="number"||!/^[<>X]$/.test(a)))throw new Error(`Named callout optional argument must be '<', '>', or 'X' "${a}"`);break;case"cmp":if(i.length!==3)throw new Error(`Named callout must have three arguments "${i}"`);if(typeof a=="string"&&!/^[A-Za-z_]\w*$/.test(a))throw new Error(`Named callout argument one must be a tag or number "${a}"`);if(typeof s=="number"||!/^(?:[<>!=]=|[<>])$/.test(s))throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' "${s}"`);if(typeof l=="string"&&!/^[A-Za-z_]\w*$/.test(l))throw new Error(`Named callout argument three must be a tag or number "${l}"`);break;case"custom":throw new Error(`Undefined callout name "${r}"`);default:throw new Error(`Unexpected named callout kind "${p}"`)}return St(p,n??null,o?.split(",")??null,e)}function me(e){let t=null,r,n;if(e[0]==="{"){let{minStr:o,maxStr:i}=/^\{(?\d*)(?:,(?\d*))?/.exec(e).groups,a=1e5;if(+o>a||i&&+i>a)throw new Error("Quantifier value unsupported in Oniguruma");if(r=+o,n=i===void 0?+o:i===""?1/0:+i,r>n&&(t="possessive",[r,n]=[n,r]),e.endsWith("?")){if(t==="possessive")throw new Error('Unsupported possessive interval quantifier chain with "?"');t="lazy"}else t||(t="greedy")}else r=e[0]==="+"?1:0,n=e[0]==="?"?1:1/0,t=e[1]==="+"?"possessive":e[1]==="?"?"lazy":"greedy";return xt(t,r,n,e)}function Ot(e){let t=e[1].toLowerCase();return T({d:"digit",h:"hex",s:"space",w:"word"}[t],e,{negate:e[1]!==t})}function Mt(e){let{p:t,neg:r,value:n}=/^\\(?

[pP])\{(?\^?)(?[^}]+)/.exec(e).groups;return T("property",e,{value:n,negate:t==="P"&&!r||t==="p"&&!!r})}function ye(e){let t={};return e.includes("i")&&(t.ignoreCase=!0),e.includes("m")&&(t.dotAll=!0),e.includes("x")&&(t.extended=!0),Object.keys(t).length?t:null}function Gt(e){let t={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let r=0;r\p{AHex}+)/u.exec(e).groups.hex:e.slice(2);return parseInt(t,16)}function Ft(e,t){let{raw:r,inCharClass:n}=e,o=r.slice(1);if(!n&&(o!=="0"&&o.length===1||o[0]!=="0"&&+o<=t))return[Ie(r)];let i=[],a=o.match(/^[0-7]+|\d/g);for(let s=0;s127)throw new Error(c`Octal encoded byte above 177 unsupported "${r}"`)}else p=y(l);i.push(A(p,(s===0?"\\":"")+l))}return i}function Ut(e){let t=[],r=new RegExp(oe,"gy"),n;for(;n=r.exec(e);){let o=n[0];if(o[0]==="{"){let i=/^\{(?\d+),(?\d+)\}\??$/.exec(o);if(i){let{min:a,max:s}=i.groups;if(+a>+s&&o.endsWith("?")){r.lastIndex--,t.push(me(o.slice(0,-1)));continue}}}t.push(me(o))}return t}function O(e,t){if(!Array.isArray(e.body))throw new Error("Expected node with body array");if(e.body.length!==1)return!1;let r=e.body[0];return!t||Object.keys(t).every(n=>t[n]===r[n])}function b(e){return!(!$t.has(e.type)||e.type==="AbsenceFunction"&&e.kind!=="repeater")}var $t=new Set(["AbsenceFunction","CapturingGroup","Group","LookaroundAssertion","Regex"]);function E(e){return Dt.has(e.type)}var Dt=new Set(["AbsenceFunction","Backreference","CapturingGroup","Character","CharacterClass","CharacterSet","Group","Quantifier","Subroutine"]);function M(e,t={}){let r={flags:"",normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t,rules:{captureGroup:!1,singleline:!1,...t.rules}},n=be(e,{flags:r.flags,rules:{captureGroup:r.rules.captureGroup,singleline:r.rules.singleline}}),o=(u,h)=>{let f=n.tokens[i.nextIndex];switch(i.parent=u,i.nextIndex++,f.type){case"Alternator":return N();case"Assertion":return Kt(f);case"Backreference":return Rt(f,i);case"Character":return K(f.value,{useLastValid:!!h.isCheckingRangeEnd});case"CharacterClassHyphen":return Bt(f,i,h);case"CharacterClassOpen":return Vt(f,i,h);case"CharacterSet":return jt(f,i);case"Directive":return Zt(f.kind,{flags:f.flags});case"GroupOpen":return zt(f,i,h);case"NamedCallout":return Yt(f.kind,f.tag,f.arguments);case"Quantifier":return Ht(f,i);case"Subroutine":return Qt(f,i);default:throw new Error(`Unexpected token type "${f.type}"`)}},i={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:r.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:r.skipBackrefValidation,skipLookbehindValidation:r.skipLookbehindValidation,skipPropertyNameValidation:r.skipPropertyNameValidation,subroutines:[],tokens:n.tokens,unicodePropertyMap:r.unicodePropertyMap,walk:o},a=tr(qt(n.flags)),s=a.body[0];for(;i.nextIndexl.length)throw new Error("Subroutine uses a group number that's not defined");u&&(l[u-1].isSubroutined=!0)}else if(d.has(u)){if(d.get(u).length>1)throw new Error(c`Subroutine uses a duplicate group name "\g<${u}>"`);d.get(u)[0].isSubroutined=!0}else throw new Error(c`Subroutine uses a group name that's not defined "\g<${u}>"`);return a}function Kt({kind:e}){return Xt(m({"^":"line_start",$:"line_end","\\A":"string_start","\\b":"word_boundary","\\B":"word_boundary","\\G":"search_start","\\y":"text_segment_boundary","\\Y":"text_segment_boundary","\\z":"string_end","\\Z":"string_end_newline"}[e],`Unexpected assertion kind "${e}"`),{negate:e===c`\B`||e===c`\Y`})}function Rt({raw:e},t){let r=/^\\k[<']/.test(e),n=r?e.slice(3,-1):e.slice(1),o=(i,a=!1)=>{let s=t.capturingGroups.length,l=!1;if(i>s)if(t.skipBackrefValidation)l=!0;else throw new Error(`Not enough capturing groups defined to the left "${e}"`);return t.hasNumberedRef=!0,Ae(a?s+1-i:i,{orphan:l})};if(r){let i=/^(?-?)0*(?[1-9]\d*)$/.exec(n);if(i)return o(+i.groups.num,!!i.groups.sign);if(/[-+]/.test(n))throw new Error(`Invalid backref name "${e}"`);if(!t.namedGroupsByName.has(n))throw new Error(`Group name not defined to the left "${e}"`);return Ae(n)}return o(+n)}function Bt(e,t,r){let{tokens:n,walk:o}=t,i=t.parent,a=i.body.at(-1),s=n[t.nextIndex];if(!r.isCheckingRangeEnd&&a&&a.type!=="CharacterClass"&&a.type!=="CharacterClassRange"&&s&&s.type!=="CharacterClassOpen"&&s.type!=="CharacterClassClose"&&s.type!=="CharacterClassIntersector"){let l=o(i,{...r,isCheckingRangeEnd:!0});if(a.type==="Character"&&l.type==="Character")return i.body.pop(),W(a,l);throw new Error("Invalid character class range")}return K(y("-"))}function Vt({negate:e},t,r){let{tokens:n,walk:o}=t,i=[D()],a=n[t.nextIndex],s=ve(a);for(;s.type!=="CharacterClassClose";){if(s.type==="CharacterClassIntersector")i.push(D()),t.nextIndex++;else{let p=i.at(-1);p.body.push(o(p,r))}s=ve(n[t.nextIndex],a)}let l=D({negate:e});return i.length===1?l.body=i[0].body:(l.kind="intersection",l.body=i.map(p=>p.body.length===1?p.body[0]:p)),t.nextIndex++,l}function jt({kind:e,negate:t,value:r},n){let{normalizeUnknownPropertyNames:o,skipPropertyNameValidation:i,unicodePropertyMap:a}=n;if(e==="property"){let s=Z(r);if(U.has(s)&&!a?.has(s))e="posix",r=s;else return J(r,{negate:t,normalizeUnknownPropertyNames:o,skipPropertyNameValidation:i,unicodePropertyMap:a})}return e==="posix"?er(r,{negate:t}):k(e,{negate:t})}function zt(e,t,r){let{tokens:n,capturingGroups:o,namedGroupsByName:i,skipLookbehindValidation:a,walk:s}=t,l=nr(e),p=l.type==="AbsenceFunction",d=xe(l),_=d&&l.negate;if(l.type==="CapturingGroup"&&(o.push(l),l.name&&pe(i,l.name,[]).push(l)),p&&r.isInAbsenceFunction)throw new Error("Nested absence function not supported by Oniguruma");let u=we(n[t.nextIndex]);for(;u.type!=="GroupClose";){if(u.type==="Alternator")l.body.push(N()),t.nextIndex++;else{let h=l.body.at(-1),f=s(h,{...r,isInAbsenceFunction:r.isInAbsenceFunction||p,isInLookbehind:r.isInLookbehind||d,isInNegLookbehind:r.isInNegLookbehind||_});if(h.body.push(f),(d||r.isInLookbehind)&&!a){let C="Lookbehind includes a pattern not allowed by Oniguruma";if(_||r.isInNegLookbehind){if(Se(f)||f.type==="CapturingGroup")throw new Error(C)}else if(Se(f)||xe(f)&&f.negate)throw new Error(C)}}u=we(n[t.nextIndex])}return t.nextIndex++,l}function Ht({kind:e,min:t,max:r},n){let o=n.parent,i=o.body.at(-1);if(!i||!E(i))throw new Error("Quantifier requires a repeatable token");let a=X(e,t,r,i);return o.body.pop(),a}function Qt({raw:e},t){let{capturingGroups:r,subroutines:n}=t,o=e.slice(3,-1),i=/^(?[-+]?)0*(?[1-9]\d*)$/.exec(o);if(i){let s=+i.groups.num,l=r.length;if(t.hasNumberedRef=!0,o={"":s,"+":l+s,"-":l+1-s}[i.groups.sign],o<1)throw new Error("Invalid subroutine number")}else o==="0"&&(o=0);let a=rr(o);return n.push(a),a}function Wt(e,t){if(e!=="repeater")throw new Error(`Unexpected absence function kind "${e}"`);return{type:"AbsenceFunction",kind:e,body:R(t?.body)}}function N(e){return{type:"Alternative",body:Te(e?.body)}}function Xt(e,t){let r={type:"Assertion",kind:e};return(e==="word_boundary"||e==="text_segment_boundary")&&(r.negate=!!t?.negate),r}function Ae(e,t){let r=!!t?.orphan;return{type:"Backreference",ref:e,...r&&{orphan:r}}}function Jt(e,t){let r={name:void 0,isSubroutined:!1,...t};if(r.name!==void 0&&!ar(r.name))throw new Error(`Group name "${r.name}" invalid in Oniguruma`);return{type:"CapturingGroup",number:e,...r.name&&{name:r.name},...r.isSubroutined&&{isSubroutined:r.isSubroutined},body:R(t?.body)}}function K(e,t){let r={useLastValid:!1,...t};if(e>1114111){let n=e.toString(16);if(r.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range "\\x{${n}}"`):new Error(`Invalid code point out of range in JS "\\x{${n}}"`)}return{type:"Character",value:e}}function D(e){let t={kind:"union",negate:!1,...e};return{type:"CharacterClass",kind:t.kind,negate:t.negate,body:Te(e?.body)}}function W(e,t){if(t.valuer)throw new Error("Invalid reversed quantifier range");return{type:"Quantifier",kind:e,min:t,max:r,body:n}}function tr(e,t){return{type:"Regex",body:R(t?.body),flags:e}}function rr(e){return{type:"Subroutine",ref:e}}function J(e,t){let r={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t},n=r.unicodePropertyMap?.get(Z(e));if(!n){if(r.normalizeUnknownPropertyNames)n=or(e);else if(r.unicodePropertyMap&&!r.skipPropertyNameValidation)throw new Error(c`Invalid Unicode property "\p{${e}}"`)}return{type:"CharacterSet",kind:"property",value:n??e,negate:r.negate}}function nr({flags:e,kind:t,name:r,negate:n,number:o}){switch(t){case"absence_repeater":return Wt("repeater");case"atomic":return S({atomic:!0});case"capturing":return Jt(o,{name:r});case"group":return S({flags:e});case"lookahead":case"lookbehind":return ie({behind:t==="lookbehind",negate:n});default:throw new Error(`Unexpected group kind "${t}"`)}}function R(e){if(e===void 0)e=[N()];else if(!Array.isArray(e)||!e.length||!e.every(t=>t.type==="Alternative"))throw new Error("Invalid body; expected array of one or more Alternative nodes");return e}function Te(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(t=>!!t.type))throw new Error("Invalid body; expected array of nodes");return e}function Se(e){return e.type==="LookaroundAssertion"&&e.kind==="lookahead"}function xe(e){return e.type==="LookaroundAssertion"&&e.kind==="lookbehind"}function ar(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}function or(e){return e.trim().replace(/[- _]+/g,"_").replace(/[A-Z][a-z]+(?=[A-Z])/g,"$&_").replace(/[A-Za-z]+/g,t=>t[0].toUpperCase()+t.slice(1).toLowerCase())}function Z(e){return e.replace(/[- _]+/g,"").toLowerCase()}function ve(e,t){let r=t;return m(e,`Unclosed character class${r?.type==="Character"&&r.value===93&&r.raw==="]"?' (started with "]")':""}`)}function we(e){return m(e,"Unclosed group")}var G=new Map(`ASCII_Hex_Digit Adlam Ahom Alphabetic Anatolian_Hieroglyphs Any Arabic Armenian Assigned Avestan Balinese Bamum Bassa_Vah Batak Bengali Bhaiksuki Bidi_Control Bopomofo Brahmi Braille Buginese Buhid C Canadian_Aboriginal Carian Case_Ignorable Cased Caucasian_Albanian Cc Cf Chakma Cham Changes_When_Casefolded Changes_When_Casemapped Changes_When_Lowercased Changes_When_Titlecased Changes_When_Uppercased Cherokee Chorasmian Cn Co Common Coptic Cs Cuneiform Cypriot Cypro_Minoan Cyrillic Dash Default_Ignorable_Code_Point Deprecated Deseret Devanagari Diacritic Dives_Akuru Dogra Duployan Egyptian_Hieroglyphs Elbasan Elymaic Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Ethiopic Extended_Pictographic Extender Garay Georgian Glagolitic Gothic Grantha Grapheme_Base Grapheme_Extend Grapheme_Link Greek Gujarati Gunjala_Gondi Gurmukhi Gurung_Khema Han Hangul Hanifi_Rohingya Hanunoo Hatran Hebrew Hex_Digit Hiragana Hyphen IDS_Binary_Operator IDS_Trinary_Operator IDS_Unary_Operator ID_Compat_Math_Continue ID_Compat_Math_Start ID_Continue ID_Start Ideographic Imperial_Aramaic InCB Inherited Inscriptional_Pahlavi Inscriptional_Parthian Javanese Join_Control Kaithi Kannada Katakana Kawi Kayah_Li Kharoshthi Khitan_Small_Script Khmer Khojki Khudawadi Kirat_Rai L LC Lao Latin Lepcha Limbu Linear_A Linear_B Lisu Ll Lm Lo Logical_Order_Exception Lowercase Lt Lu Lycian Lydian M Mahajani Makasar Malayalam Mandaic Manichaean Marchen Masaram_Gondi Math Mc Me Medefaidrin Meetei_Mayek Mende_Kikakui Meroitic_Cursive Meroitic_Hieroglyphs Miao Mn Modi Modifier_Combining_Mark Mongolian Mro Multani Myanmar N Nabataean Nag_Mundari Nandinagari Nd New_Tai_Lue Newa Nko Nl No Noncharacter_Code_Point Nushu Nyiakeng_Puachue_Hmong Ogham Ol_Chiki Ol_Onal Old_Hungarian Old_Italic Old_North_Arabian Old_Permic Old_Persian Old_Sogdian Old_South_Arabian Old_Turkic Old_Uyghur Oriya Osage Osmanya Other_Alphabetic Other_Default_Ignorable_Code_Point Other_Grapheme_Extend Other_ID_Continue Other_ID_Start Other_Lowercase Other_Math Other_Uppercase P Pahawh_Hmong Palmyrene Pattern_Syntax Pattern_White_Space Pau_Cin_Hau Pc Pd Pe Pf Phags_Pa Phoenician Pi Po Prepended_Concatenation_Mark Ps Psalter_Pahlavi Quotation_Mark Radical Regional_Indicator Rejang Runic S Samaritan Saurashtra Sc Sentence_Terminal Sharada Shavian Siddham SignWriting Sinhala Sk Sm So Soft_Dotted Sogdian Sora_Sompeng Soyombo Sundanese Sunuwar Syloti_Nagri Syriac Tagalog Tagbanwa Tai_Le Tai_Tham Tai_Viet Takri Tamil Tangsa Tangut Telugu Terminal_Punctuation Thaana Thai Tibetan Tifinagh Tirhuta Todhri Toto Tulu_Tigalari Ugaritic Unified_Ideograph Unknown Uppercase Vai Variation_Selector Vithkuqi Wancho Warang_Citi White_Space XID_Continue XID_Start Yezidi Yi Z Zanabazar_Square Zl Zp Zs Adlm Aghb AHex Arab Armi Armn Avst Bali Bamu Bass Batk Beng Bhks Bidi_C Bopo Brah Brai Bugi Buhd Cakm Cans Cari Cased_Letter Cher Chrs CI Close_Punctuation Combining_Mark Connector_Punctuation Control Copt Cpmn Cprt Currency_Symbol CWCF CWCM CWL CWT CWU Cyrl Dash_Punctuation Decimal_Number Dep Deva DI Dia Diak Dogr Dsrt Dupl EBase EComp Egyp Elba Elym EMod Enclosing_Mark EPres Ethi Ext ExtPict Final_Punctuation Format Gara Geor Glag Gong Gonm Goth Gran Gr_Base Grek Gr_Ext Gr_Link Gujr Gukh Guru Hang Hani Hano Hatr Hebr Hex Hira Hluw Hmng Hmnp Hung IDC Ideo IDS IDSB IDST IDSU Initial_Punctuation Ital Java Join_C Kali Kana Khar Khmr Khoj Kits Knda Krai Kthi Lana Laoo Latn Lepc Letter Letter_Number Limb Lina Linb Line_Separator LOE Lowercase_Letter Lyci Lydi Mahj Maka Mand Mani Marc Mark Math_Symbol MCM Medf Mend Merc Mero Mlym Modifier_Letter Modifier_Symbol Mong Mroo Mtei Mult Mymr Nagm Nand Narb Nbat NChar Nkoo Nonspacing_Mark Nshu Number OAlpha ODI Ogam OGr_Ext OIDC OIDS Olck OLower OMath Onao Open_Punctuation Orkh Orya Osge Osma Other Other_Letter Other_Number Other_Punctuation Other_Symbol Ougr OUpper Palm Paragraph_Separator Pat_Syn Pat_WS Pauc PCM Perm Phag Phli Phlp Phnx Plrd Private_Use Prti punct Punctuation Qaac Qaai QMark RI Rjng Rohg Runr Samr Sarb Saur SD Separator Sgnw Shaw Shrd Sidd Sind Sinh Sogd Sogo Sora Soyo Space_Separator Spacing_Mark STerm Sund Sunu Surrogate Sylo Symbol Syrc Tagb Takr Tale Talu Taml Tang Tavt Telu Term Tfng Tglg Thaa Tibt Tirh Titlecase_Letter Tnsa Todr Tutg Ugar UIdeo Unassigned Uppercase_Letter Vaii Vith VS Wara Wcho WSpace XIDC XIDS Xpeo Xsux Yezi Yiii Zanb Zinh Zyyy Zzzz In_Basic_Latin In_Latin_1_Supplement In_Latin_Extended_A In_Latin_Extended_B In_IPA_Extensions In_Spacing_Modifier_Letters In_Combining_Diacritical_Marks In_Greek_and_Coptic In_Cyrillic In_Cyrillic_Supplement In_Armenian In_Hebrew In_Arabic In_Syriac In_Arabic_Supplement In_Thaana In_NKo In_Samaritan In_Mandaic In_Syriac_Supplement In_Arabic_Extended_B In_Arabic_Extended_A In_Devanagari In_Bengali In_Gurmukhi In_Gujarati In_Oriya In_Tamil In_Telugu In_Kannada In_Malayalam In_Sinhala In_Thai In_Lao In_Tibetan In_Myanmar In_Georgian In_Hangul_Jamo In_Ethiopic In_Ethiopic_Supplement In_Cherokee In_Unified_Canadian_Aboriginal_Syllabics In_Ogham In_Runic In_Tagalog In_Hanunoo In_Buhid In_Tagbanwa In_Khmer In_Mongolian In_Unified_Canadian_Aboriginal_Syllabics_Extended In_Limbu In_Tai_Le In_New_Tai_Lue In_Khmer_Symbols In_Buginese In_Tai_Tham In_Combining_Diacritical_Marks_Extended In_Balinese In_Sundanese In_Batak In_Lepcha In_Ol_Chiki In_Cyrillic_Extended_C In_Georgian_Extended In_Sundanese_Supplement In_Vedic_Extensions In_Phonetic_Extensions In_Phonetic_Extensions_Supplement In_Combining_Diacritical_Marks_Supplement In_Latin_Extended_Additional In_Greek_Extended In_General_Punctuation In_Superscripts_and_Subscripts In_Currency_Symbols In_Combining_Diacritical_Marks_for_Symbols In_Letterlike_Symbols In_Number_Forms In_Arrows In_Mathematical_Operators In_Miscellaneous_Technical In_Control_Pictures In_Optical_Character_Recognition In_Enclosed_Alphanumerics In_Box_Drawing In_Block_Elements In_Geometric_Shapes In_Miscellaneous_Symbols In_Dingbats In_Miscellaneous_Mathematical_Symbols_A In_Supplemental_Arrows_A In_Braille_Patterns In_Supplemental_Arrows_B In_Miscellaneous_Mathematical_Symbols_B In_Supplemental_Mathematical_Operators In_Miscellaneous_Symbols_and_Arrows In_Glagolitic In_Latin_Extended_C In_Coptic In_Georgian_Supplement In_Tifinagh In_Ethiopic_Extended In_Cyrillic_Extended_A In_Supplemental_Punctuation In_CJK_Radicals_Supplement In_Kangxi_Radicals In_Ideographic_Description_Characters In_CJK_Symbols_and_Punctuation In_Hiragana In_Katakana In_Bopomofo In_Hangul_Compatibility_Jamo In_Kanbun In_Bopomofo_Extended In_CJK_Strokes In_Katakana_Phonetic_Extensions In_Enclosed_CJK_Letters_and_Months In_CJK_Compatibility In_CJK_Unified_Ideographs_Extension_A In_Yijing_Hexagram_Symbols In_CJK_Unified_Ideographs In_Yi_Syllables In_Yi_Radicals In_Lisu In_Vai In_Cyrillic_Extended_B In_Bamum In_Modifier_Tone_Letters In_Latin_Extended_D In_Syloti_Nagri In_Common_Indic_Number_Forms In_Phags_pa In_Saurashtra In_Devanagari_Extended In_Kayah_Li In_Rejang In_Hangul_Jamo_Extended_A In_Javanese In_Myanmar_Extended_B In_Cham In_Myanmar_Extended_A In_Tai_Viet In_Meetei_Mayek_Extensions In_Ethiopic_Extended_A In_Latin_Extended_E In_Cherokee_Supplement In_Meetei_Mayek In_Hangul_Syllables In_Hangul_Jamo_Extended_B In_High_Surrogates In_High_Private_Use_Surrogates In_Low_Surrogates In_Private_Use_Area In_CJK_Compatibility_Ideographs In_Alphabetic_Presentation_Forms In_Arabic_Presentation_Forms_A In_Variation_Selectors In_Vertical_Forms In_Combining_Half_Marks In_CJK_Compatibility_Forms In_Small_Form_Variants In_Arabic_Presentation_Forms_B In_Halfwidth_and_Fullwidth_Forms In_Specials In_Linear_B_Syllabary In_Linear_B_Ideograms In_Aegean_Numbers In_Ancient_Greek_Numbers In_Ancient_Symbols In_Phaistos_Disc In_Lycian In_Carian In_Coptic_Epact_Numbers In_Old_Italic In_Gothic In_Old_Permic In_Ugaritic In_Old_Persian In_Deseret In_Shavian In_Osmanya In_Osage In_Elbasan In_Caucasian_Albanian In_Vithkuqi In_Todhri In_Linear_A In_Latin_Extended_F In_Cypriot_Syllabary In_Imperial_Aramaic In_Palmyrene In_Nabataean In_Hatran In_Phoenician In_Lydian In_Meroitic_Hieroglyphs In_Meroitic_Cursive In_Kharoshthi In_Old_South_Arabian In_Old_North_Arabian In_Manichaean In_Avestan In_Inscriptional_Parthian In_Inscriptional_Pahlavi In_Psalter_Pahlavi In_Old_Turkic In_Old_Hungarian In_Hanifi_Rohingya In_Garay In_Rumi_Numeral_Symbols In_Yezidi In_Arabic_Extended_C In_Old_Sogdian In_Sogdian In_Old_Uyghur In_Chorasmian In_Elymaic In_Brahmi In_Kaithi In_Sora_Sompeng In_Chakma In_Mahajani In_Sharada In_Sinhala_Archaic_Numbers In_Khojki In_Multani In_Khudawadi In_Grantha In_Tulu_Tigalari In_Newa In_Tirhuta In_Siddham In_Modi In_Mongolian_Supplement In_Takri In_Myanmar_Extended_C In_Ahom In_Dogra In_Warang_Citi In_Dives_Akuru In_Nandinagari In_Zanabazar_Square In_Soyombo In_Unified_Canadian_Aboriginal_Syllabics_Extended_A In_Pau_Cin_Hau In_Devanagari_Extended_A In_Sunuwar In_Bhaiksuki In_Marchen In_Masaram_Gondi In_Gunjala_Gondi In_Makasar In_Kawi In_Lisu_Supplement In_Tamil_Supplement In_Cuneiform In_Cuneiform_Numbers_and_Punctuation In_Early_Dynastic_Cuneiform In_Cypro_Minoan In_Egyptian_Hieroglyphs In_Egyptian_Hieroglyph_Format_Controls In_Egyptian_Hieroglyphs_Extended_A In_Anatolian_Hieroglyphs In_Gurung_Khema In_Bamum_Supplement In_Mro In_Tangsa In_Bassa_Vah In_Pahawh_Hmong In_Kirat_Rai In_Medefaidrin In_Miao In_Ideographic_Symbols_and_Punctuation In_Tangut In_Tangut_Components In_Khitan_Small_Script In_Tangut_Supplement In_Kana_Extended_B In_Kana_Supplement In_Kana_Extended_A In_Small_Kana_Extension In_Nushu In_Duployan In_Shorthand_Format_Controls In_Symbols_for_Legacy_Computing_Supplement In_Znamenny_Musical_Notation In_Byzantine_Musical_Symbols In_Musical_Symbols In_Ancient_Greek_Musical_Notation In_Kaktovik_Numerals In_Mayan_Numerals In_Tai_Xuan_Jing_Symbols In_Counting_Rod_Numerals In_Mathematical_Alphanumeric_Symbols In_Sutton_SignWriting In_Latin_Extended_G In_Glagolitic_Supplement In_Cyrillic_Extended_D In_Nyiakeng_Puachue_Hmong In_Toto In_Wancho In_Nag_Mundari In_Ol_Onal In_Ethiopic_Extended_B In_Mende_Kikakui In_Adlam In_Indic_Siyaq_Numbers In_Ottoman_Siyaq_Numbers In_Arabic_Mathematical_Alphabetic_Symbols In_Mahjong_Tiles In_Domino_Tiles In_Playing_Cards In_Enclosed_Alphanumeric_Supplement In_Enclosed_Ideographic_Supplement In_Miscellaneous_Symbols_and_Pictographs In_Emoticons In_Ornamental_Dingbats In_Transport_and_Map_Symbols In_Alchemical_Symbols In_Geometric_Shapes_Extended In_Supplemental_Arrows_C In_Supplemental_Symbols_and_Pictographs In_Chess_Symbols In_Symbols_and_Pictographs_Extended_A In_Symbols_for_Legacy_Computing In_CJK_Unified_Ideographs_Extension_B In_CJK_Unified_Ideographs_Extension_C In_CJK_Unified_Ideographs_Extension_D In_CJK_Unified_Ideographs_Extension_E In_CJK_Unified_Ideographs_Extension_F In_CJK_Unified_Ideographs_Extension_I In_CJK_Compatibility_Ideographs_Supplement In_CJK_Unified_Ideographs_Extension_G In_CJK_Unified_Ideographs_Extension_H In_Tags In_Variation_Selectors_Supplement In_Supplementary_Private_Use_Area_A In_Supplementary_Private_Use_Area_B In_No_Block`.split(/\s/).map(e=>[Z(e),e]));function Ee(e,t={}){if({}.toString.call(t)!=="[object Object]")throw new Error("Unexpected options");return M(e,{flags:t.flags??"",rules:{captureGroup:t.rules?.captureGroup??!1,singleline:t.rules?.singleline??!1},unicodePropertyMap:G})}function Y(e,t,r=null){function n(i,a){for(let s=0;s1?D({body:e}):e[0];return r&&t.body.push(r),t}var ir=new Set(["digit","hex","posix","property","space","word"]);var Me={CapturingGroup({node:e,parent:t,replaceWithMultiple:r}){if(t.type==="Quantifier"||e.body.length>1||e.isSubroutined)return;let n=e.body[0],o=n.body,i=o[0],a=o.length>1?o.at(-1):null,s=i&&i.type==="Assertion",l=a&&a.type==="Assertion",p=s?1:0,d=o.length-(l?1:0);if(s||l){n.body=o.slice(p,d);let _=[];s&&_.push(i),_.push(e),l&&_.push(a),r(_,{traverse:!0})}}};var Ge={"*"({node:e}){if(!b(e)||e.body.length<2)return;let t=[],r=!1,n=0;for(;!r;){t.push(e.body[0].body[n]);for(let a of e.body){let s=a.body[n];if(!s||!x(s)||!v(s,t[n])){r=!0;break}}n++}if(t.pop(),!t.length)return;for(let a of e.body)a.body=a.body.slice(t.length);let o=N({body:t}),i=S({body:e.body});i.body.every(a=>!a.body.length)||o.body.push(i),e.body=[o]}};function x(e){return e.type==="Assertion"||e.type==="Character"||e.type==="CharacterSet"}function v(e,t){if(e.type!==t.type)return!1;if(e.type==="Assertion"||e.type==="CharacterSet")return e.kind===t.kind&&e.negate===t.negate;if(e.type==="Character")return e.value===t.value;throw new Error(`Unexpected node type "${e.type}"`)}var Le={"*"({node:e}){if(!b(e))return;let t=2,r=e.body.length;if(rh.body)],o=Array.from({length:t},()=>[]),i=Array(t).fill(!1),a=Math.max(...n.map(h=>h.length));for(let h=0;hh.length))return;let s=[],l=0;for(let h=0;hx(g)&&v(g,f[0].body[F])))return}}let p=[];for(let h=0;hf%t)});u.body.every(h=>!h.body.length)?e.body=d.body:(_.body.push(u),e.body=[_])}};function sr(e,t,r,n,o){for(let i=r;i{let d=p[l-1],_=r.length;return s.body.length-_<2&&d&&d.body.length-_<2}))return;r.reverse();for(let s of e.body)s.body=s.body.slice(0,-r.length);let i=N(),a=S({body:e.body});a.body.every(s=>!s.body.length)||i.body.push(a),i.body.push(...r),e.body=[i]}};var $e={CharacterClass({node:e}){if(e.kind!=="union"||!e.body.length)return;let t=[];for(let a of e.body)a.type==="CharacterSet"&&t.some(s=>s.type===a.type&&s.kind===a.kind&&s.negate===a.negate&&s.value===a.value)||t.push(a);e.body=t;let r=[],n=[];for(let a of e.body)a.type==="Character"||a.type==="CharacterClassRange"?n.push(a):r.push(a);if(!n.length)return;n.sort((a,s)=>{let l=a.type==="Character"?a.value:a.min.value,p=s.type==="Character"?s.value:s.min.value;return l-p});let o=[n[0]];for(let a=1;a{if(a.type==="CharacterClassRange"){let s=a.max.value-a.min.value;if(a.min.value>262143&&s>1)return a;if(s){if(s===1)return[a.min,a.max];if(s===2)return[a.min,K(a.min.value+1),a.max]}else return a.min}return a});e.body=[...i.filter(a=>Ue(a)),...i.filter(a=>!Ue(a)),...r]}};function Ue(e){return e.type==="Character"&&(e.value===45||e.value===93)}var Ke={"*"({node:e}){if(!b(e)||e.body.length<2)return;let{body:t}=e,r=[t[0]],n=t[0];for(let o=1;oa.length,d=p?a:a.slice(0,-1),_=p?s.slice(0,-1):s;if(De(d,_)){if(p){let u=m(s.at(-1));if(E(u))if(u.type==="Quantifier")if(u.min){if(u.min===1&&u.kind!=="lazy"){u.min=0;continue}}else continue;else{s.pop(),s.push(X("greedy",0,1,u));continue}}else if(s.length>0||t.length===2){let u=m(a.at(-1));if(E(u))if(u.type==="Quantifier"){if(u.kind!=="possessive"){if(u.min<=1&&u.kind==="lazy"){u.min=0,s.push(u);continue}else if(!u.min&&u.max===1){u.kind="lazy",s.push(u);continue}}}else{s.push(X("lazy",0,1,u));continue}}}}}else if(De(a,s))continue;r.push(i),n=i}e.body=r}};function De(e,t){if(e.length!==t.length)return!1;for(let r=0;r1||o.max<2||(o.min?o.min===1&&(n.body[0]=o.body):o.max=1)}};var Be={AbsenceFunction({node:e,remove:t}){ee(e)&&t()},Group({node:e,remove:t}){ee(e)&&t()},LookaroundAssertion({node:e,remove:t}){ee(e)&&t()},Quantifier({node:e,remove:t}){let r=e.body;for(;r.type==="Quantifier";)r=r.body;ee(r)&&t()}};function se(e){return e.body.every(t=>!t.body.length)}function ee(e){switch(e.type){case"AbsenceFunction":return e.kind==="repeater"&&se(e);case"Group":return se(e);case"LookaroundAssertion":return!e.negate&&se(e);default:return!1}}var ze={Flags({node:e}){e.extended=!1,e.textSegmentMode==="grapheme"&&(e.textSegmentMode=null)},Directive({node:e,remove:t}){e.kind==="flags"&&(je(e),Ve(e)&&t())},Group({node:e}){e.flags&&(je(e),Ve(e))}};function Ve(e){let{flags:t}=e;return t&&!t.enable&&!t.disable?(delete e.flags,!0):!1}function je({flags:e}){if(!e)throw new Error("Expected flags");e.enable&&delete e.enable.extended,e.disable&&delete e.disable.extended,lr(e)}function lr(e){e.enable&&!Object.keys(e.enable).length&&delete e.enable,e.disable&&!Object.keys(e.disable).length&&delete e.disable}var He={NamedCallout({node:e,replaceWith:t}){let{arguments:r,kind:n}=e;if(n==="fail"){t(ie({negate:!0}));return}if(!r)return;let o=r.filter(i=>i!=="").map(i=>typeof i=="string"&&/^[+-]?\d+$/.test(i)?+i:i);e.arguments=o.length?o:null}};var Qe={CharacterClass({node:e,parent:t,replaceWith:r,replaceWithMultiple:n}){let{body:o,kind:i,negate:a}=e;if(t.type!=="CharacterClass"||i!=="union"||!o.length)return;let s=o[0];if(O(t,{type:"CharacterClass",kind:"union"})){t.negate=t.negate!==a,n(o,{traverse:!0});return}a||(t.kind==="union"?n(o,{traverse:!0}):O(e)&&r(s,{traverse:!0}))}};var We={CharacterClass({node:e,parent:t,replaceWith:r}){let{body:n,kind:o,negate:i}=e;if(!i||o!=="union"||n.length!==1)return;let a=n[0];if(a.type==="CharacterSet")a.negate=!a.negate,r(a);else if(t.type!=="CharacterClass"&&a.type==="Character"&&a.value===10){if(t.type==="Quantifier"&&t.kind!=="lazy")return;r(k("newline",{negate:!0}))}}};var Xe={CharacterClass({node:e,parent:t,replaceWith:r}){let{body:n,kind:o,negate:i}=e,a=n[0];t.type==="CharacterClass"||i||o!=="union"||n.length!==1||a.type!=="Character"&&a.type!=="CharacterSet"||r(a,{traverse:!0})}};var Ze={"*"({node:e}){b(e)&&ur(e)&&(e.body=e.body[0].body[0].body)},Group({node:e,parent:t,replaceWithMultiple:r}){let{atomic:n,body:o,flags:i}=e,a=o[0].body;if(o.length>1||t.type==="Quantifier")return;let s=!1;n?a.every(({type:l})=>Je.has(l))&&(s=!0):i||(s=!0),s&&r(a,{traverse:!0})},Quantifier({node:e}){if(e.body.type!=="Group")return;let t=e.body;if(t.body.length>1)return;let r=t.body[0].body;if(r.length!==1)return;let n=r[0];!E(n)||t.atomic&&!Je.has(n.type)||t.flags||(e.body=n)}},Je=new Set(["Assertion","Backreference","Character","CharacterClass","CharacterSet","Directive","NamedCallout"]);function ur({body:e}){let t=e[0].body;return e.length===1&&t.length===1&&t[0].type==="Group"&&!t[0].atomic&&!t[0].flags&&t[0].body.length>1}var qe={CharacterSet({node:e,parent:t,root:r,replaceWith:n}){let{kind:o,negate:i,value:a}=e,s=null;o==="property"&&(a==="Decimal_Number"||a==="Nd")&&!r.flags.digitIsAscii&&!r.flags.posixIsAscii||o==="posix"&&a==="digit"?s=k("digit",{negate:i}):o==="property"&&(a==="ASCII_Hex_Digit"||a==="AHex")||o==="posix"&&a==="xdigit"?s=k("hex",{negate:i}):o==="property"&&(a==="White_Space"||a==="WSpace")&&!r.flags.spaceIsAscii&&!r.flags.posixIsAscii||o==="posix"&&a==="space"?s=k("space",{negate:i}):t.type!=="CharacterClass"&&o==="property"&&!i&&a==="Any"&&(s=k("any")),s&&n(s)},CharacterClass({node:e,root:t}){if(e.kind!=="union")return;let r={rangeDigit0To9:!1,rangeAToFLower:!1,rangeAToFUpper:!1,unicodeL:!1,unicodeM:!1,unicodeN:!1,unicodePc:!1};for(let n of e.body)n.type==="CharacterClassRange"?(r.rangeDigit0To9||=w(n,I.n0,I.n9),r.rangeAToFLower||=w(n,I.a,I.f),r.rangeAToFUpper||=w(n,I.A,I.F)):n.type==="CharacterSet"&&(r.unicodeL||=B(n,"L"),r.unicodeM||=B(n,"M"),r.unicodeN||=B(n,"N"),r.unicodePc||=B(n,"Pc",{includeSupercategories:!0}));r.rangeDigit0To9&&r.rangeAToFUpper&&r.rangeAToFLower&&(e.body=e.body.filter(n=>!(w(n,I.n0,I.n9)||w(n,I.a,I.f)||w(n,I.A,I.F))),e.body.push(k("hex"))),r.unicodeL&&r.unicodeM&&r.unicodeN&&r.unicodePc&&!t.flags.wordIsAscii&&!t.flags.posixIsAscii&&(e.body=e.body.filter(n=>!B(n,["L","M","N","Pc"],{includeSubcategories:!0})),e.body.push(k("word")))}},I={n0:y("0"),n9:y("9"),A:y("A"),F:y("F"),a:y("a"),f:y("f")};function w(e,t,r){return e.type==="CharacterClassRange"&&e.min.value===t&&e.max.value===r}function B(e,t,r={}){if(e.type!=="CharacterSet"||e.kind!=="property"||e.negate)return!1;let n=Array.isArray(t)?t:[t],o=[];for(let i of n){o.push(i);let a=V[i]?.full,s=Ye[i],l=V[i]?.sub;a&&o.push(a),r.includeSupercategories&&s&&(o.push(s),o.push(V[s].full)),r.includeSubcategories&&l&&o.push(...l)}return o.includes(e.value)}var pr=["Ll","Lm","Lo","Lt","Lu"],cr=["Mc","Me","Mn"],dr=["Nd","Nl","No"],fr=["Pc","Pd","Pe","Pf","Pi","Po","Ps"],V={L:{full:"Letter",sub:pr},M:{full:"Mark",sub:cr},N:{full:"Number",sub:dr},P:{full:"Punctuation",sub:fr}},Ye={};for(let e of Object.keys(V))for(let t of V[e].sub)Ye[t]=e;var et={CharacterSet({node:e}){if(e.kind!=="property")return;let t=hr.get(e.value);t&&(e.value=t)}},hr=new Map([["Other","C"],["Control","Cc"],["Format","Cf"],["Unassigned","Cn"],["Private_Use","Co"],["Surrogate","Cs"],["Letter","L"],["Cased_Letter","LC"],["Lowercase_Letter","Ll"],["Modifier_Letter","Lm"],["Other_Letter","Lo"],["Titlecase_Letter","Lt"],["Uppercase_Letter","Lu"],["Mark","M"],["Combining_Mark","M"],["Spacing_Mark","Mc"],["Enclosing_Mark","Me"],["Nonspacing_Mark","Mn"],["Number","N"],["Decimal_Number","Nd"],["Letter_Number","Nl"],["Other_Number","No"],["Punctuation","P"],["punct","P"],["Connector_Punctuation","Pc"],["Dash_Punctuation","Pd"],["Close_Punctuation","Pe"],["Final_Punctuation","Pf"],["Initial_Punctuation","Pi"],["Other_Punctuation","Po"],["Open_Punctuation","Ps"],["Symbol","S"],["Currency_Symbol","Sc"],["Modifier_Symbol","Sk"],["Math_Symbol","Sm"],["Other_Symbol","So"],["Separator","Z"],["Line_Separator","Zl"],["Paragraph_Separator","Zp"],["Space_Separator","Zs"],["ASCII_Hex_Digit","AHex"],["Bidi_Control","Bidi_C"],["Case_Ignorable","CI"],["Changes_When_Casefolded","CWCF"],["Changes_When_Casemapped","CWCM"],["Changes_When_Lowercased","CWL"],["Changes_When_Titlecased","CWT"],["Changes_When_Uppercased","CWU"],["Default_Ignorable_Code_Point","DI"],["Deprecated","Dep"],["Diacritic","Dia"],["Emoji_Component","EComp"],["Emoji_Modifier","EMod"],["Emoji_Modifier_Base","EBase"],["Emoji_Presentation","EPres"],["Extended_Pictographic","ExtPict"],["Extender","Ext"],["Grapheme_Base","Gr_Base"],["Grapheme_Extend","Gr_Ext"],["Grapheme_Link","Gr_Link"],["Hex_Digit","Hex"],["IDS_Binary_Operator","IDSB"],["IDS_Trinary_Operator","IDST"],["IDS_Unary_Operator","IDSU"],["ID_Continue","IDC"],["ID_Start","IDS"],["Ideographic","Ideo"],["Join_Control","Join_C"],["Logical_Order_Exception","LOE"],["Noncharacter_Code_Point","NChar"],["Other_Alphabetic","OAlpha"],["Other_Default_Ignorable_Code_Point","ODI"],["Other_Grapheme_Extend","OGr_Ext"],["Other_ID_Continue","OIDC"],["Other_ID_Start","OIDS"],["Other_Lowercase","OLower"],["Other_Math","OMath"],["Other_Uppercase","OUpper"],["Pattern_Syntax","Pat_Syn"],["Pattern_White_Space","Pat_WS"],["Prepended_Concatenation_Mark","PCM"],["Quotation_Mark","QMark"],["Regional_Indicator","RI"],["Sentence_Terminal","STerm"],["Soft_Dotted","SD"],["Terminal_Punctuation","Term"],["Unified_Ideograph","UIdeo"],["Variation_Selector","VS"],["White_Space","WSpace"],["XID_Continue","XIDC"],["XID_Start","XIDS"]]);var tt={CharacterSet({node:e,root:t,replaceWith:r}){let{kind:n,negate:o,value:i}=e,a=null;n==="posix"&&i==="cntrl"&&!t.flags.posixIsAscii&&(a=J("Cc",{negate:o})),a&&r(a)},CharacterClassRange({node:e,replaceWith:t}){w(e,0,1114111)&&t(J("Any"))}};var te=new Map([["alternationToClass",Oe],["exposeAnchors",Me],["extractPrefix",Ge],["extractPrefix2",Le],["extractSuffix",Fe],["optionalize",Ke],["preventReDoS",Re],["removeEmptyGroups",Be],["removeUselessFlags",ze],["simplifyCallouts",He],["unnestUselessClasses",Qe],["unwrapNegationWrappers",We],["unwrapUselessClasses",Xe],["unwrapUselessGroups",Ze],["useShorthands",qe],["useUnicodeAliases",et],["useUnicodeProps",tt],["mergeRanges",$e]]);function rt(e,t){let r=_r(t),n=M(e,{flags:r.flags,rules:{captureGroup:r.rules.captureGroup,singleline:r.rules.singleline},skipBackrefValidation:r.rules.allowOrphanBackrefs,unicodePropertyMap:G}),o=Object.assign(le(),r.override);for(let l of te.keys())o[l]||delete o[l];let i=Object.keys(o),a={pattern:e,flags:r.flags},s=0;do{if(++s>200)throw new Error("Optimization exceeded maximum iterations; possible infinite loop");e=a.pattern;for(let l of i)Y(n,te.get(l));a=H(n)}while(e!==a.pattern);return a}function _r(e={}){return{flags:"",override:{},...e,rules:{allowOrphanBackrefs:!1,captureGroup:!1,singleline:!1,...e.rules}}}function le(e={}){let t={};for(let r of te.keys())t[r]=!e.disable;return t}return lt(mr);})(); //# sourceMappingURL=oniguruma-parser.min.js.map