@shiplightai/mcp 0.1.49 → 0.1.50
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.
- package/dist/{agentHelpers-242MN5TR-AK52N3RJ.js → agentHelpers-ZEELTQHQ-7LTM7RPI.js} +1 -1
- package/dist/agentLogin-JJ76YIVR-ODLFUWNL.js +4 -0
- package/dist/{chunk-JT3U4KNR.js → chunk-2BZVD336.js} +1 -1
- package/dist/{chunk-HQNPMIQW.js → chunk-4DIUHKFB.js} +2 -2
- package/dist/{chunk-ORSFJVJL.js → chunk-5GG34OWS.js} +3 -3
- package/dist/chunk-HBXQFJ2K.js +4 -0
- package/dist/{chunk-GZSLCYQ7.js → chunk-KI54PAOH.js} +28 -28
- package/dist/chunk-OZ36UVHR.js +3999 -0
- package/dist/{chunk-Z3E7FIDS.js → chunk-UBUBM7F7.js} +1 -1
- package/dist/{chunk-AFEFEPKR.js → chunk-VBI4DDSS.js} +1 -1
- package/dist/{chunk-PFLXO7G4.js → chunk-X5NUVPAF.js} +1 -1
- package/dist/{chunk-KW4N7WFX.js → chunk-XWDTDVL5.js} +4 -4
- package/dist/{chunk-RSM4LZ5P.js → chunk-Y64TKFRF.js} +3203 -3203
- package/dist/dist-FVIJHOEK.js +4 -0
- package/dist/dist-T3EAKPBA.js +4 -0
- package/dist/{handler-2DVP4PMD-IFR4HH7D.js → handler-QSEXJ3YG-BK26HZ5S.js} +1 -1
- package/dist/index.js +2 -2
- package/dist/relayBrowserCache-QL6LD4JJ-RCZSXWM6.js +4 -0
- package/dist/server-SF3CTCCU.js +22 -0
- package/dist/{task-2JIXKMIY-CMX3BD6Z.js → task-5N7K2U7O-UX3BL63L.js} +1 -1
- package/package.json +1 -1
- package/dist/agentLogin-VLDCPI66-52P67BMY.js +0 -4
- package/dist/chunk-34YV5HSR.js +0 -3999
- package/dist/chunk-JKHKVGEC.js +0 -4
- package/dist/dist-VVPHZ43R.js +0 -4
- package/dist/dist-YNN5UBVC.js +0 -4
- package/dist/relayBrowserCache-QL6LD4JJ-TKU47MOI.js +0 -4
- package/dist/server-KGF6BY7H.js +0 -22
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __createRequire } from "module";
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
|
-
import{a as cu,b as xt,c as lu,d as hu,e as du,f as pu,g as gu,h as fu,k as mu,l as xu,o as ee,r as Au}from"./chunk-HQNPMIQW.js";import{a as ru,b as nu,d as au,g as su,h as Xt}from"./chunk-JT3U4KNR.js";import{a as vt,c as Yu,d as Zu,e as Qu,f as ne,g as ae,h as se}from"./chunk-ORSFJVJL.js";import{a as ue,b as H,c as ie,d as Eu,l as re,n as Bu,o as Ft}from"./chunk-34YV5HSR.js";import{a as S}from"./chunk-Z3E7FIDS.js";import{A as zu,B as Ku,E as Ju,a as Cu,b as Du,c as bu,d as wu,e as yu,f as Fu,g as vu,h as ku,i as Su,j as Tu,k as _u,l as Iu,m as Lu,n as Nu,o as $u,p as Pu,q as Ru,r as qu,s as Ou,t as Mu,u as Uu,v as Hu,w as ju,x as Vu,y as Wu,z as Gu}from"./chunk-KW4N7WFX.js";import{b as iu,c}from"./chunk-JKHKVGEC.js";import{a as ou,c as Z,d as te}from"./chunk-ETDHHU35.js";import{c as Qt,e as _r}from"./chunk-LM633YUO.js";var ti=Qt((To,Xu)=>{"use strict";function V(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}Xu.exports=V;V.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};V.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};V.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.push(t),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var u=this._timeouts.shift();if(u===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),u=this._cachedTimeouts.slice(-1);else return!1;var i=this;return this._timer=setTimeout(function(){i._attempts++,i._operationTimeoutCb&&(i._timeout=setTimeout(function(){i._operationTimeoutCb(i._attempts)},i._operationTimeout),i._options.unref&&i._timeout.unref()),i._fn(i._attempts)},u),this._options.unref&&this._timer.unref(),!0};V.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var u=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){u._operationTimeoutCb()},u._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};V.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};V.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};V.prototype.start=V.prototype.try;V.prototype.errors=function(){return this._errors};V.prototype.attempts=function(){return this._attempts};V.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,u=0,i=0;i<this._errors.length;i++){var r=this._errors[i],n=r.message,a=(t[n]||0)+1;t[n]=a,a>=u&&(e=r,u=a)}return e}});var ei=Qt(ut=>{"use strict";var Ir=ti();ut.operation=function(t){var e=ut.timeouts(t);return new Ir(e,{forever:t&&(t.forever||t.retries===1/0),unref:t&&t.unref,maxRetryTime:t&&t.maxRetryTime})};ut.timeouts=function(t){if(t instanceof Array)return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var u in t)e[u]=t[u];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var i=[],r=0;r<e.retries;r++)i.push(this.createTimeout(r,e));return t&&t.forever&&!i.length&&i.push(this.createTimeout(r,e)),i.sort(function(n,a){return n-a}),i};ut.createTimeout=function(t,e){var u=e.randomize?Math.random()+1:1,i=Math.round(u*Math.max(e.minTimeout,1)*Math.pow(e.factor,t));return i=Math.min(i,e.maxTimeout),i};ut.wrap=function(t,e,u){if(e instanceof Array&&(u=e,e=null),!u){u=[];for(var i in t)typeof t[i]=="function"&&u.push(i)}for(var r=0;r<u.length;r++){var n=u[r],a=t[n];t[n]=function(o){var l=ut.operation(e),p=Array.prototype.slice.call(arguments,1),A=p.pop();p.push(function(E){l.retry(E)||(E&&(arguments[0]=l.mainError()),A.apply(this,arguments))}),l.attempt(function(){o.apply(t,p)})}.bind(t,a),t[n].options=e}}});var ii=Qt((Io,ui)=>{"use strict";ui.exports=ei()});import{createRequire as Pr}from"module";import*as Hi from"fs/promises";import*as Ut from"vm";import*as be from"fs/promises";import{z as ai}from"zod";import{z as Q}from"zod";import Rt from"fs";import Lt from"path";import{chromium as Pi,firefox as ro,webkit as no}from"playwright";import*as Sr from"fs";import*as Bt from"path";import*as R from"fs";import*as M from"path";import{z as Ri}from"zod";import*as Wt from"fs";var ni=_r(ii(),1);var Lr=Object.prototype.toString,Nr=t=>Lr.call(t)==="[object Error]",$r=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed","terminated"]);function oe(t){return t&&Nr(t)&&t.name==="TypeError"&&typeof t.message=="string"?t.message==="Load failed"?t.stack===void 0:$r.has(t.message):!1}var ce=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}},ri=(t,e,u)=>{let i=u.retries-(e-1);return t.attemptNumber=e,t.retriesLeft=i,t};async function le(t,e){return new Promise((u,i)=>{e={...e},e.onFailedAttempt??=()=>{},e.shouldRetry??=()=>!0,e.retries??=10;let r=ni.default.operation(e),n=()=>{r.stop(),i(e.signal?.reason)};e.signal&&!e.signal.aborted&&e.signal.addEventListener("abort",n,{once:!0});let a=()=>{e.signal?.removeEventListener("abort",n),r.stop()};r.attempt(async s=>{try{let o=await t(s);a(),u(o)}catch(o){try{if(!(o instanceof Error))throw new TypeError(`Non-error was thrown: "${o}". You should only throw errors.`);if(o instanceof ce)throw o.originalError;if(o instanceof TypeError&&!oe(o))throw o;if(ri(o,s,e),await e.shouldRetry(o)||(r.stop(),i(o)),await e.onFailedAttempt(o),!r.retry(o))throw r.mainError()}catch(l){ri(l,s,e),a(),i(l)}}})})}import{z as Nt}from"zod";var n0=Pr(import.meta.url),Rr=Z((t,e)=>{"use strict";var u=function(m){return i(m)&&!r(m)};function i(m){return!!m&&typeof m=="object"}function r(m){var w=Object.prototype.toString.call(m);return w==="[object RegExp]"||w==="[object Date]"||s(m)}var n=typeof Symbol=="function"&&Symbol.for,a=n?Symbol.for("react.element"):60103;function s(m){return m.$$typeof===a}function o(m){return Array.isArray(m)?[]:{}}function l(m,w){return w.clone!==!1&&w.isMergeableObject(m)?D(o(m),m,w):m}function p(m,w,v){return m.concat(w).map(function(I){return l(I,v)})}function A(m,w){if(!w.customMerge)return D;var v=w.customMerge(m);return typeof v=="function"?v:D}function E(m){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(m).filter(function(w){return Object.propertyIsEnumerable.call(m,w)}):[]}function x(m){return Object.keys(m).concat(E(m))}function B(m,w){try{return w in m}catch{return!1}}function y(m,w){return B(m,w)&&!(Object.hasOwnProperty.call(m,w)&&Object.propertyIsEnumerable.call(m,w))}function b(m,w,v){var I={};return v.isMergeableObject(m)&&x(m).forEach(function($){I[$]=l(m[$],v)}),x(w).forEach(function($){y(m,$)||(B(m,$)&&v.isMergeableObject(w[$])?I[$]=A($,v)(m[$],w[$],v):I[$]=l(w[$],v))}),I}function D(m,w,v){v=v||{},v.arrayMerge=v.arrayMerge||p,v.isMergeableObject=v.isMergeableObject||u,v.cloneUnlessOtherwiseSpecified=l;var I=Array.isArray(w),$=Array.isArray(m),Y=I===$;return Y?I?v.arrayMerge(m,w,v):b(m,w,v):l(w,v)}D.all=function(m,w){if(!Array.isArray(m))throw new Error("first argument should be an array");return m.reduce(function(v,I){return D(v,I,w)},{})};var F=D;e.exports=F}),qr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(n){return n&&typeof n=="object"&&"default"in n?n.default:n}var u=e(ou("crypto")),i=(n,a,s)=>u.createHmac(n,Buffer.from(a,"hex")).update(Buffer.from(s,"hex")).digest().toString("hex"),r=(n,a)=>u.randomBytes(n).toString(a);t.createDigest=i,t.createRandomBytes=r}),Or=Z(t=>{"use strict";var e="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",u=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function i(r){var n=Math.floor(r.length/5);return r.length%5===0?n:n+1}t.encode=function(r){Buffer.isBuffer(r)||(r=new Buffer(r));for(var n=0,a=0,s=0,o=0,l=new Buffer(i(r)*8);n<r.length;){var p=r[n];s>3?(o=p&255>>s,s=(s+5)%8,o=o<<s|(n+1<r.length?r[n+1]:0)>>8-s,n++):(o=p>>8-(s+5)&31,s=(s+5)%8,s===0&&n++),l[a]=e.charCodeAt(o),a++}for(n=a;n<l.length;n++)l[n]=61;return l},t.decode=function(r){var n=0,a=0,s,o=0;Buffer.isBuffer(r)||(r=new Buffer(r));for(var l=new Buffer(Math.ceil(r.length*5/8)),p=0;p<r.length&&r[p]!==61;p++){var A=r[p]-48;if(A<u.length)a=u[A],n<=3?(n=(n+5)%8,n===0?(s|=a,l[o]=s,o++,s=0):s|=255&a<<8-n):(n=(n+5)%8,s|=255&a>>>n,l[o]=s,o++,s=255&a<<8-n);else throw new Error("Invalid input - it is not base32 encoded string")}return l.slice(0,o)}}),Mr=Z(t=>{"use strict";var e=Or();t.encode=e.encode,t.decode=e.decode}),Ur=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(n){return n&&typeof n=="object"&&"default"in n?n.default:n}var u=e(Mr()),i=(n,a)=>u.decode(n).toString(a),r=(n,a)=>u.encode(Buffer.from(n,a).toString("ascii")).toString().replace(/=/g,"");t.keyDecoder=i,t.keyEncoder=r}),Hr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(d){return Object.keys(d).map(h=>d[h])}(function(d){d.SHA1="sha1",d.SHA256="sha256",d.SHA512="sha512"})(t.HashAlgorithms||(t.HashAlgorithms={}));var u=e(t.HashAlgorithms);(function(d){d.ASCII="ascii",d.BASE64="base64",d.HEX="hex",d.LATIN1="latin1",d.UTF8="utf8"})(t.KeyEncodings||(t.KeyEncodings={}));var i=e(t.KeyEncodings);(function(d){d.HOTP="hotp",d.TOTP="totp"})(t.Strategy||(t.Strategy={}));var r=e(t.Strategy),n=()=>{throw new Error("Please provide an options.createDigest implementation.")};function a(d){return/^(\d+)$/.test(d)}function s(d,h,f){return d.length>=h?d:`${Array(h+1).join(f)}${d}`.slice(-1*h)}function o(d){let h=`otpauth://${d.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,f=[];if(r.indexOf(d.type)<0)throw new Error(`Expecting options.type to be one of ${r.join(", ")}. Received ${d.type}.`);if(d.type==="hotp"){if(d.counter==null||typeof d.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');f.push(`&counter=${d.counter}`)}return d.type==="totp"&&d.step&&f.push(`&period=${d.step}`),d.digits&&f.push(`&digits=${d.digits}`),d.algorithm&&f.push(`&algorithm=${d.algorithm.toUpperCase()}`),d.issuer&&f.push(`&issuer=${encodeURIComponent(d.issuer)}`),h.replace("{labelPrefix}",encodeURIComponent(d.issuer||d.accountName)).replace("{accountName}",encodeURIComponent(d.accountName)).replace("{secret}",d.secret).replace("{query}",f.join(""))}var l=class qi{constructor(h={}){this._defaultOptions=Object.freeze({...h}),this._options=Object.freeze({})}create(h={}){return new qi(h)}clone(h={}){let f=this.create({...this._defaultOptions,...h});return f.options=this._options,f}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(h){this._options=Object.freeze({...this._options,...h})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function p(d){if(typeof d.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof d.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof d.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!d.algorithm||u.indexOf(d.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${u.join(", ")}. Received ${d.algorithm}.`);if(!d.encoding||i.indexOf(d.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${i.join(", ")}. Received ${d.encoding}.`)}var A=(d,h,f)=>Buffer.from(h,f).toString("hex");function E(){return{algorithm:t.HashAlgorithms.SHA1,createHmacKey:A,createDigest:n,digits:6,encoding:t.KeyEncodings.ASCII}}function x(d){let h={...E(),...d};return p(h),Object.freeze(h)}function B(d){let h=d.toString(16);return s(h,16,"0")}function y(d,h){let f=Buffer.from(d,"hex"),k=f[f.length-1]&15,L=((f[k]&127)<<24|(f[k+1]&255)<<16|(f[k+2]&255)<<8|f[k+3]&255)%Math.pow(10,h);return s(String(L),h,"0")}function b(d,h,f){let k=B(h),L=f.createHmacKey(f.algorithm,d,f.encoding);return f.createDigest(f.algorithm,L,k)}function D(d,h,f){let k=f.digest||b(d,h,f);return y(k,f.digits)}function F(d,h,f,k){if(!a(d))return!1;let L=D(h,f,k);return d===L}function m(d,h,f,k,L){return o({algorithm:L.algorithm,digits:L.digits,type:t.Strategy.HOTP,accountName:d,counter:k,issuer:h,secret:f})}var w=class Oi extends l{create(h={}){return new Oi(h)}allOptions(){return x(this.options)}generate(h,f){return D(h,f,this.allOptions())}check(h,f,k){return F(h,f,k,this.allOptions())}verify(h){if(typeof h!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(h.token,h.secret,h.counter)}keyuri(h,f,k,L){return m(h,f,k,L,this.allOptions())}};function v(d){if(typeof d=="number")return[Math.abs(d),Math.abs(d)];if(Array.isArray(d)){let[h,f]=d;if(typeof h=="number"&&typeof f=="number")return[Math.abs(h),Math.abs(f)]}throw new Error("Expecting options.window to be an number or [number, number].")}function I(d){if(p(d),v(d.window),typeof d.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof d.step!="number")throw new Error("Expecting options.step to be a number.")}var $=(d,h,f)=>{let k=d.length,L=Buffer.from(d,h).toString("hex");if(k<f){let et=new Array(f-k+1).join(L);return Buffer.from(et,"hex").slice(0,f).toString("hex")}return L},Y=(d,h,f)=>{switch(d){case t.HashAlgorithms.SHA1:return $(h,f,20);case t.HashAlgorithms.SHA256:return $(h,f,32);case t.HashAlgorithms.SHA512:return $(h,f,64);default:throw new Error(`Expecting algorithm to be one of ${u.join(", ")}. Received ${d}.`)}};function ot(){return{algorithm:t.HashAlgorithms.SHA1,createDigest:n,createHmacKey:Y,digits:6,encoding:t.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function ct(d){let h={...ot(),...d};return I(h),Object.freeze(h)}function lt(d,h){return Math.floor(d/h/1e3)}function wt(d,h){let f=lt(h.epoch,h.step);return D(d,f,h)}function Ge(d,h,f,k){let L=[];if(k===0)return L;for(let et=1;et<=k;et++){let Zt=h*et*f;L.push(d+Zt)}return L}function ze(d,h,f){let k=v(f),L=h*1e3;return{current:d,past:Ge(d,-1,L,k[0]),future:Ge(d,1,L,k[1])}}function Gt(d,h,f){if(!a(d))return!1;let k=wt(h,f);return d===k}function zt(d,h,f,k){let L=null;return d.some((et,Zt)=>Gt(h,f,{...k,epoch:et})?(L=Zt+1,!0):!1),L}function Kt(d,h,f){if(Gt(d,h,f))return 0;let k=ze(f.epoch,f.step,f.window),L=zt(k.past,d,h,f);return L!==null?L*-1:zt(k.future,d,h,f)}function Jt(d,h){return Math.floor(d/1e3)%h}function Ke(d,h){return h-Jt(d,h)}function Je(d,h,f,k){return o({algorithm:k.algorithm,digits:k.digits,step:k.step,type:t.Strategy.TOTP,accountName:d,issuer:h,secret:f})}var Ye=class Mi extends w{create(h={}){return new Mi(h)}allOptions(){return ct(this.options)}generate(h){return wt(h,this.allOptions())}checkDelta(h,f){return Kt(h,f,this.allOptions())}check(h,f){return typeof this.checkDelta(h,f)=="number"}verify(h){if(typeof h!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(h.token,h.secret)}timeRemaining(){let h=this.allOptions();return Ke(h.epoch,h.step)}timeUsed(){let h=this.allOptions();return Jt(h.epoch,h.step)}keyuri(h,f,k){return Je(h,f,k,this.allOptions())}};function Ze(d){if(I(d),typeof d.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(d.keyEncoder&&typeof d.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function Qe(){return{algorithm:t.HashAlgorithms.SHA1,createDigest:n,createHmacKey:Y,digits:6,encoding:t.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function Xe(d){let h={...Qe(),...d};return Ze(h),Object.freeze(h)}function Yt(d,h){return h.keyEncoder(d,h.encoding)}function yt(d,h){return h.keyDecoder(d,h.encoding)}function tu(d,h){let f=h.createRandomBytes(d,h.encoding);return Yt(f,h)}function eu(d,h){return wt(yt(d,h),h)}function uu(d,h,f){return Kt(d,yt(h,f),f)}var Tr=class Ui extends Ye{create(h={}){return new Ui(h)}allOptions(){return Xe(this.options)}generate(h){return eu(h,this.allOptions())}checkDelta(h,f){return uu(h,f,this.allOptions())}encode(h){return Yt(h,this.allOptions())}decode(h){return yt(h,this.allOptions())}generateSecret(h=10){return tu(h,this.allOptions())}};t.Authenticator=Tr,t.HASH_ALGORITHMS=u,t.HOTP=w,t.KEY_ENCODINGS=i,t.OTP=l,t.STRATEGY=r,t.TOTP=Ye,t.authenticatorCheckWithWindow=uu,t.authenticatorDecoder=yt,t.authenticatorDefaultOptions=Qe,t.authenticatorEncoder=Yt,t.authenticatorGenerateSecret=tu,t.authenticatorOptionValidator=Ze,t.authenticatorOptions=Xe,t.authenticatorToken=eu,t.createDigestPlaceholder=n,t.hotpCheck=F,t.hotpCounter=B,t.hotpCreateHmacKey=A,t.hotpDefaultOptions=E,t.hotpDigestToToken=y,t.hotpKeyuri=m,t.hotpOptions=x,t.hotpOptionsValidator=p,t.hotpToken=D,t.isTokenValid=a,t.keyuri=o,t.objectValues=e,t.padStart=s,t.totpCheck=Gt,t.totpCheckByEpoch=zt,t.totpCheckWithWindow=Kt,t.totpCounter=lt,t.totpCreateHmacKey=Y,t.totpDefaultOptions=ot,t.totpEpochAvailable=ze,t.totpKeyuri=Je,t.totpOptions=ct,t.totpOptionsValidator=I,t.totpPadSecret=$,t.totpTimeRemaining=Ke,t.totpTimeUsed=Jt,t.totpToken=wt}),jr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e=qr(),u=Ur(),i=Hr(),r=new i.HOTP({createDigest:e.createDigest}),n=new i.TOTP({createDigest:e.createDigest}),a=new i.Authenticator({createDigest:e.createDigest,createRandomBytes:e.createRandomBytes,keyDecoder:u.keyDecoder,keyEncoder:u.keyEncoder});t.authenticator=a,t.hotp=r,t.totp=n}),Vr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e=jr();Object.keys(e).forEach(function(u){u!=="default"&&Object.defineProperty(t,u,{enumerable:!0,get:function(){return e[u]}})})});function Wr(t,e,u,i=!1){if(t[e])if(i)c.info(`Overriding existing function: ${e}`),delete t[e];else{c.error(`The name ${e} is already defined in the global scope`);return}try{let r;if(Ut.isContext(t)?r=new Ut.Script(u,{importModuleDynamically:async n=>await import(n)}).runInContext(t):r=(0,eval)(u),typeof r!="function")throw new Error("The injected code must be a function");t[e]=r}catch(r){c.error(`Error injecting user function ${e}: ${r.message}`)}}async function f0(t,e,u=!1){try{let i=await Hi.readFile(e,"utf8"),r=JSON.parse(i);c.info(`Loading ${Object.keys(r).length} user functions...`);for(let[n,a]of Object.entries(r))Wr(t,n,a,u)}catch(i){throw c.error("Failed to load user functions:",i),i}}async function m0(t){try{let e=await be.readFile(t,"utf8"),u=JSON.parse(e);return c.info(`Loaded ${u.length} knowledges from file`),u}catch(e){if(e.code==="ENOENT")return c.debug("No knowledges file found"),[];throw c.error("Failed to load knowledges:",e),e}}async function x0(t){try{let e=await be.readFile(t,"utf8"),u=JSON.parse(e);return c.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(e){if(e.code==="ENOENT")return c.debug("No knowledge mappings file found"),[];throw c.error("Failed to load knowledge mappings:",e),e}}async function A0(t,e){if(!t.body)throw new Error("Response body is null");let u=t.body.getReader(),i=new TextDecoder,r="";try{for(;;){let{done:n,value:a}=await u.read();if(n)break;r+=i.decode(a,{stream:!0});let s=r.split(`
|
|
5
|
-
`);r=s.pop()||"";for(let o of s){let l=null;if(o.startsWith("data: "))try{let p=o.slice(6);p.trim()&&(l=JSON.parse(p))}catch(p){console.error(`Failed to parse SSE event: ${o}`,p);continue}l&&e(l)}}}finally{u.releaseLock()}}var Gr=ai.object({instruction:ai.string().describe('The instruction of the operation to perform. Can only include one operation. Do not inlcude element indexes just describe the element, e.g. "select the text "Hello, world!" in "Hello, world!""')});function zr(t){t.register({name:"perform_accurate_operation",description:"Perform an operation that requires accurate interaction like dragging or interacting with a specific area of an element. Only use this action when neccecary.",schema:Gr,usesElementIndex:!1,async execute(e,u){let{instruction:i}=e,r={page:u.page,agentServices:u.agentServices,domService:u.domService},n=await Yu(i,r,{});if(n.status==="error"||!n.actionEntity)return{success:!1,actionEntity:{action_description:i,action_data:{action_name:"perform_accurate_operation",kwargs:{instruction:i}}},error:n.error||"Failed to generate action"};let{actionEntity:a}=n,s=await Zu(a,r);return{success:s.success,actionEntity:a,message:s.success?`Successfully executed action: ${a.action_data?.action_name}`:void 0,error:s.error}}})}var T;(function(t){t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"})(T||(T={}));function Kr(t){return t.type===T.Tag||t.type===T.Script||t.type===T.Style}var Jr=T.Root,Yr=T.Text,Zr=T.Directive,Qr=T.Comment,Xr=T.Script,tn=T.Style,en=T.Tag,un=T.CDATA,rn=T.Doctype,ji=class{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return Ki(this,t)}},we=class extends ji{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}},ge=class extends we{constructor(){super(...arguments),this.type=T.Text}get nodeType(){return 3}},Vi=class extends we{constructor(){super(...arguments),this.type=T.Comment}get nodeType(){return 8}},Wi=class extends we{constructor(t,e){super(e),this.name=t,this.type=T.Directive}get nodeType(){return 1}},ye=class extends ji{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}},Gi=class extends ye{constructor(){super(...arguments),this.type=T.CDATA}get nodeType(){return 4}},fe=class extends ye{constructor(){super(...arguments),this.type=T.Root}get nodeType(){return 9}},zi=class extends ye{constructor(t,e,u=[],i=t==="script"?T.Script:t==="style"?T.Style:T.Tag){super(u),this.name=t,this.attribs=e,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var e,u;return{name:t,value:this.attribs[t],namespace:(e=this["x-attribsNamespace"])===null||e===void 0?void 0:e[t],prefix:(u=this["x-attribsPrefix"])===null||u===void 0?void 0:u[t]}})}};function Fe(t){return Kr(t)}function nn(t){return t.type===T.CDATA}function an(t){return t.type===T.Text}function sn(t){return t.type===T.Comment}function on(t){return t.type===T.Directive}function cn(t){return t.type===T.Root}function Ki(t,e=!1){let u;if(an(t))u=new ge(t.data);else if(sn(t))u=new Vi(t.data);else if(Fe(t)){let i=e?he(t.children):[],r=new zi(t.name,{...t.attribs},i);i.forEach(n=>n.parent=r),t.namespace!=null&&(r.namespace=t.namespace),t["x-attribsNamespace"]&&(r["x-attribsNamespace"]={...t["x-attribsNamespace"]}),t["x-attribsPrefix"]&&(r["x-attribsPrefix"]={...t["x-attribsPrefix"]}),u=r}else if(nn(t)){let i=e?he(t.children):[],r=new Gi(i);i.forEach(n=>n.parent=r),u=r}else if(cn(t)){let i=e?he(t.children):[],r=new fe(i);i.forEach(n=>n.parent=r),t["x-mode"]&&(r["x-mode"]=t["x-mode"]),u=r}else if(on(t)){let i=new Wi(t.name,t.data);t["x-name"]!=null&&(i["x-name"]=t["x-name"],i["x-publicId"]=t["x-publicId"],i["x-systemId"]=t["x-systemId"]),u=i}else throw new Error(`Not implemented yet: ${t.type}`);return u.startIndex=t.startIndex,u.endIndex=t.endIndex,t.sourceCodeLocation!=null&&(u.sourceCodeLocation=t.sourceCodeLocation),u}function he(t){let e=t.map(u=>Ki(u,!0));for(let u=1;u<e.length;u++)e[u].prev=e[u-1],e[u-1].next=e[u];return e}var si={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},ln=class{constructor(t,e,u){this.dom=[],this.root=new fe(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof e=="function"&&(u=e,e=si),typeof t=="object"&&(e=t,t=void 0),this.callback=t??null,this.options=e??si,this.elementCB=u??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new fe(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;let t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,e){let u=this.options.xmlMode?T.Tag:void 0,i=new zi(t,e,void 0,u);this.addNode(i),this.tagStack.push(i)}ontext(t){let{lastNode:e}=this;if(e&&e.type===T.Text)e.data+=t,this.options.withEndIndices&&(e.endIndex=this.parser.endIndex);else{let u=new ge(t);this.addNode(u),this.lastNode=u}}oncomment(t){if(this.lastNode&&this.lastNode.type===T.Comment){this.lastNode.data+=t;return}let e=new Vi(t);this.addNode(e),this.lastNode=e}oncommentend(){this.lastNode=null}oncdatastart(){let t=new ge(""),e=new Gi([t]);this.addNode(e),t.parent=e,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,e){let u=new Wi(t,e);this.addNode(u)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){let e=this.tagStack[this.tagStack.length-1],u=e.children[e.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),e.children.push(t),u&&(t.prev=u,u.next=t),t.parent=e,this.lastNode=null}},hn=/\n/g;function dn(t){let e=[...t.matchAll(hn)].map(i=>i.index||0);e.unshift(-1);let u=me(e,0,e.length);return i=>Ji(u,i)}function me(t,e,u){if(u-e==1)return{offset:t[e],index:e+1};let i=Math.ceil((e+u)/2),r=me(t,e,i),n=me(t,i,u);return{offset:r.offset,low:r,high:n}}function Ji(t,e){return function(u){return Object.prototype.hasOwnProperty.call(u,"index")}(t)?{line:t.index,column:e-t.offset}:Ji(t.high.offset<e?t.high:t.low,e)}function Yi(t,e="",u={}){let i=typeof e!="string"?e:u,r=typeof e=="string"?e:"",n=t.map(pn),a=!!i.lineNumbers;return function(s,o=0){let l=a?dn(s):()=>({line:0,column:0}),p=o,A=[];t:for(;p<s.length;){let E=!1;for(let x of n){x.regex.lastIndex=p;let B=x.regex.exec(s);if(B&&B[0].length>0){if(!x.discard){let y=l(p),b=typeof x.replace=="string"?B[0].replace(new RegExp(x.regex.source,x.regex.flags),x.replace):B[0];A.push({state:r,name:x.name,text:b,offset:p,len:B[0].length,line:y.line,column:y.column})}if(p=x.regex.lastIndex,E=!0,x.push){let y=x.push(s,p);A.push(...y.tokens),p=y.offset}if(x.pop)break t;break}}if(!E)break}return{tokens:A,offset:p,complete:s.length<=p}}}function pn(t,e){return{...t,regex:gn(t,e)}}function gn(t,e){if(t.name.length===0)throw new Error(`Rule #${e} has empty name, which is not allowed.`);if(function(u){return Object.prototype.hasOwnProperty.call(u,"regex")}(t))return function(u){if(u.global)throw new Error(`Regular expression /${u.source}/${u.flags} contains the global flag, which is not allowed.`);return u.sticky?u:new RegExp(u.source,u.flags+"y")}(t.regex);if(function(u){return Object.prototype.hasOwnProperty.call(u,"str")}(t)){if(t.str.length===0)throw new Error(`Rule #${e} ("${t.name}") has empty "str" property, which is not allowed.`);return new RegExp(oi(t.str),"y")}return new RegExp(oi(t.name),"y")}function oi(t){return t.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g,"\\$&")}function tt(t,e){return(u,i)=>{let r=i,n;return i<u.tokens.length?(n=t(u.tokens[i],u,i),n!==void 0&&r++):e?.(u,i),n===void 0?{matched:!1}:{matched:!0,position:r,value:n}}}function ve(t,e){return t.matched?{matched:!0,position:t.position,value:e(t.value,t.position)}:t}function qt(t,e){return t.matched?e(t):t}function O(t,e){return(u,i)=>ve(t(u,i),(r,n)=>e(r,u,i,n))}function Ot(t,e){return(u,i)=>{let r=t(u,i);return r.matched?r:{matched:!0,position:i,value:e}}}function Ht(...t){return(e,u)=>{for(let i of t){let r=i(e,u);if(r.matched)return r}return{matched:!1}}}function st(t,e){return(u,i)=>{let r=t(u,i);return r.matched?r:e(u,i)}}function fn(t,e){return(u,i)=>{let r=[],n=!0;do{let a=t(u,i);a.matched&&e(a.value,r.length+1,u,i,a.position)?(r.push(a.value),i=a.position):n=!1}while(n);return{matched:!0,position:i,value:r}}}function ke(t){return fn(t,()=>!0)}function mn(t){return U(t,ke(t),(e,u)=>[e,...u])}function U(t,e,u){return(i,r)=>qt(t(i,r),n=>ve(e(i,n.position),(a,s)=>u(n.value,a,i,r,s)))}function xn(t,e){return U(t,e,u=>u)}function ci(t,e){return U(t,e,(u,i)=>i)}function Se(t,e,u,i){return(r,n)=>qt(t(r,n),a=>qt(e(r,a.position),s=>ve(u(r,s.position),(o,l)=>i(a.value,s.value,o,r,n,l))))}function Zi(t,e,u){return Se(t,e,u,(i,r)=>r)}function An(...t){return(e,u)=>{let i=[],r=u;for(let n of t){let a=n(e,r);if(a.matched)i.push(a.value),r=a.position;else return{matched:!1}}return{matched:!0,position:r,value:i}}}function En(...t){return Bn(An(...t))}function Bn(t){return O(t,e=>e.flatMap(u=>u))}function Cn(t,e){return(u,i)=>{let r=!0,n=t,a=i;do{let s=e(n,u,a)(u,a);s.matched?(n=s.value,a=s.position):r=!1}while(r);return{matched:!0,position:a,value:n}}}function Dn(t,e,u){return Cn(t,i=>O(e,(r,n,a,s)=>u(i,r,n,a,s)))}function Qi(t,e,u){return bn(t,i=>Dn(i,U(e,u,(r,n)=>[r,n]),(r,[n,a])=>n(r,a)))}function bn(t,e){return(u,i)=>qt(t(u,i),r=>e(r.value,u,i,r.position)(u,r.position))}var wn="(?:[ \\t\\r\\n\\f]*)",Xi="(?:\\n|\\r\\n|\\r|\\f)",jt="[^\\x00-\\x7F]",Ct="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",Dt="(?:\\\\[^\\n\\r\\f0-9a-f])",yn=`(?:[_a-z]|${jt}|${Ct}|${Dt})`,tr=`(?:[_a-z0-9-]|${jt}|${Ct}|${Dt})`,Fn=`(?:${tr}+)`,vn=`(?:[-]?${yn}${tr}*)`,kn=`'([^\\n\\r\\f\\\\']|\\\\${Xi}|${jt}|${Ct}|${Dt})*'`,Sn=`"([^\\n\\r\\f\\\\"]|\\\\${Xi}|${jt}|${Ct}|${Dt})*"`,Tn=Yi([{name:"ws",regex:new RegExp(wn)},{name:"hash",regex:new RegExp(`#${Fn}`,"i")},{name:"ident",regex:new RegExp(vn,"i")},{name:"str1",regex:new RegExp(kn,"i")},{name:"str2",regex:new RegExp(Sn,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"}]),_n=Yi([{name:"unicode",regex:new RegExp(Ct,"i")},{name:"escape",regex:new RegExp(Dt,"i")},{name:"any",regex:new RegExp("[\\s\\S]","i")}]);function er([t,e,u],[i,r,n]){return[t+i,e+r,u+n]}function In(t){return t.reduce(er,[0,0,0])}var Ln=tt(t=>t.name==="unicode"?String.fromCodePoint(parseInt(t.text.slice(1),16)):void 0),Nn=tt(t=>t.name==="escape"?t.text.slice(1):void 0),$n=tt(t=>t.name==="any"?t.text:void 0),Pn=O(ke(Ht(Ln,Nn,$n)),t=>t.join(""));function Te(t){let e=_n(t);return Pn({tokens:e.tokens,options:void 0},0).value}function N(t){return tt(e=>e.name===t?!0:void 0)}var _e=tt(t=>t.name==="ws"?null:void 0),xe=Ot(_e,null);function pt(t){return Zi(xe,t,xe)}var Et=tt(t=>t.name==="ident"?Te(t.text):void 0),Rn=tt(t=>t.name==="hash"?Te(t.text.slice(1)):void 0),qn=tt(t=>t.name.startsWith("str")?Te(t.text.slice(1,-1)):void 0),ur=xn(Ot(Et,""),N("|")),Ie=st(U(ur,Et,(t,e)=>({name:e,namespace:t})),O(Et,t=>({name:t,namespace:null}))),On=st(U(ur,N("*"),t=>({type:"universal",namespace:t,specificity:[0,0,0]})),O(N("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),Mn=O(Ie,({name:t,namespace:e})=>({type:"tag",name:t,namespace:e,specificity:[0,0,1]})),Un=U(N("."),Et,(t,e)=>({type:"class",name:e,specificity:[0,1,0]})),Hn=O(Rn,t=>({type:"id",name:t,specificity:[1,0,0]})),li=tt(t=>{if(t.name==="ident"){if(t.text==="i"||t.text==="I")return"i";if(t.text==="s"||t.text==="S")return"s"}}),jn=st(U(qn,Ot(ci(xe,li),null),(t,e)=>({value:t,modifier:e})),U(Et,Ot(ci(_e,li),null),(t,e)=>({value:t,modifier:e}))),Vn=Ht(O(N("="),()=>"="),U(N("~"),N("="),()=>"~="),U(N("|"),N("="),()=>"|="),U(N("^"),N("="),()=>"^="),U(N("$"),N("="),()=>"$="),U(N("*"),N("="),()=>"*=")),Wn=Se(N("["),pt(Ie),N("]"),(t,{name:e,namespace:u})=>({type:"attrPresence",name:e,namespace:u,specificity:[0,1,0]})),Gn=Zi(N("["),Se(pt(Ie),Vn,pt(jn),({name:t,namespace:e},u,{value:i,modifier:r})=>({type:"attrValue",name:t,namespace:e,matcher:u,value:i,modifier:r,specificity:[0,1,0]})),N("]")),zn=st(Wn,Gn),Kn=st(On,Mn),hi=Ht(Hn,Un,zn),di=O(st(En(Kn,ke(hi)),mn(hi)),t=>({type:"compound",list:t,specificity:In(t.map(e=>e.specificity))})),Jn=Ht(O(N(">"),()=>">"),O(N("+"),()=>"+"),O(N("~"),()=>"~"),U(N("|"),N("|"),()=>"||")),Yn=st(pt(Jn),O(_e,()=>" ")),Ae=Qi(di,O(Yn,t=>(e,u)=>({type:"compound",list:[...u.list,{type:"combinator",combinator:t,left:e,specificity:e.specificity}],specificity:er(e.specificity,u.specificity)})),di),C0=Qi(O(Ae,t=>({type:"list",list:[t]})),O(pt(N(",")),()=>(t,e)=>({type:"list",list:[...t.list,e]})),Ae);function Zn(t,e){if(!(typeof e=="string"||e instanceof String))throw new Error("Expected a selector string. Actual input is not a string!");let u=Tn(e);if(!u.complete)throw new Error(`The input "${e}" was only partially tokenized, stopped at offset ${u.offset}!
|
|
6
|
-
`+
|
|
7
|
-
`+
|
|
8
|
-
${"".padEnd(e)}${"^".repeat(u)}`}function Qn(t){return Zn(Ae,t)}function K(t){if(!t.type)throw new Error("This is not an AST node.");switch(t.type){case"universal":return kt(t.namespace)+"*";case"tag":return kt(t.namespace)+dt(t.name);case"class":return"."+dt(t.name);case"id":return"#"+dt(t.name);case"attrPresence":return`[${kt(t.namespace)}${dt(t.name)}]`;case"attrValue":return`[${kt(t.namespace)}${dt(t.name)}${t.matcher}"${Xn(t.value)}"${t.modifier?t.modifier:""}]`;case"combinator":return K(t.left)+t.combinator;case"compound":return t.list.reduce((e,u)=>u.type==="combinator"?K(u)+e:e+K(u),"");case"list":return t.list.map(K).join(",")}}function kt(t){return t||t===""?dt(t)+"|":""}function $t(t){return`\\${t.codePointAt(0).toString(16)} `}function dt(t){return t.replace(/(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\x00-\x7F])|(\x00)|([\x01-\x1f]|\x7f)|([\s\S])/g,(e,u,i,r,n,a,s,o)=>u?$t(u):i?"-"+$t(i.slice(1)):r?"\\-":n||(a?"\uFFFD":s?$t(s):"\\"+o))}function Xn(t){return t.replace(/(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g,(e,u,i,r,n)=>u?'\\"':i?"\\\\":r?"\uFFFD":$t(n))}function Pt(t){if(!t.type)throw new Error("This is not an AST node.");switch(t.type){case"compound":{t.list.forEach(Pt),t.list.sort((e,u)=>rr(gi(e),gi(u)));break}case"combinator":{Pt(t.left);break}case"list":{t.list.forEach(Pt),t.list.sort((e,u)=>K(e)<K(u)?-1:1);break}}return t}function gi(t){switch(t.type){case"universal":return[1];case"tag":return[1];case"id":return[2];case"class":return[3,t.name];case"attrPresence":return[4,K(t)];case"attrValue":return[5,K(t)];case"combinator":return[15,K(t)]}}function ir(t,e){return rr(t,e)}function rr(t,e){if(!Array.isArray(t)||!Array.isArray(e))throw new Error("Arguments must be arrays.");let u=t.length<e.length?t.length:e.length;for(let i=0;i<u;i++)if(t[i]!==e[i])return t[i]<e[i]?-1:1;return t.length-e.length}var fi=class{constructor(t){this.branches=gt(ta(t))}build(t){return t(this.branches)}};function ta(t){let e=t.length,u=new Array(e);for(let i=0;i<e;i++){let[r,n]=t[i],a=ea(Qn(r));u[i]={ast:a,terminal:{type:"terminal",valueContainer:{index:i,value:n,specificity:a.specificity}}}}return u}function ea(t){return nr(t),Pt(t),t}function nr(t){let e=[];t.list.forEach(u=>{switch(u.type){case"class":e.push({matcher:"~=",modifier:null,name:"class",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"id":e.push({matcher:"=",modifier:null,name:"id",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"combinator":nr(u.left),e.push(u);break;case"universal":break;default:e.push(u);break}}),t.list=e}function gt(t){let e=[];for(;t.length;){let u=or(t,a=>!0,ar),{matches:i,nonmatches:r,empty:n}=ia(t,u);t=r,i.length&&e.push(ra(u,i)),n.length&&e.push(...ua(n))}return e}function ua(t){let e=[];for(let u of t){let i=u.terminal;if(i.type==="terminal")e.push(i);else{let{matches:r,rest:n}=ca(i.cont,a=>a.type==="terminal");r.forEach(a=>e.push(a)),n.length&&(i.cont=n,e.push(i))}}return e}function ia(t,e){let u=[],i=[],r=[];for(let n of t){let a=n.ast.list;a.length?(a.some(s=>ar(s)===e)?u:i).push(n):r.push(n)}return{matches:u,nonmatches:i,empty:r}}function ar(t){switch(t.type){case"attrPresence":return`attrPresence ${t.name}`;case"attrValue":return`attrValue ${t.name}`;case"combinator":return`combinator ${t.combinator}`;default:return t.type}}function ra(t,e){if(t==="tag")return na(e);if(t.startsWith("attrValue "))return sa(t.substring(10),e);if(t.startsWith("attrPresence "))return aa(t.substring(13),e);if(t==="combinator >")return mi(">",e);if(t==="combinator +")return mi("+",e);throw new Error(`Unsupported selector kind: ${t}`)}function na(t){let e=Le(t,u=>u.type==="tag",u=>u.name);return{type:"tagName",variants:Object.entries(e).map(([u,i])=>({type:"variant",value:u,cont:gt(i.items)}))}}function aa(t,e){for(let u of e)sr(u,i=>i.type==="attrPresence"&&i.name===t);return{type:"attrPresence",name:t,cont:gt(e)}}function sa(t,e){let u=Le(e,r=>r.type==="attrValue"&&r.name===t,r=>`${r.matcher} ${r.modifier||""} ${r.value}`),i=[];for(let r of Object.values(u)){let n=r.oneSimpleSelector,a=oa(n),s=gt(r.items);i.push({type:"matcher",matcher:n.matcher,modifier:n.modifier,value:n.value,predicate:a,cont:s})}return{type:"attrValue",name:t,matchers:i}}function oa(t){if(t.modifier==="i"){let e=t.value.toLowerCase();switch(t.matcher){case"=":return u=>e===u.toLowerCase();case"~=":return u=>u.toLowerCase().split(/[ \t]+/).includes(e);case"^=":return u=>u.toLowerCase().startsWith(e);case"$=":return u=>u.toLowerCase().endsWith(e);case"*=":return u=>u.toLowerCase().includes(e);case"|=":return u=>{let i=u.toLowerCase();return e===i||i.startsWith(e)&&i[e.length]==="-"}}}else{let e=t.value;switch(t.matcher){case"=":return u=>e===u;case"~=":return u=>u.split(/[ \t]+/).includes(e);case"^=":return u=>u.startsWith(e);case"$=":return u=>u.endsWith(e);case"*=":return u=>u.includes(e);case"|=":return u=>e===u||u.startsWith(e)&&u[e.length]==="-"}}}function mi(t,e){let u=Le(e,r=>r.type==="combinator"&&r.combinator===t,r=>K(r.left)),i=[];for(let r of Object.values(u)){let n=gt(r.items),a=r.oneSimpleSelector.left;i.push({ast:a,terminal:{type:"popElement",cont:n}})}return{type:"pushElement",combinator:t,cont:gt(i)}}function Le(t,e,u){let i={};for(;t.length;){let r=or(t,e,u),n=p=>e(p)&&u(p)===r,a=p=>p.ast.list.some(n),{matches:s,rest:o}=la(t,a),l=null;for(let p of s){let A=sr(p,n);l||(l=A)}if(l==null)throw new Error("No simple selector is found.");i[r]={oneSimpleSelector:l,items:s},t=o}return i}function sr(t,e){let u=t.ast.list,i=new Array(u.length),r=-1;for(let a=u.length;a-- >0;)e(u[a])&&(i[a]=!0,r=a);if(r==-1)throw new Error("Couldn't find the required simple selector.");let n=u[r];return t.ast.list=u.filter((a,s)=>!i[s]),n}function or(t,e,u){let i={};for(let a of t){let s={};for(let o of a.ast.list.filter(e))s[u(o)]=!0;for(let o of Object.keys(s))i[o]?i[o]++:i[o]=1}let r="",n=0;for(let a of Object.entries(i))a[1]>n&&(r=a[0],n=a[1]);return r}function ca(t,e){let u=[],i=[];for(let r of t)e(r)?u.push(r):i.push(r);return{matches:u,rest:i}}function la(t,e){let u=[],i=[];for(let r of t)e(r)?u.push(r):i.push(r);return{matches:u,rest:i}}var ha=class{constructor(t){this.f=t}pickAll(t){return this.f(t)}pick1(t,e=!1){let u=this.f(t),i=u.length;if(i===0)return null;if(i===1)return u[0].value;let r=e?da:pa,n=u[0];for(let a=1;a<i;a++){let s=u[a];r(n,s)&&(n=s)}return n.value}};function da(t,e){let u=ir(e.specificity,t.specificity);return u>0||u===0&&e.index<t.index}function pa(t,e){let u=ir(e.specificity,t.specificity);return u>0||u===0&&e.index>t.index}function xi(t){return new ha(mt(t))}function mt(t){let e=t.map(ga);return(u,...i)=>e.flatMap(r=>r(u,...i))}function ga(t){switch(t.type){case"terminal":{let e=[t.valueContainer];return(u,...i)=>e}case"tagName":return fa(t);case"attrValue":return xa(t);case"attrPresence":return ma(t);case"pushElement":return Aa(t);case"popElement":return Ba(t)}}function fa(t){let e={};for(let u of t.variants)e[u.value]=mt(u.cont);return(u,...i)=>{let r=e[u.name];return r?r(u,...i):[]}}function ma(t){let e=t.name,u=mt(t.cont);return(i,...r)=>Object.prototype.hasOwnProperty.call(i.attribs,e)?u(i,...r):[]}function xa(t){let e=[];for(let i of t.matchers){let r=i.predicate,n=mt(i.cont);e.push((a,s,...o)=>r(a)?n(s,...o):[])}let u=t.name;return(i,...r)=>{let n=i.attribs[u];return n||n===""?e.flatMap(a=>a(n,i,...r)):[]}}function Aa(t){let e=mt(t.cont),u=t.combinator==="+"?cr:Ea;return(i,...r)=>{let n=u(i);return n===null?[]:e(n,i,...r)}}var cr=t=>{let e=t.prev;return e===null?null:Fe(e)?e:cr(e)},Ea=t=>{let e=t.parent;return e&&Fe(e)?e:null};function Ba(t){let e=mt(t.cont);return(u,i,...r)=>e(i,...r)}var lr=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(t=>t.charCodeAt(0))),hr=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(t=>t.charCodeAt(0))),de,Ca=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Ee=(de=String.fromCodePoint)!==null&&de!==void 0?de:function(t){let e="";return t>65535&&(t-=65536,e+=String.fromCharCode(t>>>10&1023|55296),t=56320|t&1023),e+=String.fromCharCode(t),e};function dr(t){var e;return t>=55296&&t<=57343||t>1114111?65533:(e=Ca.get(t))!==null&&e!==void 0?e:t}var q;(function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"})(q||(q={}));var Da=32,W;(function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"})(W||(W={}));function Be(t){return t>=q.ZERO&&t<=q.NINE}function ba(t){return t>=q.UPPER_A&&t<=q.UPPER_F||t>=q.LOWER_A&&t<=q.LOWER_F}function wa(t){return t>=q.UPPER_A&&t<=q.UPPER_Z||t>=q.LOWER_A&&t<=q.LOWER_Z||Be(t)}function ya(t){return t===q.EQUALS||wa(t)}var P;(function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"})(P||(P={}));var rt;(function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"})(rt||(rt={}));var Fa=class{constructor(t,e,u){this.decodeTree=t,this.emitCodePoint=e,this.errors=u,this.state=P.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=rt.Strict}startEntity(t){this.decodeMode=t,this.state=P.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,e){switch(this.state){case P.EntityStart:return t.charCodeAt(e)===q.NUM?(this.state=P.NumericStart,this.consumed+=1,this.stateNumericStart(t,e+1)):(this.state=P.NamedEntity,this.stateNamedEntity(t,e));case P.NumericStart:return this.stateNumericStart(t,e);case P.NumericDecimal:return this.stateNumericDecimal(t,e);case P.NumericHex:return this.stateNumericHex(t,e);case P.NamedEntity:return this.stateNamedEntity(t,e)}}stateNumericStart(t,e){return e>=t.length?-1:(t.charCodeAt(e)|Da)===q.LOWER_X?(this.state=P.NumericHex,this.consumed+=1,this.stateNumericHex(t,e+1)):(this.state=P.NumericDecimal,this.stateNumericDecimal(t,e))}addToNumericResult(t,e,u,i){if(e!==u){let r=u-e;this.result=this.result*Math.pow(i,r)+parseInt(t.substr(e,r),i),this.consumed+=r}}stateNumericHex(t,e){let u=e;for(;e<t.length;){let i=t.charCodeAt(e);if(Be(i)||ba(i))e+=1;else return this.addToNumericResult(t,u,e,16),this.emitNumericEntity(i,3)}return this.addToNumericResult(t,u,e,16),-1}stateNumericDecimal(t,e){let u=e;for(;e<t.length;){let i=t.charCodeAt(e);if(Be(i))e+=1;else return this.addToNumericResult(t,u,e,10),this.emitNumericEntity(i,2)}return this.addToNumericResult(t,u,e,10),-1}emitNumericEntity(t,e){var u;if(this.consumed<=e)return(u=this.errors)===null||u===void 0||u.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===q.SEMI)this.consumed+=1;else if(this.decodeMode===rt.Strict)return 0;return this.emitCodePoint(dr(this.result),this.consumed),this.errors&&(t!==q.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,e){let{decodeTree:u}=this,i=u[this.treeIndex],r=(i&W.VALUE_LENGTH)>>14;for(;e<t.length;e++,this.excess++){let n=t.charCodeAt(e);if(this.treeIndex=gr(u,i,this.treeIndex+Math.max(1,r),n),this.treeIndex<0)return this.result===0||this.decodeMode===rt.Attribute&&(r===0||ya(n))?0:this.emitNotTerminatedNamedEntity();if(i=u[this.treeIndex],r=(i&W.VALUE_LENGTH)>>14,r!==0){if(n===q.SEMI)return this.emitNamedEntityData(this.treeIndex,r,this.consumed+this.excess);this.decodeMode!==rt.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;let{result:e,decodeTree:u}=this,i=(u[e]&W.VALUE_LENGTH)>>14;return this.emitNamedEntityData(e,i,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,e,u){let{decodeTree:i}=this;return this.emitCodePoint(e===1?i[t]&~W.VALUE_LENGTH:i[t+1],u),e===3&&this.emitCodePoint(i[t+2],u),u}end(){var t;switch(this.state){case P.NamedEntity:return this.result!==0&&(this.decodeMode!==rt.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case P.NumericDecimal:return this.emitNumericEntity(0,2);case P.NumericHex:return this.emitNumericEntity(0,3);case P.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case P.EntityStart:return 0}}};function pr(t){let e="",u=new Fa(t,i=>e+=Ee(i));return function(i,r){let n=0,a=0;for(;(a=i.indexOf("&",a))>=0;){e+=i.slice(n,a),u.startEntity(r);let o=u.write(i,a+1);if(o<0){n=a+u.end();break}n=a+o,a=o===0?n+1:n}let s=e+i.slice(n);return e="",s}}function gr(t,e,u,i){let r=(e&W.BRANCH_LENGTH)>>7,n=e&W.JUMP_TABLE;if(r===0)return n!==0&&i===n?u:-1;if(n){let o=i-n;return o<0||o>=r?-1:t[u+o]-1}let a=u,s=a+r-1;for(;a<=s;){let o=a+s>>>1,l=t[o];if(l<i)a=o+1;else if(l>i)s=o-1;else return t[o+r]}return-1}var D0=pr(lr),b0=pr(hr),C;(function(t){t[t.Tab=9]="Tab",t[t.NewLine=10]="NewLine",t[t.FormFeed=12]="FormFeed",t[t.CarriageReturn=13]="CarriageReturn",t[t.Space=32]="Space",t[t.ExclamationMark=33]="ExclamationMark",t[t.Number=35]="Number",t[t.Amp=38]="Amp",t[t.SingleQuote=39]="SingleQuote",t[t.DoubleQuote=34]="DoubleQuote",t[t.Dash=45]="Dash",t[t.Slash=47]="Slash",t[t.Zero=48]="Zero",t[t.Nine=57]="Nine",t[t.Semi=59]="Semi",t[t.Lt=60]="Lt",t[t.Eq=61]="Eq",t[t.Gt=62]="Gt",t[t.Questionmark=63]="Questionmark",t[t.UpperA=65]="UpperA",t[t.LowerA=97]="LowerA",t[t.UpperF=70]="UpperF",t[t.LowerF=102]="LowerF",t[t.UpperZ=90]="UpperZ",t[t.LowerZ=122]="LowerZ",t[t.LowerX=120]="LowerX",t[t.OpeningSquareBracket=91]="OpeningSquareBracket"})(C||(C={}));var g;(function(t){t[t.Text=1]="Text",t[t.BeforeTagName=2]="BeforeTagName",t[t.InTagName=3]="InTagName",t[t.InSelfClosingTag=4]="InSelfClosingTag",t[t.BeforeClosingTagName=5]="BeforeClosingTagName",t[t.InClosingTagName=6]="InClosingTagName",t[t.AfterClosingTagName=7]="AfterClosingTagName",t[t.BeforeAttributeName=8]="BeforeAttributeName",t[t.InAttributeName=9]="InAttributeName",t[t.AfterAttributeName=10]="AfterAttributeName",t[t.BeforeAttributeValue=11]="BeforeAttributeValue",t[t.InAttributeValueDq=12]="InAttributeValueDq",t[t.InAttributeValueSq=13]="InAttributeValueSq",t[t.InAttributeValueNq=14]="InAttributeValueNq",t[t.BeforeDeclaration=15]="BeforeDeclaration",t[t.InDeclaration=16]="InDeclaration",t[t.InProcessingInstruction=17]="InProcessingInstruction",t[t.BeforeComment=18]="BeforeComment",t[t.CDATASequence=19]="CDATASequence",t[t.InSpecialComment=20]="InSpecialComment",t[t.InCommentLike=21]="InCommentLike",t[t.BeforeSpecialS=22]="BeforeSpecialS",t[t.SpecialStartSequence=23]="SpecialStartSequence",t[t.InSpecialTag=24]="InSpecialTag",t[t.BeforeEntity=25]="BeforeEntity",t[t.BeforeNumericEntity=26]="BeforeNumericEntity",t[t.InNamedEntity=27]="InNamedEntity",t[t.InNumericEntity=28]="InNumericEntity",t[t.InHexEntity=29]="InHexEntity"})(g||(g={}));function X(t){return t===C.Space||t===C.NewLine||t===C.Tab||t===C.FormFeed||t===C.CarriageReturn}function St(t){return t===C.Slash||t===C.Gt||X(t)}function Ai(t){return t>=C.Zero&&t<=C.Nine}function va(t){return t>=C.LowerA&&t<=C.LowerZ||t>=C.UpperA&&t<=C.UpperZ}function ka(t){return t>=C.UpperA&&t<=C.UpperF||t>=C.LowerA&&t<=C.LowerF}var z;(function(t){t[t.NoValue=0]="NoValue",t[t.Unquoted=1]="Unquoted",t[t.Single=2]="Single",t[t.Double=3]="Double"})(z||(z={}));var j={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},Sa=class{constructor({xmlMode:t=!1,decodeEntities:e=!0},u){this.cbs=u,this.state=g.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=g.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=t,this.decodeEntities=e,this.entityTrie=t?hr:lr}reset(){this.state=g.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=g.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(t){this.offset+=this.buffer.length,this.buffer=t,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}getIndex(){return this.index}getSectionStart(){return this.sectionStart}stateText(t){t===C.Lt||!this.decodeEntities&&this.fastForwardTo(C.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=g.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===C.Amp&&(this.state=g.BeforeEntity)}stateSpecialStartSequence(t){let e=this.sequenceIndex===this.currentSequence.length;if(!(e?St(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!e){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=g.InTagName,this.stateInTagName(t)}stateInSpecialTag(t){if(this.sequenceIndex===this.currentSequence.length){if(t===C.Gt||X(t)){let e=this.index-this.currentSequence.length;if(this.sectionStart<e){let u=this.index;this.index=e,this.cbs.ontext(this.sectionStart,e),this.index=u}this.isSpecial=!1,this.sectionStart=e+2,this.stateInClosingTagName(t);return}this.sequenceIndex=0}(t|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===j.TitleEnd?this.decodeEntities&&t===C.Amp&&(this.state=g.BeforeEntity):this.fastForwardTo(C.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===C.Lt)}stateCDATASequence(t){t===j.Cdata[this.sequenceIndex]?++this.sequenceIndex===j.Cdata.length&&(this.state=g.InCommentLike,this.currentSequence=j.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=g.InDeclaration,this.stateInDeclaration(t))}fastForwardTo(t){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===t)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===j.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=g.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(t){return this.xmlMode?!St(t):va(t)}startSpecial(t,e){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=e,this.state=g.SpecialStartSequence}stateBeforeTagName(t){if(t===C.ExclamationMark)this.state=g.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===C.Questionmark)this.state=g.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(t)){let e=t|32;this.sectionStart=this.index,!this.xmlMode&&e===j.TitleEnd[2]?this.startSpecial(j.TitleEnd,3):this.state=!this.xmlMode&&e===j.ScriptEnd[2]?g.BeforeSpecialS:g.InTagName}else t===C.Slash?this.state=g.BeforeClosingTagName:(this.state=g.Text,this.stateText(t))}stateInTagName(t){St(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateBeforeClosingTagName(t){X(t)||(t===C.Gt?this.state=g.Text:(this.state=this.isTagStartChar(t)?g.InClosingTagName:g.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(t){(t===C.Gt||X(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=g.AfterClosingTagName,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.state=g.Text,this.baseState=g.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(t){t===C.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=g.InSpecialTag,this.sequenceIndex=0):this.state=g.Text,this.baseState=this.state,this.sectionStart=this.index+1):t===C.Slash?this.state=g.InSelfClosingTag:X(t)||(this.state=g.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===C.Gt?(this.cbs.onselfclosingtag(this.index),this.state=g.Text,this.baseState=g.Text,this.sectionStart=this.index+1,this.isSpecial=!1):X(t)||(this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateInAttributeName(t){(t===C.Eq||St(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=g.AfterAttributeName,this.stateAfterAttributeName(t))}stateAfterAttributeName(t){t===C.Eq?this.state=g.BeforeAttributeValue:t===C.Slash||t===C.Gt?(this.cbs.onattribend(z.NoValue,this.index),this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t)):X(t)||(this.cbs.onattribend(z.NoValue,this.index),this.state=g.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(t){t===C.DoubleQuote?(this.state=g.InAttributeValueDq,this.sectionStart=this.index+1):t===C.SingleQuote?(this.state=g.InAttributeValueSq,this.sectionStart=this.index+1):X(t)||(this.sectionStart=this.index,this.state=g.InAttributeValueNq,this.stateInAttributeValueNoQuotes(t))}handleInAttributeValue(t,e){t===e||!this.decodeEntities&&this.fastForwardTo(e)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(e===C.DoubleQuote?z.Double:z.Single,this.index),this.state=g.BeforeAttributeName):this.decodeEntities&&t===C.Amp&&(this.baseState=this.state,this.state=g.BeforeEntity)}stateInAttributeValueDoubleQuotes(t){this.handleInAttributeValue(t,C.DoubleQuote)}stateInAttributeValueSingleQuotes(t){this.handleInAttributeValue(t,C.SingleQuote)}stateInAttributeValueNoQuotes(t){X(t)||t===C.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(z.Unquoted,this.index),this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===C.Amp&&(this.baseState=this.state,this.state=g.BeforeEntity)}stateBeforeDeclaration(t){t===C.OpeningSquareBracket?(this.state=g.CDATASequence,this.sequenceIndex=0):this.state=t===C.Dash?g.BeforeComment:g.InDeclaration}stateInDeclaration(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=g.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=g.Text,this.sectionStart=this.index+1)}stateBeforeComment(t){t===C.Dash?(this.state=g.InCommentLike,this.currentSequence=j.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=g.InDeclaration}stateInSpecialComment(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=g.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(t){let e=t|32;e===j.ScriptEnd[3]?this.startSpecial(j.ScriptEnd,4):e===j.StyleEnd[3]?this.startSpecial(j.StyleEnd,4):(this.state=g.InTagName,this.stateInTagName(t))}stateBeforeEntity(t){this.entityExcess=1,this.entityResult=0,t===C.Number?this.state=g.BeforeNumericEntity:t===C.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=g.InNamedEntity,this.stateInNamedEntity(t))}stateInNamedEntity(t){if(this.entityExcess+=1,this.trieIndex=gr(this.entityTrie,this.trieCurrent,this.trieIndex+1,t),this.trieIndex<0){this.emitNamedEntity(),this.index--;return}this.trieCurrent=this.entityTrie[this.trieIndex];let e=this.trieCurrent&W.VALUE_LENGTH;if(e){let u=(e>>14)-1;if(!this.allowLegacyEntity()&&t!==C.Semi)this.trieIndex+=u;else{let i=this.index-this.entityExcess+1;i>this.sectionStart&&this.emitPartial(this.sectionStart,i),this.entityResult=this.trieIndex,this.trieIndex+=u,this.entityExcess=0,this.sectionStart=this.index+1,u===0&&this.emitNamedEntity()}}}emitNamedEntity(){if(this.state=this.baseState,this.entityResult!==0)switch((this.entityTrie[this.entityResult]&W.VALUE_LENGTH)>>14){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~W.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}stateBeforeNumericEntity(t){(t|32)===C.LowerX?(this.entityExcess++,this.state=g.InHexEntity):(this.state=g.InNumericEntity,this.stateInNumericEntity(t))}emitNumericEntity(t){let e=this.index-this.entityExcess-1;e+2+ +(this.state===g.InHexEntity)!==this.index&&(e>this.sectionStart&&this.emitPartial(this.sectionStart,e),this.sectionStart=this.index+Number(t),this.emitCodePoint(dr(this.entityResult))),this.state=this.baseState}stateInNumericEntity(t){t===C.Semi?this.emitNumericEntity(!0):Ai(t)?(this.entityResult=this.entityResult*10+(t-C.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(t){t===C.Semi?this.emitNumericEntity(!0):Ai(t)?(this.entityResult=this.entityResult*16+(t-C.Zero),this.entityExcess++):ka(t)?(this.entityResult=this.entityResult*16+((t|32)-C.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===g.Text||this.baseState===g.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===g.Text||this.state===g.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===g.InAttributeValueDq||this.state===g.InAttributeValueSq||this.state===g.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){let t=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case g.Text:{this.stateText(t);break}case g.SpecialStartSequence:{this.stateSpecialStartSequence(t);break}case g.InSpecialTag:{this.stateInSpecialTag(t);break}case g.CDATASequence:{this.stateCDATASequence(t);break}case g.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(t);break}case g.InAttributeName:{this.stateInAttributeName(t);break}case g.InCommentLike:{this.stateInCommentLike(t);break}case g.InSpecialComment:{this.stateInSpecialComment(t);break}case g.BeforeAttributeName:{this.stateBeforeAttributeName(t);break}case g.InTagName:{this.stateInTagName(t);break}case g.InClosingTagName:{this.stateInClosingTagName(t);break}case g.BeforeTagName:{this.stateBeforeTagName(t);break}case g.AfterAttributeName:{this.stateAfterAttributeName(t);break}case g.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(t);break}case g.BeforeAttributeValue:{this.stateBeforeAttributeValue(t);break}case g.BeforeClosingTagName:{this.stateBeforeClosingTagName(t);break}case g.AfterClosingTagName:{this.stateAfterClosingTagName(t);break}case g.BeforeSpecialS:{this.stateBeforeSpecialS(t);break}case g.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(t);break}case g.InSelfClosingTag:{this.stateInSelfClosingTag(t);break}case g.InDeclaration:{this.stateInDeclaration(t);break}case g.BeforeDeclaration:{this.stateBeforeDeclaration(t);break}case g.BeforeComment:{this.stateBeforeComment(t);break}case g.InProcessingInstruction:{this.stateInProcessingInstruction(t);break}case g.InNamedEntity:{this.stateInNamedEntity(t);break}case g.BeforeEntity:{this.stateBeforeEntity(t);break}case g.InHexEntity:{this.stateInHexEntity(t);break}case g.InNumericEntity:{this.stateInNumericEntity(t);break}default:this.stateBeforeNumericEntity(t)}this.index++}this.cleanup()}finish(){this.state===g.InNamedEntity&&this.emitNamedEntity(),this.sectionStart<this.index&&this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let t=this.buffer.length+this.offset;this.state===g.InCommentLike?this.currentSequence===j.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===g.InNumericEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===g.InHexEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===g.InTagName||this.state===g.BeforeAttributeName||this.state===g.BeforeAttributeValue||this.state===g.AfterAttributeName||this.state===g.InAttributeName||this.state===g.InAttributeValueSq||this.state===g.InAttributeValueDq||this.state===g.InAttributeValueNq||this.state===g.InClosingTagName||this.cbs.ontext(this.sectionStart,t)}emitPartial(t,e){this.baseState!==g.Text&&this.baseState!==g.InSpecialTag?this.cbs.onattribdata(t,e):this.cbs.ontext(t,e)}emitCodePoint(t){this.baseState!==g.Text&&this.baseState!==g.InSpecialTag?this.cbs.onattribentity(t):this.cbs.ontextentity(t)}},ht=new Set(["input","option","optgroup","select","button","datalist","textarea"]),_=new Set(["p"]),Ei=new Set(["thead","tbody"]),Bi=new Set(["dd","dt"]),Ci=new Set(["rt","rp"]),Ta=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",_],["h1",_],["h2",_],["h3",_],["h4",_],["h5",_],["h6",_],["select",ht],["input",ht],["output",ht],["button",ht],["datalist",ht],["textarea",ht],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",Bi],["dt",Bi],["address",_],["article",_],["aside",_],["blockquote",_],["details",_],["div",_],["dl",_],["fieldset",_],["figcaption",_],["figure",_],["footer",_],["form",_],["header",_],["hr",_],["main",_],["nav",_],["ol",_],["pre",_],["section",_],["table",_],["ul",_],["rt",Ci],["rp",Ci],["tbody",Ei],["tfoot",Ei]]),_a=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),Di=new Set(["math","svg"]),bi=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),Ia=/\s|\//,La=class{constructor(t,e={}){var u,i,r,n,a;this.options=e,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=t??{},this.lowerCaseTagNames=(u=e.lowerCaseTags)!==null&&u!==void 0?u:!e.xmlMode,this.lowerCaseAttributeNames=(i=e.lowerCaseAttributeNames)!==null&&i!==void 0?i:!e.xmlMode,this.tokenizer=new((r=e.Tokenizer)!==null&&r!==void 0?r:Sa)(this.options,this),(a=(n=this.cbs).onparserinit)===null||a===void 0||a.call(n,this)}ontext(t,e){var u,i;let r=this.getSlice(t,e);this.endIndex=e-1,(i=(u=this.cbs).ontext)===null||i===void 0||i.call(u,r),this.startIndex=e}ontextentity(t){var e,u;let i=this.tokenizer.getSectionStart();this.endIndex=i-1,(u=(e=this.cbs).ontext)===null||u===void 0||u.call(e,Ee(t)),this.startIndex=i}isVoidElement(t){return!this.options.xmlMode&&_a.has(t)}onopentagname(t,e){this.endIndex=e;let u=this.getSlice(t,e);this.lowerCaseTagNames&&(u=u.toLowerCase()),this.emitOpenTag(u)}emitOpenTag(t){var e,u,i,r;this.openTagStart=this.startIndex,this.tagname=t;let n=!this.options.xmlMode&&Ta.get(t);if(n)for(;this.stack.length>0&&n.has(this.stack[this.stack.length-1]);){let a=this.stack.pop();(u=(e=this.cbs).onclosetag)===null||u===void 0||u.call(e,a,!0)}this.isVoidElement(t)||(this.stack.push(t),Di.has(t)?this.foreignContext.push(!0):bi.has(t)&&this.foreignContext.push(!1)),(r=(i=this.cbs).onopentagname)===null||r===void 0||r.call(i,t),this.cbs.onopentag&&(this.attribs={})}endOpenTag(t){var e,u;this.startIndex=this.openTagStart,this.attribs&&((u=(e=this.cbs).onopentag)===null||u===void 0||u.call(e,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1}onclosetag(t,e){var u,i,r,n,a,s;this.endIndex=e;let o=this.getSlice(t,e);if(this.lowerCaseTagNames&&(o=o.toLowerCase()),(Di.has(o)||bi.has(o))&&this.foreignContext.pop(),this.isVoidElement(o))!this.options.xmlMode&&o==="br"&&((i=(u=this.cbs).onopentagname)===null||i===void 0||i.call(u,"br"),(n=(r=this.cbs).onopentag)===null||n===void 0||n.call(r,"br",{},!0),(s=(a=this.cbs).onclosetag)===null||s===void 0||s.call(a,"br",!1));else{let l=this.stack.lastIndexOf(o);if(l!==-1)if(this.cbs.onclosetag){let p=this.stack.length-l;for(;p--;)this.cbs.onclosetag(this.stack.pop(),p!==0)}else this.stack.length=l;else!this.options.xmlMode&&o==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=e+1}onselfclosingtag(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)}closeCurrentTag(t){var e,u;let i=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===i&&((u=(e=this.cbs).onclosetag)===null||u===void 0||u.call(e,i,!t),this.stack.pop())}onattribname(t,e){this.startIndex=t;let u=this.getSlice(t,e);this.attribname=this.lowerCaseAttributeNames?u.toLowerCase():u}onattribdata(t,e){this.attribvalue+=this.getSlice(t,e)}onattribentity(t){this.attribvalue+=Ee(t)}onattribend(t,e){var u,i;this.endIndex=e,(i=(u=this.cbs).onattribute)===null||i===void 0||i.call(u,this.attribname,this.attribvalue,t===z.Double?'"':t===z.Single?"'":t===z.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(t){let e=t.search(Ia),u=e<0?t:t.substr(0,e);return this.lowerCaseTagNames&&(u=u.toLowerCase()),u}ondeclaration(t,e){this.endIndex=e;let u=this.getSlice(t,e);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(u);this.cbs.onprocessinginstruction(`!${i}`,`!${u}`)}this.startIndex=e+1}onprocessinginstruction(t,e){this.endIndex=e;let u=this.getSlice(t,e);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(u);this.cbs.onprocessinginstruction(`?${i}`,`?${u}`)}this.startIndex=e+1}oncomment(t,e,u){var i,r,n,a;this.endIndex=e,(r=(i=this.cbs).oncomment)===null||r===void 0||r.call(i,this.getSlice(t,e-u)),(a=(n=this.cbs).oncommentend)===null||a===void 0||a.call(n),this.startIndex=e+1}oncdata(t,e,u){var i,r,n,a,s,o,l,p,A,E;this.endIndex=e;let x=this.getSlice(t,e-u);this.options.xmlMode||this.options.recognizeCDATA?((r=(i=this.cbs).oncdatastart)===null||r===void 0||r.call(i),(a=(n=this.cbs).ontext)===null||a===void 0||a.call(n,x),(o=(s=this.cbs).oncdataend)===null||o===void 0||o.call(s)):((p=(l=this.cbs).oncomment)===null||p===void 0||p.call(l,`[CDATA[${x}]]`),(E=(A=this.cbs).oncommentend)===null||E===void 0||E.call(A)),this.startIndex=e+1}onend(){var t,e;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let u=this.stack.length;u>0;this.cbs.onclosetag(this.stack[--u],!0));}(e=(t=this.cbs).onend)===null||e===void 0||e.call(t)}reset(){var t,e,u,i;(e=(t=this.cbs).onreset)===null||e===void 0||e.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(i=(u=this.cbs).onparserinit)===null||i===void 0||i.call(u,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(t){this.reset(),this.end(t)}getSlice(t,e){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let u=this.buffers[0].slice(t-this.bufferOffset,e-this.bufferOffset);for(;e-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),u+=this.buffers[0].slice(0,e-this.bufferOffset);return u}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(t){var e,u;if(this.ended){(u=(e=this.cbs).onerror)===null||u===void 0||u.call(e,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)}end(t){var e,u;if(this.ended){(u=(e=this.cbs).onerror)===null||u===void 0||u.call(e,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(t){this.write(t)}done(t){this.end(t)}};function Tt(t){for(let e=1;e<t.length;e++)t[e][0]+=t[e-1][0]+1;return t}var w0=new Map(Tt([[9,"	"],[0,"
"],[22,"!"],[0,"""],[0,"#"],[0,"$"],[0,"%"],[0,"&"],[0,"'"],[0,"("],[0,")"],[0,"*"],[0,"+"],[0,","],[1,"."],[0,"/"],[10,":"],[0,";"],[0,{v:"<",n:8402,o:"<⃒"}],[0,{v:"=",n:8421,o:"=⃥"}],[0,{v:">",n:8402,o:">⃒"}],[0,"?"],[0,"@"],[26,"["],[0,"\"],[0,"]"],[0,"^"],[0,"_"],[0,"`"],[5,{n:106,o:"fj"}],[20,"{"],[0,"|"],[0,"}"],[34," "],[0,"¡"],[0,"¢"],[0,"£"],[0,"¤"],[0,"¥"],[0,"¦"],[0,"§"],[0,"¨"],[0,"©"],[0,"ª"],[0,"«"],[0,"¬"],[0,"­"],[0,"®"],[0,"¯"],[0,"°"],[0,"±"],[0,"²"],[0,"³"],[0,"´"],[0,"µ"],[0,"¶"],[0,"·"],[0,"¸"],[0,"¹"],[0,"º"],[0,"»"],[0,"¼"],[0,"½"],[0,"¾"],[0,"¿"],[0,"À"],[0,"Á"],[0,"Â"],[0,"Ã"],[0,"Ä"],[0,"Å"],[0,"Æ"],[0,"Ç"],[0,"È"],[0,"É"],[0,"Ê"],[0,"Ë"],[0,"Ì"],[0,"Í"],[0,"Î"],[0,"Ï"],[0,"Ð"],[0,"Ñ"],[0,"Ò"],[0,"Ó"],[0,"Ô"],[0,"Õ"],[0,"Ö"],[0,"×"],[0,"Ø"],[0,"Ù"],[0,"Ú"],[0,"Û"],[0,"Ü"],[0,"Ý"],[0,"Þ"],[0,"ß"],[0,"à"],[0,"á"],[0,"â"],[0,"ã"],[0,"ä"],[0,"å"],[0,"æ"],[0,"ç"],[0,"è"],[0,"é"],[0,"ê"],[0,"ë"],[0,"ì"],[0,"í"],[0,"î"],[0,"ï"],[0,"ð"],[0,"ñ"],[0,"ò"],[0,"ó"],[0,"ô"],[0,"õ"],[0,"ö"],[0,"÷"],[0,"ø"],[0,"ù"],[0,"ú"],[0,"û"],[0,"ü"],[0,"ý"],[0,"þ"],[0,"ÿ"],[0,"Ā"],[0,"ā"],[0,"Ă"],[0,"ă"],[0,"Ą"],[0,"ą"],[0,"Ć"],[0,"ć"],[0,"Ĉ"],[0,"ĉ"],[0,"Ċ"],[0,"ċ"],[0,"Č"],[0,"č"],[0,"Ď"],[0,"ď"],[0,"Đ"],[0,"đ"],[0,"Ē"],[0,"ē"],[2,"Ė"],[0,"ė"],[0,"Ę"],[0,"ę"],[0,"Ě"],[0,"ě"],[0,"Ĝ"],[0,"ĝ"],[0,"Ğ"],[0,"ğ"],[0,"Ġ"],[0,"ġ"],[0,"Ģ"],[1,"Ĥ"],[0,"ĥ"],[0,"Ħ"],[0,"ħ"],[0,"Ĩ"],[0,"ĩ"],[0,"Ī"],[0,"ī"],[2,"Į"],[0,"į"],[0,"İ"],[0,"ı"],[0,"IJ"],[0,"ij"],[0,"Ĵ"],[0,"ĵ"],[0,"Ķ"],[0,"ķ"],[0,"ĸ"],[0,"Ĺ"],[0,"ĺ"],[0,"Ļ"],[0,"ļ"],[0,"Ľ"],[0,"ľ"],[0,"Ŀ"],[0,"ŀ"],[0,"Ł"],[0,"ł"],[0,"Ń"],[0,"ń"],[0,"Ņ"],[0,"ņ"],[0,"Ň"],[0,"ň"],[0,"ʼn"],[0,"Ŋ"],[0,"ŋ"],[0,"Ō"],[0,"ō"],[2,"Ő"],[0,"ő"],[0,"Œ"],[0,"œ"],[0,"Ŕ"],[0,"ŕ"],[0,"Ŗ"],[0,"ŗ"],[0,"Ř"],[0,"ř"],[0,"Ś"],[0,"ś"],[0,"Ŝ"],[0,"ŝ"],[0,"Ş"],[0,"ş"],[0,"Š"],[0,"š"],[0,"Ţ"],[0,"ţ"],[0,"Ť"],[0,"ť"],[0,"Ŧ"],[0,"ŧ"],[0,"Ũ"],[0,"ũ"],[0,"Ū"],[0,"ū"],[0,"Ŭ"],[0,"ŭ"],[0,"Ů"],[0,"ů"],[0,"Ű"],[0,"ű"],[0,"Ų"],[0,"ų"],[0,"Ŵ"],[0,"ŵ"],[0,"Ŷ"],[0,"ŷ"],[0,"Ÿ"],[0,"Ź"],[0,"ź"],[0,"Ż"],[0,"ż"],[0,"Ž"],[0,"ž"],[19,"ƒ"],[34,"Ƶ"],[63,"ǵ"],[65,"ȷ"],[142,"ˆ"],[0,"ˇ"],[16,"˘"],[0,"˙"],[0,"˚"],[0,"˛"],[0,"˜"],[0,"˝"],[51,"̑"],[127,"Α"],[0,"Β"],[0,"Γ"],[0,"Δ"],[0,"Ε"],[0,"Ζ"],[0,"Η"],[0,"Θ"],[0,"Ι"],[0,"Κ"],[0,"Λ"],[0,"Μ"],[0,"Ν"],[0,"Ξ"],[0,"Ο"],[0,"Π"],[0,"Ρ"],[1,"Σ"],[0,"Τ"],[0,"Υ"],[0,"Φ"],[0,"Χ"],[0,"Ψ"],[0,"Ω"],[7,"α"],[0,"β"],[0,"γ"],[0,"δ"],[0,"ε"],[0,"ζ"],[0,"η"],[0,"θ"],[0,"ι"],[0,"κ"],[0,"λ"],[0,"μ"],[0,"ν"],[0,"ξ"],[0,"ο"],[0,"π"],[0,"ρ"],[0,"ς"],[0,"σ"],[0,"τ"],[0,"υ"],[0,"φ"],[0,"χ"],[0,"ψ"],[0,"ω"],[7,"ϑ"],[0,"ϒ"],[2,"ϕ"],[0,"ϖ"],[5,"Ϝ"],[0,"ϝ"],[18,"ϰ"],[0,"ϱ"],[3,"ϵ"],[0,"϶"],[10,"Ё"],[0,"Ђ"],[0,"Ѓ"],[0,"Є"],[0,"Ѕ"],[0,"І"],[0,"Ї"],[0,"Ј"],[0,"Љ"],[0,"Њ"],[0,"Ћ"],[0,"Ќ"],[1,"Ў"],[0,"Џ"],[0,"А"],[0,"Б"],[0,"В"],[0,"Г"],[0,"Д"],[0,"Е"],[0,"Ж"],[0,"З"],[0,"И"],[0,"Й"],[0,"К"],[0,"Л"],[0,"М"],[0,"Н"],[0,"О"],[0,"П"],[0,"Р"],[0,"С"],[0,"Т"],[0,"У"],[0,"Ф"],[0,"Х"],[0,"Ц"],[0,"Ч"],[0,"Ш"],[0,"Щ"],[0,"Ъ"],[0,"Ы"],[0,"Ь"],[0,"Э"],[0,"Ю"],[0,"Я"],[0,"а"],[0,"б"],[0,"в"],[0,"г"],[0,"д"],[0,"е"],[0,"ж"],[0,"з"],[0,"и"],[0,"й"],[0,"к"],[0,"л"],[0,"м"],[0,"н"],[0,"о"],[0,"п"],[0,"р"],[0,"с"],[0,"т"],[0,"у"],[0,"ф"],[0,"х"],[0,"ц"],[0,"ч"],[0,"ш"],[0,"щ"],[0,"ъ"],[0,"ы"],[0,"ь"],[0,"э"],[0,"ю"],[0,"я"],[1,"ё"],[0,"ђ"],[0,"ѓ"],[0,"є"],[0,"ѕ"],[0,"і"],[0,"ї"],[0,"ј"],[0,"љ"],[0,"њ"],[0,"ћ"],[0,"ќ"],[1,"ў"],[0,"џ"],[7074," "],[0," "],[0," "],[0," "],[1," "],[0," "],[0," "],[0," "],[0,"​"],[0,"‌"],[0,"‍"],[0,"‎"],[0,"‏"],[0,"‐"],[2,"–"],[0,"—"],[0,"―"],[0,"‖"],[1,"‘"],[0,"’"],[0,"‚"],[1,"“"],[0,"”"],[0,"„"],[1,"†"],[0,"‡"],[0,"•"],[2,"‥"],[0,"…"],[9,"‰"],[0,"‱"],[0,"′"],[0,"″"],[0,"‴"],[0,"‵"],[3,"‹"],[0,"›"],[3,"‾"],[2,"⁁"],[1,"⁃"],[0,"⁄"],[10,"⁏"],[7,"⁗"],[7,{v:" ",n:8202,o:"  "}],[0,"⁠"],[0,"⁡"],[0,"⁢"],[0,"⁣"],[72,"€"],[46,"⃛"],[0,"⃜"],[37,"ℂ"],[2,"℅"],[4,"ℊ"],[0,"ℋ"],[0,"ℌ"],[0,"ℍ"],[0,"ℎ"],[0,"ℏ"],[0,"ℐ"],[0,"ℑ"],[0,"ℒ"],[0,"ℓ"],[1,"ℕ"],[0,"№"],[0,"℗"],[0,"℘"],[0,"ℙ"],[0,"ℚ"],[0,"ℛ"],[0,"ℜ"],[0,"ℝ"],[0,"℞"],[3,"™"],[1,"ℤ"],[2,"℧"],[0,"ℨ"],[0,"℩"],[2,"ℬ"],[0,"ℭ"],[1,"ℯ"],[0,"ℰ"],[0,"ℱ"],[1,"ℳ"],[0,"ℴ"],[0,"ℵ"],[0,"ℶ"],[0,"ℷ"],[0,"ℸ"],[12,"ⅅ"],[0,"ⅆ"],[0,"ⅇ"],[0,"ⅈ"],[10,"⅓"],[0,"⅔"],[0,"⅕"],[0,"⅖"],[0,"⅗"],[0,"⅘"],[0,"⅙"],[0,"⅚"],[0,"⅛"],[0,"⅜"],[0,"⅝"],[0,"⅞"],[49,"←"],[0,"↑"],[0,"→"],[0,"↓"],[0,"↔"],[0,"↕"],[0,"↖"],[0,"↗"],[0,"↘"],[0,"↙"],[0,"↚"],[0,"↛"],[1,{v:"↝",n:824,o:"↝̸"}],[0,"↞"],[0,"↟"],[0,"↠"],[0,"↡"],[0,"↢"],[0,"↣"],[0,"↤"],[0,"↥"],[0,"↦"],[0,"↧"],[1,"↩"],[0,"↪"],[0,"↫"],[0,"↬"],[0,"↭"],[0,"↮"],[1,"↰"],[0,"↱"],[0,"↲"],[0,"↳"],[1,"↵"],[0,"↶"],[0,"↷"],[2,"↺"],[0,"↻"],[0,"↼"],[0,"↽"],[0,"↾"],[0,"↿"],[0,"⇀"],[0,"⇁"],[0,"⇂"],[0,"⇃"],[0,"⇄"],[0,"⇅"],[0,"⇆"],[0,"⇇"],[0,"⇈"],[0,"⇉"],[0,"⇊"],[0,"⇋"],[0,"⇌"],[0,"⇍"],[0,"⇎"],[0,"⇏"],[0,"⇐"],[0,"⇑"],[0,"⇒"],[0,"⇓"],[0,"⇔"],[0,"⇕"],[0,"⇖"],[0,"⇗"],[0,"⇘"],[0,"⇙"],[0,"⇚"],[0,"⇛"],[1,"⇝"],[6,"⇤"],[0,"⇥"],[15,"⇵"],[7,"⇽"],[0,"⇾"],[0,"⇿"],[0,"∀"],[0,"∁"],[0,{v:"∂",n:824,o:"∂̸"}],[0,"∃"],[0,"∄"],[0,"∅"],[1,"∇"],[0,"∈"],[0,"∉"],[1,"∋"],[0,"∌"],[2,"∏"],[0,"∐"],[0,"∑"],[0,"−"],[0,"∓"],[0,"∔"],[1,"∖"],[0,"∗"],[0,"∘"],[1,"√"],[2,"∝"],[0,"∞"],[0,"∟"],[0,{v:"∠",n:8402,o:"∠⃒"}],[0,"∡"],[0,"∢"],[0,"∣"],[0,"∤"],[0,"∥"],[0,"∦"],[0,"∧"],[0,"∨"],[0,{v:"∩",n:65024,o:"∩︀"}],[0,{v:"∪",n:65024,o:"∪︀"}],[0,"∫"],[0,"∬"],[0,"∭"],[0,"∮"],[0,"∯"],[0,"∰"],[0,"∱"],[0,"∲"],[0,"∳"],[0,"∴"],[0,"∵"],[0,"∶"],[0,"∷"],[0,"∸"],[1,"∺"],[0,"∻"],[0,{v:"∼",n:8402,o:"∼⃒"}],[0,{v:"∽",n:817,o:"∽̱"}],[0,{v:"∾",n:819,o:"∾̳"}],[0,"∿"],[0,"≀"],[0,"≁"],[0,{v:"≂",n:824,o:"≂̸"}],[0,"≃"],[0,"≄"],[0,"≅"],[0,"≆"],[0,"≇"],[0,"≈"],[0,"≉"],[0,"≊"],[0,{v:"≋",n:824,o:"≋̸"}],[0,"≌"],[0,{v:"≍",n:8402,o:"≍⃒"}],[0,{v:"≎",n:824,o:"≎̸"}],[0,{v:"≏",n:824,o:"≏̸"}],[0,{v:"≐",n:824,o:"≐̸"}],[0,"≑"],[0,"≒"],[0,"≓"],[0,"≔"],[0,"≕"],[0,"≖"],[0,"≗"],[1,"≙"],[0,"≚"],[1,"≜"],[2,"≟"],[0,"≠"],[0,{v:"≡",n:8421,o:"≡⃥"}],[0,"≢"],[1,{v:"≤",n:8402,o:"≤⃒"}],[0,{v:"≥",n:8402,o:"≥⃒"}],[0,{v:"≦",n:824,o:"≦̸"}],[0,{v:"≧",n:824,o:"≧̸"}],[0,{v:"≨",n:65024,o:"≨︀"}],[0,{v:"≩",n:65024,o:"≩︀"}],[0,{v:"≪",n:new Map(Tt([[824,"≪̸"],[7577,"≪⃒"]]))}],[0,{v:"≫",n:new Map(Tt([[824,"≫̸"],[7577,"≫⃒"]]))}],[0,"≬"],[0,"≭"],[0,"≮"],[0,"≯"],[0,"≰"],[0,"≱"],[0,"≲"],[0,"≳"],[0,"≴"],[0,"≵"],[0,"≶"],[0,"≷"],[0,"≸"],[0,"≹"],[0,"≺"],[0,"≻"],[0,"≼"],[0,"≽"],[0,"≾"],[0,{v:"≿",n:824,o:"≿̸"}],[0,"⊀"],[0,"⊁"],[0,{v:"⊂",n:8402,o:"⊂⃒"}],[0,{v:"⊃",n:8402,o:"⊃⃒"}],[0,"⊄"],[0,"⊅"],[0,"⊆"],[0,"⊇"],[0,"⊈"],[0,"⊉"],[0,{v:"⊊",n:65024,o:"⊊︀"}],[0,{v:"⊋",n:65024,o:"⊋︀"}],[1,"⊍"],[0,"⊎"],[0,{v:"⊏",n:824,o:"⊏̸"}],[0,{v:"⊐",n:824,o:"⊐̸"}],[0,"⊑"],[0,"⊒"],[0,{v:"⊓",n:65024,o:"⊓︀"}],[0,{v:"⊔",n:65024,o:"⊔︀"}],[0,"⊕"],[0,"⊖"],[0,"⊗"],[0,"⊘"],[0,"⊙"],[0,"⊚"],[0,"⊛"],[1,"⊝"],[0,"⊞"],[0,"⊟"],[0,"⊠"],[0,"⊡"],[0,"⊢"],[0,"⊣"],[0,"⊤"],[0,"⊥"],[1,"⊧"],[0,"⊨"],[0,"⊩"],[0,"⊪"],[0,"⊫"],[0,"⊬"],[0,"⊭"],[0,"⊮"],[0,"⊯"],[0,"⊰"],[1,"⊲"],[0,"⊳"],[0,{v:"⊴",n:8402,o:"⊴⃒"}],[0,{v:"⊵",n:8402,o:"⊵⃒"}],[0,"⊶"],[0,"⊷"],[0,"⊸"],[0,"⊹"],[0,"⊺"],[0,"⊻"],[1,"⊽"],[0,"⊾"],[0,"⊿"],[0,"⋀"],[0,"⋁"],[0,"⋂"],[0,"⋃"],[0,"⋄"],[0,"⋅"],[0,"⋆"],[0,"⋇"],[0,"⋈"],[0,"⋉"],[0,"⋊"],[0,"⋋"],[0,"⋌"],[0,"⋍"],[0,"⋎"],[0,"⋏"],[0,"⋐"],[0,"⋑"],[0,"⋒"],[0,"⋓"],[0,"⋔"],[0,"⋕"],[0,"⋖"],[0,"⋗"],[0,{v:"⋘",n:824,o:"⋘̸"}],[0,{v:"⋙",n:824,o:"⋙̸"}],[0,{v:"⋚",n:65024,o:"⋚︀"}],[0,{v:"⋛",n:65024,o:"⋛︀"}],[2,"⋞"],[0,"⋟"],[0,"⋠"],[0,"⋡"],[0,"⋢"],[0,"⋣"],[2,"⋦"],[0,"⋧"],[0,"⋨"],[0,"⋩"],[0,"⋪"],[0,"⋫"],[0,"⋬"],[0,"⋭"],[0,"⋮"],[0,"⋯"],[0,"⋰"],[0,"⋱"],[0,"⋲"],[0,"⋳"],[0,"⋴"],[0,{v:"⋵",n:824,o:"⋵̸"}],[0,"⋶"],[0,"⋷"],[1,{v:"⋹",n:824,o:"⋹̸"}],[0,"⋺"],[0,"⋻"],[0,"⋼"],[0,"⋽"],[0,"⋾"],[6,"⌅"],[0,"⌆"],[1,"⌈"],[0,"⌉"],[0,"⌊"],[0,"⌋"],[0,"⌌"],[0,"⌍"],[0,"⌎"],[0,"⌏"],[0,"⌐"],[1,"⌒"],[0,"⌓"],[1,"⌕"],[0,"⌖"],[5,"⌜"],[0,"⌝"],[0,"⌞"],[0,"⌟"],[2,"⌢"],[0,"⌣"],[9,"⌭"],[0,"⌮"],[7,"⌶"],[6,"⌽"],[1,"⌿"],[60,"⍼"],[51,"⎰"],[0,"⎱"],[2,"⎴"],[0,"⎵"],[0,"⎶"],[37,"⏜"],[0,"⏝"],[0,"⏞"],[0,"⏟"],[2,"⏢"],[4,"⏧"],[59,"␣"],[164,"Ⓢ"],[55,"─"],[1,"│"],[9,"┌"],[3,"┐"],[3,"└"],[3,"┘"],[3,"├"],[7,"┤"],[7,"┬"],[7,"┴"],[7,"┼"],[19,"═"],[0,"║"],[0,"╒"],[0,"╓"],[0,"╔"],[0,"╕"],[0,"╖"],[0,"╗"],[0,"╘"],[0,"╙"],[0,"╚"],[0,"╛"],[0,"╜"],[0,"╝"],[0,"╞"],[0,"╟"],[0,"╠"],[0,"╡"],[0,"╢"],[0,"╣"],[0,"╤"],[0,"╥"],[0,"╦"],[0,"╧"],[0,"╨"],[0,"╩"],[0,"╪"],[0,"╫"],[0,"╬"],[19,"▀"],[3,"▄"],[3,"█"],[8,"░"],[0,"▒"],[0,"▓"],[13,"□"],[8,"▪"],[0,"▫"],[1,"▭"],[0,"▮"],[2,"▱"],[1,"△"],[0,"▴"],[0,"▵"],[2,"▸"],[0,"▹"],[3,"▽"],[0,"▾"],[0,"▿"],[2,"◂"],[0,"◃"],[6,"◊"],[0,"○"],[32,"◬"],[2,"◯"],[8,"◸"],[0,"◹"],[0,"◺"],[0,"◻"],[0,"◼"],[8,"★"],[0,"☆"],[7,"☎"],[49,"♀"],[1,"♂"],[29,"♠"],[2,"♣"],[1,"♥"],[0,"♦"],[3,"♪"],[2,"♭"],[0,"♮"],[0,"♯"],[163,"✓"],[3,"✗"],[8,"✠"],[21,"✶"],[33,"❘"],[25,"❲"],[0,"❳"],[84,"⟈"],[0,"⟉"],[28,"⟦"],[0,"⟧"],[0,"⟨"],[0,"⟩"],[0,"⟪"],[0,"⟫"],[0,"⟬"],[0,"⟭"],[7,"⟵"],[0,"⟶"],[0,"⟷"],[0,"⟸"],[0,"⟹"],[0,"⟺"],[1,"⟼"],[2,"⟿"],[258,"⤂"],[0,"⤃"],[0,"⤄"],[0,"⤅"],[6,"⤌"],[0,"⤍"],[0,"⤎"],[0,"⤏"],[0,"⤐"],[0,"⤑"],[0,"⤒"],[0,"⤓"],[2,"⤖"],[2,"⤙"],[0,"⤚"],[0,"⤛"],[0,"⤜"],[0,"⤝"],[0,"⤞"],[0,"⤟"],[0,"⤠"],[2,"⤣"],[0,"⤤"],[0,"⤥"],[0,"⤦"],[0,"⤧"],[0,"⤨"],[0,"⤩"],[0,"⤪"],[8,{v:"⤳",n:824,o:"⤳̸"}],[1,"⤵"],[0,"⤶"],[0,"⤷"],[0,"⤸"],[0,"⤹"],[2,"⤼"],[0,"⤽"],[7,"⥅"],[2,"⥈"],[0,"⥉"],[0,"⥊"],[0,"⥋"],[2,"⥎"],[0,"⥏"],[0,"⥐"],[0,"⥑"],[0,"⥒"],[0,"⥓"],[0,"⥔"],[0,"⥕"],[0,"⥖"],[0,"⥗"],[0,"⥘"],[0,"⥙"],[0,"⥚"],[0,"⥛"],[0,"⥜"],[0,"⥝"],[0,"⥞"],[0,"⥟"],[0,"⥠"],[0,"⥡"],[0,"⥢"],[0,"⥣"],[0,"⥤"],[0,"⥥"],[0,"⥦"],[0,"⥧"],[0,"⥨"],[0,"⥩"],[0,"⥪"],[0,"⥫"],[0,"⥬"],[0,"⥭"],[0,"⥮"],[0,"⥯"],[0,"⥰"],[0,"⥱"],[0,"⥲"],[0,"⥳"],[0,"⥴"],[0,"⥵"],[0,"⥶"],[1,"⥸"],[0,"⥹"],[1,"⥻"],[0,"⥼"],[0,"⥽"],[0,"⥾"],[0,"⥿"],[5,"⦅"],[0,"⦆"],[4,"⦋"],[0,"⦌"],[0,"⦍"],[0,"⦎"],[0,"⦏"],[0,"⦐"],[0,"⦑"],[0,"⦒"],[0,"⦓"],[0,"⦔"],[0,"⦕"],[0,"⦖"],[3,"⦚"],[1,"⦜"],[0,"⦝"],[6,"⦤"],[0,"⦥"],[0,"⦦"],[0,"⦧"],[0,"⦨"],[0,"⦩"],[0,"⦪"],[0,"⦫"],[0,"⦬"],[0,"⦭"],[0,"⦮"],[0,"⦯"],[0,"⦰"],[0,"⦱"],[0,"⦲"],[0,"⦳"],[0,"⦴"],[0,"⦵"],[0,"⦶"],[0,"⦷"],[1,"⦹"],[1,"⦻"],[0,"⦼"],[1,"⦾"],[0,"⦿"],[0,"⧀"],[0,"⧁"],[0,"⧂"],[0,"⧃"],[0,"⧄"],[0,"⧅"],[3,"⧉"],[3,"⧍"],[0,"⧎"],[0,{v:"⧏",n:824,o:"⧏̸"}],[0,{v:"⧐",n:824,o:"⧐̸"}],[11,"⧜"],[0,"⧝"],[0,"⧞"],[4,"⧣"],[0,"⧤"],[0,"⧥"],[5,"⧫"],[8,"⧴"],[1,"⧶"],[9,"⨀"],[0,"⨁"],[0,"⨂"],[1,"⨄"],[1,"⨆"],[5,"⨌"],[0,"⨍"],[2,"⨐"],[0,"⨑"],[0,"⨒"],[0,"⨓"],[0,"⨔"],[0,"⨕"],[0,"⨖"],[0,"⨗"],[10,"⨢"],[0,"⨣"],[0,"⨤"],[0,"⨥"],[0,"⨦"],[0,"⨧"],[1,"⨩"],[0,"⨪"],[2,"⨭"],[0,"⨮"],[0,"⨯"],[0,"⨰"],[0,"⨱"],[1,"⨳"],[0,"⨴"],[0,"⨵"],[0,"⨶"],[0,"⨷"],[0,"⨸"],[0,"⨹"],[0,"⨺"],[0,"⨻"],[0,"⨼"],[2,"⨿"],[0,"⩀"],[1,"⩂"],[0,"⩃"],[0,"⩄"],[0,"⩅"],[0,"⩆"],[0,"⩇"],[0,"⩈"],[0,"⩉"],[0,"⩊"],[0,"⩋"],[0,"⩌"],[0,"⩍"],[2,"⩐"],[2,"⩓"],[0,"⩔"],[0,"⩕"],[0,"⩖"],[0,"⩗"],[0,"⩘"],[1,"⩚"],[0,"⩛"],[0,"⩜"],[0,"⩝"],[1,"⩟"],[6,"⩦"],[3,"⩪"],[2,{v:"⩭",n:824,o:"⩭̸"}],[0,"⩮"],[0,"⩯"],[0,{v:"⩰",n:824,o:"⩰̸"}],[0,"⩱"],[0,"⩲"],[0,"⩳"],[0,"⩴"],[0,"⩵"],[1,"⩷"],[0,"⩸"],[0,"⩹"],[0,"⩺"],[0,"⩻"],[0,"⩼"],[0,{v:"⩽",n:824,o:"⩽̸"}],[0,{v:"⩾",n:824,o:"⩾̸"}],[0,"⩿"],[0,"⪀"],[0,"⪁"],[0,"⪂"],[0,"⪃"],[0,"⪄"],[0,"⪅"],[0,"⪆"],[0,"⪇"],[0,"⪈"],[0,"⪉"],[0,"⪊"],[0,"⪋"],[0,"⪌"],[0,"⪍"],[0,"⪎"],[0,"⪏"],[0,"⪐"],[0,"⪑"],[0,"⪒"],[0,"⪓"],[0,"⪔"],[0,"⪕"],[0,"⪖"],[0,"⪗"],[0,"⪘"],[0,"⪙"],[0,"⪚"],[2,"⪝"],[0,"⪞"],[0,"⪟"],[0,"⪠"],[0,{v:"⪡",n:824,o:"⪡̸"}],[0,{v:"⪢",n:824,o:"⪢̸"}],[1,"⪤"],[0,"⪥"],[0,"⪦"],[0,"⪧"],[0,"⪨"],[0,"⪩"],[0,"⪪"],[0,"⪫"],[0,{v:"⪬",n:65024,o:"⪬︀"}],[0,{v:"⪭",n:65024,o:"⪭︀"}],[0,"⪮"],[0,{v:"⪯",n:824,o:"⪯̸"}],[0,{v:"⪰",n:824,o:"⪰̸"}],[2,"⪳"],[0,"⪴"],[0,"⪵"],[0,"⪶"],[0,"⪷"],[0,"⪸"],[0,"⪹"],[0,"⪺"],[0,"⪻"],[0,"⪼"],[0,"⪽"],[0,"⪾"],[0,"⪿"],[0,"⫀"],[0,"⫁"],[0,"⫂"],[0,"⫃"],[0,"⫄"],[0,{v:"⫅",n:824,o:"⫅̸"}],[0,{v:"⫆",n:824,o:"⫆̸"}],[0,"⫇"],[0,"⫈"],[2,{v:"⫋",n:65024,o:"⫋︀"}],[0,{v:"⫌",n:65024,o:"⫌︀"}],[2,"⫏"],[0,"⫐"],[0,"⫑"],[0,"⫒"],[0,"⫓"],[0,"⫔"],[0,"⫕"],[0,"⫖"],[0,"⫗"],[0,"⫘"],[0,"⫙"],[0,"⫚"],[0,"⫛"],[8,"⫤"],[1,"⫦"],[0,"⫧"],[0,"⫨"],[0,"⫩"],[1,"⫫"],[0,"⫬"],[0,"⫭"],[0,"⫮"],[0,"⫯"],[0,"⫰"],[0,"⫱"],[0,"⫲"],[0,"⫳"],[9,{v:"⫽",n:8421,o:"⫽⃥"}],[44343,{n:new Map(Tt([[56476,"𝒜"],[1,"𝒞"],[0,"𝒟"],[2,"𝒢"],[2,"𝒥"],[0,"𝒦"],[2,"𝒩"],[0,"𝒪"],[0,"𝒫"],[0,"𝒬"],[1,"𝒮"],[0,"𝒯"],[0,"𝒰"],[0,"𝒱"],[0,"𝒲"],[0,"𝒳"],[0,"𝒴"],[0,"𝒵"],[0,"𝒶"],[0,"𝒷"],[0,"𝒸"],[0,"𝒹"],[1,"𝒻"],[1,"𝒽"],[0,"𝒾"],[0,"𝒿"],[0,"𝓀"],[0,"𝓁"],[0,"𝓂"],[0,"𝓃"],[1,"𝓅"],[0,"𝓆"],[0,"𝓇"],[0,"𝓈"],[0,"𝓉"],[0,"𝓊"],[0,"𝓋"],[0,"𝓌"],[0,"𝓍"],[0,"𝓎"],[0,"𝓏"],[52,"𝔄"],[0,"𝔅"],[1,"𝔇"],[0,"𝔈"],[0,"𝔉"],[0,"𝔊"],[2,"𝔍"],[0,"𝔎"],[0,"𝔏"],[0,"𝔐"],[0,"𝔑"],[0,"𝔒"],[0,"𝔓"],[0,"𝔔"],[1,"𝔖"],[0,"𝔗"],[0,"𝔘"],[0,"𝔙"],[0,"𝔚"],[0,"𝔛"],[0,"𝔜"],[1,"𝔞"],[0,"𝔟"],[0,"𝔠"],[0,"𝔡"],[0,"𝔢"],[0,"𝔣"],[0,"𝔤"],[0,"𝔥"],[0,"𝔦"],[0,"𝔧"],[0,"𝔨"],[0,"𝔩"],[0,"𝔪"],[0,"𝔫"],[0,"𝔬"],[0,"𝔭"],[0,"𝔮"],[0,"𝔯"],[0,"𝔰"],[0,"𝔱"],[0,"𝔲"],[0,"𝔳"],[0,"𝔴"],[0,"𝔵"],[0,"𝔶"],[0,"𝔷"],[0,"𝔸"],[0,"𝔹"],[1,"𝔻"],[0,"𝔼"],[0,"𝔽"],[0,"𝔾"],[1,"𝕀"],[0,"𝕁"],[0,"𝕂"],[0,"𝕃"],[0,"𝕄"],[1,"𝕆"],[3,"𝕊"],[0,"𝕋"],[0,"𝕌"],[0,"𝕍"],[0,"𝕎"],[0,"𝕏"],[0,"𝕐"],[1,"𝕒"],[0,"𝕓"],[0,"𝕔"],[0,"𝕕"],[0,"𝕖"],[0,"𝕗"],[0,"𝕘"],[0,"𝕙"],[0,"𝕚"],[0,"𝕛"],[0,"𝕜"],[0,"𝕝"],[0,"𝕞"],[0,"𝕟"],[0,"𝕠"],[0,"𝕡"],[0,"𝕢"],[0,"𝕣"],[0,"𝕤"],[0,"𝕥"],[0,"𝕦"],[0,"𝕧"],[0,"𝕨"],[0,"𝕩"],[0,"𝕪"],[0,"𝕫"]]))}],[8906,"ff"],[0,"fi"],[0,"fl"],[0,"ffi"],[0,"ffl"]])),wi=/["&'<>$\x80-\uFFFF]/g,fr=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),Na=String.prototype.codePointAt!=null?(t,e)=>t.codePointAt(e):(t,e)=>(t.charCodeAt(e)&64512)===55296?(t.charCodeAt(e)-55296)*1024+t.charCodeAt(e+1)-56320+65536:t.charCodeAt(e);function mr(t){let e="",u=0,i;for(;(i=wi.exec(t))!==null;){let r=i.index,n=t.charCodeAt(r),a=fr.get(n);a!==void 0?(e+=t.substring(u,r)+a,u=r+1):(e+=`${t.substring(u,r)}&#x${Na(t,r).toString(16)};`,u=wi.lastIndex+=+((n&64512)===55296))}return e+t.substr(u)}function Ne(t,e){return function(u){let i,r=0,n="";for(;i=t.exec(u);)r!==i.index&&(n+=u.substring(r,i.index)),n+=e.get(i[0].charCodeAt(0)),r=i.index+1;return n+u.substring(r)}}var y0=Ne(/[&<>'"]/g,fr),$a=Ne(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),Pa=Ne(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]])),yi;(function(t){t[t.XML=0]="XML",t[t.HTML=1]="HTML"})(yi||(yi={}));var Fi;(function(t){t[t.UTF8=0]="UTF8",t[t.ASCII=1]="ASCII",t[t.Extensive=2]="Extensive",t[t.Attribute=3]="Attribute",t[t.Text=4]="Text"})(Fi||(Fi={}));var Ra=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(t=>[t.toLowerCase(),t])),qa=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(t=>[t.toLowerCase(),t])),Oa=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function Ma(t){return t.replace(/"/g,""")}function Ua(t,e){var u;if(!t)return;let i=((u=e.encodeEntities)!==null&&u!==void 0?u:e.decodeEntities)===!1?Ma:e.xmlMode||e.encodeEntities!=="utf8"?mr:$a;return Object.keys(t).map(r=>{var n,a;let s=(n=t[r])!==null&&n!==void 0?n:"";return e.xmlMode==="foreign"&&(r=(a=qa.get(r))!==null&&a!==void 0?a:r),!e.emptyAttrs&&!e.xmlMode&&s===""?r:`${r}="${i(s)}"`}).join(" ")}var vi=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function Vt(t,e={}){let u="length"in t?t:[t],i="";for(let r=0;r<u.length;r++)i+=Ha(u[r],e);return i}function Ha(t,e){switch(t.type){case Jr:return Vt(t.children,e);case rn:case Zr:return Ga(t);case Qr:return Ja(t);case un:return Ka(t);case Xr:case tn:case en:return Wa(t,e);case Yr:return za(t,e)}}var ja=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),Va=new Set(["svg","math"]);function Wa(t,e){var u;e.xmlMode==="foreign"&&(t.name=(u=Ra.get(t.name))!==null&&u!==void 0?u:t.name,t.parent&&ja.has(t.parent.name)&&(e={...e,xmlMode:!1})),!e.xmlMode&&Va.has(t.name)&&(e={...e,xmlMode:"foreign"});let i=`<${t.name}`,r=Ua(t.attribs,e);return r&&(i+=` ${r}`),t.children.length===0&&(e.xmlMode?e.selfClosingTags!==!1:e.selfClosingTags&&vi.has(t.name))?(e.xmlMode||(i+=" "),i+="/>"):(i+=">",t.children.length>0&&(i+=Vt(t.children,e)),(e.xmlMode||!vi.has(t.name))&&(i+=`</${t.name}>`)),i}function Ga(t){return`<${t.data}>`}function za(t,e){var u;let i=t.data||"";return((u=e.encodeEntities)!==null&&u!==void 0?u:e.decodeEntities)!==!1&&!(!e.xmlMode&&t.parent&&Oa.has(t.parent.name))&&(i=e.xmlMode||e.encodeEntities!=="utf8"?mr(i):Pa(i)),i}function Ka(t){return`<![CDATA[${t.children[0].data}]]>`}function Ja(t){return`<!--${t.data}-->`}var ki;(function(t){t[t.DISCONNECTED=1]="DISCONNECTED",t[t.PRECEDING=2]="PRECEDING",t[t.FOLLOWING=4]="FOLLOWING",t[t.CONTAINS=8]="CONTAINS",t[t.CONTAINED_BY=16]="CONTAINED_BY"})(ki||(ki={}));function Ya(t,e){let u=new ln(void 0,e);return new La(u,e).end(t),u.root}var xr=te(Rr(),1);function $e(t,e,u=()=>{}){if(t===void 0){let i=function(...r){return e(i,...r)};return i}return t>=0?function(...i){return e($e(t-1,e,u),...i)}:u}function Ar(t,e){let u=0,i=t.length;for(;u<i&&t[u]===e;)++u;for(;i>u&&t[i-1]===e;)--i;return u>0||i<t.length?t.substring(u,i):t}function Za(t,e){let u=t.length;for(;u>0&&t[u-1]===e;)--u;return u<t.length?t.substring(0,u):t}function Qa(t){return t.replace(/[\s\S]/g,e=>"\\u"+e.charCodeAt().toString(16).padStart(4,"0"))}function Er(t,e){let u=new Map;for(let i=t.length;i-- >0;){let r=t[i],n=e(r);u.set(n,u.has(n)?(0,xr.default)(r,u.get(n),{arrayMerge:Xa}):r)}return[...u.values()].reverse()}var Xa=(t,e,u)=>[...e];function ft(t,e){for(let u of e){if(!t)return;t=t[u]}return t}function Si(t,e="a",u=26){let i=[];do t-=1,i.push(t%u),t=t/u>>0;while(t>0);let r=e.charCodeAt(0);return i.reverse().map(n=>String.fromCharCode(r+n)).join("")}var pe=["I","X","C","M"],Ti=["V","L","D"];function _i(t){return[...t+""].map(e=>+e).reverse().map((e,u)=>e%5<4?(e<5?"":Ti[u])+pe[u].repeat(e%5):pe[u]+(e<5?Ti[u]:pe[u+1])).reverse().join("")}var Br=class{constructor(t,e=void 0){this.lines=[],this.nextLineWords=[],this.maxLineLength=e||t.wordwrap||Number.MAX_VALUE,this.nextLineAvailableChars=this.maxLineLength,this.wrapCharacters=ft(t,["longWordSplit","wrapCharacters"])||[],this.forceWrapOnLimit=ft(t,["longWordSplit","forceWrapOnLimit"])||!1,this.stashedSpace=!1,this.wordBreakOpportunity=!1}pushWord(t,e=!1){this.nextLineAvailableChars<=0&&!e&&this.startNewLine();let u=this.nextLineWords.length===0,i=t.length+(u?0:1);if(i<=this.nextLineAvailableChars||e)this.nextLineWords.push(t),this.nextLineAvailableChars-=i;else{let[r,...n]=this.splitLongWord(t);u||this.startNewLine(),this.nextLineWords.push(r),this.nextLineAvailableChars-=r.length;for(let a of n)this.startNewLine(),this.nextLineWords.push(a),this.nextLineAvailableChars-=a.length}}popWord(){let t=this.nextLineWords.pop();if(t!==void 0){let e=this.nextLineWords.length===0,u=t.length+(e?0:1);this.nextLineAvailableChars+=u}return t}concatWord(t,e=!1){if(this.wordBreakOpportunity&&t.length>this.nextLineAvailableChars)this.pushWord(t,e),this.wordBreakOpportunity=!1;else{let u=this.popWord();this.pushWord(u?u.concat(t):t,e)}}startNewLine(t=1){this.lines.push(this.nextLineWords),t>1&&this.lines.push(...Array.from({length:t-1},()=>[])),this.nextLineWords=[],this.nextLineAvailableChars=this.maxLineLength}isEmpty(){return this.lines.length===0&&this.nextLineWords.length===0}clear(){this.lines.length=0,this.nextLineWords.length=0,this.nextLineAvailableChars=this.maxLineLength}toString(){return[...this.lines,this.nextLineWords].map(t=>t.join(" ")).join(`
|
|
9
|
-
`)}splitLongWord(t){let e=[],u=0;for(;t.length>this.maxLineLength;){let i=t.substring(0,this.maxLineLength),r=t.substring(this.maxLineLength),n=i.lastIndexOf(this.wrapCharacters[u]);if(n>-1)t=i.substring(n+1)+r,e.push(i.substring(0,n+1));else if(u++,u<this.wrapCharacters.length)t=i+r;else{if(this.forceWrapOnLimit){if(e.push(i),t=r,t.length>this.maxLineLength)continue}else t=i+r;break}}return e.push(t),e}},bt=class{constructor(t=null){this.next=t}getRoot(){return this.next?this.next:this}},G=class extends bt{constructor(t,e=null,u=1,i=void 0){super(e),this.leadingLineBreaks=u,this.inlineTextBuilder=new
|
|
4
|
+
import{a as cu,b as lu,c as xt,d as hu,e as du,f as pu,g as gu,h as fu,i as mu,l as xu,m as Au,p as ee,s as Eu}from"./chunk-4DIUHKFB.js";import{a as ru,b as nu,d as au,g as su,h as Xt}from"./chunk-2BZVD336.js";import{a as vt,c as Zu,d as Qu,e as Xu,f as ne,g as ae,h as se}from"./chunk-5GG34OWS.js";import{a as ue,b as H,c as ie,d as Bu,l as re,n as Cu,o as Ft}from"./chunk-OZ36UVHR.js";import{a as k}from"./chunk-UBUBM7F7.js";import{A as Ku,B as Ju,E as Yu,a as Du,b as bu,c as wu,d as yu,e as Fu,f as vu,g as ku,h as Su,i as Tu,j as Lu,k as _u,l as Iu,m as Nu,n as $u,o as Pu,p as Ru,q as qu,r as Ou,s as Mu,t as Uu,u as Hu,v as ju,w as Vu,x as Wu,y as Gu,z as zu}from"./chunk-XWDTDVL5.js";import{b as iu,d as c}from"./chunk-HBXQFJ2K.js";import{a as ou,c as Z,d as te}from"./chunk-ETDHHU35.js";import{c as Qt,e as _r}from"./chunk-LM633YUO.js";var ei=Qt((Lo,ti)=>{"use strict";function V(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}ti.exports=V;V.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};V.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};V.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.push(t),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var u=this._timeouts.shift();if(u===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),u=this._cachedTimeouts.slice(-1);else return!1;var i=this;return this._timer=setTimeout(function(){i._attempts++,i._operationTimeoutCb&&(i._timeout=setTimeout(function(){i._operationTimeoutCb(i._attempts)},i._operationTimeout),i._options.unref&&i._timeout.unref()),i._fn(i._attempts)},u),this._options.unref&&this._timer.unref(),!0};V.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var u=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){u._operationTimeoutCb()},u._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};V.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};V.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};V.prototype.start=V.prototype.try;V.prototype.errors=function(){return this._errors};V.prototype.attempts=function(){return this._attempts};V.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,u=0,i=0;i<this._errors.length;i++){var r=this._errors[i],n=r.message,a=(t[n]||0)+1;t[n]=a,a>=u&&(e=r,u=a)}return e}});var ui=Qt(ut=>{"use strict";var Ir=ei();ut.operation=function(t){var e=ut.timeouts(t);return new Ir(e,{forever:t&&(t.forever||t.retries===1/0),unref:t&&t.unref,maxRetryTime:t&&t.maxRetryTime})};ut.timeouts=function(t){if(t instanceof Array)return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var u in t)e[u]=t[u];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var i=[],r=0;r<e.retries;r++)i.push(this.createTimeout(r,e));return t&&t.forever&&!i.length&&i.push(this.createTimeout(r,e)),i.sort(function(n,a){return n-a}),i};ut.createTimeout=function(t,e){var u=e.randomize?Math.random()+1:1,i=Math.round(u*Math.max(e.minTimeout,1)*Math.pow(e.factor,t));return i=Math.min(i,e.maxTimeout),i};ut.wrap=function(t,e,u){if(e instanceof Array&&(u=e,e=null),!u){u=[];for(var i in t)typeof t[i]=="function"&&u.push(i)}for(var r=0;r<u.length;r++){var n=u[r],a=t[n];t[n]=function(o){var l=ut.operation(e),p=Array.prototype.slice.call(arguments,1),A=p.pop();p.push(function(E){l.retry(E)||(E&&(arguments[0]=l.mainError()),A.apply(this,arguments))}),l.attempt(function(){o.apply(t,p)})}.bind(t,a),t[n].options=e}}});var ri=Qt((Io,ii)=>{"use strict";ii.exports=ui()});import{createRequire as Rr}from"module";import*as ji from"fs/promises";import*as Ut from"vm";import*as be from"fs/promises";import{z as si}from"zod";import{z as Q}from"zod";import Rt from"fs";import It from"path";import{chromium as Ri,firefox as no,webkit as ao}from"playwright";import*as Tr from"fs";import*as Bt from"path";import*as R from"fs";import*as M from"path";import{z as qi}from"zod";import*as Wt from"fs";var ai=_r(ri(),1);var Nr=Object.prototype.toString,$r=t=>Nr.call(t)==="[object Error]",Pr=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed","terminated"]);function oe(t){return t&&$r(t)&&t.name==="TypeError"&&typeof t.message=="string"?t.message==="Load failed"?t.stack===void 0:Pr.has(t.message):!1}var ce=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}},ni=(t,e,u)=>{let i=u.retries-(e-1);return t.attemptNumber=e,t.retriesLeft=i,t};async function le(t,e){return new Promise((u,i)=>{e={...e},e.onFailedAttempt??=()=>{},e.shouldRetry??=()=>!0,e.retries??=10;let r=ai.default.operation(e),n=()=>{r.stop(),i(e.signal?.reason)};e.signal&&!e.signal.aborted&&e.signal.addEventListener("abort",n,{once:!0});let a=()=>{e.signal?.removeEventListener("abort",n),r.stop()};r.attempt(async s=>{try{let o=await t(s);a(),u(o)}catch(o){try{if(!(o instanceof Error))throw new TypeError(`Non-error was thrown: "${o}". You should only throw errors.`);if(o instanceof ce)throw o.originalError;if(o instanceof TypeError&&!oe(o))throw o;if(ni(o,s,e),await e.shouldRetry(o)||(r.stop(),i(o)),await e.onFailedAttempt(o),!r.retry(o))throw r.mainError()}catch(l){ni(l,s,e),a(),i(l)}}})})}import{z as Nt}from"zod";var s0=Rr(import.meta.url),qr=Z((t,e)=>{"use strict";var u=function(f){return i(f)&&!r(f)};function i(f){return!!f&&typeof f=="object"}function r(f){var D=Object.prototype.toString.call(f);return D==="[object RegExp]"||D==="[object Date]"||s(f)}var n=typeof Symbol=="function"&&Symbol.for,a=n?Symbol.for("react.element"):60103;function s(f){return f.$$typeof===a}function o(f){return Array.isArray(f)?[]:{}}function l(f,D){return D.clone!==!1&&D.isMergeableObject(f)?w(o(f),f,D):f}function p(f,D,F){return f.concat(D).map(function(L){return l(L,F)})}function A(f,D){if(!D.customMerge)return w;var F=D.customMerge(f);return typeof F=="function"?F:w}function E(f){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(f).filter(function(D){return Object.propertyIsEnumerable.call(f,D)}):[]}function x(f){return Object.keys(f).concat(E(f))}function B(f,D){try{return D in f}catch{return!1}}function y(f,D){return B(f,D)&&!(Object.hasOwnProperty.call(f,D)&&Object.propertyIsEnumerable.call(f,D))}function b(f,D,F){var L={};return F.isMergeableObject(f)&&x(f).forEach(function($){L[$]=l(f[$],F)}),x(D).forEach(function($){y(f,$)||(B(f,$)&&F.isMergeableObject(D[$])?L[$]=A($,F)(f[$],D[$],F):L[$]=l(D[$],F))}),L}function w(f,D,F){F=F||{},F.arrayMerge=F.arrayMerge||p,F.isMergeableObject=F.isMergeableObject||u,F.cloneUnlessOtherwiseSpecified=l;var L=Array.isArray(D),$=Array.isArray(f),Y=L===$;return Y?L?F.arrayMerge(f,D,F):b(f,D,F):l(D,F)}w.all=function(f,D){if(!Array.isArray(f))throw new Error("first argument should be an array");return f.reduce(function(F,L){return w(F,L,D)},{})};var _=w;e.exports=_}),Or=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(n){return n&&typeof n=="object"&&"default"in n?n.default:n}var u=e(ou("crypto")),i=(n,a,s)=>u.createHmac(n,Buffer.from(a,"hex")).update(Buffer.from(s,"hex")).digest().toString("hex"),r=(n,a)=>u.randomBytes(n).toString(a);t.createDigest=i,t.createRandomBytes=r}),Mr=Z(t=>{"use strict";var e="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",u=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function i(r){var n=Math.floor(r.length/5);return r.length%5===0?n:n+1}t.encode=function(r){Buffer.isBuffer(r)||(r=new Buffer(r));for(var n=0,a=0,s=0,o=0,l=new Buffer(i(r)*8);n<r.length;){var p=r[n];s>3?(o=p&255>>s,s=(s+5)%8,o=o<<s|(n+1<r.length?r[n+1]:0)>>8-s,n++):(o=p>>8-(s+5)&31,s=(s+5)%8,s===0&&n++),l[a]=e.charCodeAt(o),a++}for(n=a;n<l.length;n++)l[n]=61;return l},t.decode=function(r){var n=0,a=0,s,o=0;Buffer.isBuffer(r)||(r=new Buffer(r));for(var l=new Buffer(Math.ceil(r.length*5/8)),p=0;p<r.length&&r[p]!==61;p++){var A=r[p]-48;if(A<u.length)a=u[A],n<=3?(n=(n+5)%8,n===0?(s|=a,l[o]=s,o++,s=0):s|=255&a<<8-n):(n=(n+5)%8,s|=255&a>>>n,l[o]=s,o++,s=255&a<<8-n);else throw new Error("Invalid input - it is not base32 encoded string")}return l.slice(0,o)}}),Ur=Z(t=>{"use strict";var e=Mr();t.encode=e.encode,t.decode=e.decode}),Hr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(n){return n&&typeof n=="object"&&"default"in n?n.default:n}var u=e(Ur()),i=(n,a)=>u.decode(n).toString(a),r=(n,a)=>u.encode(Buffer.from(n,a).toString("ascii")).toString().replace(/=/g,"");t.keyDecoder=i,t.keyEncoder=r}),jr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(d){return Object.keys(d).map(h=>d[h])}(function(d){d.SHA1="sha1",d.SHA256="sha256",d.SHA512="sha512"})(t.HashAlgorithms||(t.HashAlgorithms={}));var u=e(t.HashAlgorithms);(function(d){d.ASCII="ascii",d.BASE64="base64",d.HEX="hex",d.LATIN1="latin1",d.UTF8="utf8"})(t.KeyEncodings||(t.KeyEncodings={}));var i=e(t.KeyEncodings);(function(d){d.HOTP="hotp",d.TOTP="totp"})(t.Strategy||(t.Strategy={}));var r=e(t.Strategy),n=()=>{throw new Error("Please provide an options.createDigest implementation.")};function a(d){return/^(\d+)$/.test(d)}function s(d,h,m){return d.length>=h?d:`${Array(h+1).join(m)}${d}`.slice(-1*h)}function o(d){let h=`otpauth://${d.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,m=[];if(r.indexOf(d.type)<0)throw new Error(`Expecting options.type to be one of ${r.join(", ")}. Received ${d.type}.`);if(d.type==="hotp"){if(d.counter==null||typeof d.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');m.push(`&counter=${d.counter}`)}return d.type==="totp"&&d.step&&m.push(`&period=${d.step}`),d.digits&&m.push(`&digits=${d.digits}`),d.algorithm&&m.push(`&algorithm=${d.algorithm.toUpperCase()}`),d.issuer&&m.push(`&issuer=${encodeURIComponent(d.issuer)}`),h.replace("{labelPrefix}",encodeURIComponent(d.issuer||d.accountName)).replace("{accountName}",encodeURIComponent(d.accountName)).replace("{secret}",d.secret).replace("{query}",m.join(""))}var l=class Oi{constructor(h={}){this._defaultOptions=Object.freeze({...h}),this._options=Object.freeze({})}create(h={}){return new Oi(h)}clone(h={}){let m=this.create({...this._defaultOptions,...h});return m.options=this._options,m}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(h){this._options=Object.freeze({...this._options,...h})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function p(d){if(typeof d.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof d.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof d.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!d.algorithm||u.indexOf(d.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${u.join(", ")}. Received ${d.algorithm}.`);if(!d.encoding||i.indexOf(d.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${i.join(", ")}. Received ${d.encoding}.`)}var A=(d,h,m)=>Buffer.from(h,m).toString("hex");function E(){return{algorithm:t.HashAlgorithms.SHA1,createHmacKey:A,createDigest:n,digits:6,encoding:t.KeyEncodings.ASCII}}function x(d){let h={...E(),...d};return p(h),Object.freeze(h)}function B(d){let h=d.toString(16);return s(h,16,"0")}function y(d,h){let m=Buffer.from(d,"hex"),v=m[m.length-1]&15,I=((m[v]&127)<<24|(m[v+1]&255)<<16|(m[v+2]&255)<<8|m[v+3]&255)%Math.pow(10,h);return s(String(I),h,"0")}function b(d,h,m){let v=B(h),I=m.createHmacKey(m.algorithm,d,m.encoding);return m.createDigest(m.algorithm,I,v)}function w(d,h,m){let v=m.digest||b(d,h,m);return y(v,m.digits)}function _(d,h,m,v){if(!a(d))return!1;let I=w(h,m,v);return d===I}function f(d,h,m,v,I){return o({algorithm:I.algorithm,digits:I.digits,type:t.Strategy.HOTP,accountName:d,counter:v,issuer:h,secret:m})}var D=class Mi extends l{create(h={}){return new Mi(h)}allOptions(){return x(this.options)}generate(h,m){return w(h,m,this.allOptions())}check(h,m,v){return _(h,m,v,this.allOptions())}verify(h){if(typeof h!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(h.token,h.secret,h.counter)}keyuri(h,m,v,I){return f(h,m,v,I,this.allOptions())}};function F(d){if(typeof d=="number")return[Math.abs(d),Math.abs(d)];if(Array.isArray(d)){let[h,m]=d;if(typeof h=="number"&&typeof m=="number")return[Math.abs(h),Math.abs(m)]}throw new Error("Expecting options.window to be an number or [number, number].")}function L(d){if(p(d),F(d.window),typeof d.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof d.step!="number")throw new Error("Expecting options.step to be a number.")}var $=(d,h,m)=>{let v=d.length,I=Buffer.from(d,h).toString("hex");if(v<m){let et=new Array(m-v+1).join(I);return Buffer.from(et,"hex").slice(0,m).toString("hex")}return I},Y=(d,h,m)=>{switch(d){case t.HashAlgorithms.SHA1:return $(h,m,20);case t.HashAlgorithms.SHA256:return $(h,m,32);case t.HashAlgorithms.SHA512:return $(h,m,64);default:throw new Error(`Expecting algorithm to be one of ${u.join(", ")}. Received ${d}.`)}};function ot(){return{algorithm:t.HashAlgorithms.SHA1,createDigest:n,createHmacKey:Y,digits:6,encoding:t.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function ct(d){let h={...ot(),...d};return L(h),Object.freeze(h)}function lt(d,h){return Math.floor(d/h/1e3)}function wt(d,h){let m=lt(h.epoch,h.step);return w(d,m,h)}function Ge(d,h,m,v){let I=[];if(v===0)return I;for(let et=1;et<=v;et++){let Zt=h*et*m;I.push(d+Zt)}return I}function ze(d,h,m){let v=F(m),I=h*1e3;return{current:d,past:Ge(d,-1,I,v[0]),future:Ge(d,1,I,v[1])}}function Gt(d,h,m){if(!a(d))return!1;let v=wt(h,m);return d===v}function zt(d,h,m,v){let I=null;return d.some((et,Zt)=>Gt(h,m,{...v,epoch:et})?(I=Zt+1,!0):!1),I}function Kt(d,h,m){if(Gt(d,h,m))return 0;let v=ze(m.epoch,m.step,m.window),I=zt(v.past,d,h,m);return I!==null?I*-1:zt(v.future,d,h,m)}function Jt(d,h){return Math.floor(d/1e3)%h}function Ke(d,h){return h-Jt(d,h)}function Je(d,h,m,v){return o({algorithm:v.algorithm,digits:v.digits,step:v.step,type:t.Strategy.TOTP,accountName:d,issuer:h,secret:m})}var Ye=class Ui extends D{create(h={}){return new Ui(h)}allOptions(){return ct(this.options)}generate(h){return wt(h,this.allOptions())}checkDelta(h,m){return Kt(h,m,this.allOptions())}check(h,m){return typeof this.checkDelta(h,m)=="number"}verify(h){if(typeof h!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(h.token,h.secret)}timeRemaining(){let h=this.allOptions();return Ke(h.epoch,h.step)}timeUsed(){let h=this.allOptions();return Jt(h.epoch,h.step)}keyuri(h,m,v){return Je(h,m,v,this.allOptions())}};function Ze(d){if(L(d),typeof d.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(d.keyEncoder&&typeof d.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function Qe(){return{algorithm:t.HashAlgorithms.SHA1,createDigest:n,createHmacKey:Y,digits:6,encoding:t.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function Xe(d){let h={...Qe(),...d};return Ze(h),Object.freeze(h)}function Yt(d,h){return h.keyEncoder(d,h.encoding)}function yt(d,h){return h.keyDecoder(d,h.encoding)}function tu(d,h){let m=h.createRandomBytes(d,h.encoding);return Yt(m,h)}function eu(d,h){return wt(yt(d,h),h)}function uu(d,h,m){return Kt(d,yt(h,m),m)}var Lr=class Hi extends Ye{create(h={}){return new Hi(h)}allOptions(){return Xe(this.options)}generate(h){return eu(h,this.allOptions())}checkDelta(h,m){return uu(h,m,this.allOptions())}encode(h){return Yt(h,this.allOptions())}decode(h){return yt(h,this.allOptions())}generateSecret(h=10){return tu(h,this.allOptions())}};t.Authenticator=Lr,t.HASH_ALGORITHMS=u,t.HOTP=D,t.KEY_ENCODINGS=i,t.OTP=l,t.STRATEGY=r,t.TOTP=Ye,t.authenticatorCheckWithWindow=uu,t.authenticatorDecoder=yt,t.authenticatorDefaultOptions=Qe,t.authenticatorEncoder=Yt,t.authenticatorGenerateSecret=tu,t.authenticatorOptionValidator=Ze,t.authenticatorOptions=Xe,t.authenticatorToken=eu,t.createDigestPlaceholder=n,t.hotpCheck=_,t.hotpCounter=B,t.hotpCreateHmacKey=A,t.hotpDefaultOptions=E,t.hotpDigestToToken=y,t.hotpKeyuri=f,t.hotpOptions=x,t.hotpOptionsValidator=p,t.hotpToken=w,t.isTokenValid=a,t.keyuri=o,t.objectValues=e,t.padStart=s,t.totpCheck=Gt,t.totpCheckByEpoch=zt,t.totpCheckWithWindow=Kt,t.totpCounter=lt,t.totpCreateHmacKey=Y,t.totpDefaultOptions=ot,t.totpEpochAvailable=ze,t.totpKeyuri=Je,t.totpOptions=ct,t.totpOptionsValidator=L,t.totpPadSecret=$,t.totpTimeRemaining=Ke,t.totpTimeUsed=Jt,t.totpToken=wt}),Vr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e=Or(),u=Hr(),i=jr(),r=new i.HOTP({createDigest:e.createDigest}),n=new i.TOTP({createDigest:e.createDigest}),a=new i.Authenticator({createDigest:e.createDigest,createRandomBytes:e.createRandomBytes,keyDecoder:u.keyDecoder,keyEncoder:u.keyEncoder});t.authenticator=a,t.hotp=r,t.totp=n}),Wr=Z(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e=Vr();Object.keys(e).forEach(function(u){u!=="default"&&Object.defineProperty(t,u,{enumerable:!0,get:function(){return e[u]}})})});function Gr(t,e,u,i=!1){if(t[e])if(i)c.info(`Overriding existing function: ${e}`),delete t[e];else{c.error(`The name ${e} is already defined in the global scope`);return}try{let r;if(Ut.isContext(t)?r=new Ut.Script(u,{importModuleDynamically:async n=>await import(n)}).runInContext(t):r=(0,eval)(u),typeof r!="function")throw new Error("The injected code must be a function");t[e]=r}catch(r){c.error(`Error injecting user function ${e}: ${r.message}`)}}async function x0(t,e,u=!1){try{let i=await ji.readFile(e,"utf8"),r=JSON.parse(i);c.info(`Loading ${Object.keys(r).length} user functions...`);for(let[n,a]of Object.entries(r))Gr(t,n,a,u)}catch(i){throw c.error("Failed to load user functions:",i),i}}async function A0(t){try{let e=await be.readFile(t,"utf8"),u=JSON.parse(e);return c.info(`Loaded ${u.length} knowledges from file`),u}catch(e){if(e.code==="ENOENT")return c.debug("No knowledges file found"),[];throw c.error("Failed to load knowledges:",e),e}}async function E0(t){try{let e=await be.readFile(t,"utf8"),u=JSON.parse(e);return c.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(e){if(e.code==="ENOENT")return c.debug("No knowledge mappings file found"),[];throw c.error("Failed to load knowledge mappings:",e),e}}async function B0(t,e){if(!t.body)throw new Error("Response body is null");let u=t.body.getReader(),i=new TextDecoder,r="";try{for(;;){let{done:n,value:a}=await u.read();if(n)break;r+=i.decode(a,{stream:!0});let s=r.split(`
|
|
5
|
+
`);r=s.pop()||"";for(let o of s){let l=null;if(o.startsWith("data: "))try{let p=o.slice(6);p.trim()&&(l=JSON.parse(p))}catch(p){console.error(`Failed to parse SSE event: ${o}`,p);continue}l&&e(l)}}}finally{u.releaseLock()}}var zr=si.object({instruction:si.string().describe('The instruction of the operation to perform. Can only include one operation. Do not inlcude element indexes just describe the element, e.g. "select the text "Hello, world!" in "Hello, world!""')});function Kr(t){t.register({name:"perform_accurate_operation",description:"Perform an operation that requires accurate interaction like dragging or interacting with a specific area of an element. Only use this action when neccecary.",schema:zr,usesElementIndex:!1,async execute(e,u){let{instruction:i}=e,r={page:u.page,agentServices:u.agentServices,domService:u.domService},n=await Zu(i,r,{});if(n.status==="error"||!n.actionEntity)return{success:!1,actionEntity:{action_description:i,action_data:{action_name:"perform_accurate_operation",kwargs:{instruction:i}}},error:n.error||"Failed to generate action"};let{actionEntity:a}=n,s=await Qu(a,r);return{success:s.success,actionEntity:a,message:s.success?`Successfully executed action: ${a.action_data?.action_name}`:void 0,error:s.error}}})}var S;(function(t){t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"})(S||(S={}));function Jr(t){return t.type===S.Tag||t.type===S.Script||t.type===S.Style}var Yr=S.Root,Zr=S.Text,Qr=S.Directive,Xr=S.Comment,tn=S.Script,en=S.Style,un=S.Tag,rn=S.CDATA,nn=S.Doctype,Vi=class{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return Ji(this,t)}},we=class extends Vi{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}},ge=class extends we{constructor(){super(...arguments),this.type=S.Text}get nodeType(){return 3}},Wi=class extends we{constructor(){super(...arguments),this.type=S.Comment}get nodeType(){return 8}},Gi=class extends we{constructor(t,e){super(e),this.name=t,this.type=S.Directive}get nodeType(){return 1}},ye=class extends Vi{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}},zi=class extends ye{constructor(){super(...arguments),this.type=S.CDATA}get nodeType(){return 4}},fe=class extends ye{constructor(){super(...arguments),this.type=S.Root}get nodeType(){return 9}},Ki=class extends ye{constructor(t,e,u=[],i=t==="script"?S.Script:t==="style"?S.Style:S.Tag){super(u),this.name=t,this.attribs=e,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var e,u;return{name:t,value:this.attribs[t],namespace:(e=this["x-attribsNamespace"])===null||e===void 0?void 0:e[t],prefix:(u=this["x-attribsPrefix"])===null||u===void 0?void 0:u[t]}})}};function Fe(t){return Jr(t)}function an(t){return t.type===S.CDATA}function sn(t){return t.type===S.Text}function on(t){return t.type===S.Comment}function cn(t){return t.type===S.Directive}function ln(t){return t.type===S.Root}function Ji(t,e=!1){let u;if(sn(t))u=new ge(t.data);else if(on(t))u=new Wi(t.data);else if(Fe(t)){let i=e?he(t.children):[],r=new Ki(t.name,{...t.attribs},i);i.forEach(n=>n.parent=r),t.namespace!=null&&(r.namespace=t.namespace),t["x-attribsNamespace"]&&(r["x-attribsNamespace"]={...t["x-attribsNamespace"]}),t["x-attribsPrefix"]&&(r["x-attribsPrefix"]={...t["x-attribsPrefix"]}),u=r}else if(an(t)){let i=e?he(t.children):[],r=new zi(i);i.forEach(n=>n.parent=r),u=r}else if(ln(t)){let i=e?he(t.children):[],r=new fe(i);i.forEach(n=>n.parent=r),t["x-mode"]&&(r["x-mode"]=t["x-mode"]),u=r}else if(cn(t)){let i=new Gi(t.name,t.data);t["x-name"]!=null&&(i["x-name"]=t["x-name"],i["x-publicId"]=t["x-publicId"],i["x-systemId"]=t["x-systemId"]),u=i}else throw new Error(`Not implemented yet: ${t.type}`);return u.startIndex=t.startIndex,u.endIndex=t.endIndex,t.sourceCodeLocation!=null&&(u.sourceCodeLocation=t.sourceCodeLocation),u}function he(t){let e=t.map(u=>Ji(u,!0));for(let u=1;u<e.length;u++)e[u].prev=e[u-1],e[u-1].next=e[u];return e}var oi={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},hn=class{constructor(t,e,u){this.dom=[],this.root=new fe(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof e=="function"&&(u=e,e=oi),typeof t=="object"&&(e=t,t=void 0),this.callback=t??null,this.options=e??oi,this.elementCB=u??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new fe(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;let t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,e){let u=this.options.xmlMode?S.Tag:void 0,i=new Ki(t,e,void 0,u);this.addNode(i),this.tagStack.push(i)}ontext(t){let{lastNode:e}=this;if(e&&e.type===S.Text)e.data+=t,this.options.withEndIndices&&(e.endIndex=this.parser.endIndex);else{let u=new ge(t);this.addNode(u),this.lastNode=u}}oncomment(t){if(this.lastNode&&this.lastNode.type===S.Comment){this.lastNode.data+=t;return}let e=new Wi(t);this.addNode(e),this.lastNode=e}oncommentend(){this.lastNode=null}oncdatastart(){let t=new ge(""),e=new zi([t]);this.addNode(e),t.parent=e,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,e){let u=new Gi(t,e);this.addNode(u)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){let e=this.tagStack[this.tagStack.length-1],u=e.children[e.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),e.children.push(t),u&&(t.prev=u,u.next=t),t.parent=e,this.lastNode=null}},dn=/\n/g;function pn(t){let e=[...t.matchAll(dn)].map(i=>i.index||0);e.unshift(-1);let u=me(e,0,e.length);return i=>Yi(u,i)}function me(t,e,u){if(u-e==1)return{offset:t[e],index:e+1};let i=Math.ceil((e+u)/2),r=me(t,e,i),n=me(t,i,u);return{offset:r.offset,low:r,high:n}}function Yi(t,e){return function(u){return Object.prototype.hasOwnProperty.call(u,"index")}(t)?{line:t.index,column:e-t.offset}:Yi(t.high.offset<e?t.high:t.low,e)}function Zi(t,e="",u={}){let i=typeof e!="string"?e:u,r=typeof e=="string"?e:"",n=t.map(gn),a=!!i.lineNumbers;return function(s,o=0){let l=a?pn(s):()=>({line:0,column:0}),p=o,A=[];t:for(;p<s.length;){let E=!1;for(let x of n){x.regex.lastIndex=p;let B=x.regex.exec(s);if(B&&B[0].length>0){if(!x.discard){let y=l(p),b=typeof x.replace=="string"?B[0].replace(new RegExp(x.regex.source,x.regex.flags),x.replace):B[0];A.push({state:r,name:x.name,text:b,offset:p,len:B[0].length,line:y.line,column:y.column})}if(p=x.regex.lastIndex,E=!0,x.push){let y=x.push(s,p);A.push(...y.tokens),p=y.offset}if(x.pop)break t;break}}if(!E)break}return{tokens:A,offset:p,complete:s.length<=p}}}function gn(t,e){return{...t,regex:fn(t,e)}}function fn(t,e){if(t.name.length===0)throw new Error(`Rule #${e} has empty name, which is not allowed.`);if(function(u){return Object.prototype.hasOwnProperty.call(u,"regex")}(t))return function(u){if(u.global)throw new Error(`Regular expression /${u.source}/${u.flags} contains the global flag, which is not allowed.`);return u.sticky?u:new RegExp(u.source,u.flags+"y")}(t.regex);if(function(u){return Object.prototype.hasOwnProperty.call(u,"str")}(t)){if(t.str.length===0)throw new Error(`Rule #${e} ("${t.name}") has empty "str" property, which is not allowed.`);return new RegExp(ci(t.str),"y")}return new RegExp(ci(t.name),"y")}function ci(t){return t.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g,"\\$&")}function tt(t,e){return(u,i)=>{let r=i,n;return i<u.tokens.length?(n=t(u.tokens[i],u,i),n!==void 0&&r++):e?.(u,i),n===void 0?{matched:!1}:{matched:!0,position:r,value:n}}}function ve(t,e){return t.matched?{matched:!0,position:t.position,value:e(t.value,t.position)}:t}function qt(t,e){return t.matched?e(t):t}function O(t,e){return(u,i)=>ve(t(u,i),(r,n)=>e(r,u,i,n))}function Ot(t,e){return(u,i)=>{let r=t(u,i);return r.matched?r:{matched:!0,position:i,value:e}}}function Ht(...t){return(e,u)=>{for(let i of t){let r=i(e,u);if(r.matched)return r}return{matched:!1}}}function st(t,e){return(u,i)=>{let r=t(u,i);return r.matched?r:e(u,i)}}function mn(t,e){return(u,i)=>{let r=[],n=!0;do{let a=t(u,i);a.matched&&e(a.value,r.length+1,u,i,a.position)?(r.push(a.value),i=a.position):n=!1}while(n);return{matched:!0,position:i,value:r}}}function ke(t){return mn(t,()=>!0)}function xn(t){return U(t,ke(t),(e,u)=>[e,...u])}function U(t,e,u){return(i,r)=>qt(t(i,r),n=>ve(e(i,n.position),(a,s)=>u(n.value,a,i,r,s)))}function An(t,e){return U(t,e,u=>u)}function li(t,e){return U(t,e,(u,i)=>i)}function Se(t,e,u,i){return(r,n)=>qt(t(r,n),a=>qt(e(r,a.position),s=>ve(u(r,s.position),(o,l)=>i(a.value,s.value,o,r,n,l))))}function Qi(t,e,u){return Se(t,e,u,(i,r)=>r)}function En(...t){return(e,u)=>{let i=[],r=u;for(let n of t){let a=n(e,r);if(a.matched)i.push(a.value),r=a.position;else return{matched:!1}}return{matched:!0,position:r,value:i}}}function Bn(...t){return Cn(En(...t))}function Cn(t){return O(t,e=>e.flatMap(u=>u))}function Dn(t,e){return(u,i)=>{let r=!0,n=t,a=i;do{let s=e(n,u,a)(u,a);s.matched?(n=s.value,a=s.position):r=!1}while(r);return{matched:!0,position:a,value:n}}}function bn(t,e,u){return Dn(t,i=>O(e,(r,n,a,s)=>u(i,r,n,a,s)))}function Xi(t,e,u){return wn(t,i=>bn(i,U(e,u,(r,n)=>[r,n]),(r,[n,a])=>n(r,a)))}function wn(t,e){return(u,i)=>qt(t(u,i),r=>e(r.value,u,i,r.position)(u,r.position))}var yn="(?:[ \\t\\r\\n\\f]*)",tr="(?:\\n|\\r\\n|\\r|\\f)",jt="[^\\x00-\\x7F]",Ct="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",Dt="(?:\\\\[^\\n\\r\\f0-9a-f])",Fn=`(?:[_a-z]|${jt}|${Ct}|${Dt})`,er=`(?:[_a-z0-9-]|${jt}|${Ct}|${Dt})`,vn=`(?:${er}+)`,kn=`(?:[-]?${Fn}${er}*)`,Sn=`'([^\\n\\r\\f\\\\']|\\\\${tr}|${jt}|${Ct}|${Dt})*'`,Tn=`"([^\\n\\r\\f\\\\"]|\\\\${tr}|${jt}|${Ct}|${Dt})*"`,Ln=Zi([{name:"ws",regex:new RegExp(yn)},{name:"hash",regex:new RegExp(`#${vn}`,"i")},{name:"ident",regex:new RegExp(kn,"i")},{name:"str1",regex:new RegExp(Sn,"i")},{name:"str2",regex:new RegExp(Tn,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"}]),_n=Zi([{name:"unicode",regex:new RegExp(Ct,"i")},{name:"escape",regex:new RegExp(Dt,"i")},{name:"any",regex:new RegExp("[\\s\\S]","i")}]);function ur([t,e,u],[i,r,n]){return[t+i,e+r,u+n]}function In(t){return t.reduce(ur,[0,0,0])}var Nn=tt(t=>t.name==="unicode"?String.fromCodePoint(parseInt(t.text.slice(1),16)):void 0),$n=tt(t=>t.name==="escape"?t.text.slice(1):void 0),Pn=tt(t=>t.name==="any"?t.text:void 0),Rn=O(ke(Ht(Nn,$n,Pn)),t=>t.join(""));function Te(t){let e=_n(t);return Rn({tokens:e.tokens,options:void 0},0).value}function N(t){return tt(e=>e.name===t?!0:void 0)}var Le=tt(t=>t.name==="ws"?null:void 0),xe=Ot(Le,null);function pt(t){return Qi(xe,t,xe)}var Et=tt(t=>t.name==="ident"?Te(t.text):void 0),qn=tt(t=>t.name==="hash"?Te(t.text.slice(1)):void 0),On=tt(t=>t.name.startsWith("str")?Te(t.text.slice(1,-1)):void 0),ir=An(Ot(Et,""),N("|")),_e=st(U(ir,Et,(t,e)=>({name:e,namespace:t})),O(Et,t=>({name:t,namespace:null}))),Mn=st(U(ir,N("*"),t=>({type:"universal",namespace:t,specificity:[0,0,0]})),O(N("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),Un=O(_e,({name:t,namespace:e})=>({type:"tag",name:t,namespace:e,specificity:[0,0,1]})),Hn=U(N("."),Et,(t,e)=>({type:"class",name:e,specificity:[0,1,0]})),jn=O(qn,t=>({type:"id",name:t,specificity:[1,0,0]})),hi=tt(t=>{if(t.name==="ident"){if(t.text==="i"||t.text==="I")return"i";if(t.text==="s"||t.text==="S")return"s"}}),Vn=st(U(On,Ot(li(xe,hi),null),(t,e)=>({value:t,modifier:e})),U(Et,Ot(li(Le,hi),null),(t,e)=>({value:t,modifier:e}))),Wn=Ht(O(N("="),()=>"="),U(N("~"),N("="),()=>"~="),U(N("|"),N("="),()=>"|="),U(N("^"),N("="),()=>"^="),U(N("$"),N("="),()=>"$="),U(N("*"),N("="),()=>"*=")),Gn=Se(N("["),pt(_e),N("]"),(t,{name:e,namespace:u})=>({type:"attrPresence",name:e,namespace:u,specificity:[0,1,0]})),zn=Qi(N("["),Se(pt(_e),Wn,pt(Vn),({name:t,namespace:e},u,{value:i,modifier:r})=>({type:"attrValue",name:t,namespace:e,matcher:u,value:i,modifier:r,specificity:[0,1,0]})),N("]")),Kn=st(Gn,zn),Jn=st(Mn,Un),di=Ht(jn,Hn,Kn),pi=O(st(Bn(Jn,ke(di)),xn(di)),t=>({type:"compound",list:t,specificity:In(t.map(e=>e.specificity))})),Yn=Ht(O(N(">"),()=>">"),O(N("+"),()=>"+"),O(N("~"),()=>"~"),U(N("|"),N("|"),()=>"||")),Zn=st(pt(Yn),O(Le,()=>" ")),Ae=Xi(pi,O(Zn,t=>(e,u)=>({type:"compound",list:[...u.list,{type:"combinator",combinator:t,left:e,specificity:e.specificity}],specificity:ur(e.specificity,u.specificity)})),pi),b0=Xi(O(Ae,t=>({type:"list",list:[t]})),O(pt(N(",")),()=>(t,e)=>({type:"list",list:[...t.list,e]})),Ae);function Qn(t,e){if(!(typeof e=="string"||e instanceof String))throw new Error("Expected a selector string. Actual input is not a string!");let u=Ln(e);if(!u.complete)throw new Error(`The input "${e}" was only partially tokenized, stopped at offset ${u.offset}!
|
|
6
|
+
`+gi(e,u.offset));let i=pt(t)({tokens:u.tokens,options:void 0},0);if(!i.matched)throw new Error(`No match for "${e}" input!`);if(i.position<u.tokens.length){let r=u.tokens[i.position];throw new Error(`The input "${e}" was only partially parsed, stopped at offset ${r.offset}!
|
|
7
|
+
`+gi(e,r.offset,r.len))}return i.value}function gi(t,e,u=1){return`${t.replace(/(\t)|(\r)|(\n)/g,(i,r,n)=>r?"\u2409":n?"\u240D":"\u240A")}
|
|
8
|
+
${"".padEnd(e)}${"^".repeat(u)}`}function Xn(t){return Qn(Ae,t)}function K(t){if(!t.type)throw new Error("This is not an AST node.");switch(t.type){case"universal":return kt(t.namespace)+"*";case"tag":return kt(t.namespace)+dt(t.name);case"class":return"."+dt(t.name);case"id":return"#"+dt(t.name);case"attrPresence":return`[${kt(t.namespace)}${dt(t.name)}]`;case"attrValue":return`[${kt(t.namespace)}${dt(t.name)}${t.matcher}"${ta(t.value)}"${t.modifier?t.modifier:""}]`;case"combinator":return K(t.left)+t.combinator;case"compound":return t.list.reduce((e,u)=>u.type==="combinator"?K(u)+e:e+K(u),"");case"list":return t.list.map(K).join(",")}}function kt(t){return t||t===""?dt(t)+"|":""}function $t(t){return`\\${t.codePointAt(0).toString(16)} `}function dt(t){return t.replace(/(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\x00-\x7F])|(\x00)|([\x01-\x1f]|\x7f)|([\s\S])/g,(e,u,i,r,n,a,s,o)=>u?$t(u):i?"-"+$t(i.slice(1)):r?"\\-":n||(a?"\uFFFD":s?$t(s):"\\"+o))}function ta(t){return t.replace(/(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g,(e,u,i,r,n)=>u?'\\"':i?"\\\\":r?"\uFFFD":$t(n))}function Pt(t){if(!t.type)throw new Error("This is not an AST node.");switch(t.type){case"compound":{t.list.forEach(Pt),t.list.sort((e,u)=>nr(fi(e),fi(u)));break}case"combinator":{Pt(t.left);break}case"list":{t.list.forEach(Pt),t.list.sort((e,u)=>K(e)<K(u)?-1:1);break}}return t}function fi(t){switch(t.type){case"universal":return[1];case"tag":return[1];case"id":return[2];case"class":return[3,t.name];case"attrPresence":return[4,K(t)];case"attrValue":return[5,K(t)];case"combinator":return[15,K(t)]}}function rr(t,e){return nr(t,e)}function nr(t,e){if(!Array.isArray(t)||!Array.isArray(e))throw new Error("Arguments must be arrays.");let u=t.length<e.length?t.length:e.length;for(let i=0;i<u;i++)if(t[i]!==e[i])return t[i]<e[i]?-1:1;return t.length-e.length}var mi=class{constructor(t){this.branches=gt(ea(t))}build(t){return t(this.branches)}};function ea(t){let e=t.length,u=new Array(e);for(let i=0;i<e;i++){let[r,n]=t[i],a=ua(Xn(r));u[i]={ast:a,terminal:{type:"terminal",valueContainer:{index:i,value:n,specificity:a.specificity}}}}return u}function ua(t){return ar(t),Pt(t),t}function ar(t){let e=[];t.list.forEach(u=>{switch(u.type){case"class":e.push({matcher:"~=",modifier:null,name:"class",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"id":e.push({matcher:"=",modifier:null,name:"id",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"combinator":ar(u.left),e.push(u);break;case"universal":break;default:e.push(u);break}}),t.list=e}function gt(t){let e=[];for(;t.length;){let u=cr(t,a=>!0,sr),{matches:i,nonmatches:r,empty:n}=ra(t,u);t=r,i.length&&e.push(na(u,i)),n.length&&e.push(...ia(n))}return e}function ia(t){let e=[];for(let u of t){let i=u.terminal;if(i.type==="terminal")e.push(i);else{let{matches:r,rest:n}=la(i.cont,a=>a.type==="terminal");r.forEach(a=>e.push(a)),n.length&&(i.cont=n,e.push(i))}}return e}function ra(t,e){let u=[],i=[],r=[];for(let n of t){let a=n.ast.list;a.length?(a.some(s=>sr(s)===e)?u:i).push(n):r.push(n)}return{matches:u,nonmatches:i,empty:r}}function sr(t){switch(t.type){case"attrPresence":return`attrPresence ${t.name}`;case"attrValue":return`attrValue ${t.name}`;case"combinator":return`combinator ${t.combinator}`;default:return t.type}}function na(t,e){if(t==="tag")return aa(e);if(t.startsWith("attrValue "))return oa(t.substring(10),e);if(t.startsWith("attrPresence "))return sa(t.substring(13),e);if(t==="combinator >")return xi(">",e);if(t==="combinator +")return xi("+",e);throw new Error(`Unsupported selector kind: ${t}`)}function aa(t){let e=Ie(t,u=>u.type==="tag",u=>u.name);return{type:"tagName",variants:Object.entries(e).map(([u,i])=>({type:"variant",value:u,cont:gt(i.items)}))}}function sa(t,e){for(let u of e)or(u,i=>i.type==="attrPresence"&&i.name===t);return{type:"attrPresence",name:t,cont:gt(e)}}function oa(t,e){let u=Ie(e,r=>r.type==="attrValue"&&r.name===t,r=>`${r.matcher} ${r.modifier||""} ${r.value}`),i=[];for(let r of Object.values(u)){let n=r.oneSimpleSelector,a=ca(n),s=gt(r.items);i.push({type:"matcher",matcher:n.matcher,modifier:n.modifier,value:n.value,predicate:a,cont:s})}return{type:"attrValue",name:t,matchers:i}}function ca(t){if(t.modifier==="i"){let e=t.value.toLowerCase();switch(t.matcher){case"=":return u=>e===u.toLowerCase();case"~=":return u=>u.toLowerCase().split(/[ \t]+/).includes(e);case"^=":return u=>u.toLowerCase().startsWith(e);case"$=":return u=>u.toLowerCase().endsWith(e);case"*=":return u=>u.toLowerCase().includes(e);case"|=":return u=>{let i=u.toLowerCase();return e===i||i.startsWith(e)&&i[e.length]==="-"}}}else{let e=t.value;switch(t.matcher){case"=":return u=>e===u;case"~=":return u=>u.split(/[ \t]+/).includes(e);case"^=":return u=>u.startsWith(e);case"$=":return u=>u.endsWith(e);case"*=":return u=>u.includes(e);case"|=":return u=>e===u||u.startsWith(e)&&u[e.length]==="-"}}}function xi(t,e){let u=Ie(e,r=>r.type==="combinator"&&r.combinator===t,r=>K(r.left)),i=[];for(let r of Object.values(u)){let n=gt(r.items),a=r.oneSimpleSelector.left;i.push({ast:a,terminal:{type:"popElement",cont:n}})}return{type:"pushElement",combinator:t,cont:gt(i)}}function Ie(t,e,u){let i={};for(;t.length;){let r=cr(t,e,u),n=p=>e(p)&&u(p)===r,a=p=>p.ast.list.some(n),{matches:s,rest:o}=ha(t,a),l=null;for(let p of s){let A=or(p,n);l||(l=A)}if(l==null)throw new Error("No simple selector is found.");i[r]={oneSimpleSelector:l,items:s},t=o}return i}function or(t,e){let u=t.ast.list,i=new Array(u.length),r=-1;for(let a=u.length;a-- >0;)e(u[a])&&(i[a]=!0,r=a);if(r==-1)throw new Error("Couldn't find the required simple selector.");let n=u[r];return t.ast.list=u.filter((a,s)=>!i[s]),n}function cr(t,e,u){let i={};for(let a of t){let s={};for(let o of a.ast.list.filter(e))s[u(o)]=!0;for(let o of Object.keys(s))i[o]?i[o]++:i[o]=1}let r="",n=0;for(let a of Object.entries(i))a[1]>n&&(r=a[0],n=a[1]);return r}function la(t,e){let u=[],i=[];for(let r of t)e(r)?u.push(r):i.push(r);return{matches:u,rest:i}}function ha(t,e){let u=[],i=[];for(let r of t)e(r)?u.push(r):i.push(r);return{matches:u,rest:i}}var da=class{constructor(t){this.f=t}pickAll(t){return this.f(t)}pick1(t,e=!1){let u=this.f(t),i=u.length;if(i===0)return null;if(i===1)return u[0].value;let r=e?pa:ga,n=u[0];for(let a=1;a<i;a++){let s=u[a];r(n,s)&&(n=s)}return n.value}};function pa(t,e){let u=rr(e.specificity,t.specificity);return u>0||u===0&&e.index<t.index}function ga(t,e){let u=rr(e.specificity,t.specificity);return u>0||u===0&&e.index>t.index}function Ai(t){return new da(mt(t))}function mt(t){let e=t.map(fa);return(u,...i)=>e.flatMap(r=>r(u,...i))}function fa(t){switch(t.type){case"terminal":{let e=[t.valueContainer];return(u,...i)=>e}case"tagName":return ma(t);case"attrValue":return Aa(t);case"attrPresence":return xa(t);case"pushElement":return Ea(t);case"popElement":return Ca(t)}}function ma(t){let e={};for(let u of t.variants)e[u.value]=mt(u.cont);return(u,...i)=>{let r=e[u.name];return r?r(u,...i):[]}}function xa(t){let e=t.name,u=mt(t.cont);return(i,...r)=>Object.prototype.hasOwnProperty.call(i.attribs,e)?u(i,...r):[]}function Aa(t){let e=[];for(let i of t.matchers){let r=i.predicate,n=mt(i.cont);e.push((a,s,...o)=>r(a)?n(s,...o):[])}let u=t.name;return(i,...r)=>{let n=i.attribs[u];return n||n===""?e.flatMap(a=>a(n,i,...r)):[]}}function Ea(t){let e=mt(t.cont),u=t.combinator==="+"?lr:Ba;return(i,...r)=>{let n=u(i);return n===null?[]:e(n,i,...r)}}var lr=t=>{let e=t.prev;return e===null?null:Fe(e)?e:lr(e)},Ba=t=>{let e=t.parent;return e&&Fe(e)?e:null};function Ca(t){let e=mt(t.cont);return(u,i,...r)=>e(i,...r)}var hr=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(t=>t.charCodeAt(0))),dr=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(t=>t.charCodeAt(0))),de,Da=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Ee=(de=String.fromCodePoint)!==null&&de!==void 0?de:function(t){let e="";return t>65535&&(t-=65536,e+=String.fromCharCode(t>>>10&1023|55296),t=56320|t&1023),e+=String.fromCharCode(t),e};function pr(t){var e;return t>=55296&&t<=57343||t>1114111?65533:(e=Da.get(t))!==null&&e!==void 0?e:t}var q;(function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"})(q||(q={}));var ba=32,W;(function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"})(W||(W={}));function Be(t){return t>=q.ZERO&&t<=q.NINE}function wa(t){return t>=q.UPPER_A&&t<=q.UPPER_F||t>=q.LOWER_A&&t<=q.LOWER_F}function ya(t){return t>=q.UPPER_A&&t<=q.UPPER_Z||t>=q.LOWER_A&&t<=q.LOWER_Z||Be(t)}function Fa(t){return t===q.EQUALS||ya(t)}var P;(function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"})(P||(P={}));var rt;(function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"})(rt||(rt={}));var va=class{constructor(t,e,u){this.decodeTree=t,this.emitCodePoint=e,this.errors=u,this.state=P.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=rt.Strict}startEntity(t){this.decodeMode=t,this.state=P.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,e){switch(this.state){case P.EntityStart:return t.charCodeAt(e)===q.NUM?(this.state=P.NumericStart,this.consumed+=1,this.stateNumericStart(t,e+1)):(this.state=P.NamedEntity,this.stateNamedEntity(t,e));case P.NumericStart:return this.stateNumericStart(t,e);case P.NumericDecimal:return this.stateNumericDecimal(t,e);case P.NumericHex:return this.stateNumericHex(t,e);case P.NamedEntity:return this.stateNamedEntity(t,e)}}stateNumericStart(t,e){return e>=t.length?-1:(t.charCodeAt(e)|ba)===q.LOWER_X?(this.state=P.NumericHex,this.consumed+=1,this.stateNumericHex(t,e+1)):(this.state=P.NumericDecimal,this.stateNumericDecimal(t,e))}addToNumericResult(t,e,u,i){if(e!==u){let r=u-e;this.result=this.result*Math.pow(i,r)+parseInt(t.substr(e,r),i),this.consumed+=r}}stateNumericHex(t,e){let u=e;for(;e<t.length;){let i=t.charCodeAt(e);if(Be(i)||wa(i))e+=1;else return this.addToNumericResult(t,u,e,16),this.emitNumericEntity(i,3)}return this.addToNumericResult(t,u,e,16),-1}stateNumericDecimal(t,e){let u=e;for(;e<t.length;){let i=t.charCodeAt(e);if(Be(i))e+=1;else return this.addToNumericResult(t,u,e,10),this.emitNumericEntity(i,2)}return this.addToNumericResult(t,u,e,10),-1}emitNumericEntity(t,e){var u;if(this.consumed<=e)return(u=this.errors)===null||u===void 0||u.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===q.SEMI)this.consumed+=1;else if(this.decodeMode===rt.Strict)return 0;return this.emitCodePoint(pr(this.result),this.consumed),this.errors&&(t!==q.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,e){let{decodeTree:u}=this,i=u[this.treeIndex],r=(i&W.VALUE_LENGTH)>>14;for(;e<t.length;e++,this.excess++){let n=t.charCodeAt(e);if(this.treeIndex=fr(u,i,this.treeIndex+Math.max(1,r),n),this.treeIndex<0)return this.result===0||this.decodeMode===rt.Attribute&&(r===0||Fa(n))?0:this.emitNotTerminatedNamedEntity();if(i=u[this.treeIndex],r=(i&W.VALUE_LENGTH)>>14,r!==0){if(n===q.SEMI)return this.emitNamedEntityData(this.treeIndex,r,this.consumed+this.excess);this.decodeMode!==rt.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;let{result:e,decodeTree:u}=this,i=(u[e]&W.VALUE_LENGTH)>>14;return this.emitNamedEntityData(e,i,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,e,u){let{decodeTree:i}=this;return this.emitCodePoint(e===1?i[t]&~W.VALUE_LENGTH:i[t+1],u),e===3&&this.emitCodePoint(i[t+2],u),u}end(){var t;switch(this.state){case P.NamedEntity:return this.result!==0&&(this.decodeMode!==rt.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case P.NumericDecimal:return this.emitNumericEntity(0,2);case P.NumericHex:return this.emitNumericEntity(0,3);case P.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case P.EntityStart:return 0}}};function gr(t){let e="",u=new va(t,i=>e+=Ee(i));return function(i,r){let n=0,a=0;for(;(a=i.indexOf("&",a))>=0;){e+=i.slice(n,a),u.startEntity(r);let o=u.write(i,a+1);if(o<0){n=a+u.end();break}n=a+o,a=o===0?n+1:n}let s=e+i.slice(n);return e="",s}}function fr(t,e,u,i){let r=(e&W.BRANCH_LENGTH)>>7,n=e&W.JUMP_TABLE;if(r===0)return n!==0&&i===n?u:-1;if(n){let o=i-n;return o<0||o>=r?-1:t[u+o]-1}let a=u,s=a+r-1;for(;a<=s;){let o=a+s>>>1,l=t[o];if(l<i)a=o+1;else if(l>i)s=o-1;else return t[o+r]}return-1}var w0=gr(hr),y0=gr(dr),C;(function(t){t[t.Tab=9]="Tab",t[t.NewLine=10]="NewLine",t[t.FormFeed=12]="FormFeed",t[t.CarriageReturn=13]="CarriageReturn",t[t.Space=32]="Space",t[t.ExclamationMark=33]="ExclamationMark",t[t.Number=35]="Number",t[t.Amp=38]="Amp",t[t.SingleQuote=39]="SingleQuote",t[t.DoubleQuote=34]="DoubleQuote",t[t.Dash=45]="Dash",t[t.Slash=47]="Slash",t[t.Zero=48]="Zero",t[t.Nine=57]="Nine",t[t.Semi=59]="Semi",t[t.Lt=60]="Lt",t[t.Eq=61]="Eq",t[t.Gt=62]="Gt",t[t.Questionmark=63]="Questionmark",t[t.UpperA=65]="UpperA",t[t.LowerA=97]="LowerA",t[t.UpperF=70]="UpperF",t[t.LowerF=102]="LowerF",t[t.UpperZ=90]="UpperZ",t[t.LowerZ=122]="LowerZ",t[t.LowerX=120]="LowerX",t[t.OpeningSquareBracket=91]="OpeningSquareBracket"})(C||(C={}));var g;(function(t){t[t.Text=1]="Text",t[t.BeforeTagName=2]="BeforeTagName",t[t.InTagName=3]="InTagName",t[t.InSelfClosingTag=4]="InSelfClosingTag",t[t.BeforeClosingTagName=5]="BeforeClosingTagName",t[t.InClosingTagName=6]="InClosingTagName",t[t.AfterClosingTagName=7]="AfterClosingTagName",t[t.BeforeAttributeName=8]="BeforeAttributeName",t[t.InAttributeName=9]="InAttributeName",t[t.AfterAttributeName=10]="AfterAttributeName",t[t.BeforeAttributeValue=11]="BeforeAttributeValue",t[t.InAttributeValueDq=12]="InAttributeValueDq",t[t.InAttributeValueSq=13]="InAttributeValueSq",t[t.InAttributeValueNq=14]="InAttributeValueNq",t[t.BeforeDeclaration=15]="BeforeDeclaration",t[t.InDeclaration=16]="InDeclaration",t[t.InProcessingInstruction=17]="InProcessingInstruction",t[t.BeforeComment=18]="BeforeComment",t[t.CDATASequence=19]="CDATASequence",t[t.InSpecialComment=20]="InSpecialComment",t[t.InCommentLike=21]="InCommentLike",t[t.BeforeSpecialS=22]="BeforeSpecialS",t[t.SpecialStartSequence=23]="SpecialStartSequence",t[t.InSpecialTag=24]="InSpecialTag",t[t.BeforeEntity=25]="BeforeEntity",t[t.BeforeNumericEntity=26]="BeforeNumericEntity",t[t.InNamedEntity=27]="InNamedEntity",t[t.InNumericEntity=28]="InNumericEntity",t[t.InHexEntity=29]="InHexEntity"})(g||(g={}));function X(t){return t===C.Space||t===C.NewLine||t===C.Tab||t===C.FormFeed||t===C.CarriageReturn}function St(t){return t===C.Slash||t===C.Gt||X(t)}function Ei(t){return t>=C.Zero&&t<=C.Nine}function ka(t){return t>=C.LowerA&&t<=C.LowerZ||t>=C.UpperA&&t<=C.UpperZ}function Sa(t){return t>=C.UpperA&&t<=C.UpperF||t>=C.LowerA&&t<=C.LowerF}var z;(function(t){t[t.NoValue=0]="NoValue",t[t.Unquoted=1]="Unquoted",t[t.Single=2]="Single",t[t.Double=3]="Double"})(z||(z={}));var j={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},Ta=class{constructor({xmlMode:t=!1,decodeEntities:e=!0},u){this.cbs=u,this.state=g.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=g.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=t,this.decodeEntities=e,this.entityTrie=t?dr:hr}reset(){this.state=g.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=g.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(t){this.offset+=this.buffer.length,this.buffer=t,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}getIndex(){return this.index}getSectionStart(){return this.sectionStart}stateText(t){t===C.Lt||!this.decodeEntities&&this.fastForwardTo(C.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=g.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===C.Amp&&(this.state=g.BeforeEntity)}stateSpecialStartSequence(t){let e=this.sequenceIndex===this.currentSequence.length;if(!(e?St(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!e){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=g.InTagName,this.stateInTagName(t)}stateInSpecialTag(t){if(this.sequenceIndex===this.currentSequence.length){if(t===C.Gt||X(t)){let e=this.index-this.currentSequence.length;if(this.sectionStart<e){let u=this.index;this.index=e,this.cbs.ontext(this.sectionStart,e),this.index=u}this.isSpecial=!1,this.sectionStart=e+2,this.stateInClosingTagName(t);return}this.sequenceIndex=0}(t|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===j.TitleEnd?this.decodeEntities&&t===C.Amp&&(this.state=g.BeforeEntity):this.fastForwardTo(C.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===C.Lt)}stateCDATASequence(t){t===j.Cdata[this.sequenceIndex]?++this.sequenceIndex===j.Cdata.length&&(this.state=g.InCommentLike,this.currentSequence=j.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=g.InDeclaration,this.stateInDeclaration(t))}fastForwardTo(t){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===t)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===j.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=g.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(t){return this.xmlMode?!St(t):ka(t)}startSpecial(t,e){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=e,this.state=g.SpecialStartSequence}stateBeforeTagName(t){if(t===C.ExclamationMark)this.state=g.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===C.Questionmark)this.state=g.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(t)){let e=t|32;this.sectionStart=this.index,!this.xmlMode&&e===j.TitleEnd[2]?this.startSpecial(j.TitleEnd,3):this.state=!this.xmlMode&&e===j.ScriptEnd[2]?g.BeforeSpecialS:g.InTagName}else t===C.Slash?this.state=g.BeforeClosingTagName:(this.state=g.Text,this.stateText(t))}stateInTagName(t){St(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateBeforeClosingTagName(t){X(t)||(t===C.Gt?this.state=g.Text:(this.state=this.isTagStartChar(t)?g.InClosingTagName:g.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(t){(t===C.Gt||X(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=g.AfterClosingTagName,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.state=g.Text,this.baseState=g.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(t){t===C.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=g.InSpecialTag,this.sequenceIndex=0):this.state=g.Text,this.baseState=this.state,this.sectionStart=this.index+1):t===C.Slash?this.state=g.InSelfClosingTag:X(t)||(this.state=g.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===C.Gt?(this.cbs.onselfclosingtag(this.index),this.state=g.Text,this.baseState=g.Text,this.sectionStart=this.index+1,this.isSpecial=!1):X(t)||(this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateInAttributeName(t){(t===C.Eq||St(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=g.AfterAttributeName,this.stateAfterAttributeName(t))}stateAfterAttributeName(t){t===C.Eq?this.state=g.BeforeAttributeValue:t===C.Slash||t===C.Gt?(this.cbs.onattribend(z.NoValue,this.index),this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t)):X(t)||(this.cbs.onattribend(z.NoValue,this.index),this.state=g.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(t){t===C.DoubleQuote?(this.state=g.InAttributeValueDq,this.sectionStart=this.index+1):t===C.SingleQuote?(this.state=g.InAttributeValueSq,this.sectionStart=this.index+1):X(t)||(this.sectionStart=this.index,this.state=g.InAttributeValueNq,this.stateInAttributeValueNoQuotes(t))}handleInAttributeValue(t,e){t===e||!this.decodeEntities&&this.fastForwardTo(e)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(e===C.DoubleQuote?z.Double:z.Single,this.index),this.state=g.BeforeAttributeName):this.decodeEntities&&t===C.Amp&&(this.baseState=this.state,this.state=g.BeforeEntity)}stateInAttributeValueDoubleQuotes(t){this.handleInAttributeValue(t,C.DoubleQuote)}stateInAttributeValueSingleQuotes(t){this.handleInAttributeValue(t,C.SingleQuote)}stateInAttributeValueNoQuotes(t){X(t)||t===C.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(z.Unquoted,this.index),this.state=g.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===C.Amp&&(this.baseState=this.state,this.state=g.BeforeEntity)}stateBeforeDeclaration(t){t===C.OpeningSquareBracket?(this.state=g.CDATASequence,this.sequenceIndex=0):this.state=t===C.Dash?g.BeforeComment:g.InDeclaration}stateInDeclaration(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=g.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=g.Text,this.sectionStart=this.index+1)}stateBeforeComment(t){t===C.Dash?(this.state=g.InCommentLike,this.currentSequence=j.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=g.InDeclaration}stateInSpecialComment(t){(t===C.Gt||this.fastForwardTo(C.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=g.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(t){let e=t|32;e===j.ScriptEnd[3]?this.startSpecial(j.ScriptEnd,4):e===j.StyleEnd[3]?this.startSpecial(j.StyleEnd,4):(this.state=g.InTagName,this.stateInTagName(t))}stateBeforeEntity(t){this.entityExcess=1,this.entityResult=0,t===C.Number?this.state=g.BeforeNumericEntity:t===C.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=g.InNamedEntity,this.stateInNamedEntity(t))}stateInNamedEntity(t){if(this.entityExcess+=1,this.trieIndex=fr(this.entityTrie,this.trieCurrent,this.trieIndex+1,t),this.trieIndex<0){this.emitNamedEntity(),this.index--;return}this.trieCurrent=this.entityTrie[this.trieIndex];let e=this.trieCurrent&W.VALUE_LENGTH;if(e){let u=(e>>14)-1;if(!this.allowLegacyEntity()&&t!==C.Semi)this.trieIndex+=u;else{let i=this.index-this.entityExcess+1;i>this.sectionStart&&this.emitPartial(this.sectionStart,i),this.entityResult=this.trieIndex,this.trieIndex+=u,this.entityExcess=0,this.sectionStart=this.index+1,u===0&&this.emitNamedEntity()}}}emitNamedEntity(){if(this.state=this.baseState,this.entityResult!==0)switch((this.entityTrie[this.entityResult]&W.VALUE_LENGTH)>>14){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~W.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}stateBeforeNumericEntity(t){(t|32)===C.LowerX?(this.entityExcess++,this.state=g.InHexEntity):(this.state=g.InNumericEntity,this.stateInNumericEntity(t))}emitNumericEntity(t){let e=this.index-this.entityExcess-1;e+2+ +(this.state===g.InHexEntity)!==this.index&&(e>this.sectionStart&&this.emitPartial(this.sectionStart,e),this.sectionStart=this.index+Number(t),this.emitCodePoint(pr(this.entityResult))),this.state=this.baseState}stateInNumericEntity(t){t===C.Semi?this.emitNumericEntity(!0):Ei(t)?(this.entityResult=this.entityResult*10+(t-C.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(t){t===C.Semi?this.emitNumericEntity(!0):Ei(t)?(this.entityResult=this.entityResult*16+(t-C.Zero),this.entityExcess++):Sa(t)?(this.entityResult=this.entityResult*16+((t|32)-C.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===g.Text||this.baseState===g.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===g.Text||this.state===g.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===g.InAttributeValueDq||this.state===g.InAttributeValueSq||this.state===g.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){let t=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case g.Text:{this.stateText(t);break}case g.SpecialStartSequence:{this.stateSpecialStartSequence(t);break}case g.InSpecialTag:{this.stateInSpecialTag(t);break}case g.CDATASequence:{this.stateCDATASequence(t);break}case g.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(t);break}case g.InAttributeName:{this.stateInAttributeName(t);break}case g.InCommentLike:{this.stateInCommentLike(t);break}case g.InSpecialComment:{this.stateInSpecialComment(t);break}case g.BeforeAttributeName:{this.stateBeforeAttributeName(t);break}case g.InTagName:{this.stateInTagName(t);break}case g.InClosingTagName:{this.stateInClosingTagName(t);break}case g.BeforeTagName:{this.stateBeforeTagName(t);break}case g.AfterAttributeName:{this.stateAfterAttributeName(t);break}case g.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(t);break}case g.BeforeAttributeValue:{this.stateBeforeAttributeValue(t);break}case g.BeforeClosingTagName:{this.stateBeforeClosingTagName(t);break}case g.AfterClosingTagName:{this.stateAfterClosingTagName(t);break}case g.BeforeSpecialS:{this.stateBeforeSpecialS(t);break}case g.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(t);break}case g.InSelfClosingTag:{this.stateInSelfClosingTag(t);break}case g.InDeclaration:{this.stateInDeclaration(t);break}case g.BeforeDeclaration:{this.stateBeforeDeclaration(t);break}case g.BeforeComment:{this.stateBeforeComment(t);break}case g.InProcessingInstruction:{this.stateInProcessingInstruction(t);break}case g.InNamedEntity:{this.stateInNamedEntity(t);break}case g.BeforeEntity:{this.stateBeforeEntity(t);break}case g.InHexEntity:{this.stateInHexEntity(t);break}case g.InNumericEntity:{this.stateInNumericEntity(t);break}default:this.stateBeforeNumericEntity(t)}this.index++}this.cleanup()}finish(){this.state===g.InNamedEntity&&this.emitNamedEntity(),this.sectionStart<this.index&&this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let t=this.buffer.length+this.offset;this.state===g.InCommentLike?this.currentSequence===j.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===g.InNumericEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===g.InHexEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===g.InTagName||this.state===g.BeforeAttributeName||this.state===g.BeforeAttributeValue||this.state===g.AfterAttributeName||this.state===g.InAttributeName||this.state===g.InAttributeValueSq||this.state===g.InAttributeValueDq||this.state===g.InAttributeValueNq||this.state===g.InClosingTagName||this.cbs.ontext(this.sectionStart,t)}emitPartial(t,e){this.baseState!==g.Text&&this.baseState!==g.InSpecialTag?this.cbs.onattribdata(t,e):this.cbs.ontext(t,e)}emitCodePoint(t){this.baseState!==g.Text&&this.baseState!==g.InSpecialTag?this.cbs.onattribentity(t):this.cbs.ontextentity(t)}},ht=new Set(["input","option","optgroup","select","button","datalist","textarea"]),T=new Set(["p"]),Bi=new Set(["thead","tbody"]),Ci=new Set(["dd","dt"]),Di=new Set(["rt","rp"]),La=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",T],["h1",T],["h2",T],["h3",T],["h4",T],["h5",T],["h6",T],["select",ht],["input",ht],["output",ht],["button",ht],["datalist",ht],["textarea",ht],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",Ci],["dt",Ci],["address",T],["article",T],["aside",T],["blockquote",T],["details",T],["div",T],["dl",T],["fieldset",T],["figcaption",T],["figure",T],["footer",T],["form",T],["header",T],["hr",T],["main",T],["nav",T],["ol",T],["pre",T],["section",T],["table",T],["ul",T],["rt",Di],["rp",Di],["tbody",Bi],["tfoot",Bi]]),_a=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),bi=new Set(["math","svg"]),wi=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),Ia=/\s|\//,Na=class{constructor(t,e={}){var u,i,r,n,a;this.options=e,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=t??{},this.lowerCaseTagNames=(u=e.lowerCaseTags)!==null&&u!==void 0?u:!e.xmlMode,this.lowerCaseAttributeNames=(i=e.lowerCaseAttributeNames)!==null&&i!==void 0?i:!e.xmlMode,this.tokenizer=new((r=e.Tokenizer)!==null&&r!==void 0?r:Ta)(this.options,this),(a=(n=this.cbs).onparserinit)===null||a===void 0||a.call(n,this)}ontext(t,e){var u,i;let r=this.getSlice(t,e);this.endIndex=e-1,(i=(u=this.cbs).ontext)===null||i===void 0||i.call(u,r),this.startIndex=e}ontextentity(t){var e,u;let i=this.tokenizer.getSectionStart();this.endIndex=i-1,(u=(e=this.cbs).ontext)===null||u===void 0||u.call(e,Ee(t)),this.startIndex=i}isVoidElement(t){return!this.options.xmlMode&&_a.has(t)}onopentagname(t,e){this.endIndex=e;let u=this.getSlice(t,e);this.lowerCaseTagNames&&(u=u.toLowerCase()),this.emitOpenTag(u)}emitOpenTag(t){var e,u,i,r;this.openTagStart=this.startIndex,this.tagname=t;let n=!this.options.xmlMode&&La.get(t);if(n)for(;this.stack.length>0&&n.has(this.stack[this.stack.length-1]);){let a=this.stack.pop();(u=(e=this.cbs).onclosetag)===null||u===void 0||u.call(e,a,!0)}this.isVoidElement(t)||(this.stack.push(t),bi.has(t)?this.foreignContext.push(!0):wi.has(t)&&this.foreignContext.push(!1)),(r=(i=this.cbs).onopentagname)===null||r===void 0||r.call(i,t),this.cbs.onopentag&&(this.attribs={})}endOpenTag(t){var e,u;this.startIndex=this.openTagStart,this.attribs&&((u=(e=this.cbs).onopentag)===null||u===void 0||u.call(e,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1}onclosetag(t,e){var u,i,r,n,a,s;this.endIndex=e;let o=this.getSlice(t,e);if(this.lowerCaseTagNames&&(o=o.toLowerCase()),(bi.has(o)||wi.has(o))&&this.foreignContext.pop(),this.isVoidElement(o))!this.options.xmlMode&&o==="br"&&((i=(u=this.cbs).onopentagname)===null||i===void 0||i.call(u,"br"),(n=(r=this.cbs).onopentag)===null||n===void 0||n.call(r,"br",{},!0),(s=(a=this.cbs).onclosetag)===null||s===void 0||s.call(a,"br",!1));else{let l=this.stack.lastIndexOf(o);if(l!==-1)if(this.cbs.onclosetag){let p=this.stack.length-l;for(;p--;)this.cbs.onclosetag(this.stack.pop(),p!==0)}else this.stack.length=l;else!this.options.xmlMode&&o==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=e+1}onselfclosingtag(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)}closeCurrentTag(t){var e,u;let i=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===i&&((u=(e=this.cbs).onclosetag)===null||u===void 0||u.call(e,i,!t),this.stack.pop())}onattribname(t,e){this.startIndex=t;let u=this.getSlice(t,e);this.attribname=this.lowerCaseAttributeNames?u.toLowerCase():u}onattribdata(t,e){this.attribvalue+=this.getSlice(t,e)}onattribentity(t){this.attribvalue+=Ee(t)}onattribend(t,e){var u,i;this.endIndex=e,(i=(u=this.cbs).onattribute)===null||i===void 0||i.call(u,this.attribname,this.attribvalue,t===z.Double?'"':t===z.Single?"'":t===z.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(t){let e=t.search(Ia),u=e<0?t:t.substr(0,e);return this.lowerCaseTagNames&&(u=u.toLowerCase()),u}ondeclaration(t,e){this.endIndex=e;let u=this.getSlice(t,e);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(u);this.cbs.onprocessinginstruction(`!${i}`,`!${u}`)}this.startIndex=e+1}onprocessinginstruction(t,e){this.endIndex=e;let u=this.getSlice(t,e);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(u);this.cbs.onprocessinginstruction(`?${i}`,`?${u}`)}this.startIndex=e+1}oncomment(t,e,u){var i,r,n,a;this.endIndex=e,(r=(i=this.cbs).oncomment)===null||r===void 0||r.call(i,this.getSlice(t,e-u)),(a=(n=this.cbs).oncommentend)===null||a===void 0||a.call(n),this.startIndex=e+1}oncdata(t,e,u){var i,r,n,a,s,o,l,p,A,E;this.endIndex=e;let x=this.getSlice(t,e-u);this.options.xmlMode||this.options.recognizeCDATA?((r=(i=this.cbs).oncdatastart)===null||r===void 0||r.call(i),(a=(n=this.cbs).ontext)===null||a===void 0||a.call(n,x),(o=(s=this.cbs).oncdataend)===null||o===void 0||o.call(s)):((p=(l=this.cbs).oncomment)===null||p===void 0||p.call(l,`[CDATA[${x}]]`),(E=(A=this.cbs).oncommentend)===null||E===void 0||E.call(A)),this.startIndex=e+1}onend(){var t,e;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let u=this.stack.length;u>0;this.cbs.onclosetag(this.stack[--u],!0));}(e=(t=this.cbs).onend)===null||e===void 0||e.call(t)}reset(){var t,e,u,i;(e=(t=this.cbs).onreset)===null||e===void 0||e.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(i=(u=this.cbs).onparserinit)===null||i===void 0||i.call(u,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(t){this.reset(),this.end(t)}getSlice(t,e){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let u=this.buffers[0].slice(t-this.bufferOffset,e-this.bufferOffset);for(;e-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),u+=this.buffers[0].slice(0,e-this.bufferOffset);return u}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(t){var e,u;if(this.ended){(u=(e=this.cbs).onerror)===null||u===void 0||u.call(e,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)}end(t){var e,u;if(this.ended){(u=(e=this.cbs).onerror)===null||u===void 0||u.call(e,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(t){this.write(t)}done(t){this.end(t)}};function Tt(t){for(let e=1;e<t.length;e++)t[e][0]+=t[e-1][0]+1;return t}var F0=new Map(Tt([[9,"	"],[0,"
"],[22,"!"],[0,"""],[0,"#"],[0,"$"],[0,"%"],[0,"&"],[0,"'"],[0,"("],[0,")"],[0,"*"],[0,"+"],[0,","],[1,"."],[0,"/"],[10,":"],[0,";"],[0,{v:"<",n:8402,o:"<⃒"}],[0,{v:"=",n:8421,o:"=⃥"}],[0,{v:">",n:8402,o:">⃒"}],[0,"?"],[0,"@"],[26,"["],[0,"\"],[0,"]"],[0,"^"],[0,"_"],[0,"`"],[5,{n:106,o:"fj"}],[20,"{"],[0,"|"],[0,"}"],[34," "],[0,"¡"],[0,"¢"],[0,"£"],[0,"¤"],[0,"¥"],[0,"¦"],[0,"§"],[0,"¨"],[0,"©"],[0,"ª"],[0,"«"],[0,"¬"],[0,"­"],[0,"®"],[0,"¯"],[0,"°"],[0,"±"],[0,"²"],[0,"³"],[0,"´"],[0,"µ"],[0,"¶"],[0,"·"],[0,"¸"],[0,"¹"],[0,"º"],[0,"»"],[0,"¼"],[0,"½"],[0,"¾"],[0,"¿"],[0,"À"],[0,"Á"],[0,"Â"],[0,"Ã"],[0,"Ä"],[0,"Å"],[0,"Æ"],[0,"Ç"],[0,"È"],[0,"É"],[0,"Ê"],[0,"Ë"],[0,"Ì"],[0,"Í"],[0,"Î"],[0,"Ï"],[0,"Ð"],[0,"Ñ"],[0,"Ò"],[0,"Ó"],[0,"Ô"],[0,"Õ"],[0,"Ö"],[0,"×"],[0,"Ø"],[0,"Ù"],[0,"Ú"],[0,"Û"],[0,"Ü"],[0,"Ý"],[0,"Þ"],[0,"ß"],[0,"à"],[0,"á"],[0,"â"],[0,"ã"],[0,"ä"],[0,"å"],[0,"æ"],[0,"ç"],[0,"è"],[0,"é"],[0,"ê"],[0,"ë"],[0,"ì"],[0,"í"],[0,"î"],[0,"ï"],[0,"ð"],[0,"ñ"],[0,"ò"],[0,"ó"],[0,"ô"],[0,"õ"],[0,"ö"],[0,"÷"],[0,"ø"],[0,"ù"],[0,"ú"],[0,"û"],[0,"ü"],[0,"ý"],[0,"þ"],[0,"ÿ"],[0,"Ā"],[0,"ā"],[0,"Ă"],[0,"ă"],[0,"Ą"],[0,"ą"],[0,"Ć"],[0,"ć"],[0,"Ĉ"],[0,"ĉ"],[0,"Ċ"],[0,"ċ"],[0,"Č"],[0,"č"],[0,"Ď"],[0,"ď"],[0,"Đ"],[0,"đ"],[0,"Ē"],[0,"ē"],[2,"Ė"],[0,"ė"],[0,"Ę"],[0,"ę"],[0,"Ě"],[0,"ě"],[0,"Ĝ"],[0,"ĝ"],[0,"Ğ"],[0,"ğ"],[0,"Ġ"],[0,"ġ"],[0,"Ģ"],[1,"Ĥ"],[0,"ĥ"],[0,"Ħ"],[0,"ħ"],[0,"Ĩ"],[0,"ĩ"],[0,"Ī"],[0,"ī"],[2,"Į"],[0,"į"],[0,"İ"],[0,"ı"],[0,"IJ"],[0,"ij"],[0,"Ĵ"],[0,"ĵ"],[0,"Ķ"],[0,"ķ"],[0,"ĸ"],[0,"Ĺ"],[0,"ĺ"],[0,"Ļ"],[0,"ļ"],[0,"Ľ"],[0,"ľ"],[0,"Ŀ"],[0,"ŀ"],[0,"Ł"],[0,"ł"],[0,"Ń"],[0,"ń"],[0,"Ņ"],[0,"ņ"],[0,"Ň"],[0,"ň"],[0,"ʼn"],[0,"Ŋ"],[0,"ŋ"],[0,"Ō"],[0,"ō"],[2,"Ő"],[0,"ő"],[0,"Œ"],[0,"œ"],[0,"Ŕ"],[0,"ŕ"],[0,"Ŗ"],[0,"ŗ"],[0,"Ř"],[0,"ř"],[0,"Ś"],[0,"ś"],[0,"Ŝ"],[0,"ŝ"],[0,"Ş"],[0,"ş"],[0,"Š"],[0,"š"],[0,"Ţ"],[0,"ţ"],[0,"Ť"],[0,"ť"],[0,"Ŧ"],[0,"ŧ"],[0,"Ũ"],[0,"ũ"],[0,"Ū"],[0,"ū"],[0,"Ŭ"],[0,"ŭ"],[0,"Ů"],[0,"ů"],[0,"Ű"],[0,"ű"],[0,"Ų"],[0,"ų"],[0,"Ŵ"],[0,"ŵ"],[0,"Ŷ"],[0,"ŷ"],[0,"Ÿ"],[0,"Ź"],[0,"ź"],[0,"Ż"],[0,"ż"],[0,"Ž"],[0,"ž"],[19,"ƒ"],[34,"Ƶ"],[63,"ǵ"],[65,"ȷ"],[142,"ˆ"],[0,"ˇ"],[16,"˘"],[0,"˙"],[0,"˚"],[0,"˛"],[0,"˜"],[0,"˝"],[51,"̑"],[127,"Α"],[0,"Β"],[0,"Γ"],[0,"Δ"],[0,"Ε"],[0,"Ζ"],[0,"Η"],[0,"Θ"],[0,"Ι"],[0,"Κ"],[0,"Λ"],[0,"Μ"],[0,"Ν"],[0,"Ξ"],[0,"Ο"],[0,"Π"],[0,"Ρ"],[1,"Σ"],[0,"Τ"],[0,"Υ"],[0,"Φ"],[0,"Χ"],[0,"Ψ"],[0,"Ω"],[7,"α"],[0,"β"],[0,"γ"],[0,"δ"],[0,"ε"],[0,"ζ"],[0,"η"],[0,"θ"],[0,"ι"],[0,"κ"],[0,"λ"],[0,"μ"],[0,"ν"],[0,"ξ"],[0,"ο"],[0,"π"],[0,"ρ"],[0,"ς"],[0,"σ"],[0,"τ"],[0,"υ"],[0,"φ"],[0,"χ"],[0,"ψ"],[0,"ω"],[7,"ϑ"],[0,"ϒ"],[2,"ϕ"],[0,"ϖ"],[5,"Ϝ"],[0,"ϝ"],[18,"ϰ"],[0,"ϱ"],[3,"ϵ"],[0,"϶"],[10,"Ё"],[0,"Ђ"],[0,"Ѓ"],[0,"Є"],[0,"Ѕ"],[0,"І"],[0,"Ї"],[0,"Ј"],[0,"Љ"],[0,"Њ"],[0,"Ћ"],[0,"Ќ"],[1,"Ў"],[0,"Џ"],[0,"А"],[0,"Б"],[0,"В"],[0,"Г"],[0,"Д"],[0,"Е"],[0,"Ж"],[0,"З"],[0,"И"],[0,"Й"],[0,"К"],[0,"Л"],[0,"М"],[0,"Н"],[0,"О"],[0,"П"],[0,"Р"],[0,"С"],[0,"Т"],[0,"У"],[0,"Ф"],[0,"Х"],[0,"Ц"],[0,"Ч"],[0,"Ш"],[0,"Щ"],[0,"Ъ"],[0,"Ы"],[0,"Ь"],[0,"Э"],[0,"Ю"],[0,"Я"],[0,"а"],[0,"б"],[0,"в"],[0,"г"],[0,"д"],[0,"е"],[0,"ж"],[0,"з"],[0,"и"],[0,"й"],[0,"к"],[0,"л"],[0,"м"],[0,"н"],[0,"о"],[0,"п"],[0,"р"],[0,"с"],[0,"т"],[0,"у"],[0,"ф"],[0,"х"],[0,"ц"],[0,"ч"],[0,"ш"],[0,"щ"],[0,"ъ"],[0,"ы"],[0,"ь"],[0,"э"],[0,"ю"],[0,"я"],[1,"ё"],[0,"ђ"],[0,"ѓ"],[0,"є"],[0,"ѕ"],[0,"і"],[0,"ї"],[0,"ј"],[0,"љ"],[0,"њ"],[0,"ћ"],[0,"ќ"],[1,"ў"],[0,"џ"],[7074," "],[0," "],[0," "],[0," "],[1," "],[0," "],[0," "],[0," "],[0,"​"],[0,"‌"],[0,"‍"],[0,"‎"],[0,"‏"],[0,"‐"],[2,"–"],[0,"—"],[0,"―"],[0,"‖"],[1,"‘"],[0,"’"],[0,"‚"],[1,"“"],[0,"”"],[0,"„"],[1,"†"],[0,"‡"],[0,"•"],[2,"‥"],[0,"…"],[9,"‰"],[0,"‱"],[0,"′"],[0,"″"],[0,"‴"],[0,"‵"],[3,"‹"],[0,"›"],[3,"‾"],[2,"⁁"],[1,"⁃"],[0,"⁄"],[10,"⁏"],[7,"⁗"],[7,{v:" ",n:8202,o:"  "}],[0,"⁠"],[0,"⁡"],[0,"⁢"],[0,"⁣"],[72,"€"],[46,"⃛"],[0,"⃜"],[37,"ℂ"],[2,"℅"],[4,"ℊ"],[0,"ℋ"],[0,"ℌ"],[0,"ℍ"],[0,"ℎ"],[0,"ℏ"],[0,"ℐ"],[0,"ℑ"],[0,"ℒ"],[0,"ℓ"],[1,"ℕ"],[0,"№"],[0,"℗"],[0,"℘"],[0,"ℙ"],[0,"ℚ"],[0,"ℛ"],[0,"ℜ"],[0,"ℝ"],[0,"℞"],[3,"™"],[1,"ℤ"],[2,"℧"],[0,"ℨ"],[0,"℩"],[2,"ℬ"],[0,"ℭ"],[1,"ℯ"],[0,"ℰ"],[0,"ℱ"],[1,"ℳ"],[0,"ℴ"],[0,"ℵ"],[0,"ℶ"],[0,"ℷ"],[0,"ℸ"],[12,"ⅅ"],[0,"ⅆ"],[0,"ⅇ"],[0,"ⅈ"],[10,"⅓"],[0,"⅔"],[0,"⅕"],[0,"⅖"],[0,"⅗"],[0,"⅘"],[0,"⅙"],[0,"⅚"],[0,"⅛"],[0,"⅜"],[0,"⅝"],[0,"⅞"],[49,"←"],[0,"↑"],[0,"→"],[0,"↓"],[0,"↔"],[0,"↕"],[0,"↖"],[0,"↗"],[0,"↘"],[0,"↙"],[0,"↚"],[0,"↛"],[1,{v:"↝",n:824,o:"↝̸"}],[0,"↞"],[0,"↟"],[0,"↠"],[0,"↡"],[0,"↢"],[0,"↣"],[0,"↤"],[0,"↥"],[0,"↦"],[0,"↧"],[1,"↩"],[0,"↪"],[0,"↫"],[0,"↬"],[0,"↭"],[0,"↮"],[1,"↰"],[0,"↱"],[0,"↲"],[0,"↳"],[1,"↵"],[0,"↶"],[0,"↷"],[2,"↺"],[0,"↻"],[0,"↼"],[0,"↽"],[0,"↾"],[0,"↿"],[0,"⇀"],[0,"⇁"],[0,"⇂"],[0,"⇃"],[0,"⇄"],[0,"⇅"],[0,"⇆"],[0,"⇇"],[0,"⇈"],[0,"⇉"],[0,"⇊"],[0,"⇋"],[0,"⇌"],[0,"⇍"],[0,"⇎"],[0,"⇏"],[0,"⇐"],[0,"⇑"],[0,"⇒"],[0,"⇓"],[0,"⇔"],[0,"⇕"],[0,"⇖"],[0,"⇗"],[0,"⇘"],[0,"⇙"],[0,"⇚"],[0,"⇛"],[1,"⇝"],[6,"⇤"],[0,"⇥"],[15,"⇵"],[7,"⇽"],[0,"⇾"],[0,"⇿"],[0,"∀"],[0,"∁"],[0,{v:"∂",n:824,o:"∂̸"}],[0,"∃"],[0,"∄"],[0,"∅"],[1,"∇"],[0,"∈"],[0,"∉"],[1,"∋"],[0,"∌"],[2,"∏"],[0,"∐"],[0,"∑"],[0,"−"],[0,"∓"],[0,"∔"],[1,"∖"],[0,"∗"],[0,"∘"],[1,"√"],[2,"∝"],[0,"∞"],[0,"∟"],[0,{v:"∠",n:8402,o:"∠⃒"}],[0,"∡"],[0,"∢"],[0,"∣"],[0,"∤"],[0,"∥"],[0,"∦"],[0,"∧"],[0,"∨"],[0,{v:"∩",n:65024,o:"∩︀"}],[0,{v:"∪",n:65024,o:"∪︀"}],[0,"∫"],[0,"∬"],[0,"∭"],[0,"∮"],[0,"∯"],[0,"∰"],[0,"∱"],[0,"∲"],[0,"∳"],[0,"∴"],[0,"∵"],[0,"∶"],[0,"∷"],[0,"∸"],[1,"∺"],[0,"∻"],[0,{v:"∼",n:8402,o:"∼⃒"}],[0,{v:"∽",n:817,o:"∽̱"}],[0,{v:"∾",n:819,o:"∾̳"}],[0,"∿"],[0,"≀"],[0,"≁"],[0,{v:"≂",n:824,o:"≂̸"}],[0,"≃"],[0,"≄"],[0,"≅"],[0,"≆"],[0,"≇"],[0,"≈"],[0,"≉"],[0,"≊"],[0,{v:"≋",n:824,o:"≋̸"}],[0,"≌"],[0,{v:"≍",n:8402,o:"≍⃒"}],[0,{v:"≎",n:824,o:"≎̸"}],[0,{v:"≏",n:824,o:"≏̸"}],[0,{v:"≐",n:824,o:"≐̸"}],[0,"≑"],[0,"≒"],[0,"≓"],[0,"≔"],[0,"≕"],[0,"≖"],[0,"≗"],[1,"≙"],[0,"≚"],[1,"≜"],[2,"≟"],[0,"≠"],[0,{v:"≡",n:8421,o:"≡⃥"}],[0,"≢"],[1,{v:"≤",n:8402,o:"≤⃒"}],[0,{v:"≥",n:8402,o:"≥⃒"}],[0,{v:"≦",n:824,o:"≦̸"}],[0,{v:"≧",n:824,o:"≧̸"}],[0,{v:"≨",n:65024,o:"≨︀"}],[0,{v:"≩",n:65024,o:"≩︀"}],[0,{v:"≪",n:new Map(Tt([[824,"≪̸"],[7577,"≪⃒"]]))}],[0,{v:"≫",n:new Map(Tt([[824,"≫̸"],[7577,"≫⃒"]]))}],[0,"≬"],[0,"≭"],[0,"≮"],[0,"≯"],[0,"≰"],[0,"≱"],[0,"≲"],[0,"≳"],[0,"≴"],[0,"≵"],[0,"≶"],[0,"≷"],[0,"≸"],[0,"≹"],[0,"≺"],[0,"≻"],[0,"≼"],[0,"≽"],[0,"≾"],[0,{v:"≿",n:824,o:"≿̸"}],[0,"⊀"],[0,"⊁"],[0,{v:"⊂",n:8402,o:"⊂⃒"}],[0,{v:"⊃",n:8402,o:"⊃⃒"}],[0,"⊄"],[0,"⊅"],[0,"⊆"],[0,"⊇"],[0,"⊈"],[0,"⊉"],[0,{v:"⊊",n:65024,o:"⊊︀"}],[0,{v:"⊋",n:65024,o:"⊋︀"}],[1,"⊍"],[0,"⊎"],[0,{v:"⊏",n:824,o:"⊏̸"}],[0,{v:"⊐",n:824,o:"⊐̸"}],[0,"⊑"],[0,"⊒"],[0,{v:"⊓",n:65024,o:"⊓︀"}],[0,{v:"⊔",n:65024,o:"⊔︀"}],[0,"⊕"],[0,"⊖"],[0,"⊗"],[0,"⊘"],[0,"⊙"],[0,"⊚"],[0,"⊛"],[1,"⊝"],[0,"⊞"],[0,"⊟"],[0,"⊠"],[0,"⊡"],[0,"⊢"],[0,"⊣"],[0,"⊤"],[0,"⊥"],[1,"⊧"],[0,"⊨"],[0,"⊩"],[0,"⊪"],[0,"⊫"],[0,"⊬"],[0,"⊭"],[0,"⊮"],[0,"⊯"],[0,"⊰"],[1,"⊲"],[0,"⊳"],[0,{v:"⊴",n:8402,o:"⊴⃒"}],[0,{v:"⊵",n:8402,o:"⊵⃒"}],[0,"⊶"],[0,"⊷"],[0,"⊸"],[0,"⊹"],[0,"⊺"],[0,"⊻"],[1,"⊽"],[0,"⊾"],[0,"⊿"],[0,"⋀"],[0,"⋁"],[0,"⋂"],[0,"⋃"],[0,"⋄"],[0,"⋅"],[0,"⋆"],[0,"⋇"],[0,"⋈"],[0,"⋉"],[0,"⋊"],[0,"⋋"],[0,"⋌"],[0,"⋍"],[0,"⋎"],[0,"⋏"],[0,"⋐"],[0,"⋑"],[0,"⋒"],[0,"⋓"],[0,"⋔"],[0,"⋕"],[0,"⋖"],[0,"⋗"],[0,{v:"⋘",n:824,o:"⋘̸"}],[0,{v:"⋙",n:824,o:"⋙̸"}],[0,{v:"⋚",n:65024,o:"⋚︀"}],[0,{v:"⋛",n:65024,o:"⋛︀"}],[2,"⋞"],[0,"⋟"],[0,"⋠"],[0,"⋡"],[0,"⋢"],[0,"⋣"],[2,"⋦"],[0,"⋧"],[0,"⋨"],[0,"⋩"],[0,"⋪"],[0,"⋫"],[0,"⋬"],[0,"⋭"],[0,"⋮"],[0,"⋯"],[0,"⋰"],[0,"⋱"],[0,"⋲"],[0,"⋳"],[0,"⋴"],[0,{v:"⋵",n:824,o:"⋵̸"}],[0,"⋶"],[0,"⋷"],[1,{v:"⋹",n:824,o:"⋹̸"}],[0,"⋺"],[0,"⋻"],[0,"⋼"],[0,"⋽"],[0,"⋾"],[6,"⌅"],[0,"⌆"],[1,"⌈"],[0,"⌉"],[0,"⌊"],[0,"⌋"],[0,"⌌"],[0,"⌍"],[0,"⌎"],[0,"⌏"],[0,"⌐"],[1,"⌒"],[0,"⌓"],[1,"⌕"],[0,"⌖"],[5,"⌜"],[0,"⌝"],[0,"⌞"],[0,"⌟"],[2,"⌢"],[0,"⌣"],[9,"⌭"],[0,"⌮"],[7,"⌶"],[6,"⌽"],[1,"⌿"],[60,"⍼"],[51,"⎰"],[0,"⎱"],[2,"⎴"],[0,"⎵"],[0,"⎶"],[37,"⏜"],[0,"⏝"],[0,"⏞"],[0,"⏟"],[2,"⏢"],[4,"⏧"],[59,"␣"],[164,"Ⓢ"],[55,"─"],[1,"│"],[9,"┌"],[3,"┐"],[3,"└"],[3,"┘"],[3,"├"],[7,"┤"],[7,"┬"],[7,"┴"],[7,"┼"],[19,"═"],[0,"║"],[0,"╒"],[0,"╓"],[0,"╔"],[0,"╕"],[0,"╖"],[0,"╗"],[0,"╘"],[0,"╙"],[0,"╚"],[0,"╛"],[0,"╜"],[0,"╝"],[0,"╞"],[0,"╟"],[0,"╠"],[0,"╡"],[0,"╢"],[0,"╣"],[0,"╤"],[0,"╥"],[0,"╦"],[0,"╧"],[0,"╨"],[0,"╩"],[0,"╪"],[0,"╫"],[0,"╬"],[19,"▀"],[3,"▄"],[3,"█"],[8,"░"],[0,"▒"],[0,"▓"],[13,"□"],[8,"▪"],[0,"▫"],[1,"▭"],[0,"▮"],[2,"▱"],[1,"△"],[0,"▴"],[0,"▵"],[2,"▸"],[0,"▹"],[3,"▽"],[0,"▾"],[0,"▿"],[2,"◂"],[0,"◃"],[6,"◊"],[0,"○"],[32,"◬"],[2,"◯"],[8,"◸"],[0,"◹"],[0,"◺"],[0,"◻"],[0,"◼"],[8,"★"],[0,"☆"],[7,"☎"],[49,"♀"],[1,"♂"],[29,"♠"],[2,"♣"],[1,"♥"],[0,"♦"],[3,"♪"],[2,"♭"],[0,"♮"],[0,"♯"],[163,"✓"],[3,"✗"],[8,"✠"],[21,"✶"],[33,"❘"],[25,"❲"],[0,"❳"],[84,"⟈"],[0,"⟉"],[28,"⟦"],[0,"⟧"],[0,"⟨"],[0,"⟩"],[0,"⟪"],[0,"⟫"],[0,"⟬"],[0,"⟭"],[7,"⟵"],[0,"⟶"],[0,"⟷"],[0,"⟸"],[0,"⟹"],[0,"⟺"],[1,"⟼"],[2,"⟿"],[258,"⤂"],[0,"⤃"],[0,"⤄"],[0,"⤅"],[6,"⤌"],[0,"⤍"],[0,"⤎"],[0,"⤏"],[0,"⤐"],[0,"⤑"],[0,"⤒"],[0,"⤓"],[2,"⤖"],[2,"⤙"],[0,"⤚"],[0,"⤛"],[0,"⤜"],[0,"⤝"],[0,"⤞"],[0,"⤟"],[0,"⤠"],[2,"⤣"],[0,"⤤"],[0,"⤥"],[0,"⤦"],[0,"⤧"],[0,"⤨"],[0,"⤩"],[0,"⤪"],[8,{v:"⤳",n:824,o:"⤳̸"}],[1,"⤵"],[0,"⤶"],[0,"⤷"],[0,"⤸"],[0,"⤹"],[2,"⤼"],[0,"⤽"],[7,"⥅"],[2,"⥈"],[0,"⥉"],[0,"⥊"],[0,"⥋"],[2,"⥎"],[0,"⥏"],[0,"⥐"],[0,"⥑"],[0,"⥒"],[0,"⥓"],[0,"⥔"],[0,"⥕"],[0,"⥖"],[0,"⥗"],[0,"⥘"],[0,"⥙"],[0,"⥚"],[0,"⥛"],[0,"⥜"],[0,"⥝"],[0,"⥞"],[0,"⥟"],[0,"⥠"],[0,"⥡"],[0,"⥢"],[0,"⥣"],[0,"⥤"],[0,"⥥"],[0,"⥦"],[0,"⥧"],[0,"⥨"],[0,"⥩"],[0,"⥪"],[0,"⥫"],[0,"⥬"],[0,"⥭"],[0,"⥮"],[0,"⥯"],[0,"⥰"],[0,"⥱"],[0,"⥲"],[0,"⥳"],[0,"⥴"],[0,"⥵"],[0,"⥶"],[1,"⥸"],[0,"⥹"],[1,"⥻"],[0,"⥼"],[0,"⥽"],[0,"⥾"],[0,"⥿"],[5,"⦅"],[0,"⦆"],[4,"⦋"],[0,"⦌"],[0,"⦍"],[0,"⦎"],[0,"⦏"],[0,"⦐"],[0,"⦑"],[0,"⦒"],[0,"⦓"],[0,"⦔"],[0,"⦕"],[0,"⦖"],[3,"⦚"],[1,"⦜"],[0,"⦝"],[6,"⦤"],[0,"⦥"],[0,"⦦"],[0,"⦧"],[0,"⦨"],[0,"⦩"],[0,"⦪"],[0,"⦫"],[0,"⦬"],[0,"⦭"],[0,"⦮"],[0,"⦯"],[0,"⦰"],[0,"⦱"],[0,"⦲"],[0,"⦳"],[0,"⦴"],[0,"⦵"],[0,"⦶"],[0,"⦷"],[1,"⦹"],[1,"⦻"],[0,"⦼"],[1,"⦾"],[0,"⦿"],[0,"⧀"],[0,"⧁"],[0,"⧂"],[0,"⧃"],[0,"⧄"],[0,"⧅"],[3,"⧉"],[3,"⧍"],[0,"⧎"],[0,{v:"⧏",n:824,o:"⧏̸"}],[0,{v:"⧐",n:824,o:"⧐̸"}],[11,"⧜"],[0,"⧝"],[0,"⧞"],[4,"⧣"],[0,"⧤"],[0,"⧥"],[5,"⧫"],[8,"⧴"],[1,"⧶"],[9,"⨀"],[0,"⨁"],[0,"⨂"],[1,"⨄"],[1,"⨆"],[5,"⨌"],[0,"⨍"],[2,"⨐"],[0,"⨑"],[0,"⨒"],[0,"⨓"],[0,"⨔"],[0,"⨕"],[0,"⨖"],[0,"⨗"],[10,"⨢"],[0,"⨣"],[0,"⨤"],[0,"⨥"],[0,"⨦"],[0,"⨧"],[1,"⨩"],[0,"⨪"],[2,"⨭"],[0,"⨮"],[0,"⨯"],[0,"⨰"],[0,"⨱"],[1,"⨳"],[0,"⨴"],[0,"⨵"],[0,"⨶"],[0,"⨷"],[0,"⨸"],[0,"⨹"],[0,"⨺"],[0,"⨻"],[0,"⨼"],[2,"⨿"],[0,"⩀"],[1,"⩂"],[0,"⩃"],[0,"⩄"],[0,"⩅"],[0,"⩆"],[0,"⩇"],[0,"⩈"],[0,"⩉"],[0,"⩊"],[0,"⩋"],[0,"⩌"],[0,"⩍"],[2,"⩐"],[2,"⩓"],[0,"⩔"],[0,"⩕"],[0,"⩖"],[0,"⩗"],[0,"⩘"],[1,"⩚"],[0,"⩛"],[0,"⩜"],[0,"⩝"],[1,"⩟"],[6,"⩦"],[3,"⩪"],[2,{v:"⩭",n:824,o:"⩭̸"}],[0,"⩮"],[0,"⩯"],[0,{v:"⩰",n:824,o:"⩰̸"}],[0,"⩱"],[0,"⩲"],[0,"⩳"],[0,"⩴"],[0,"⩵"],[1,"⩷"],[0,"⩸"],[0,"⩹"],[0,"⩺"],[0,"⩻"],[0,"⩼"],[0,{v:"⩽",n:824,o:"⩽̸"}],[0,{v:"⩾",n:824,o:"⩾̸"}],[0,"⩿"],[0,"⪀"],[0,"⪁"],[0,"⪂"],[0,"⪃"],[0,"⪄"],[0,"⪅"],[0,"⪆"],[0,"⪇"],[0,"⪈"],[0,"⪉"],[0,"⪊"],[0,"⪋"],[0,"⪌"],[0,"⪍"],[0,"⪎"],[0,"⪏"],[0,"⪐"],[0,"⪑"],[0,"⪒"],[0,"⪓"],[0,"⪔"],[0,"⪕"],[0,"⪖"],[0,"⪗"],[0,"⪘"],[0,"⪙"],[0,"⪚"],[2,"⪝"],[0,"⪞"],[0,"⪟"],[0,"⪠"],[0,{v:"⪡",n:824,o:"⪡̸"}],[0,{v:"⪢",n:824,o:"⪢̸"}],[1,"⪤"],[0,"⪥"],[0,"⪦"],[0,"⪧"],[0,"⪨"],[0,"⪩"],[0,"⪪"],[0,"⪫"],[0,{v:"⪬",n:65024,o:"⪬︀"}],[0,{v:"⪭",n:65024,o:"⪭︀"}],[0,"⪮"],[0,{v:"⪯",n:824,o:"⪯̸"}],[0,{v:"⪰",n:824,o:"⪰̸"}],[2,"⪳"],[0,"⪴"],[0,"⪵"],[0,"⪶"],[0,"⪷"],[0,"⪸"],[0,"⪹"],[0,"⪺"],[0,"⪻"],[0,"⪼"],[0,"⪽"],[0,"⪾"],[0,"⪿"],[0,"⫀"],[0,"⫁"],[0,"⫂"],[0,"⫃"],[0,"⫄"],[0,{v:"⫅",n:824,o:"⫅̸"}],[0,{v:"⫆",n:824,o:"⫆̸"}],[0,"⫇"],[0,"⫈"],[2,{v:"⫋",n:65024,o:"⫋︀"}],[0,{v:"⫌",n:65024,o:"⫌︀"}],[2,"⫏"],[0,"⫐"],[0,"⫑"],[0,"⫒"],[0,"⫓"],[0,"⫔"],[0,"⫕"],[0,"⫖"],[0,"⫗"],[0,"⫘"],[0,"⫙"],[0,"⫚"],[0,"⫛"],[8,"⫤"],[1,"⫦"],[0,"⫧"],[0,"⫨"],[0,"⫩"],[1,"⫫"],[0,"⫬"],[0,"⫭"],[0,"⫮"],[0,"⫯"],[0,"⫰"],[0,"⫱"],[0,"⫲"],[0,"⫳"],[9,{v:"⫽",n:8421,o:"⫽⃥"}],[44343,{n:new Map(Tt([[56476,"𝒜"],[1,"𝒞"],[0,"𝒟"],[2,"𝒢"],[2,"𝒥"],[0,"𝒦"],[2,"𝒩"],[0,"𝒪"],[0,"𝒫"],[0,"𝒬"],[1,"𝒮"],[0,"𝒯"],[0,"𝒰"],[0,"𝒱"],[0,"𝒲"],[0,"𝒳"],[0,"𝒴"],[0,"𝒵"],[0,"𝒶"],[0,"𝒷"],[0,"𝒸"],[0,"𝒹"],[1,"𝒻"],[1,"𝒽"],[0,"𝒾"],[0,"𝒿"],[0,"𝓀"],[0,"𝓁"],[0,"𝓂"],[0,"𝓃"],[1,"𝓅"],[0,"𝓆"],[0,"𝓇"],[0,"𝓈"],[0,"𝓉"],[0,"𝓊"],[0,"𝓋"],[0,"𝓌"],[0,"𝓍"],[0,"𝓎"],[0,"𝓏"],[52,"𝔄"],[0,"𝔅"],[1,"𝔇"],[0,"𝔈"],[0,"𝔉"],[0,"𝔊"],[2,"𝔍"],[0,"𝔎"],[0,"𝔏"],[0,"𝔐"],[0,"𝔑"],[0,"𝔒"],[0,"𝔓"],[0,"𝔔"],[1,"𝔖"],[0,"𝔗"],[0,"𝔘"],[0,"𝔙"],[0,"𝔚"],[0,"𝔛"],[0,"𝔜"],[1,"𝔞"],[0,"𝔟"],[0,"𝔠"],[0,"𝔡"],[0,"𝔢"],[0,"𝔣"],[0,"𝔤"],[0,"𝔥"],[0,"𝔦"],[0,"𝔧"],[0,"𝔨"],[0,"𝔩"],[0,"𝔪"],[0,"𝔫"],[0,"𝔬"],[0,"𝔭"],[0,"𝔮"],[0,"𝔯"],[0,"𝔰"],[0,"𝔱"],[0,"𝔲"],[0,"𝔳"],[0,"𝔴"],[0,"𝔵"],[0,"𝔶"],[0,"𝔷"],[0,"𝔸"],[0,"𝔹"],[1,"𝔻"],[0,"𝔼"],[0,"𝔽"],[0,"𝔾"],[1,"𝕀"],[0,"𝕁"],[0,"𝕂"],[0,"𝕃"],[0,"𝕄"],[1,"𝕆"],[3,"𝕊"],[0,"𝕋"],[0,"𝕌"],[0,"𝕍"],[0,"𝕎"],[0,"𝕏"],[0,"𝕐"],[1,"𝕒"],[0,"𝕓"],[0,"𝕔"],[0,"𝕕"],[0,"𝕖"],[0,"𝕗"],[0,"𝕘"],[0,"𝕙"],[0,"𝕚"],[0,"𝕛"],[0,"𝕜"],[0,"𝕝"],[0,"𝕞"],[0,"𝕟"],[0,"𝕠"],[0,"𝕡"],[0,"𝕢"],[0,"𝕣"],[0,"𝕤"],[0,"𝕥"],[0,"𝕦"],[0,"𝕧"],[0,"𝕨"],[0,"𝕩"],[0,"𝕪"],[0,"𝕫"]]))}],[8906,"ff"],[0,"fi"],[0,"fl"],[0,"ffi"],[0,"ffl"]])),yi=/["&'<>$\x80-\uFFFF]/g,mr=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),$a=String.prototype.codePointAt!=null?(t,e)=>t.codePointAt(e):(t,e)=>(t.charCodeAt(e)&64512)===55296?(t.charCodeAt(e)-55296)*1024+t.charCodeAt(e+1)-56320+65536:t.charCodeAt(e);function xr(t){let e="",u=0,i;for(;(i=yi.exec(t))!==null;){let r=i.index,n=t.charCodeAt(r),a=mr.get(n);a!==void 0?(e+=t.substring(u,r)+a,u=r+1):(e+=`${t.substring(u,r)}&#x${$a(t,r).toString(16)};`,u=yi.lastIndex+=+((n&64512)===55296))}return e+t.substr(u)}function Ne(t,e){return function(u){let i,r=0,n="";for(;i=t.exec(u);)r!==i.index&&(n+=u.substring(r,i.index)),n+=e.get(i[0].charCodeAt(0)),r=i.index+1;return n+u.substring(r)}}var v0=Ne(/[&<>'"]/g,mr),Pa=Ne(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),Ra=Ne(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]])),Fi;(function(t){t[t.XML=0]="XML",t[t.HTML=1]="HTML"})(Fi||(Fi={}));var vi;(function(t){t[t.UTF8=0]="UTF8",t[t.ASCII=1]="ASCII",t[t.Extensive=2]="Extensive",t[t.Attribute=3]="Attribute",t[t.Text=4]="Text"})(vi||(vi={}));var qa=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(t=>[t.toLowerCase(),t])),Oa=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(t=>[t.toLowerCase(),t])),Ma=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function Ua(t){return t.replace(/"/g,""")}function Ha(t,e){var u;if(!t)return;let i=((u=e.encodeEntities)!==null&&u!==void 0?u:e.decodeEntities)===!1?Ua:e.xmlMode||e.encodeEntities!=="utf8"?xr:Pa;return Object.keys(t).map(r=>{var n,a;let s=(n=t[r])!==null&&n!==void 0?n:"";return e.xmlMode==="foreign"&&(r=(a=Oa.get(r))!==null&&a!==void 0?a:r),!e.emptyAttrs&&!e.xmlMode&&s===""?r:`${r}="${i(s)}"`}).join(" ")}var ki=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function Vt(t,e={}){let u="length"in t?t:[t],i="";for(let r=0;r<u.length;r++)i+=ja(u[r],e);return i}function ja(t,e){switch(t.type){case Yr:return Vt(t.children,e);case nn:case Qr:return za(t);case Xr:return Ya(t);case rn:return Ja(t);case tn:case en:case un:return Ga(t,e);case Zr:return Ka(t,e)}}var Va=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),Wa=new Set(["svg","math"]);function Ga(t,e){var u;e.xmlMode==="foreign"&&(t.name=(u=qa.get(t.name))!==null&&u!==void 0?u:t.name,t.parent&&Va.has(t.parent.name)&&(e={...e,xmlMode:!1})),!e.xmlMode&&Wa.has(t.name)&&(e={...e,xmlMode:"foreign"});let i=`<${t.name}`,r=Ha(t.attribs,e);return r&&(i+=` ${r}`),t.children.length===0&&(e.xmlMode?e.selfClosingTags!==!1:e.selfClosingTags&&ki.has(t.name))?(e.xmlMode||(i+=" "),i+="/>"):(i+=">",t.children.length>0&&(i+=Vt(t.children,e)),(e.xmlMode||!ki.has(t.name))&&(i+=`</${t.name}>`)),i}function za(t){return`<${t.data}>`}function Ka(t,e){var u;let i=t.data||"";return((u=e.encodeEntities)!==null&&u!==void 0?u:e.decodeEntities)!==!1&&!(!e.xmlMode&&t.parent&&Ma.has(t.parent.name))&&(i=e.xmlMode||e.encodeEntities!=="utf8"?xr(i):Ra(i)),i}function Ja(t){return`<![CDATA[${t.children[0].data}]]>`}function Ya(t){return`<!--${t.data}-->`}var Si;(function(t){t[t.DISCONNECTED=1]="DISCONNECTED",t[t.PRECEDING=2]="PRECEDING",t[t.FOLLOWING=4]="FOLLOWING",t[t.CONTAINS=8]="CONTAINS",t[t.CONTAINED_BY=16]="CONTAINED_BY"})(Si||(Si={}));function Za(t,e){let u=new hn(void 0,e);return new Na(u,e).end(t),u.root}var Ar=te(qr(),1);function $e(t,e,u=()=>{}){if(t===void 0){let i=function(...r){return e(i,...r)};return i}return t>=0?function(...i){return e($e(t-1,e,u),...i)}:u}function Er(t,e){let u=0,i=t.length;for(;u<i&&t[u]===e;)++u;for(;i>u&&t[i-1]===e;)--i;return u>0||i<t.length?t.substring(u,i):t}function Qa(t,e){let u=t.length;for(;u>0&&t[u-1]===e;)--u;return u<t.length?t.substring(0,u):t}function Xa(t){return t.replace(/[\s\S]/g,e=>"\\u"+e.charCodeAt().toString(16).padStart(4,"0"))}function Br(t,e){let u=new Map;for(let i=t.length;i-- >0;){let r=t[i],n=e(r);u.set(n,u.has(n)?(0,Ar.default)(r,u.get(n),{arrayMerge:ts}):r)}return[...u.values()].reverse()}var ts=(t,e,u)=>[...e];function ft(t,e){for(let u of e){if(!t)return;t=t[u]}return t}function Ti(t,e="a",u=26){let i=[];do t-=1,i.push(t%u),t=t/u>>0;while(t>0);let r=e.charCodeAt(0);return i.reverse().map(n=>String.fromCharCode(r+n)).join("")}var pe=["I","X","C","M"],Li=["V","L","D"];function _i(t){return[...t+""].map(e=>+e).reverse().map((e,u)=>e%5<4?(e<5?"":Li[u])+pe[u].repeat(e%5):pe[u]+(e<5?Li[u]:pe[u+1])).reverse().join("")}var Cr=class{constructor(t,e=void 0){this.lines=[],this.nextLineWords=[],this.maxLineLength=e||t.wordwrap||Number.MAX_VALUE,this.nextLineAvailableChars=this.maxLineLength,this.wrapCharacters=ft(t,["longWordSplit","wrapCharacters"])||[],this.forceWrapOnLimit=ft(t,["longWordSplit","forceWrapOnLimit"])||!1,this.stashedSpace=!1,this.wordBreakOpportunity=!1}pushWord(t,e=!1){this.nextLineAvailableChars<=0&&!e&&this.startNewLine();let u=this.nextLineWords.length===0,i=t.length+(u?0:1);if(i<=this.nextLineAvailableChars||e)this.nextLineWords.push(t),this.nextLineAvailableChars-=i;else{let[r,...n]=this.splitLongWord(t);u||this.startNewLine(),this.nextLineWords.push(r),this.nextLineAvailableChars-=r.length;for(let a of n)this.startNewLine(),this.nextLineWords.push(a),this.nextLineAvailableChars-=a.length}}popWord(){let t=this.nextLineWords.pop();if(t!==void 0){let e=this.nextLineWords.length===0,u=t.length+(e?0:1);this.nextLineAvailableChars+=u}return t}concatWord(t,e=!1){if(this.wordBreakOpportunity&&t.length>this.nextLineAvailableChars)this.pushWord(t,e),this.wordBreakOpportunity=!1;else{let u=this.popWord();this.pushWord(u?u.concat(t):t,e)}}startNewLine(t=1){this.lines.push(this.nextLineWords),t>1&&this.lines.push(...Array.from({length:t-1},()=>[])),this.nextLineWords=[],this.nextLineAvailableChars=this.maxLineLength}isEmpty(){return this.lines.length===0&&this.nextLineWords.length===0}clear(){this.lines.length=0,this.nextLineWords.length=0,this.nextLineAvailableChars=this.maxLineLength}toString(){return[...this.lines,this.nextLineWords].map(t=>t.join(" ")).join(`
|
|
9
|
+
`)}splitLongWord(t){let e=[],u=0;for(;t.length>this.maxLineLength;){let i=t.substring(0,this.maxLineLength),r=t.substring(this.maxLineLength),n=i.lastIndexOf(this.wrapCharacters[u]);if(n>-1)t=i.substring(n+1)+r,e.push(i.substring(0,n+1));else if(u++,u<this.wrapCharacters.length)t=i+r;else{if(this.forceWrapOnLimit){if(e.push(i),t=r,t.length>this.maxLineLength)continue}else t=i+r;break}}return e.push(t),e}},bt=class{constructor(t=null){this.next=t}getRoot(){return this.next?this.next:this}},G=class extends bt{constructor(t,e=null,u=1,i=void 0){super(e),this.leadingLineBreaks=u,this.inlineTextBuilder=new Cr(t,i),this.rawText="",this.stashedLineBreaks=0,this.isPre=e&&e.isPre,this.isNoWrap=e&&e.isNoWrap}},Ii=class extends G{constructor(t,e=null,{interRowLineBreaks:u=1,leadingLineBreaks:i=2,maxLineLength:r=void 0,maxPrefixLength:n=0,prefixAlign:a="left"}={}){super(t,e,i,r),this.maxPrefixLength=n,this.prefixAlign=a,this.interRowLineBreaks=u}},nt=class extends G{constructor(t,e=null,{leadingLineBreaks:u=1,maxLineLength:i=void 0,prefix:r=""}={}){super(t,e,u,i),this.prefix=r}},Ni=class extends bt{constructor(t=null){super(t),this.rows=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},$i=class extends bt{constructor(t=null){super(t),this.cells=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},at=class extends bt{constructor(t,e=null,u=void 0){super(e),this.inlineTextBuilder=new Cr(t,u),this.rawText="",this.stashedLineBreaks=0,this.isPre=e&&e.isPre,this.isNoWrap=e&&e.isNoWrap}},es=class extends bt{constructor(t=null,e){super(t),this.transform=e}};function us(t){return[...t].map(e=>"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0")).join("")}var is=class{constructor(t){this.whitespaceChars=t.preserveNewlines?t.whitespaceCharacters.replace(/\n/g,""):t.whitespaceCharacters;let e=us(this.whitespaceChars);if(this.leadingWhitespaceRe=new RegExp(`^[${e}]`),this.trailingWhitespaceRe=new RegExp(`[${e}]$`),this.allWhitespaceOrEmptyRe=new RegExp(`^[${e}]*$`),this.newlineOrNonWhitespaceRe=new RegExp(`(\\n|[^\\n${e}])`,"g"),this.newlineOrNonNewlineStringRe=new RegExp("(\\n|[^\\n]+)","g"),t.preserveNewlines){let u=new RegExp(`\\n|[^\\n${e}]+`,"gm");this.shrinkWrapAdd=function(i,r,n=s=>s,a=!1){if(!i)return;let s=r.stashedSpace,o=!1,l=u.exec(i);if(l)for(o=!0,l[0]===`
|
|
10
10
|
`?r.startNewLine():s||this.testLeadingWhitespace(i)?r.pushWord(n(l[0]),a):r.concatWord(n(l[0]),a);(l=u.exec(i))!==null;)l[0]===`
|
|
11
11
|
`?r.startNewLine():r.pushWord(n(l[0]),a);r.stashedSpace=s&&!o||this.testTrailingWhitespace(i)}}else{let u=new RegExp(`[^${e}]+`,"g");this.shrinkWrapAdd=function(i,r,n=s=>s,a=!1){if(!i)return;let s=r.stashedSpace,o=!1,l=u.exec(i);if(l)for(o=!0,s||this.testLeadingWhitespace(i)?r.pushWord(n(l[0]),a):r.concatWord(n(l[0]),a);(l=u.exec(i))!==null;)r.pushWord(n(l[0]),a);r.stashedSpace=s&&!o||this.testTrailingWhitespace(i)}}}addLiteral(t,e,u=!0){if(!t)return;let i=e.stashedSpace,r=!1,n=this.newlineOrNonNewlineStringRe.exec(t);if(n)for(r=!0,n[0]===`
|
|
12
12
|
`?e.startNewLine():i?e.pushWord(n[0],u):e.concatWord(n[0],u);(n=this.newlineOrNonNewlineStringRe.exec(t))!==null;)n[0]===`
|
|
13
13
|
`?e.startNewLine():e.pushWord(n[0],u);e.stashedSpace=i&&!r}testLeadingWhitespace(t){return this.leadingWhitespaceRe.test(t)}testTrailingWhitespace(t){return this.trailingWhitespaceRe.test(t)}testContainsWords(t){return!this.allWhitespaceOrEmptyRe.test(t)}countNewlinesNoWords(t){this.newlineOrNonWhitespaceRe.lastIndex=0;let e=0,u;for(;(u=this.newlineOrNonWhitespaceRe.exec(t))!==null;)if(u[0]===`
|
|
14
|
-
`)e++;else return 0;return e}},
|
|
15
|
-
`:this._stackItem.inlineTextBuilder.startNewLine())}addWordBreakOpportunity(){(this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at)&&(this._stackItem.inlineTextBuilder.wordBreakOpportunity=!0)}addInline(t,{noWordTransform:e=!1}={}){if(this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}if(!(t.length===0||this._stackItem.stashedLineBreaks&&!this.whitespaceProcessor.testContainsWords(t))){if(this.options.preserveNewlines){let u=this.whitespaceProcessor.countNewlinesNoWords(t);if(u>0){this._stackItem.inlineTextBuilder.startNewLine(u);return}}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.shrinkWrapAdd(t,this._stackItem.inlineTextBuilder,e?void 0:this._getCombinedWordTransformer(),this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}}addLiteral(t){if((this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at)&&t.length!==0){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.addLiteral(t,this._stackItem.inlineTextBuilder,this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}openBlock({leadingLineBreaks:t=1,reservedLineLength:e=0,isPre:u=!1}={}){let i=Math.max(20,this._stackItem.inlineTextBuilder.maxLineLength-e);this._stackItem=new G(this.options,this._stackItem,t,i),u&&(this._stackItem.isPre=!0)}closeBlock({trailingLineBreaks:t=1,blockTransform:e=void 0}={}){let u=this._popStackItem(),i=e?e(it(u)):it(u);
|
|
16
|
-
`+" ".repeat(u),r=(e.prefixAlign==="right"?t.prefix.padStart(u):t.prefix.padEnd(u))+it(t).replace(/\n/g,i);
|
|
17
|
-
`);u.next.cells.push({colspan:t,rowspan:e,text:i})}closeTableRow(){let t=this._popStackItem();t.next.rows.push(t.cells)}closeTable({tableToString:t,leadingLineBreaks:e=2,trailingLineBreaks:u=2}){let i=this._popStackItem(),r=t(i.rows);r&&
|
|
18
|
-
`.repeat(n)+e:(t.rawText=e,t.leadingLineBreaks=n),t.stashedLineBreaks=i}function
|
|
19
|
-
`);let y=B.lines.length
|
|
20
|
-
`)}function
|
|
14
|
+
`)e++;else return 0;return e}},rs=class{constructor(t,e,u=void 0){this.options=t,this.picker=e,this.metadata=u,this.whitespaceProcessor=new is(t),this._stackItem=new G(t),this._wordTransformer=void 0}pushWordTransform(t){this._wordTransformer=new es(this._wordTransformer,t)}popWordTransform(){if(!this._wordTransformer)return;let t=this._wordTransformer.transform;return this._wordTransformer=this._wordTransformer.next,t}startNoWrap(){this._stackItem.isNoWrap=!0}stopNoWrap(){this._stackItem.isNoWrap=!1}_getCombinedWordTransformer(){let t=this._wordTransformer?u=>Dr(u,this._wordTransformer):void 0,e=this.options.encodeCharacters;return t?e?u=>e(t(u)):t:e}_popStackItem(){let t=this._stackItem;return this._stackItem=t.next,t}addLineBreak(){(this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at)&&(this._stackItem.isPre?this._stackItem.rawText+=`
|
|
15
|
+
`:this._stackItem.inlineTextBuilder.startNewLine())}addWordBreakOpportunity(){(this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at)&&(this._stackItem.inlineTextBuilder.wordBreakOpportunity=!0)}addInline(t,{noWordTransform:e=!1}={}){if(this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}if(!(t.length===0||this._stackItem.stashedLineBreaks&&!this.whitespaceProcessor.testContainsWords(t))){if(this.options.preserveNewlines){let u=this.whitespaceProcessor.countNewlinesNoWords(t);if(u>0){this._stackItem.inlineTextBuilder.startNewLine(u);return}}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.shrinkWrapAdd(t,this._stackItem.inlineTextBuilder,e?void 0:this._getCombinedWordTransformer(),this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}}addLiteral(t){if((this._stackItem instanceof G||this._stackItem instanceof nt||this._stackItem instanceof at)&&t.length!==0){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.addLiteral(t,this._stackItem.inlineTextBuilder,this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}openBlock({leadingLineBreaks:t=1,reservedLineLength:e=0,isPre:u=!1}={}){let i=Math.max(20,this._stackItem.inlineTextBuilder.maxLineLength-e);this._stackItem=new G(this.options,this._stackItem,t,i),u&&(this._stackItem.isPre=!0)}closeBlock({trailingLineBreaks:t=1,blockTransform:e=void 0}={}){let u=this._popStackItem(),i=e?e(it(u)):it(u);Lt(this._stackItem,i,u.leadingLineBreaks,Math.max(u.stashedLineBreaks,t))}openList({maxPrefixLength:t=0,prefixAlign:e="left",interRowLineBreaks:u=1,leadingLineBreaks:i=2}={}){this._stackItem=new Ii(this.options,this._stackItem,{interRowLineBreaks:u,leadingLineBreaks:i,maxLineLength:this._stackItem.inlineTextBuilder.maxLineLength,maxPrefixLength:t,prefixAlign:e})}openListItem({prefix:t=""}={}){if(!(this._stackItem instanceof Ii))throw new Error("Can't add a list item to something that is not a list! Check the formatter.");let e=this._stackItem,u=Math.max(t.length,e.maxPrefixLength),i=Math.max(20,e.inlineTextBuilder.maxLineLength-u);this._stackItem=new nt(this.options,e,{prefix:t,maxLineLength:i,leadingLineBreaks:e.interRowLineBreaks})}closeListItem(){let t=this._popStackItem(),e=t.next,u=Math.max(t.prefix.length,e.maxPrefixLength),i=`
|
|
16
|
+
`+" ".repeat(u),r=(e.prefixAlign==="right"?t.prefix.padStart(u):t.prefix.padEnd(u))+it(t).replace(/\n/g,i);Lt(e,r,t.leadingLineBreaks,Math.max(t.stashedLineBreaks,e.interRowLineBreaks))}closeList({trailingLineBreaks:t=2}={}){let e=this._popStackItem(),u=it(e);u&&Lt(this._stackItem,u,e.leadingLineBreaks,t)}openTable(){this._stackItem=new Ni(this._stackItem)}openTableRow(){if(!(this._stackItem instanceof Ni))throw new Error("Can't add a table row to something that is not a table! Check the formatter.");this._stackItem=new $i(this._stackItem)}openTableCell({maxColumnWidth:t=void 0}={}){if(!(this._stackItem instanceof $i))throw new Error("Can't add a table cell to something that is not a table row! Check the formatter.");this._stackItem=new at(this.options,this._stackItem,t)}closeTableCell({colspan:t=1,rowspan:e=1}={}){let u=this._popStackItem(),i=Er(it(u),`
|
|
17
|
+
`);u.next.cells.push({colspan:t,rowspan:e,text:i})}closeTableRow(){let t=this._popStackItem();t.next.rows.push(t.cells)}closeTable({tableToString:t,leadingLineBreaks:e=2,trailingLineBreaks:u=2}){let i=this._popStackItem(),r=t(i.rows);r&&Lt(this._stackItem,r,e,u)}toString(){return it(this._stackItem.getRoot())}};function it(t){if(!(t instanceof G||t instanceof nt||t instanceof at))throw new Error("Only blocks, list items and table cells can be requested for text contents.");return t.inlineTextBuilder.isEmpty()?t.rawText:t.rawText+t.inlineTextBuilder.toString()}function Lt(t,e,u,i){if(!(t instanceof G||t instanceof nt||t instanceof at))throw new Error("Only blocks, list items and table cells can contain text.");let r=it(t),n=Math.max(t.stashedLineBreaks,u);t.inlineTextBuilder.clear(),r?t.rawText=r+`
|
|
18
|
+
`.repeat(n)+e:(t.rawText=e,t.leadingLineBreaks=n),t.stashedLineBreaks=i}function Dr(t,e){return e?Dr(e.transform(t),e.next):t}function ns(t={}){let e=t.selectors.filter(a=>!a.format);if(e.length)throw new Error("Following selectors have no specified format: "+e.map(a=>`\`${a.selector}\``).join(", "));let u=new mi(t.selectors.map(a=>[a.selector,a])).build(Ai);typeof t.encodeCharacters!="function"&&(t.encodeCharacters=cs(t.encodeCharacters));let i=new mi(t.baseElements.selectors.map((a,s)=>[a,s+1])).build(Ai);function r(a){return ss(a,t,i)}let n=$e(t.limits.maxDepth,os,function(a,s){s.addInline(t.limits.ellipsis||"")});return function(a,s=void 0){return as(a,s,t,u,r,n)}}function as(t,e,u,i,r,n){let a=u.limits.maxInputLength;a&&t&&t.length>a&&(console.warn(`Input length ${t.length} is above allowed limit of ${a}. Truncating without ellipsis.`),t=t.substring(0,a));let s=Za(t,{decodeEntities:u.decodeEntities}),o=r(s.children),l=new rs(u,i,e);return n(o,l),l.toString()}function ss(t,e,u){let i=[];function r(n,a){a=a.slice(0,e.limits.maxChildNodes);for(let s of a){if(s.type!=="tag")continue;let o=u.pick1(s);if(o>0?i.push({selectorIndex:o,element:s}):s.children&&n(s.children),i.length>=e.limits.maxBaseElements)return}}return $e(e.limits.maxDepth,r)(t),e.baseElements.orderBy!=="occurrence"&&i.sort((n,a)=>n.selectorIndex-a.selectorIndex),e.baseElements.returnDomByDefault&&i.length===0?t:i.map(n=>n.element)}function os(t,e,u){if(!e)return;let i=u.options;e.length>i.limits.maxChildNodes&&(e=e.slice(0,i.limits.maxChildNodes),e.push({data:i.limits.ellipsis,type:"text"}));for(let r of e)switch(r.type){case"text":{u.addInline(r.data);break}case"tag":{let n=u.picker.pick1(r),a=i.formatters[n.format];a(r,t,u,n.options||{});break}}}function cs(t){if(!t||Object.keys(t).length===0)return;let e=Object.entries(t).filter(([,n])=>n!==!1),u=new RegExp(e.map(([n])=>`(${Xa([...n][0])})`).join("|"),"g"),i=e.map(([,n])=>n),r=(n,...a)=>i[a.findIndex(s=>s)];return n=>n.replace(u,r)}function ls(t,e,u,i){}function hs(t,e,u,i){u.addLiteral(i.string||"")}function ds(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),u.addLiteral(i.string||""),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function ps(t,e,u,i){e(t.children,u)}function gs(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function br(t){let e=t.attribs&&t.attribs.length?" "+Object.entries(t.attribs).map(([u,i])=>i===""?u:`${u}=${i.replace(/"/g,""")}`).join(" "):"";return`<${t.name}${e}>`}function wr(t){return`</${t.name}>`}function fs(t,e,u,i){u.startNoWrap(),u.addLiteral(br(t)),u.stopNoWrap(),e(t.children,u),u.startNoWrap(),u.addLiteral(wr(t)),u.stopNoWrap()}function ms(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(br(t)),u.stopNoWrap(),e(t.children,u),u.startNoWrap(),u.addLiteral(wr(t)),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function xs(t,e,u,i){u.startNoWrap(),u.addLiteral(Vt(t,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap()}function As(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(Vt(t,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function Es(t,e,u,i){u.addLiteral(i.prefix||""),e(t.children,u),u.addLiteral(i.suffix||"")}var Bs=Object.freeze({__proto__:null,block:gs,blockHtml:As,blockString:ds,blockTag:ms,inline:ps,inlineHtml:xs,inlineString:hs,inlineSurround:Es,inlineTag:fs,skip:ls});function Mt(t,e){return t[e]||(t[e]=[]),t[e]}function Cs(t,e=0){for(;t[e];)e++;return e}function Ds(t,e){for(let u=0;u<e;u++){let i=Mt(t,u);for(let r=0;r<u;r++){let n=Mt(t,r);if(i[r]||n[u]){let a=i[r];i[r]=n[u],n[u]=a}}}}function bs(t,e,u,i){for(let r=0;r<t.rowspan;r++){let n=Mt(e,u+r);for(let a=0;a<t.colspan;a++)n[i+a]=t}}function Ce(t,e){return t[e]===void 0&&(t[e]=e===0?0:1+Ce(t,e-1)),t[e]}function Pi(t,e,u,i){t[e+u]=Math.max(Ce(t,e+u),Ce(t,e)+i)}function ws(t,e,u){let i=[],r=0,n=t.length,a=[0];for(let l=0;l<n;l++){let p=Mt(i,l),A=t[l],E=0;for(let x=0;x<A.length;x++){let B=A[x];E=Cs(p,E),bs(B,i,l,E),E+=B.colspan,B.lines=B.text.split(`
|
|
19
|
+
`);let y=B.lines.length;Pi(a,l,B.rowspan,y+e)}r=p.length>r?p.length:r}Ds(i,n>r?n:r);let s=[],o=[0];for(let l=0;l<r;l++){let p=0,A,E=Math.min(n,i[l].length);for(;p<E;)if(A=i[l][p],A){if(!A.rendered){let x=0;for(let B=0;B<A.lines.length;B++){let y=A.lines[B],b=a[p]+B;s[b]=(s[b]||"").padEnd(o[l])+y,x=y.length>x?y.length:x}Pi(o,l,A.colspan,x+u),A.rendered=!0}p+=A.rowspan}else{let x=a[p];s[x]=s[x]||"",p++}}return s.join(`
|
|
20
|
+
`)}function ys(t,e,u,i){u.addLineBreak()}function Fs(t,e,u,i){u.addWordBreakOpportunity()}function vs(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),u.addInline("-".repeat(i.length||u.options.wordwrap||40)),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function ks(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function Ss(t,e,u,i){u.openBlock({isPre:!0,leadingLineBreaks:i.leadingLineBreaks||2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function Ts(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),i.uppercase!==!1?(u.pushWordTransform(r=>r.toUpperCase()),e(t.children,u),u.popWordTransform()):e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function Ls(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2,reservedLineLength:2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2,blockTransform:r=>(i.trimEmptyLines!==!1?Er(r,`
|
|
21
21
|
`):r).split(`
|
|
22
22
|
`).map(n=>"> "+n).join(`
|
|
23
|
-
`)})}function De(t,e){if(!e)return t;let u=typeof e[0]=="string"?e[0]:"[",i=typeof e[1]=="string"?e[1]:"]";return u+t+i}function
|
|
24
|
-
\f\u200B`,wordwrap:80},
|
|
25
|
-
`),
|
|
26
|
-
`}let
|
|
23
|
+
`)})}function De(t,e){if(!e)return t;let u=typeof e[0]=="string"?e[0]:"[",i=typeof e[1]=="string"?e[1]:"]";return u+t+i}function yr(t,e,u,i,r){let n=typeof e=="function"?e(t,i,r):t;return n[0]==="/"&&u?Qa(u,"/")+n:n}function _s(t,e,u,i){let r=t.attribs||{},n=r.alt?r.alt:"",a=r.src?yr(r.src,i.pathRewrite,i.baseUrl,u.metadata,t):"",s=a?n?n+" "+De(a,i.linkBrackets):De(a,i.linkBrackets):n;u.addInline(s,{noWordTransform:!0})}function Is(t,e,u,i){function r(){if(i.ignoreHref||!t.attribs||!t.attribs.href)return"";let a=t.attribs.href.replace(/^mailto:/,"");return i.noAnchorUrl&&a[0]==="#"?"":(a=yr(a,i.pathRewrite,i.baseUrl,u.metadata,t),a)}let n=r();if(!n)e(t.children,u);else{let a="";u.pushWordTransform(s=>(s&&(a+=s),s)),e(t.children,u),u.popWordTransform(),i.hideLinkHrefIfSameAsText&&n===a||u.addInline(a?" "+De(n,i.linkBrackets):n,{noWordTransform:!0})}}function Fr(t,e,u,i,r){let n=ft(t,["parent","name"])==="li",a=0,s=(t.children||[]).filter(o=>o.type!=="text"||!/^\s*$/.test(o.data)).map(function(o){if(o.name!=="li")return{node:o,prefix:""};let l=n?r().trimStart():r();return l.length>a&&(a=l.length),{node:o,prefix:l}});if(s.length){u.openList({interRowLineBreaks:1,leadingLineBreaks:n?1:i.leadingLineBreaks||2,maxPrefixLength:a,prefixAlign:"left"});for(let{node:o,prefix:l}of s)u.openListItem({prefix:l}),e([o],u),u.closeListItem();u.closeList({trailingLineBreaks:n?1:i.trailingLineBreaks||2})}}function Ns(t,e,u,i){let r=i.itemPrefix||" * ";return Fr(t,e,u,i,()=>r)}function $s(t,e,u,i){let r=Number(t.attribs.start||"1"),n=Ps(t.attribs.type);return Fr(t,e,u,i,()=>" "+n(r++)+". ")}function Ps(t="1"){switch(t){case"a":return e=>Ti(e,"a");case"A":return e=>Ti(e,"A");case"i":return e=>_i(e).toLowerCase();case"I":return e=>_i(e);case"1":default:return e=>e.toString()}}function Rs(t){let e=[],u=[];for(let i of t)i.startsWith(".")?e.push(i.substring(1)):i.startsWith("#")&&u.push(i.substring(1));return{classes:e,ids:u}}function qs(t,e){if(e===!0)return!0;if(!t)return!1;let{classes:u,ids:i}=Rs(e),r=(t.class||"").split(" "),n=(t.id||"").split(" ");return r.some(a=>u.includes(a))||n.some(a=>i.includes(a))}function Os(t,e,u,i){return qs(t.attribs,u.options.tables)?vr(t,e,u,i):Ms(t,e,u,i)}function Ms(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks})}function vr(t,e,u,i){u.openTable(),t.children.forEach(n),u.closeTable({tableToString:a=>ws(a,i.rowSpacing??0,i.colSpacing??3),leadingLineBreaks:i.leadingLineBreaks,trailingLineBreaks:i.trailingLineBreaks});function r(a){let s=+ft(a,["attribs","colspan"])||1,o=+ft(a,["attribs","rowspan"])||1;u.openTableCell({maxColumnWidth:i.maxColumnWidth}),e(a.children,u),u.closeTableCell({colspan:s,rowspan:o})}function n(a){if(a.type!=="tag")return;let s=i.uppercaseHeaderCells!==!1?o=>{u.pushWordTransform(l=>l.toUpperCase()),r(o),u.popWordTransform()}:r;switch(a.name){case"thead":case"tbody":case"tfoot":case"center":a.children.forEach(n);return;case"tr":{u.openTableRow();for(let o of a.children)if(o.type==="tag")switch(o.name){case"th":{s(o);break}case"td":{r(o);break}}u.closeTableRow();break}}}}var Us=Object.freeze({__proto__:null,anchor:Is,blockquote:Ls,dataTable:vr,heading:Ts,horizontalLine:vs,image:_s,lineBreak:ys,orderedList:$s,paragraph:ks,pre:Ss,table:Os,unorderedList:Ns,wbr:Fs}),Hs={baseElements:{selectors:["body"],orderBy:"selectors",returnDomByDefault:!0},decodeEntities:!0,encodeCharacters:{},formatters:{},limits:{ellipsis:"...",maxBaseElements:void 0,maxChildNodes:void 0,maxDepth:void 0,maxInputLength:1<<24},longWordSplit:{forceWrapOnLimit:!1,wrapCharacters:[]},preserveNewlines:!1,selectors:[{selector:"*",format:"inline"},{selector:"a",format:"anchor",options:{baseUrl:null,hideLinkHrefIfSameAsText:!1,ignoreHref:!1,linkBrackets:["[","]"],noAnchorUrl:!0}},{selector:"article",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"aside",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"blockquote",format:"blockquote",options:{leadingLineBreaks:2,trailingLineBreaks:2,trimEmptyLines:!0}},{selector:"br",format:"lineBreak"},{selector:"div",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"footer",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"form",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"h1",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h2",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h3",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h4",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h5",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h6",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"header",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"hr",format:"horizontalLine",options:{leadingLineBreaks:2,length:void 0,trailingLineBreaks:2}},{selector:"img",format:"image",options:{baseUrl:null,linkBrackets:["[","]"]}},{selector:"main",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"nav",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"ol",format:"orderedList",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"p",format:"paragraph",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"pre",format:"pre",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"section",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"table",format:"table",options:{colSpacing:3,leadingLineBreaks:2,maxColumnWidth:60,rowSpacing:0,trailingLineBreaks:2,uppercaseHeaderCells:!0}},{selector:"ul",format:"unorderedList",options:{itemPrefix:" * ",leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"wbr",format:"wbr"}],tables:[],whitespaceCharacters:` \r
|
|
24
|
+
\f\u200B`,wordwrap:80},js=(t,e,u)=>[...t,...e],kr=(t,e,u)=>[...e],Vs=(t,e,u)=>t.some(i=>typeof i=="object")?js(t,e):kr(t,e);function Ws(t={}){return t=(0,Ar.default)(Hs,t,{arrayMerge:kr,customMerge:e=>e==="selectors"?Vs:void 0}),t.formatters=Object.assign({},Bs,Us,t.formatters),t.selectors=Br(t.selectors,e=>e.selector),zs(t),ns(t)}function Gs(t,e={},u=void 0){return Ws(e)(t,u)}function zs(t){if(t.tags){let u=Object.entries(t.tags).map(([i,r])=>({...r,selector:i||"*"}));t.selectors.push(...u),t.selectors=Br(t.selectors,i=>i.selector)}function e(u,i,r){let n=i.pop();for(let a of i){let s=u[a];s||(s={},u[a]=s),u=s}u[n]=r}if(t.baseElement){let u=t.baseElement;e(t,["baseElements","selectors"],Array.isArray(u)?u:[u])}t.returnDomByDefault!==void 0&&e(t,["baseElements","returnDomByDefault"],t.returnDomByDefault);for(let u of t.selectors)u.format==="anchor"&&ft(u,["options","noLinkBrackets"])&&e(u,["options","linkBrackets"],!1)}async function Ks(t,e,u){let{apiKey:i,domain:r}=t;if(!i||!r)throw new Error("Mailgun configuration missing. Please provide apiKey and domain");let n=[];try{let a=`https://api.mailgun.net/v3/${r}/events`,s={event:"accepted",limit:"10",ascending:"yes",recipient:e};if(u.from_email&&(s.from=u.from_email),u.since)s.begin=Math.floor(u.since/1e3).toString();else{let p=new Date(Date.now()-6e5);s.begin=Math.floor(p.getTime()/1e3).toString()}c.info(`Mailgun params: ${JSON.stringify(s)}`);let o=await fetch(a+"?"+new URLSearchParams(s),{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${i}`).toString("base64")}`}});if(!o.ok){let p=await o.text();throw new Error(`Mailgun events API error: ${p}`)}let l=(await o.json()).items||[];for(let p of l.slice(0,10)){if(p.event!=="accepted")continue;let A=(p.storage||{}).url;if(c.info(`message_url: ${A}`),!A){let B=(p.message||{}).headers||{},y=B.subject||"",b=B.from||"",w=B.to||"";if(u.from_email&&!b.toLowerCase().includes(u.from_email.toLowerCase())||u.to_email&&!w.toLowerCase().includes(u.to_email.toLowerCase())||u.subject&&!y.toLowerCase().includes(u.subject.toLowerCase()))continue;n.push({subject:y,from:b,to:w,date:new Date(p.timestamp*1e3).toUTCString(),body:"Message body not available (Mailgun storage disabled)",message_id:B["message-id"]||""});continue}let E=A.split("/"),x=E[E.length-1];if(c.info(`Storage key: ${x}`),x){let B=`https://api.mailgun.net/v3/domains/${r}/messages/${x}`;try{let y=await fetch(B,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${i}`).toString("base64")}`,Accept:"application/json"}});if(y.ok){let b=await y.json(),w=b.Subject||"",_=b.From||"",f=b.To||"",D=b.Date||"",F=b["Message-Id"]||"";c.info(`subject: ${w}`),c.info(`from_addr: ${_}`),c.info(`to_addr: ${f}`),c.info(`date: ${D}`),c.info(`message_id: ${F}`);let L=b["body-html"]||b["body-plain"]||"";if(L&&L.includes("<")&&(L=Gs(L)),c.info(`Body: ${L.substring(0,200)}...`),u.subject&&!w.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!L.toLowerCase().includes(u.body_contains.toLowerCase()))continue;n.push({subject:w,from:_,to:f,date:D,body:L,message_id:F});continue}else c.warn(`Messages API returned ${y.status}`)}catch(y){c.warn(`Failed to parse JSON response: ${y}`)}}try{let B=await fetch(A,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${i}`).toString("base64")}`}});if(!B.ok){c.warn(`Could not fetch stored message: ${B.status}`);continue}let y=await B.text();c.info(`Fallback: Raw email length: ${y.length}`);let b=y.split(`
|
|
25
|
+
`),w=!0,_={},f="";for(let ot=0;ot<b.length;ot++){let ct=b[ot];if(ct.trim()===""&&w){w=!1;continue}if(w){let lt=ct.match(/^([^:]+):\s*(.+)$/);lt&&(_[lt[1].toLowerCase()]=lt[2])}else f+=ct+`
|
|
26
|
+
`}let D=_.subject||"",F=_.from||"",L=_.to||"",$=_.date||"",Y=_["message-id"]||"";if(u.subject&&!D.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!f.toLowerCase().includes(u.body_contains.toLowerCase()))continue;n.push({subject:D,from:F,to:L,date:$,body:f.trim(),message_id:Y})}catch(B){c.warn(`Error fetching raw message: ${B}`)}}if(n.length>0){try{n.sort((A,E)=>{let x=new Date(A.date).getTime();return new Date(E.date).getTime()-x})}catch{}let p=n[0];return c.info(`Returning most recent email: ${p.subject}`),[p]}return n}catch(a){throw c.error(`Error fetching emails from Mailgun: ${a.message}`),new Error(`Error fetching emails from Mailgun: ${a.message}`)}}function Js(t,e){if(t==="verification_code")return`You are analyzing an email to extract an OTP (One-Time Password) or verification code.
|
|
27
27
|
|
|
28
28
|
Please carefully examine the email content and look for:
|
|
29
29
|
1. Numeric codes (usually 4-8 digits)
|
|
@@ -80,27 +80,27 @@ Examples of what to extract:
|
|
|
80
80
|
Extract: https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1¶m2=value2
|
|
81
81
|
|
|
82
82
|
Return ONLY the complete extracted URL or "NOT_FOUND".`;if(t==="custom"){if(!e)throw new Error("Custom prompt is required when extraction_type is custom");return e+`
|
|
83
|
-
Return only the required content or 'NOT_FOUND'.`}else throw new Error(`Unsupported extraction type: ${t}`)}async function
|
|
83
|
+
Return only the required content or 'NOT_FOUND'.`}else throw new Error(`Unsupported extraction type: ${t}`)}async function Ys(t,e,u){try{let i=`${e}
|
|
84
84
|
---
|
|
85
85
|
Email Content:
|
|
86
86
|
---
|
|
87
87
|
${t}
|
|
88
88
|
---
|
|
89
|
-
`,r=ie(u);return(await Ft({model:r,messages:[{role:"user",content:i}],temperature:0,providerOptions:
|
|
89
|
+
`,r=ie(u);return(await Ft({model:r,messages:[{role:"user",content:i}],temperature:0,providerOptions:Bu(u,0)})).text.trim()||"NOT_FOUND"}catch(i){throw c.error(`Error in LLM extraction: ${i.message}`),new Error(`Error in LLM extraction: ${i.message}`)}}async function Zs(t,e){c.info(`extract_email_content:
|
|
90
90
|
forward_email: ${e.forward_email}
|
|
91
91
|
extraction_type: ${e.extraction_type}
|
|
92
92
|
filters: ${JSON.stringify(e.filters||{})}
|
|
93
93
|
timeout: ${e.timeout||60}
|
|
94
|
-
polling_interval: 10`);let u=e.timeout||60,i=10;try{if(e.extraction_type==="custom"&&!e.prompt)return{data:void 0,status:"error",message:"Custom prompt is required when extraction_type is custom"};let r=
|
|
94
|
+
polling_interval: 10`);let u=e.timeout||60,i=10;try{if(e.extraction_type==="custom"&&!e.prompt)return{data:void 0,status:"error",message:"Custom prompt is required when extraction_type is custom"};let r=Js(e.extraction_type,e.prompt),n=new Date,a=new Date(n.getTime()+u*1e3),s=0;for(c.info(`Starting email polling for ${u} seconds with ${i}s intervals`);new Date<a;){s++,c.info(`Polling attempt ${s}`);try{let l=e.filters||{},p=await Ks(t,e.forward_email,l);if(p.length>0){c.info(`Found ${p.length} emails matching criteria`);let A=[];for(let E of p){let x=`Subject: ${E.subject}
|
|
95
95
|
From: ${E.from}
|
|
96
96
|
To: ${E.to}
|
|
97
97
|
Date: ${E.date}
|
|
98
98
|
|
|
99
99
|
Body:
|
|
100
|
-
${E.body}`,B=await
|
|
101
|
-
`)}var
|
|
102
|
-
`)}var I0=class{constructor(t,e){this.registry=t,this.getContext=e}getToolDefinitions(){return this.registry.getTools().filter(t=>t.availability.mcp).map(t=>({name:t.name,description:t.description,inputSchema:vt(t.schema)}))}getToolDefinitionsFiltered(t){let e=new Set(t);return this.registry.getTools().filter(u=>e.has(u.name)&&u.availability.mcp).map(u=>({name:u.name,description:u.description,inputSchema:vt(u.schema)}))}async createServer(t="web-sdk-tools"){throw new Error("MCP server creation not yet implemented. Install and configure an MCP SDK like @modelcontextprotocol/sdk")}async executeTool(t,e){let u=await this.getContext(),i=await this.registry.execute(t,e,u);return{content:[{type:"text",text:i.success?i.message||"Tool executed successfully":i.error||"Tool execution failed"}]}}getToolCount(){return this.registry.size()}getToolNames(){return this.registry.getToolNames()}};function L0(t){return t.getTools().map(e=>({name:e.name,description:e.description,inputSchema:vt(e.schema)}))}async function ao(t,e){let u=JSON.parse(Rt.readFileSync(e,"utf-8"));u.cookies?.length&&await t.addCookies(u.cookies)}var R0=class{constructor(t={}){t.testDir&&(this.testDir=t.testDir,this.videoBasePath=Lt.join(t.testDir,"videos"),this.statesBasePath=Lt.join(t.testDir,"states"),this.downloadsBasePath=Lt.join(t.testDir,"downloads"),Rt.mkdirSync(this.videoBasePath,{recursive:!0}),Rt.mkdirSync(this.statesBasePath,{recursive:!0}),Rt.mkdirSync(this.downloadsBasePath,{recursive:!0})),this.terminationTimeout=t.terminationTimeout??null,this.defaultHeadless=t.headless??!1,this.additionalArgs=t.additionalArgs??[]}async launchBrowser(t={}){let e=t.debugPort,u=t.headless??this.defaultHeadless,i=fu(t.deviceName),r=gu(t.deviceName),n=i===xt.Chromium,a=!!t.extensionPath;c.info(`[BrowserManager] Launching ${i} browser for device: ${t.deviceName||"default"}${e?` on port ${e}`:""}`);let s={headless:u};if(n){a&&u&&(c.warn("[BrowserManager] Extension requested in headless mode; forcing headed mode to load extension."),u=!1,s.headless=!1);let F=[];(t.enableCamera||t.enableMicrophone)&&(F.push("--use-fake-device-for-media-stream","--use-fake-ui-for-media-stream"),t.enableMicrophone&&t.fakeAudioCapturePath&&(F.push(`--use-file-for-fake-audio-capture=${t.fakeAudioCapturePath}`),c.info(`[BrowserManager] Using fake audio capture file: ${t.fakeAudioCapturePath}`)));let m=a&&t.extensionPath?[`--disable-extensions-except=${t.extensionPath}`,`--load-extension=${t.extensionPath}`]:[];s.args=[...nu(e,t.disableSecurity??!0,u),...F,...m,...this.additionalArgs],r&&(s.channel=r,c.debug(`[BrowserManager] Launching browser with channel: ${r}`))}let o=hu(t.deviceName),l=pu(t.deviceName),p={acceptDownloads:!0,...o,timezoneId:"America/Los_Angeles",locale:t.locale||"en-US"},A=a&&n?t.localStorageStatePath:void 0;t.localStorageStatePath&&!A&&(p.storageState=t.localStorageStatePath),t.recordVideo&&this.videoBasePath&&(p.recordVideo={dir:this.videoBasePath,size:{width:l.width,height:l.height}}),t.proxy&&(p.proxy=t.proxy);let E,x,B;if(a&&n){if(t.userDataDir)B=t.userDataDir;else if(this.testDir)B=Lt.join(this.testDir,"user-data");else throw new Error("[BrowserManager] testDir is required to launch a persistent context with an extension");let F={...s,...p};x=await Pi.launchPersistentContext(B,F),A&&(await ao(x,A),c.info(`[BrowserManager] Loaded storage state into persistent context from ${A}`)),E=x.browser(),c.info(`[BrowserManager] Launched persistent context for extension at ${t.extensionPath}`)}else{switch(i){case xt.Firefox:E=await ro.launch(s);break;case xt.Webkit:E=await no.launch(s);break;case xt.Chromium:default:E=await Pi.launch(s);break}x=await E.newContext(p)}if(x.addInitScript(ru),t.enableCamera||t.enableMicrophone)if(!n)c.warn("[BrowserManager] Camera/microphone enabled but browser is not Chromium; ignoring.");else{let F=[];t.enableCamera&&F.push("camera"),t.enableMicrophone&&F.push("microphone");try{await x.grantPermissions(F),c.info(`[BrowserManager] Granted permissions: ${F.join(", ")}`)}catch(m){c.warn("[BrowserManager] Failed to grant camera/microphone permissions:",m)}}if(t.cookies&&t.cookies.length>0){let F=(Date.now()+31536e6)/1e3,m=t.cookies.map(w=>({...w,expires:F}));await x.addCookies(m),c.info(`[BrowserManager] Added ${t.cookies.length} cookies to browser context with expires=${F}`)}let y=du(t.deviceName);c.info(`[BrowserManager] windowSize=${JSON.stringify(y)}`),n&&x.on("page",async F=>{try{await su(F,y.width,y.height)}catch(m){c.warn("[BrowserManager] Failed to set window bounds via CDP:",m)}});let b="";if(n&&e!==void 0)try{b=await au(e)}catch(F){c.warn("[BrowserManager] Failed to get CDP WebSocket URL:",F)}let D={debugPort:e,browser:E,context:x,startTime:new Date,timeout:null,browserWsUrl:b,downloadsBasePath:this.downloadsBasePath,browserType:i,userDataDir:B};if(this.terminationTimeout!==null){let F=setTimeout(()=>{c.info(`[BrowserManager] Browser auto-terminated after ${this.terminationTimeout}ms`),this.terminateBrowser(D).catch(m=>c.error("[BrowserManager] Error terminating browser:",m))},this.terminationTimeout);D.timeout=F}return D}async terminateBrowser(t){t.timeout&&clearTimeout(t.timeout),await t.context.close(),await t.browser.close()}getVideoBasePath(){return this.videoBasePath}getStatesBasePath(){return this.statesBasePath}getDownloadsBasePath(){return this.downloadsBasePath}},q0=t=>{if(!t||t===cu)return"desktop";let e=lu(t);return e&&e.isMobile?"mobile":"desktop"},so=(t=>(t.Desktop="desktop",t.Mobile="mobile",t))(so||{}),oo=class{constructor(t){this.currentPage=null,this.currentIndex=-1,this.context=t,this.initialize()}initialize(){this.context.on("page",async e=>{await this.handleNewPage(e)});let t=this.context.pages();t.length>0&&(this.currentPage=t[0],this.currentIndex=0);for(let e of t)this.setupPageListeners(e)}async handleNewPage(t){try{this.setupPageListeners(t);let e=this.context.pages().indexOf(t);await this.setCurrentPage(t,e)}catch{}}setupPageListeners(t){t.on("close",async()=>{await this.handlePageClose(t)})}async handlePageClose(t){try{if(this.currentPage===t){let e=this.context.pages(),u=e.slice().reverse().find(i=>!i.isClosed());u&&await this.setCurrentPage(u,e.indexOf(u))}}catch{}}async setCurrentPage(t,e){let u=this.currentPage!==t;this.currentPage=t,this.currentIndex=e,u&&await t.bringToFront()}async switchToPage(t){let e=this.context.pages();if(t<0||t>=e.length)throw new Error(`Invalid page index: ${t}. Available pages: 0-${e.length-1}`);let u=e[t];if(u.isClosed())throw new Error(`Page at index ${t} is closed`);return await this.setCurrentPage(u,t),u}async closePage(t){let e=this.context.pages();if(t<0||t>=e.length)throw new Error(`Invalid page index: ${t}. Available pages: 0-${e.length-1}`);let u=e[t];if(u.isClosed())throw new Error(`Page at index ${t} is already closed`);await u.close()}getCurrentPage(){return this.currentPage}getCurrentIndex(){return this.currentIndex}getAllPages(){return this.context.pages()}getPageCount(){return this.context.pages().length}};async function co(t,e=3e3,u=1e3){try{await Xt(t,e,u)}catch{}}async function lo(t,e,u){let i=u*1e3,r=100,n=Date.now();for(;!e.downloadStatus||e.downloadStatus.status==="inProgress";){if(Date.now()-n>i){let a;throw e.downloadStatus?a=`Timed out after ${i}ms waiting for download to complete`:a="No download in progress or completed",c.error(a),new Error(a)}await t.waitForTimeout(r)}if(e.downloadStatus.status==="failed"){let a=`Download failed: ${e.downloadStatus.error||"Unknown error"}`;throw c.error(a),new Error(a)}e.agentNote=`Download completed: ${e.downloadStatus.filename}`}async function ho(t,e,u,i=60,r){let n=Math.min(i,280),a=Math.max(10,n/10)*1e3,s=Date.now()+n*1e3;for(c.info(`Waiting for condition: "${e}" (timeout: ${n}s)`);;){let o=Date.now();try{if(await u(t,e,r))return c.info(`Condition met: "${e}"`),!0}catch(p){c.warn(`Error evaluating condition: ${p.message}`)}if(Date.now()>s)return c.warn(`Timeout waiting for condition: "${e}"`),!1;let l=a-(Date.now()-o);l>0&&await t.waitForTimeout(l)}}var po=te(Vr(),1);function go(t){return t.url()===":"}var fo=class{constructor(t){this.context=t,this.testDataFileNames=[],this.extensionEnabled=!1}setTestDataDownloader(t,e){this.testDataDownloader=t,this.testDataFileNames=e??[]}setupPageTracking(t){this.tabManager=new oo(t)}async switchTab(t){if(!this.tabManager)throw new Error("Tab manager not initialized");return await this.tabManager.switchToPage(t)}async closeTab(t){if(!this.tabManager)throw new Error("Tab manager not initialized");await this.tabManager.closePage(t)}getCurrentPage(){return this.tabManager?this.tabManager.getCurrentPage():null}validatePage(t){let e=this.getCurrentPage();if(e&&e!==t&&!e.isClosed())return c.info(`[validatePage] Page changed, switching to ${e.url()}`),e;if(t.isClosed()){let u=t.context().pages().filter(i=>!i.isClosed());if(u.length>0){let i=u[u.length-1];return c.info(`[validatePage] Page closed, switching to ${i.url()}`),i}c.error("[validatePage] No valid pages found")}return t}replaceVariables(t){return mu(t,this.context.variableStore.getAll())}getTestDataFileNames(){return this.testDataFileNames}getTestDataFilePath(t){let e=this.context.testDataDir||process.cwd();return Bt.join(e,t)}async downloadTestDataFiles(t){if(t.length===0){c.debug("[AgentServices] No file paths provided for download");return}let e=this.context.testDataDir||process.cwd(),u=t.filter(i=>{let r=Bt.basename(i),n=Bt.join(e,r),a=Sr.existsSync(n);return a&&c.debug(`[AgentServices] File already exists locally: ${r}`),!a});if(u.length===0){c.debug("[AgentServices] All files exist locally, no download needed");return}if(!this.testDataDownloader){c.debug("[AgentServices] No test data downloader configured, assuming files are pre-populated");return}c.info(`[AgentServices] Downloading ${u.length} test data files: ${u.join(", ")}`),await this.testDataDownloader(u,e)}async waitForDownloadComplete(t,e){return lo(t,this.context,e)}getRecentDownloadedFilePath(){return this.context.downloadStatus?this.context.downloadStatus.status!=="completed"?(c.debug(`Download is ${this.context.downloadStatus.status}, not completed`),null):this.context.downloadStatus.filePath?(c.info(`Retrieved recent download path: ${this.context.downloadStatus.filePath}`),this.context.downloadStatus.filePath):(c.warn("Download completed but file path is missing"),null):(c.debug("No download found"),null)}addSensitive(t,e){this.context.variableStore.set(t,e,!0)}saveVariable(t,e){let u=t.startsWith("$")?t.slice(1):t;this.context.variableStore.set(u,e),c.debug(`Saved variable: ${u} = ${JSON.stringify(e)}`),this.context.agentNote=`A new value is saved to the variable "${u}".`}addNote(t){!t||t.trim()===""||(this.context.agentNote?this.context.agentNote+=`
|
|
103
|
-
${t.trim()}`:this.context.agentNote=t.trim())}readVariable(t){let e=t.startsWith("$")?t.slice(1):t,u=this.context.variableStore.get(e);return c.debug(`Read variable: ${e} = ${JSON.stringify(u)}`),u}async generate2faCode(t){try{let e=
|
|
100
|
+
${E.body}`,B=await Ys(x,r,e.model);c.info(`Extracted content: ${B}`),B&&B!=="NOT_FOUND"&&A.push({content:B,email_subject:E.subject,email_from:E.from,email_date:E.date})}if(A.length>0){let E=A[0],x=`$email_${e.extraction_type}`;e.extraction_type==="custom"?x="$email_extracted_content":e.extraction_type==="activation_link"?x="$email_magic_link":e.extraction_type==="verification_code"&&(x="$email_otp_code");let B=(new Date().getTime()-n.getTime())/1e3;return c.info(`Successfully extracted content after ${s} attempts in ${B.toFixed(1)} seconds`),{data:E.content,result_variable:x,status:"success",message:`Successfully extracted content from email: ${E.email_subject.substring(0,50)}... (attempts: ${s})`}}else c.info(`Found emails but no extractable content in attempt ${s}`)}else c.info(`No emails found in attempt ${s}`)}catch(l){c.warn(`Error in polling attempt ${s}: ${l.message}`)}if(new Date(Date.now()+i*1e3)>=a){c.info("Not enough time for another polling attempt");break}c.info(`Waiting ${i} seconds before next attempt...`),await new Promise(l=>setTimeout(l,i*1e3))}let o=(new Date().getTime()-n.getTime())/1e3;return{data:void 0,status:"error",message:`No emails with extractable content found after ${s} attempts over ${o.toFixed(1)} seconds`}}catch(r){return c.error(`Error extracting email content: ${r.message}`),{data:void 0,status:"error",message:`Error extracting email content: ${r.message}`}}}function Sr(t){switch(t){case"verification_code":return"email_otp_code";case"activation_link":return"email_magic_link";case"custom":return"email_extracted_content";default:return"email_content"}}var Qs=class{getMailgunConfig(){let t=iu().env||{};if(t.MAILGUN_API_KEY)return{apiKey:t.MAILGUN_API_KEY,domain:t.MAILGUN_DOMAIN||""}}async execute(t,e,u){let i=e.action_data;if(!i)throw new Error("Action data not found");let r=this.getMailgunConfig();if(!r)throw new Error("Mailgun configuration not provided. Please configure MAILGUN_API_KEY and MAILGUN_DOMAIN in SDK config.");let n=i.kwargs,a=u.getModel?.()||"gemini-2.5-pro",s=await Zs(r,{model:a,forward_email:n.forward_email,extraction_type:n.extraction_type,prompt:n.prompt,filters:{from_email:n.filter_from_email,to_email:n.filter_to_email,subject:n.filter_subject,body_contains:n.filter_body_contains},timeout:n.timeout});if(s.status==="success"&&s.data){let o=s.result_variable?.replace(/^\$/,"")||Sr(n.extraction_type);u.variableStore.set(o,s.data),c.info(`[extract_email_content] Extracted and saved to ${o}`)}else throw new Error(s.message||"Failed to extract email content")}transpile(t){let e=t.action_data?.kwargs||{};return['await agent.execAction("extract_email_content", page, {',` action_data: { kwargs: ${JSON.stringify(e)} },`,"});"]}},Xs=Q.object({forward_email:Q.string().describe("Email address where emails are forwarded to (Mailgun inbox)"),extraction_type:Q.enum(["verification_code","activation_link","custom"]).describe("Type of content to extract: verification_code for OTP codes, activation_link for magic links, custom for custom prompts"),prompt:Q.string().optional().describe("Custom extraction prompt (required when extraction_type is custom)"),filter_from_email:Q.string().optional().describe("Filter emails by sender address"),filter_to_email:Q.string().optional().describe("Filter emails by recipient address"),filter_subject:Q.string().optional().describe("Filter emails by subject (partial match)"),filter_body_contains:Q.string().optional().describe("Filter emails by body content (partial match)"),timeout:Q.number().optional().describe("Timeout in seconds for polling (default: 60)")});function to(t,e){t.register({name:"extract_email_content",description:"Extract verification codes, magic links, or custom content from emails received via Mailgun. Polls the Mailgun inbox for matching emails and uses AI to extract the requested content.",schema:Xs,async execute(u,i){let{forward_email:r,extraction_type:n,prompt:a,filter_from_email:s,filter_to_email:o,filter_subject:l,filter_body_contains:p,timeout:A}=u,{page:E,agentServices:x}=i;c.info(`[extract_email_content] Extracting ${n} from ${r}`);try{let B={action_description:`Extract ${n} from email`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:r,extraction_type:n,prompt:a,filter_from_email:s,filter_to_email:o,filter_subject:l,filter_body_contains:p,timeout:A}}};await e.execute(E,B,x);let y=Sr(n);return{success:!0,actionEntity:B,message:`Extracted ${n} and saved to $${y}`}}catch(B){return{success:!1,error:B.message,actionEntity:{action_description:`Extract ${n} from email (failed)`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:r,extraction_type:n,prompt:a,filter_from_email:s,filter_to_email:o,filter_subject:l,filter_body_contains:p,timeout:A}},feedback:B.message}}}}})}var _t=null;async function J(){if(_t)return _t;let t=(await import("./handler-QSEXJ3YG-BK26HZ5S.js")).default;return _t=new t,_t}async function Pe(t){let e=await J(),u=e.getAction("click"),i=e.getAction("hover"),r=e.getAction("right_click"),n=e.getAction("double_click");return Ju(t,u),Mu(t,i),_u(t,r),Vu(t,n),"Click, hover, double-click, right-click, or drag elements"}async function Re(t){let e=await J(),u=e.getAction("go_to_url"),i=e.getAction("go_back"),r=e.getAction("reload_page");return Ou(t,u),qu(t,i),Lu(t,r),"Navigate to URLs, go back, or reload the page"}async function qe(t){let e=await J(),u=e.getAction("clear_input"),i=e.getAction("input_text"),r=e.getAction("press");return Ku(t,u),Uu(t,i),Tu(t,r),"Type text into inputs, clear input values, or press keyboard keys"}async function Oe(t){let e=await J(),u=e.getAction("scroll_on_element"),i=e.getAction("scroll_to_text"),r=e.getAction("scroll");return $u(t,u),Pu(t,i),Nu(t,r),"Scroll the page or scroll to specific text/elements"}async function Me(t){let e=await J(),u=e.getAction("close_tab"),i=e.getAction("switch_tab");return Hu(t,u),yu(t,i),"Switch between browser tabs or close tabs"}async function Ue(t){let e=await J(),u=e.getAction("upload_file"),i=e.getAction("wait_for_download_complete");return vu(t,u),Su(t,i),"Upload files or wait for downloads to complete"}async function He(t){let e=await J(),u=e.getAction("get_dropdown_options"),i=e.getAction("select_dropdown_option"),r=e.getAction("set_date_for_native_date_picker");return Ru(t,u),bu(t,i),wu(t,r),"Get dropdown options, select dropdown values, or set date for native date picker input"}async function je(t){let e=await J(),u=e.getAction("wait"),i=e.getAction("save_variable"),r=e.getAction("done");return ku(t,u),Iu(t,i),ju(t,r),Kr(t),"Wait for conditions, save variables, or complete tasks"}async function Ve(t){let e=(await J()).getAction("generate_2fa_code");Wu(t,e);let u=new Qs;return(await import("./handler-QSEXJ3YG-BK26HZ5S.js")).default.registerAction("extract_email_content",u),to(t,u),"Generate 2FA codes or extract email/activation codes"}async function We(t){let e=await J(),u=e.getAction("verify"),i=e.getAction("ai_extract"),r=e.getAction("ai_wait_until");return Gu(t,u),zu(t,i),Du(t,r),"Perform AI-powered assertions, extractions, or wait conditions"}async function eo(t){let[e,u,i,r,n,a,s,o,l,p]=await Promise.all([Pe(t),Re(t),qe(t),Oe(t),Me(t),Ue(t),He(t),je(t),Ve(t),We(t)]);return{mouse:e,navigation:u,input:i,scroll:r,tabs:n,files:a,forms:s,utility:o,auth:l,ai:p}}function uo(t){return[`- Mouse: ${t.mouse}`,`- Navigation: ${t.navigation}`,`- Input: ${t.input}`,`- Scroll: ${t.scroll}`,`- Tabs: ${t.tabs}`,`- Files: ${t.files}`,`- Forms: ${t.forms}`,`- Utility: ${t.utility}`,`- Auth: ${t.auth}`,`- AI: ${t.ai}`].join(`
|
|
101
|
+
`)}var io=[Pe(H),Re(H),qe(H),Oe(H),Me(H),Ue(H),He(H),je(H),We(H),Ve(H)],ro=Promise.all(io);async function S0(){await ro}function T0(){return H}function L0(t=!0){let e=new ue;return t&&(Pe(e),Re(e),qe(e),Oe(e),Me(e),Ue(e),He(e),Ve(e),je(e),We(e)),e}async function _0(){let t=new ue,e=await eo(t),u=uo(e);return{registry:t,capabilities:e,summary:u}}function I0(){return["- Mouse: Click, hover, double-click, right-click or drag on elements","- Navigation: Navigate to URLs, go back, or reload the page","- Input: Type text into inputs, clear input fields, or press keyboard keys","- Scroll: Scroll the page or scroll to specific text/elements","- Tabs: Switch between browser tabs or close tabs","- Files: Upload files or wait for downloads to complete","- Forms: Get dropdown options or select dropdown values","- Utility: Wait for conditions, save variables, or complete tasks","- Auth: Generate 2FA codes or extract email/activation codes","- AI: Perform AI-powered verifications, extractions, or wait conditions"].join(`
|
|
102
|
+
`)}var N0=class{constructor(t,e){this.registry=t,this.getContext=e}getToolDefinitions(){return this.registry.getTools().filter(t=>t.availability.mcp).map(t=>({name:t.name,description:t.description,inputSchema:vt(t.schema)}))}getToolDefinitionsFiltered(t){let e=new Set(t);return this.registry.getTools().filter(u=>e.has(u.name)&&u.availability.mcp).map(u=>({name:u.name,description:u.description,inputSchema:vt(u.schema)}))}async createServer(t="web-sdk-tools"){throw new Error("MCP server creation not yet implemented. Install and configure an MCP SDK like @modelcontextprotocol/sdk")}async executeTool(t,e){let u=await this.getContext(),i=await this.registry.execute(t,e,u);return{content:[{type:"text",text:i.success?i.message||"Tool executed successfully":i.error||"Tool execution failed"}]}}getToolCount(){return this.registry.size()}getToolNames(){return this.registry.getToolNames()}};function $0(t){return t.getTools().map(e=>({name:e.name,description:e.description,inputSchema:vt(e.schema)}))}async function so(t,e){let u=JSON.parse(Rt.readFileSync(e,"utf-8"));u.cookies?.length&&await t.addCookies(u.cookies)}var O0=class{constructor(t={}){t.testDir&&(this.testDir=t.testDir,this.videoBasePath=It.join(t.testDir,"videos"),this.statesBasePath=It.join(t.testDir,"states"),this.downloadsBasePath=It.join(t.testDir,"downloads"),Rt.mkdirSync(this.videoBasePath,{recursive:!0}),Rt.mkdirSync(this.statesBasePath,{recursive:!0}),Rt.mkdirSync(this.downloadsBasePath,{recursive:!0})),this.terminationTimeout=t.terminationTimeout??null,this.defaultHeadless=t.headless??!1,this.additionalArgs=t.additionalArgs??[]}async launchBrowser(t={}){let e=t.debugPort,u=t.headless??this.defaultHeadless,i=mu(t.deviceName),r=fu(t.deviceName),n=i===xt.Chromium,a=!!t.extensionPath;c.info(`[BrowserManager] Launching ${i} browser for device: ${t.deviceName||"default"}${e?` on port ${e}`:""}`);let s={headless:u};if(n){a&&u&&(c.warn("[BrowserManager] Extension requested in headless mode; forcing headed mode to load extension."),u=!1,s.headless=!1);let f=[];(t.enableCamera||t.enableMicrophone)&&(f.push("--use-fake-device-for-media-stream","--use-fake-ui-for-media-stream"),t.enableMicrophone&&t.fakeAudioCapturePath&&(f.push(`--use-file-for-fake-audio-capture=${t.fakeAudioCapturePath}`),c.info(`[BrowserManager] Using fake audio capture file: ${t.fakeAudioCapturePath}`)));let D=a&&t.extensionPath?[`--disable-extensions-except=${t.extensionPath}`,`--load-extension=${t.extensionPath}`]:[];s.args=[...nu(e,t.disableSecurity??!0,u),...f,...D,...this.additionalArgs],r&&(s.channel=r,c.debug(`[BrowserManager] Launching browser with channel: ${r}`))}let o=du(t.deviceName),l=gu(t.deviceName),p={acceptDownloads:!0,...o,timezoneId:t.timezoneId||"America/Los_Angeles",locale:t.locale||"en-US"};t.viewport&&(p.viewport=t.viewport,p.screen=t.viewport),t.isMobile!==void 0&&(p.isMobile=t.isMobile),t.hasTouch!==void 0&&(p.hasTouch=t.hasTouch),t.userAgent&&(p.userAgent=t.userAgent),t.colorScheme&&(p.colorScheme=t.colorScheme),t.geolocation&&(p.geolocation=t.geolocation,p.permissions=[...p.permissions||[],"geolocation"]);let A=a&&n?t.localStorageStatePath:void 0;t.localStorageStatePath&&!A&&(p.storageState=t.localStorageStatePath),t.recordVideo&&this.videoBasePath&&(p.recordVideo={dir:this.videoBasePath,size:{width:l.width,height:l.height}}),t.proxy&&(p.proxy=t.proxy);let E,x,B;if(a&&n){if(t.userDataDir)B=t.userDataDir;else if(this.testDir)B=It.join(this.testDir,"user-data");else throw new Error("[BrowserManager] testDir is required to launch a persistent context with an extension");let f={...s,...p};x=await Ri.launchPersistentContext(B,f),A&&(await so(x,A),c.info(`[BrowserManager] Loaded storage state into persistent context from ${A}`)),E=x.browser(),c.info(`[BrowserManager] Launched persistent context for extension at ${t.extensionPath}`)}else{switch(i){case xt.Firefox:E=await no.launch(s);break;case xt.Webkit:E=await ao.launch(s);break;case xt.Chromium:default:E=await Ri.launch(s);break}x=await E.newContext(p)}if(x.addInitScript(ru),t.enableCamera||t.enableMicrophone)if(!n)c.warn("[BrowserManager] Camera/microphone enabled but browser is not Chromium; ignoring.");else{let f=[];t.enableCamera&&f.push("camera"),t.enableMicrophone&&f.push("microphone");try{await x.grantPermissions(f),c.info(`[BrowserManager] Granted permissions: ${f.join(", ")}`)}catch(D){c.warn("[BrowserManager] Failed to grant camera/microphone permissions:",D)}}if(t.cookies&&t.cookies.length>0){let f=(Date.now()+31536e6)/1e3,D=t.cookies.map(F=>({...F,expires:f}));await x.addCookies(D),c.info(`[BrowserManager] Added ${t.cookies.length} cookies to browser context with expires=${f}`)}let y=t.viewport,b=y?{width:y.width,height:y.height+cu}:pu(t.deviceName);if(c.info(`[BrowserManager] windowSize=${JSON.stringify(b)}`),n){let f=async D=>{try{await su(D,b.width,b.height),y&&await D.setViewportSize(y)}catch(F){c.warn("[BrowserManager] Failed to set window bounds via CDP:",F)}};for(let D of x.pages())await f(D);x.on("page",f)}let w="";if(n&&e!==void 0)try{w=await au(e)}catch(f){c.warn("[BrowserManager] Failed to get CDP WebSocket URL:",f)}let _={debugPort:e,browser:E,context:x,startTime:new Date,timeout:null,browserWsUrl:w,downloadsBasePath:this.downloadsBasePath,browserType:i,userDataDir:B};if(this.terminationTimeout!==null){let f=setTimeout(()=>{c.info(`[BrowserManager] Browser auto-terminated after ${this.terminationTimeout}ms`),this.terminateBrowser(_).catch(D=>c.error("[BrowserManager] Error terminating browser:",D))},this.terminationTimeout);_.timeout=f}return _}async terminateBrowser(t){t.timeout&&clearTimeout(t.timeout),await t.context.close(),await t.browser.close()}getVideoBasePath(){return this.videoBasePath}getStatesBasePath(){return this.statesBasePath}getDownloadsBasePath(){return this.downloadsBasePath}},M0=t=>{if(!t||t===lu)return"desktop";let e=hu(t);return e&&e.isMobile?"mobile":"desktop"},oo=(t=>(t.Desktop="desktop",t.Mobile="mobile",t))(oo||{}),co=class{constructor(t){this.currentPage=null,this.currentIndex=-1,this.context=t,this.initialize()}initialize(){this.context.on("page",async e=>{await this.handleNewPage(e)});let t=this.context.pages();t.length>0&&(this.currentPage=t[0],this.currentIndex=0);for(let e of t)this.setupPageListeners(e)}async handleNewPage(t){try{this.setupPageListeners(t);let e=this.context.pages().indexOf(t);await this.setCurrentPage(t,e)}catch{}}setupPageListeners(t){t.on("close",async()=>{await this.handlePageClose(t)})}async handlePageClose(t){try{if(this.currentPage===t){let e=this.context.pages(),u=e.slice().reverse().find(i=>!i.isClosed());u&&await this.setCurrentPage(u,e.indexOf(u))}}catch{}}async setCurrentPage(t,e){let u=this.currentPage!==t;this.currentPage=t,this.currentIndex=e,u&&await t.bringToFront()}async switchToPage(t){let e=this.context.pages();if(t<0||t>=e.length)throw new Error(`Invalid page index: ${t}. Available pages: 0-${e.length-1}`);let u=e[t];if(u.isClosed())throw new Error(`Page at index ${t} is closed`);return await this.setCurrentPage(u,t),u}async closePage(t){let e=this.context.pages();if(t<0||t>=e.length)throw new Error(`Invalid page index: ${t}. Available pages: 0-${e.length-1}`);let u=e[t];if(u.isClosed())throw new Error(`Page at index ${t} is already closed`);await u.close()}getCurrentPage(){return this.currentPage}getCurrentIndex(){return this.currentIndex}getAllPages(){return this.context.pages()}getPageCount(){return this.context.pages().length}};async function lo(t,e=3e3,u=1e3){try{await Xt(t,e,u)}catch{}}async function ho(t,e,u){let i=u*1e3,r=100,n=Date.now();for(;!e.downloadStatus||e.downloadStatus.status==="inProgress";){if(Date.now()-n>i){let a;throw e.downloadStatus?a=`Timed out after ${i}ms waiting for download to complete`:a="No download in progress or completed",c.error(a),new Error(a)}await t.waitForTimeout(r)}if(e.downloadStatus.status==="failed"){let a=`Download failed: ${e.downloadStatus.error||"Unknown error"}`;throw c.error(a),new Error(a)}e.agentNote=`Download completed: ${e.downloadStatus.filename}`}async function po(t,e,u,i=60,r){let n=Math.min(i,280),a=Math.max(10,n/10)*1e3,s=Date.now()+n*1e3;for(c.info(`Waiting for condition: "${e}" (timeout: ${n}s)`);;){let o=Date.now();try{if(await u(t,e,r))return c.info(`Condition met: "${e}"`),!0}catch(p){c.warn(`Error evaluating condition: ${p.message}`)}if(Date.now()>s)return c.warn(`Timeout waiting for condition: "${e}"`),!1;let l=a-(Date.now()-o);l>0&&await t.waitForTimeout(l)}}var go=te(Wr(),1);function fo(t){return t.url()===":"}var mo=class{constructor(t){this.context=t,this.testDataFileNames=[],this.extensionEnabled=!1}setTestDataDownloader(t,e){this.testDataDownloader=t,this.testDataFileNames=e??[]}setupPageTracking(t){this.tabManager=new co(t)}async switchTab(t){if(!this.tabManager)throw new Error("Tab manager not initialized");return await this.tabManager.switchToPage(t)}async closeTab(t){if(!this.tabManager)throw new Error("Tab manager not initialized");await this.tabManager.closePage(t)}getCurrentPage(){return this.tabManager?this.tabManager.getCurrentPage():null}validatePage(t){let e=this.getCurrentPage();if(e&&e!==t&&!e.isClosed())return c.info(`[validatePage] Page changed, switching to ${e.url()}`),e;if(t.isClosed()){let u=t.context().pages().filter(i=>!i.isClosed());if(u.length>0){let i=u[u.length-1];return c.info(`[validatePage] Page closed, switching to ${i.url()}`),i}c.error("[validatePage] No valid pages found")}return t}replaceVariables(t){return xu(t,this.context.variableStore.getAll())}getTestDataFileNames(){return this.testDataFileNames}getTestDataFilePath(t){let e=this.context.testDataDir||process.cwd();return Bt.join(e,t)}async downloadTestDataFiles(t){if(t.length===0){c.debug("[AgentServices] No file paths provided for download");return}let e=this.context.testDataDir||process.cwd(),u=t.filter(i=>{let r=Bt.basename(i),n=Bt.join(e,r),a=Tr.existsSync(n);return a&&c.debug(`[AgentServices] File already exists locally: ${r}`),!a});if(u.length===0){c.debug("[AgentServices] All files exist locally, no download needed");return}if(!this.testDataDownloader){c.debug("[AgentServices] No test data downloader configured, assuming files are pre-populated");return}c.info(`[AgentServices] Downloading ${u.length} test data files: ${u.join(", ")}`),await this.testDataDownloader(u,e)}async waitForDownloadComplete(t,e){return ho(t,this.context,e)}getRecentDownloadedFilePath(){return this.context.downloadStatus?this.context.downloadStatus.status!=="completed"?(c.debug(`Download is ${this.context.downloadStatus.status}, not completed`),null):this.context.downloadStatus.filePath?(c.info(`Retrieved recent download path: ${this.context.downloadStatus.filePath}`),this.context.downloadStatus.filePath):(c.warn("Download completed but file path is missing"),null):(c.debug("No download found"),null)}addSensitive(t,e){this.context.variableStore.set(t,e,!0)}saveVariable(t,e){let u=t.startsWith("$")?t.slice(1):t;this.context.variableStore.set(u,e),c.debug(`Saved variable: ${u} = ${JSON.stringify(e)}`),this.context.agentNote=`A new value is saved to the variable "${u}".`}addNote(t){!t||t.trim()===""||(this.context.agentNote?this.context.agentNote+=`
|
|
103
|
+
${t.trim()}`:this.context.agentNote=t.trim())}readVariable(t){let e=t.startsWith("$")?t.slice(1):t,u=this.context.variableStore.get(e);return c.debug(`Read variable: ${e} = ${JSON.stringify(u)}`),u}async generate2faCode(t){try{let e=go.authenticator.generate(t);return c.info(`Generated 2FA code: ${e}`),e}catch(e){throw c.error(`Failed to generate 2FA code: ${e.message}`),new Error(`Failed to generate 2FA code: ${e.message}`)}}async getDOMText(t){return await t.evaluate(()=>document.body.innerText)}async waitUntilStable(t,e){return Xt(t,e)}setPage(t){this.context.setPage?(c.info("[AgentServices] Calling setPage callback"),this.context.setPage(t)):c.debug("[AgentServices] setPage callback not configured")}getModel(){if(!this.context.model)throw new Error("No LLM model configured. An LLM model is required for AI-powered actions (login, verify, ai_extract, ai_wait_until, etc.). Set GOOGLE_API_KEY or ANTHROPIC_API_KEY in your MCP server configuration.");return this.context.model}get variableStore(){return this.context.variableStore}getDownloadDir(){return this.context.downloadDir}getActionSettings(){return this.context.organizationSettings?.action_code_conversion_settings||{}}getInteractiveClassNames(){return this.context.organizationSettings?.agent_settings?.interactive_class_names||[]}getIframeFallbackDomains(){return this.context.organizationSettings?.agent_settings?.iframe_fallback_domains||[]}isUseCleanScreenshotForAssertion(){return this.context.organizationSettings?.use_clean_screenshot_for_assertion||!1}isKnowledgeImagesEnabled(){return this.context.organizationSettings?.agent_settings?.enable_knowledge_images||!1}isSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.use_sliced_screenshots||!1}isResizeSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.resize_sliced_screenshots||!1}isAccessibilityTreeEnabled(){return this.context.organizationSettings?.agent_settings?.use_accessibility_tree||!1}isActionIntentFilteringEnabled(){return this.context.organizationSettings?.agent_settings?.use_action_intent_filtering||!1}isDomTreeTsEnabled(){let t=process.env.USE_DOM_TREE_TS;return t!==void 0?t==="true"||t==="1":this.context.organizationSettings?.agent_settings?.use_dom_tree_ts||!1}setExtensionEnabled(t){this.extensionEnabled=t}getDomServiceOptions(){return{useDomTreeTs:this.isDomTreeTsEnabled(),domTreeRoot:this.extensionEnabled?"document":"body"}}setKnowledgeRetriever(t){this.knowledgeRetriever=t}hasKnowledgeRetriever(){return this.knowledgeRetriever!==void 0}async retrieveKnowledges(t,e,u,i){if(!this.knowledgeRetriever)return c.debug("[AgentServices] No knowledge retriever configured"),[];try{let r=await this.knowledgeRetriever(t,e,u,i);return c.debug(`[AgentServices] Retrieved ${r.length} knowledges for statement`),r}catch(r){return c.warn(`[AgentServices] Failed to retrieve knowledges: ${r.message}`),[]}}},xo=(t=>(t.Started="started",t.Action="action",t.Completion="completion",t.Error="error",t.Aborted="aborted",t.Keepalive="keepalive",t))(xo||{}),Ao=class extends Error{constructor(t){super(t),this.name="AgentTaskFailedError",this.details=t}},Eo=1,Bo=3,Co=40;function At(t,e){let u={};for(let[i,r]of Object.entries(t))u[i]=e.has(i)?"*****":r;return u}var Do=class{constructor(t){this.context=t,this._newActionEntities=new Map,this.agentServices=new mo(t),this.agentServices.agent=this,this.context.tokenUsages||(this.context.tokenUsages=[])}getNewActionEntities(){return this._newActionEntities}async getActionHandler(){if(!this._actionHandler){let{default:t}=await import("./handler-QSEXJ3YG-BK26HZ5S.js");this._actionHandler=new t}return this._actionHandler}async execAction(t,e,u){let i=(await this.getActionHandler()).getAction(t);if(!i)throw new Error(`Unknown action: ${t}`);await i.execute(e,u,this.agentServices)}async dismissModalIfPresent(t,e){try{let u=await this.execute(t,`TASK: Check if there is an INTRUSIVE POPUP blocking the page, and dismiss it if present.
|
|
104
104
|
|
|
105
105
|
ONLY dismiss intrusive popups such as:
|
|
106
106
|
- Cookie/GDPR consent banners
|
|
@@ -122,7 +122,7 @@ If you find an intrusive popup, dismiss it by clicking its close/X button or "No
|
|
|
122
122
|
IMPORTANT: Only act with HIGH CONFIDENCE. If unsure whether something is an intrusive popup, do nothing.
|
|
123
123
|
It's better to miss a popup than to accidentally interact with normal page elements.
|
|
124
124
|
|
|
125
|
-
If NO intrusive popup is present, do nothing and report that no intrusive popup was found.`,void 0,!1,Eo),i=!!(u.actions&&u.actions.length>0);return{success:u.success,modalDismissed:i,details:u.details||(i?"Modal dismissed":"No modal found")}}catch(u){return{success:!1,modalDismissed:!1,details:u.message||"Modal dismissal failed"}}}_getContext(){return this.context}setupDownloadTracking(t){if(c.info(`[Download Tracking] Setting up download tracking for page: ${t.url()}`),go(t)){c.info(`[Download Tracking] Skipping download tracking for blank tab: ${t.url()}`),t.close();return}t.on("download",async e=>{let u=e.suggestedFilename();c.info(`[Download Tracking] Download event detected! File: ${u}`),this.context.downloadStatus={filename:u,status:"inProgress",startTime:Date.now()},c.info(`[Download Tracking] Download status set to inProgress: ${JSON.stringify(this.context.downloadStatus)}`);try{let i=this.context.downloadDir||M.join(process.cwd(),"downloads");R.existsSync(i)||R.mkdirSync(i,{recursive:!0});let r=M.join(i,u);c.info(`[Download Tracking] Downloading file to: ${r}`),await e.saveAs(r),this.context.downloadStatus={filename:u,status:"completed",startTime:this.context.downloadStatus.startTime,filePath:r,timestamp:Date.now()},c.info(`[Download Tracking] Download completed: ${r}`),c.info(`[Download Tracking] Download status set to completed: ${JSON.stringify(this.context.downloadStatus)}`)}catch(i){this.context.downloadStatus={filename:u,status:"failed",startTime:this.context.downloadStatus.startTime,error:i.message,timestamp:Date.now()},c.error(`[Download Tracking] Download failed for ${u}: ${i.message}`)}})}setupDialogHandling(t){if(c.debug(`[Dialog Handling] setupDialogHandling called, isClosed=${t.isClosed()}, url=${t.url()}`),t.isClosed()){c.debug("[Dialog Handling] Skipping - page is closed");return}c.info(`[Dialog Handling] Setting up dialog handling for page: ${t.url()}`),t.on("dialog",async e=>{let u=e.type(),i=e.message();c.info(`[Dialog Handling] Dialog detected - type: ${u}, message: "${i}"`);let r=u==="beforeunload";try{r?await e.dismiss():await e.accept(),this.context.dialogStatus={type:u,message:i,response:r?"dismiss":"accept",timestamp:Date.now()},c.info(`[Dialog Handling] Dialog ${r?"dismissed":"accepted"} - type: ${u}, message: "${i}"`)}catch(n){c.warn(`[Dialog Handling] Failed to handle dialog (already dismissed?): ${n}`)}})}getRecentDownloadedFilePath(){return this.agentServices.getRecentDownloadedFilePath()}addNote(t){this.agentServices.addNote(t)}collectTokenUsages(t){let e;Array.isArray(t)?e=t:t?.tokenUsages&&(e=t.tokenUsages),e&&e.length>0?(this.context.tokenUsages||(this.context.tokenUsages=[]),this.context.tokenUsages.push(...e),c.debug(`[collectTokenUsages] Added ${e.length} token usage(s), total: ${this.context.tokenUsages.length}`)):c.debug("[collectTokenUsages] No token usages to collect (undefined or empty)")}trackAIAction(t,e,u,i=1,r,n){if(!t)return;let a=u?.tokenUsages||[];this.context.aiActionDetails||(this.context.aiActionDetails=[]);let s=this.context.aiActionDetails.find(o=>o.stepId===t&&o.actionType===e);s?(s.count+=i,a.length>0&&s.tokenUsages.push(...a),u?.userPrompt&&(s.userPrompt=u.userPrompt),u?.rawLlmResponse&&(s.rawLlmResponse=u.rawLlmResponse),u?.reasoningContent&&(s.reasoningContent=u.reasoningContent),u?.elementTree&&(s.elementTree=u.elementTree),u?.screenshotWithSom&&(s.screenshotWithSom=u.screenshotWithSom),n&&(s.explanation=n)):this.context.aiActionDetails.push({stepId:t,actionType:e,count:i,tokenUsages:[...a],statement:r,userPrompt:u?.userPrompt,rawLlmResponse:u?.rawLlmResponse,reasoningContent:u?.reasoningContent,explanation:n,elementTree:u?.elementTree,screenshotWithSom:u?.screenshotWithSom}),c.debug(`[trackAIAction] Tracked ${e} for step ${t}, count: ${i}`)}async assert(t,e,u){c.info(`Asserting statement: ${e}`),u&&this.context.stepTracking&&await this.createStepResult(t,u,e),await this.agentServices.waitUntilStable(t);try{let i=this.getCompletedExecutionHistory(),r=await ae(e,t,this.agentServices,{executionHistory:i,useCleanScreenshotForAssertion:!0,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(r.debugInfo),this.context.lastActionDebugInfo=r.debugInfo;let n=r.explanation||r.error||"No explanation";if(u&&this.trackAIAction(u,"assert",r.debugInfo,1,e,n),this.context.agentNote=n,u&&this.context.stepTracking&&await this.updateStepResult(u,r.success?"success":"failure",n,void 0,r.debugInfo),!r.success)throw this.addToExecutionHistory(`Assert: "${e}"`,`Failed: ${n}`),new Error(`Assertion failed: ${n}`);return this.addToExecutionHistory(`Assert: "${e}"`,`Passed: ${n}`),!0}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async evaluate(t,e,u){c.info(`Evaluating condition: ${e}`),u&&this.context.stepTracking&&await this.createStepResult(t,u,e),await this.agentServices.waitUntilStable(t);try{let i=this.getCompletedExecutionHistory(),r=await ae(e,t,this.agentServices,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(r.debugInfo),this.context.lastActionDebugInfo=r.debugInfo;let n=r.explanation||r.error||"No explanation";return u&&this.trackAIAction(u,"evaluate",r.debugInfo,1,e,n),this.context.agentNote=n,u&&this.context.stepTracking&&await this.updateStepResult(u,"success",n,void 0,r.debugInfo),r.success?(this.addToExecutionHistory(`Evaluate: "${e}"`,`Result: true - ${n}`),!0):(c.warn(`AI evaluation returned false/unknown: ${n}`),this.addToExecutionHistory(`Evaluate: "${e}"`,`Unknown/False: ${n}`),!1)}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async performAction(t,e){c.info(`Act: ${e}`);let u=this.getCompletedExecutionHistory(),i=await ne(e,t,this.agentServices,{executionHistory:u,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});if(this.collectTokenUsages(i.debugInfo),i.status!=="success"||i.actionEntities.length===0)return{success:!1,details:i.explanation||i.error||"Action failed"};let r=i.actionEntities[0]?.action_description||e;return this.addToExecutionHistory(e,r),{success:!0,details:i.explanation}}async execute(t,e,u,i,r){if(r!==void 0&&r<=0)throw new Error(`maxSteps must be >= 1, got ${r}`);let n=r!==void 0&&r>1;c.info(`Executing statement: ${e} (${n?`multi, maxSteps: ${r}`:"single"})`),u&&this.context.stepTracking&&await this.createStepResult(t,u,e),t=this.agentServices.validatePage(t),await this.agentServices.waitUntilStable(t);try{let a=this.getCompletedExecutionHistory();this.context.agentNote="";let s,o;if(n){let p=u&&this.context.stepTracking?.artifactsDir?A=>{if(A.type==="action"&&A.debugInfo){let E=`${u}-step${A.step}`;this.saveDebugInfoToFiles(E,A.debugInfo,this.context.model)}}:void 0;if(s=await se(e,t,this.agentServices,p,{executionHistory:a,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),maxSteps:r??Bo}),o=s.completed,this.collectTokenUsages(s.tokenUsages),u&&s.tokenUsages){let A={tokenUsages:s.tokenUsages};this.trackAIAction(u,"execute",A,s.actionEntities?.length||1,e,s.explanation||"Multi-step execution completed")}}else if(t=this.agentServices.validatePage(t),s=await ne(e,t,this.agentServices,{executionHistory:a,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:i}),o=s.completed,this.collectTokenUsages(s.debugInfo),this.context.lastActionDebugInfo=s.debugInfo,u){let p=s.explanation||s.error||"No explanation";this.trackAIAction(u,"execute",s.debugInfo,1,e,p)}if(s.status!=="success"||s.actionEntities.length===0||!o){let p=s.explanation||s.error||"Goal not completed";throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",p,void 0,s.debugInfo),new Error(`Action failed: ${p}`)}let l=this.context.agentNote||s.explanation||"Action executed successfully";return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,s.debugInfo),this.addToExecutionHistory(`Execute: "${e}"`,l),{success:!0,details:l,actions:s.actionEntities,debugInfo:s.debugInfo}}catch(a){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",a.message),this.addToExecutionHistory(`Execute: "${e}"`,`Failed: ${a.message}`),a}}async generate(t,e,u,i){u&&this.context.stepTracking&&await this.createStepResult(t,u,e);try{let r=this.getCompletedExecutionHistory(),n=await Qu(e,t,this.agentServices,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:i});if(this.collectTokenUsages(n.debugInfo),n.status!=="success"||n.actionEntities.length===0){let o=n.explanation||n.error||"No explanation";throw u&&this.trackAIAction(u,"generate",n.debugInfo,1,e,o),u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",o,void 0,n.debugInfo),new Error(o)}let a=n.completed,s=n.explanation||"Action generated successfully";return u&&this.trackAIAction(u,"generate",n.debugInfo,1,e,s),u&&this.context.stepTracking&&await this.updateStepResult(u,"success",s,void 0,n.debugInfo),c.info(`[generate] Generated action for "${e}": ${s}, goalAccomplished: ${n.completed}`),{success:a,details:s,actions:n.actionEntities,debugInfo:n.debugInfo}}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async run(t,e,u,i){u&&this.context.stepTracking&&await this.createStepResult(t,u,e);try{let r=this.getCompletedExecutionHistory();this.context.agentNote="";let n=u&&this.context.stepTracking?.artifactsDir,a=i?.onAction||n?p=>{if(p.type==="action"&&p.action_entity&&(i?.onAction?.(p.action_entity),n&&p.debugInfo)){let A=`${u}-step${p.step}`;this.saveDebugInfoToFiles(A,p.debugInfo,this.context.model)}}:void 0,s=await se(e,t,this.agentServices,a,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),abortSignal:i?.abortSignal,maxSteps:i?.maxSteps});S.log(`Run task result: status=${s.status}, completed=${s.completed}, actions=${s.actionEntities?.length||0}`),this.collectTokenUsages(s.tokenUsages);let o=s.status==="success"&&s.completed,l=this.context.agentNote?.trim()||s.explanation||s.error||(o?"Step completed":"Step failed");if(u&&s.tokenUsages){let p={tokenUsages:s.tokenUsages};this.trackAIAction(u,"run",p,s.actionEntities?.length||1,e,l)}if(!o)throw new xo(l);return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,void 0),this.addToExecutionHistory(`Run: "${e}"`,l),S.log(`Run result: success=${o}, details=${l}`),{success:o,details:l,actions:s.actionEntities}}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),this.addToExecutionHistory(`Run: "${e}"`,`Failed: ${r.message}`),r}}async step(t,e,u,i,r,n=!0,a){let s=Date.now();this.context.stepTracking&&await this.createStepResult(t,i,u),t=this.agentServices.validatePage(t),await this.agentServices.waitUntilStable(t),this.context.stepTracking&&(this.context.stepTracking.currentStepId=i),t=this.agentServices.validatePage(t);let o=t.url(),l=await this.captureDOMSnapshot(t),p=this.context.stepTracking?.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},A=this.context.stepTracking?.results[i]?.screenshot;try{c.info(`Executing step ${i}: ${u}`),this.addToExecutionHistory(u,""),this.context.agentNote="",t=this.agentServices.validatePage(t);let E=await e();t=this.agentServices.validatePage(t);let x=t.url(),B=await this.captureDOMSnapshot(t),y=this.context.stepTracking?.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking&&await this.updateStepResult(i,"success",""),this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let D=Date.now()-s,F=this.context.stepTracking.results[i]?.screenshot,m=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:D,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:x,domSnapshot:B||void 0,variables:y,screenshotPath:F,timestamp:m})}let b=this.context.agentNote;return(!b||b.trim()==="")&&(b="Execution successful"),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=b),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),E}catch(E){t=this.agentServices.validatePage(t);let x=n&&!this.context.isSelfHealing;if(x&&(this.context.stepTracking&&await this.updateStepResult(i,"failure",E.message),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=E.message)),!u||u.trim()==="")throw c.error("No description provided for self-healing"),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),E;if(!x){if(c.info(`Failed to heal at step ${i}. ${u}`),this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let b=t.url(),D=await this.captureDOMSnapshot(t),F=this.context.stepTracking.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},m=Date.now()-s,w=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:m,status:"failure",errorMessage:E.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:b,domSnapshot:D||void 0,variables:F,timestamp:w})}throw this.context.stepTracking&&(await this.updateStepResult(i,void 0,void 0),this.context.stepTracking.currentStepId=void 0),E}this.context.isSelfHealing=!0,c.info(`Action failed at step ${i}. ${u}`),c.info(`with error: ${E.message}`);let B;if(this.context.autoDisableModal){c.info("Attempting modal dismissal before self-healing...");let b=await this.dismissModalIfPresent(t,u);if(c.info(`Modal dismissal result: ${b.details}`),b.modalDismissed){B=`[Auto-dismissed modal: ${b.details}]`,c.info(`Modal dismissed, retrying original action for step ${i}`);try{let D=await e();return this.context.isSelfHealing=!1,this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=B+" Retry successful"),this.context.stepTracking&&(await this.updateStepResult(i,"success",B),this.context.stepTracking.currentStepId=void 0),D}catch(D){c.info(`Retry after modal dismissal failed: ${D.message}, falling back to self-healing`)}}}let y=a??Ao;c.info(`Calling execute() to self-heal (maxSteps: ${y})`);try{let b=await this.execute(t,u,i,!1,y);if(this.context.isSelfHealing=!1,!b.success)throw new Error(`Self-healing failed: ${b.details}`);let D=b.actions?.at(-1);r&&D&&(this._newActionEntities.set(r,D),c.info(`Stored new action entity for stmtUid: ${r} (last of ${b.actions?.length} actions)`));let F=t.url(),m=await this.captureDOMSnapshot(t),w=this.context.stepTracking?.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking){let v=B||"";await this.updateStepResult(i,"success",v)}if(this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let v=Date.now()-s,I=this.context.stepTracking.results[i]?.screenshot,$=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{actionEntity:D,playwrightCode:b.actions?.map(Y=>Y.locator||""),llmPrompt:b.debugInfo?.userPrompt,llmResponse:b.debugInfo?.rawLlmResponse,llmReasoning:b.debugInfo?.reasoningContent},consoleLogs:this.getConsoleLogsForStep(i),durationMs:v,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:F,domSnapshot:m||void 0,variables:w,screenshotPath:I,timestamp:$})}return this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),b}catch(b){if(this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let D=t.url(),F=await this.captureDOMSnapshot(t),m=this.context.stepTracking.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},w=Date.now()-s,v=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:w,status:"failure",errorMessage:b.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:D,domSnapshot:F||void 0,variables:m,timestamp:v})}throw this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),b}}}async extract(t,e,u,i){i&&this.context.stepTracking&&await this.createStepResult(t,i,`Extract ${e} into ${u}`);try{let r=`Extract ${e} and save to ${u}`,n=await this.execute(t,r,i);if(!n.success)throw new Error(`AI extraction failed: ${n.details}`);i&&this.context.stepTracking&&await this.updateStepResult(i,"success",`Extracted ${e} to ${u}`)}catch(r){throw i&&this.context.stepTracking&&await this.updateStepResult(i,"failure",r.message),r}}async getDOMText(t){let e=new re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),i=this.agentServices.getIframeFallbackDomains();return(await e.getClickableElements(t,{interactiveClassNames:u,playwrightFrameFallbackDomains:i})).elementTree.clickableElementsToString()}async captureDOMSnapshot(t){if(!this.context.stepTracking?.captureStateTransitions||!this.context.stepTracking?.captureDom)return null;try{let e=new re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),i=this.agentServices.getIframeFallbackDomains(),r=await e.getClickableElements(t,{interactiveClassNames:u,playwrightFrameFallbackDomains:i,highlightElements:!1,viewportExpansion:0});return{elementTreeText:r.elementTree.clickableElementsToString(),elementCount:r.selectorMap.size,timestamp:Date.now()}}catch(e){return c.warn("Failed to capture DOM snapshot:",e),null}}getConsoleLogsForStep(t){return this.context.stepTracking?.consoleLogs?this.context.stepTracking.consoleLogs.filter(e=>e.stepId===t).map(e=>({type:e.type,message:e.message,timestamp:e.timestamp})):[]}async waitUntilStable(t,e=3e3,u=1e3){return co(t,e,u)}async waitUntilCondition(t,e,u=60,i){return ho(t,e,(r,n,a)=>this.evaluate(r,n,a),u,i)}async uploadFile(t,e,u={},i){return yu(t,e,u,this.context,(r,n,a)=>this.execute(r,n,a),i)}async loginPage(t,e,u){let{LoginType:i}=await import("./agentLogin-VLDCPI66-52P67BMY.js");if(c.info("Start login"),S.section("Login Flow"),S.log(`Site URL: ${e.site_url}`),S.log(`Account type: ${e.account.type}`),S.log(`Has cached actions: ${!!u?.cached_actions?.length}`),S.log(`Has validation exprs: ${!!u?.validation_exprs?.length}`),e.skip_verification)return c.info("Skipping login verification (skip_verification=true)"),{success:!0,page:t};if((e.account.type===i.PASSWORD||e.account.type===i.OAUTH2)&&(this.context.variableStore.set("username",e.account.username,!0),this.context.variableStore.set("password",e.account.password,!0)),e.account.two_factor_auth_config?.type==="totp"&&this.context.variableStore.set("otp_secret_key",e.account.two_factor_auth_config.data,!0),c.info(`Navigating to: ${e.site_url}`),await t.goto(e.site_url),await this.waitUntilStable(t,1e4,3e3),u?.validation_exprs&&u.validation_exprs.length>0){if(S.log("Level 1: Checking if already logged in via storage state..."),S.log(`Validation expressions: ${JSON.stringify(u.validation_exprs)}`),await ee(t,u.validation_exprs))return S.log("Level 1 SUCCESS: Already logged in via storage state"),c.info("Login: Already logged in via storage state"),{success:!0,page:t,storage_state:null,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs,alreadyLoggedIn:!0};S.log("Level 1 FAILED: Storage state validation failed, trying Level 2")}if(u?.cached_actions&&u.cached_actions.length>0&&u?.validation_exprs&&u.validation_exprs.length>0){S.log(`Level 2: Attempting cached login with ${u.cached_actions.length} actions`);try{if((await this.executeCachedLogin(t,u.cached_actions,u.validation_exprs)).success){S.log("Level 2 SUCCESS: Cached login succeeded"),c.info("Login: Cached login succeeded");let n=await t.context().storageState();return{success:!0,page:t,storage_state:n,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs}}S.log("Level 2 FAILED: Cached login failed, trying Level 3")}catch(n){S.log(`Level 2 ERROR: ${n.message}, trying Level 3`)}}else u?.cached_actions&&u.cached_actions.length>0&&S.log("Level 2 SKIPPED: Cached actions exist but no validation expressions, going to Level 3");let r=`First check if the page is already signed in. If it is, do nothing.
|
|
125
|
+
If NO intrusive popup is present, do nothing and report that no intrusive popup was found.`,void 0,!1,Bo),i=!!(u.actions&&u.actions.length>0);return{success:u.success,modalDismissed:i,details:u.details||(i?"Modal dismissed":"No modal found")}}catch(u){return{success:!1,modalDismissed:!1,details:u.message||"Modal dismissal failed"}}}_getContext(){return this.context}setupDownloadTracking(t){if(c.info(`[Download Tracking] Setting up download tracking for page: ${t.url()}`),fo(t)){c.info(`[Download Tracking] Skipping download tracking for blank tab: ${t.url()}`),t.close();return}t.on("download",async e=>{let u=e.suggestedFilename();c.info(`[Download Tracking] Download event detected! File: ${u}`),this.context.downloadStatus={filename:u,status:"inProgress",startTime:Date.now()},c.info(`[Download Tracking] Download status set to inProgress: ${JSON.stringify(this.context.downloadStatus)}`);try{let i=this.context.downloadDir||M.join(process.cwd(),"downloads");R.existsSync(i)||R.mkdirSync(i,{recursive:!0});let r=M.join(i,u);c.info(`[Download Tracking] Downloading file to: ${r}`),await e.saveAs(r),this.context.downloadStatus={filename:u,status:"completed",startTime:this.context.downloadStatus.startTime,filePath:r,timestamp:Date.now()},c.info(`[Download Tracking] Download completed: ${r}`),c.info(`[Download Tracking] Download status set to completed: ${JSON.stringify(this.context.downloadStatus)}`)}catch(i){this.context.downloadStatus={filename:u,status:"failed",startTime:this.context.downloadStatus.startTime,error:i.message,timestamp:Date.now()},c.error(`[Download Tracking] Download failed for ${u}: ${i.message}`)}})}setupDialogHandling(t){if(c.debug(`[Dialog Handling] setupDialogHandling called, isClosed=${t.isClosed()}, url=${t.url()}`),t.isClosed()){c.debug("[Dialog Handling] Skipping - page is closed");return}c.info(`[Dialog Handling] Setting up dialog handling for page: ${t.url()}`),t.on("dialog",async e=>{let u=e.type(),i=e.message();c.info(`[Dialog Handling] Dialog detected - type: ${u}, message: "${i}"`);let r=u==="beforeunload";try{r?await e.dismiss():await e.accept(),this.context.dialogStatus={type:u,message:i,response:r?"dismiss":"accept",timestamp:Date.now()},c.info(`[Dialog Handling] Dialog ${r?"dismissed":"accepted"} - type: ${u}, message: "${i}"`)}catch(n){c.warn(`[Dialog Handling] Failed to handle dialog (already dismissed?): ${n}`)}})}getRecentDownloadedFilePath(){return this.agentServices.getRecentDownloadedFilePath()}addNote(t){this.agentServices.addNote(t)}collectTokenUsages(t){let e;Array.isArray(t)?e=t:t?.tokenUsages&&(e=t.tokenUsages),e&&e.length>0?(this.context.tokenUsages||(this.context.tokenUsages=[]),this.context.tokenUsages.push(...e),c.debug(`[collectTokenUsages] Added ${e.length} token usage(s), total: ${this.context.tokenUsages.length}`)):c.debug("[collectTokenUsages] No token usages to collect (undefined or empty)")}trackAIAction(t,e,u,i=1,r,n){if(!t)return;let a=u?.tokenUsages||[];this.context.aiActionDetails||(this.context.aiActionDetails=[]);let s=this.context.aiActionDetails.find(o=>o.stepId===t&&o.actionType===e);s?(s.count+=i,a.length>0&&s.tokenUsages.push(...a),u?.userPrompt&&(s.userPrompt=u.userPrompt),u?.rawLlmResponse&&(s.rawLlmResponse=u.rawLlmResponse),u?.reasoningContent&&(s.reasoningContent=u.reasoningContent),u?.elementTree&&(s.elementTree=u.elementTree),u?.screenshotWithSom&&(s.screenshotWithSom=u.screenshotWithSom),n&&(s.explanation=n)):this.context.aiActionDetails.push({stepId:t,actionType:e,count:i,tokenUsages:[...a],statement:r,userPrompt:u?.userPrompt,rawLlmResponse:u?.rawLlmResponse,reasoningContent:u?.reasoningContent,explanation:n,elementTree:u?.elementTree,screenshotWithSom:u?.screenshotWithSom}),c.debug(`[trackAIAction] Tracked ${e} for step ${t}, count: ${i}`)}async assert(t,e,u){c.info(`Asserting statement: ${e}`),u&&this.context.stepTracking&&await this.createStepResult(t,u,e),await this.agentServices.waitUntilStable(t);try{let i=this.getCompletedExecutionHistory(),r=await ae(e,t,this.agentServices,{executionHistory:i,useCleanScreenshotForAssertion:!0,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(r.debugInfo),this.context.lastActionDebugInfo=r.debugInfo;let n=r.explanation||r.error||"No explanation";if(u&&this.trackAIAction(u,"assert",r.debugInfo,1,e,n),this.context.agentNote=n,u&&this.context.stepTracking&&await this.updateStepResult(u,r.success?"success":"failure",n,void 0,r.debugInfo),!r.success)throw this.addToExecutionHistory(`Assert: "${e}"`,`Failed: ${n}`),new Error(`Assertion failed: ${n}`);return this.addToExecutionHistory(`Assert: "${e}"`,`Passed: ${n}`),!0}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async evaluate(t,e,u){c.info(`Evaluating condition: ${e}`),u&&this.context.stepTracking&&await this.createStepResult(t,u,e),await this.agentServices.waitUntilStable(t);try{let i=this.getCompletedExecutionHistory(),r=await ae(e,t,this.agentServices,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(r.debugInfo),this.context.lastActionDebugInfo=r.debugInfo;let n=r.explanation||r.error||"No explanation";return u&&this.trackAIAction(u,"evaluate",r.debugInfo,1,e,n),this.context.agentNote=n,u&&this.context.stepTracking&&await this.updateStepResult(u,"success",n,void 0,r.debugInfo),r.success?(this.addToExecutionHistory(`Evaluate: "${e}"`,`Result: true - ${n}`),!0):(c.warn(`AI evaluation returned false/unknown: ${n}`),this.addToExecutionHistory(`Evaluate: "${e}"`,`Unknown/False: ${n}`),!1)}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async performAction(t,e){c.info(`Act: ${e}`);let u=this.getCompletedExecutionHistory(),i=await ne(e,t,this.agentServices,{executionHistory:u,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});if(this.collectTokenUsages(i.debugInfo),i.status!=="success"||i.actionEntities.length===0)return{success:!1,details:i.explanation||i.error||"Action failed"};let r=i.actionEntities[0]?.action_description||e;return this.addToExecutionHistory(e,r),{success:!0,details:i.explanation}}async execute(t,e,u,i,r){if(r!==void 0&&r<=0)throw new Error(`maxSteps must be >= 1, got ${r}`);let n=r!==void 0&&r>1;c.info(`Executing statement: ${e} (${n?`multi, maxSteps: ${r}`:"single"})`),u&&this.context.stepTracking&&await this.createStepResult(t,u,e),t=this.agentServices.validatePage(t),await this.agentServices.waitUntilStable(t);try{let a=this.getCompletedExecutionHistory();this.context.agentNote="";let s,o;if(n){let p=u&&this.context.stepTracking?.artifactsDir?A=>{if(A.type==="action"&&A.debugInfo){let E=`${u}-step${A.step}`;this.saveDebugInfoToFiles(E,A.debugInfo,this.context.model)}}:void 0;if(s=await se(e,t,this.agentServices,p,{executionHistory:a,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),maxSteps:r??Co}),o=s.completed,this.collectTokenUsages(s.tokenUsages),u&&s.tokenUsages){let A={tokenUsages:s.tokenUsages};this.trackAIAction(u,"execute",A,s.actionEntities?.length||1,e,s.explanation||"Multi-step execution completed")}}else if(t=this.agentServices.validatePage(t),s=await ne(e,t,this.agentServices,{executionHistory:a,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:i}),o=s.completed,this.collectTokenUsages(s.debugInfo),this.context.lastActionDebugInfo=s.debugInfo,u){let p=s.explanation||s.error||"No explanation";this.trackAIAction(u,"execute",s.debugInfo,1,e,p)}if(s.status!=="success"||s.actionEntities.length===0||!o){let p=s.explanation||s.error||"Goal not completed";throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",p,void 0,s.debugInfo),new Error(`Action failed: ${p}`)}let l=this.context.agentNote||s.explanation||"Action executed successfully";return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,s.debugInfo),this.addToExecutionHistory(`Execute: "${e}"`,l),{success:!0,details:l,actions:s.actionEntities,debugInfo:s.debugInfo}}catch(a){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",a.message),this.addToExecutionHistory(`Execute: "${e}"`,`Failed: ${a.message}`),a}}async generate(t,e,u,i){u&&this.context.stepTracking&&await this.createStepResult(t,u,e);try{let r=this.getCompletedExecutionHistory(),n=await Xu(e,t,this.agentServices,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:i});if(this.collectTokenUsages(n.debugInfo),n.status!=="success"||n.actionEntities.length===0){let o=n.explanation||n.error||"No explanation";throw u&&this.trackAIAction(u,"generate",n.debugInfo,1,e,o),u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",o,void 0,n.debugInfo),new Error(o)}let a=n.completed,s=n.explanation||"Action generated successfully";return u&&this.trackAIAction(u,"generate",n.debugInfo,1,e,s),u&&this.context.stepTracking&&await this.updateStepResult(u,"success",s,void 0,n.debugInfo),c.info(`[generate] Generated action for "${e}": ${s}, goalAccomplished: ${n.completed}`),{success:a,details:s,actions:n.actionEntities,debugInfo:n.debugInfo}}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async run(t,e,u,i){u&&this.context.stepTracking&&await this.createStepResult(t,u,e);try{let r=this.getCompletedExecutionHistory();this.context.agentNote="";let n=u&&this.context.stepTracking?.artifactsDir,a=i?.onAction||n?p=>{if(p.type==="action"&&p.action_entity&&(i?.onAction?.(p.action_entity),n&&p.debugInfo)){let A=`${u}-step${p.step}`;this.saveDebugInfoToFiles(A,p.debugInfo,this.context.model)}}:void 0,s=await se(e,t,this.agentServices,a,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),abortSignal:i?.abortSignal,maxSteps:i?.maxSteps});k.log(`Run task result: status=${s.status}, completed=${s.completed}, actions=${s.actionEntities?.length||0}`),this.collectTokenUsages(s.tokenUsages);let o=s.status==="success"&&s.completed,l=this.context.agentNote?.trim()||s.explanation||s.error||(o?"Step completed":"Step failed");if(u&&s.tokenUsages){let p={tokenUsages:s.tokenUsages};this.trackAIAction(u,"run",p,s.actionEntities?.length||1,e,l)}if(!o)throw new Ao(l);if(i?.stmtUid&&s.actionEntities?.length){let p=s.actionEntities.at(-1);p&&(this._newActionEntities.set(i.stmtUid,p),k.log(`Stored resolved action entity for DRAFT stmtUid: ${i.stmtUid}`))}return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,void 0),this.addToExecutionHistory(`Run: "${e}"`,l),k.log(`Run result: success=${o}, details=${l}`),{success:o,details:l,actions:s.actionEntities}}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),this.addToExecutionHistory(`Run: "${e}"`,`Failed: ${r.message}`),r}}async step(t,e,u,i,r,n=!0,a){let s=Date.now();this.context.stepTracking&&await this.createStepResult(t,i,u),t=this.agentServices.validatePage(t),await this.agentServices.waitUntilStable(t),this.context.stepTracking&&(this.context.stepTracking.currentStepId=i),t=this.agentServices.validatePage(t);let o=t.url(),l=await this.captureDOMSnapshot(t),p=this.context.stepTracking?.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},A=this.context.stepTracking?.results[i]?.screenshot;try{c.info(`Executing step ${i}: ${u}`),this.addToExecutionHistory(u,""),this.context.agentNote="",t=this.agentServices.validatePage(t);let E=await e();t=this.agentServices.validatePage(t);let x=t.url(),B=await this.captureDOMSnapshot(t),y=this.context.stepTracking?.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking&&await this.updateStepResult(i,"success",""),this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=Date.now()-s,_=this.context.stepTracking.results[i]?.screenshot,f=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:w,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:x,domSnapshot:B||void 0,variables:y,screenshotPath:_,timestamp:f})}let b=this.context.agentNote;return(!b||b.trim()==="")&&(b="Execution successful"),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=b),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),E}catch(E){t=this.agentServices.validatePage(t);let x=n&&!this.context.isSelfHealing;if(x&&(this.context.stepTracking&&await this.updateStepResult(i,"failure",E.message),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=E.message)),!u||u.trim()==="")throw c.error("No description provided for self-healing"),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),E;if(!x){if(c.info(`Failed to heal at step ${i}. ${u}`),this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let b=t.url(),w=await this.captureDOMSnapshot(t),_=this.context.stepTracking.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},f=Date.now()-s,D=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:f,status:"failure",errorMessage:E.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:b,domSnapshot:w||void 0,variables:_,timestamp:D})}throw this.context.stepTracking&&(await this.updateStepResult(i,void 0,void 0),this.context.stepTracking.currentStepId=void 0),E}this.context.isSelfHealing=!0,c.info(`Action failed at step ${i}. ${u}`),c.info(`with error: ${E.message}`);let B;if(this.context.autoDisableModal){c.info("Attempting modal dismissal before self-healing...");let b=await this.dismissModalIfPresent(t,u);if(c.info(`Modal dismissal result: ${b.details}`),b.modalDismissed){B=`[Auto-dismissed modal: ${b.details}]`,c.info(`Modal dismissed, retrying original action for step ${i}`);try{let w=await e();return this.context.isSelfHealing=!1,this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=B+" Retry successful"),this.context.stepTracking&&(await this.updateStepResult(i,"success",B),this.context.stepTracking.currentStepId=void 0),w}catch(w){c.info(`Retry after modal dismissal failed: ${w.message}, falling back to self-healing`)}}}let y=a??Eo;c.info(`Calling execute() to self-heal (maxSteps: ${y})`);try{let b=await this.execute(t,u,i,!1,y);if(this.context.isSelfHealing=!1,!b.success)throw new Error(`Self-healing failed: ${b.details}`);let w=b.actions?.at(-1);r&&w&&(this._newActionEntities.set(r,w),c.info(`Stored new action entity for stmtUid: ${r} (last of ${b.actions?.length} actions)`));let _=t.url(),f=await this.captureDOMSnapshot(t),D=this.context.stepTracking?.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking){let F=B||"";await this.updateStepResult(i,"success",F)}if(this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let F=Date.now()-s,L=this.context.stepTracking.results[i]?.screenshot,$=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{actionEntity:w,playwrightCode:b.actions?.map(Y=>Y.locator||""),llmPrompt:b.debugInfo?.userPrompt,llmResponse:b.debugInfo?.rawLlmResponse,llmReasoning:b.debugInfo?.reasoningContent},consoleLogs:this.getConsoleLogsForStep(i),durationMs:F,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:_,domSnapshot:f||void 0,variables:D,screenshotPath:L,timestamp:$})}return this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),b}catch(b){if(this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=t.url(),_=await this.captureDOMSnapshot(t),f=this.context.stepTracking.captureVariables?At(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},D=Date.now()-s,F=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:A,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:D,status:"failure",errorMessage:b.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:w,domSnapshot:_||void 0,variables:f,timestamp:F})}throw this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),b}}}async extract(t,e,u,i){i&&this.context.stepTracking&&await this.createStepResult(t,i,`Extract ${e} into ${u}`);try{let r=`Extract ${e} and save to ${u}`,n=await this.execute(t,r,i);if(!n.success)throw new Error(`AI extraction failed: ${n.details}`);i&&this.context.stepTracking&&await this.updateStepResult(i,"success",`Extracted ${e} to ${u}`)}catch(r){throw i&&this.context.stepTracking&&await this.updateStepResult(i,"failure",r.message),r}}async getDOMText(t){let e=new re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),i=this.agentServices.getIframeFallbackDomains();return(await e.getClickableElements(t,{interactiveClassNames:u,playwrightFrameFallbackDomains:i})).elementTree.clickableElementsToString()}async captureDOMSnapshot(t){if(!this.context.stepTracking?.captureStateTransitions||!this.context.stepTracking?.captureDom)return null;try{let e=new re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),i=this.agentServices.getIframeFallbackDomains(),r=await e.getClickableElements(t,{interactiveClassNames:u,playwrightFrameFallbackDomains:i,highlightElements:!1,viewportExpansion:0});return{elementTreeText:r.elementTree.clickableElementsToString(),elementCount:r.selectorMap.size,timestamp:Date.now()}}catch(e){return c.warn("Failed to capture DOM snapshot:",e),null}}getConsoleLogsForStep(t){return this.context.stepTracking?.consoleLogs?this.context.stepTracking.consoleLogs.filter(e=>e.stepId===t).map(e=>({type:e.type,message:e.message,timestamp:e.timestamp})):[]}async waitUntilStable(t,e=3e3,u=1e3){return lo(t,e,u)}async waitUntilCondition(t,e,u=60,i){return po(t,e,(r,n,a)=>this.evaluate(r,n,a),u,i)}async uploadFile(t,e,u={},i){return Fu(t,e,u,this.context,(r,n,a)=>this.execute(r,n,a),i)}async loginPage(t,e,u){let{LoginType:i}=await import("./agentLogin-JJ76YIVR-ODLFUWNL.js");if(c.info("Start login"),k.section("Login Flow"),k.log(`Site URL: ${e.site_url}`),k.log(`Account type: ${e.account.type}`),k.log(`Has cached actions: ${!!u?.cached_actions?.length}`),k.log(`Has validation exprs: ${!!u?.validation_exprs?.length}`),e.skip_verification)return c.info("Skipping login verification (skip_verification=true)"),{success:!0,page:t};if((e.account.type===i.PASSWORD||e.account.type===i.OAUTH2)&&(this.context.variableStore.set("username",e.account.username,!0),this.context.variableStore.set("password",e.account.password,!0)),e.account.two_factor_auth_config?.type==="totp"&&this.context.variableStore.set("otp_secret_key",e.account.two_factor_auth_config.data,!0),c.info(`Navigating to: ${e.site_url}`),await t.goto(e.site_url),await this.waitUntilStable(t,1e4,3e3),u?.validation_exprs&&u.validation_exprs.length>0){if(k.log("Level 1: Checking if already logged in via storage state..."),k.log(`Validation expressions: ${JSON.stringify(u.validation_exprs)}`),await ee(t,u.validation_exprs))return k.log("Level 1 SUCCESS: Already logged in via storage state"),c.info("Login: Already logged in via storage state"),{success:!0,page:t,storage_state:null,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs,alreadyLoggedIn:!0};k.log("Level 1 FAILED: Storage state validation failed, trying Level 2")}if(u?.cached_actions&&u.cached_actions.length>0&&u?.validation_exprs&&u.validation_exprs.length>0){k.log(`Level 2: Attempting cached login with ${u.cached_actions.length} actions`);try{if((await this.executeCachedLogin(t,u.cached_actions,u.validation_exprs)).success){k.log("Level 2 SUCCESS: Cached login succeeded"),c.info("Login: Cached login succeeded");let n=await t.context().storageState();return{success:!0,page:t,storage_state:n,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs}}k.log("Level 2 FAILED: Cached login failed, trying Level 3")}catch(n){k.log(`Level 2 ERROR: ${n.message}, trying Level 3`)}}else u?.cached_actions&&u.cached_actions.length>0&&k.log("Level 2 SKIPPED: Cached actions exist but no validation expressions, going to Level 3");let r=`First check if the page is already signed in. If it is, do nothing.
|
|
126
126
|
Use your best judgement to determine if the page is signed in.
|
|
127
127
|
`;if(e.verification_hint&&(r+=`
|
|
128
128
|
Signed in verification hint: ${e.verification_hint}
|
|
@@ -133,8 +133,8 @@ If the page is not signed in, sign in with the OAuth provider "${n.provider_name
|
|
|
133
133
|
($username, $password), and use $otp_secret_key to generate $otp_code for two-factor authentication. If you can't login with the provided credentials, just stop and report the failure.
|
|
134
134
|
`}e.additional_prompt&&(r+=`
|
|
135
135
|
Additional instructions: ${e.additional_prompt}
|
|
136
|
-
`);try{
|
|
137
|
-
${r}`);let n=this.agentServices.knowledgeRetriever,a=!1;this.agentServices.hasKnowledgeRetriever()&&n&&(
|
|
136
|
+
`);try{k.log("Level 3: Attempting agent-based login"),k.log(`Login prompt:
|
|
137
|
+
${r}`);let n=this.agentServices.knowledgeRetriever,a=!1;this.agentServices.hasKnowledgeRetriever()&&n&&(k.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(E,x,B,y)=>await n(E,x,B,"login")),a=!0,k.log("Login knowledge retriever configured"));let s;try{if(s=await this.run(t,r,"login"),!s.success)return k.log("Level 3 FAILED: Agent login failed"),c.info("Login: Failed"),{success:!1,page:t}}finally{a&&n&&(this.agentServices.setKnowledgeRetriever(n),k.log("Restored original knowledge retriever"))}let o=await t.context().storageState(),l;if(e.num_verification_exprs!==0)try{k.log("Generating validation locators for future login verification...");let E=await Eu(t,e.site_url,{verification_hint:e.verification_hint,num_verification_exprs:e.num_verification_exprs},async(x,B)=>this.run(x,B),async x=>this.getDOMText(x));E?(l=E,k.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):k.log("Failed to generate validation locators, login will still succeed")}catch(E){k.log(`Error generating validation locators: ${E.message}`)}else k.log("Skipping validation locator generation (num_verification_exprs=0)");k.log("Level 3 SUCCESS: Agent login succeeded"),c.info("Login: Agent login succeeded");let p=s.actions||[],A=p.length>0?p:u?.cached_actions;return{success:!0,page:t,storage_state:o,cached_actions:A,validation_exprs:l}}catch(n){return k.error(`Agent login failed: ${n.message}`),c.info("Login: Failed"),{success:!1,page:t}}}async executeCachedLogin(t,e,u){let i=(await import("./handler-QSEXJ3YG-BK26HZ5S.js")).default,r=new i;for(let n=0;n<e.length;n++){let a=e[n];k.log(`Executing cached action ${n+1}/${e.length}: ${a.action_description||a.action_data?.action_name}`);try{if(!a.action_data){k.log(`Action ${n+1} missing action_data, skipping`);continue}await r.execute(t,a,this.agentServices),await this.waitUntilStable(t,5e3)}catch(s){return k.error(`Cached action ${n+1} failed: ${s.message}`),{success:!1}}}return u&&u.length>0&&!await ee(t,u)?{success:!1}:{success:!0}}getCompletedExecutionHistory(){if(!this.context.executionHistory||this.context.executionHistory.length===0)return[];let t=this.context.executionHistory[this.context.executionHistory.length-1];return!t[1]||t[1].trim()===""?this.context.executionHistory.slice(0,-1):this.context.executionHistory}addToExecutionHistory(t,e){this.context.executionHistory||(this.context.executionHistory=[]),this.context.executionHistory.push([t,e])}async createStepResult(t,e,u){if(!this.context.stepTracking||this.context.stepTracking.results[e])return;this.context.stepTracking.currentStepId=e,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(e),t=this.agentServices.validatePage(t),await this.waitUntilStable(t);let i={description:u,startTime:Date.now(),artifacts:[]};if(this.context.stepTracking.artifactsDir){let r=M.join(this.context.stepTracking.artifactsDir,e.replace(/\./g,"-"));R.mkdirSync(r,{recursive:!0});let n=M.join(r,"screenshot.png");t=this.agentServices.validatePage(t),await t.screenshot({type:"png",path:n}),i.screenshot=n}this.context.stepTracking.results[e]=i}saveDebugInfoToFiles(t,e,u){let i={};if(!this.context.stepTracking?.artifactsDir)return c.debug("[saveDebugInfoToFiles] No artifacts directory configured, skipping debug info save"),i;let r=M.join(this.context.stepTracking.artifactsDir,t.replace(/\./g,"-"));try{if(R.mkdirSync(r,{recursive:!0}),e.systemPrompt){let n=M.join(r,"system_prompt.txt");R.writeFileSync(n,e.systemPrompt),i.system_prompt_path=n,c.debug(`[saveDebugInfoToFiles] Saved system prompt to: ${n}`)}if(e.userPrompt)if(typeof e.userPrompt=="string"){let n=M.join(r,"user_prompt.txt");R.writeFileSync(n,e.userPrompt),i.user_prompt_path=n,c.debug(`[saveDebugInfoToFiles] Saved user prompt to: ${n}`)}else{let n=e.userPrompt.map(o=>Array.isArray(o.content)?{...o,content:o.content.map(l=>l.type==="image"&&l.file?.startsWith("data:")?{...l,file:"[base64 image data stripped]"}:l)}:o),a=M.join(r,"messages.json"),s={system:e.systemPrompt,messages:n};R.writeFileSync(a,JSON.stringify(s,null,2)),i.messages_path=a,c.debug(`[saveDebugInfoToFiles] Saved messages to: ${a}`)}if(e.rawLlmResponse){let n=u?u.replace(/[\/\\:]/g,"-"):"llm",a=M.join(r,`${n}_response.txt`);R.writeFileSync(a,e.rawLlmResponse),i.response_path=a,c.debug(`[saveDebugInfoToFiles] Saved LLM response to: ${a}`)}if(e.screenshotWithSom){let n=M.join(r,"screenshot.png");R.writeFileSync(n,Buffer.from(e.screenshotWithSom,"base64")),i.screenshot_path=n,c.debug(`[saveDebugInfoToFiles] Saved SOM screenshot to: ${n}`)}if(e.reasoningContent){let n=M.join(r,"reasoning.txt");R.writeFileSync(n,e.reasoningContent),i.reasoning_path=n,c.debug(`[saveDebugInfoToFiles] Saved reasoning to: ${n}`)}c.debug(`[saveDebugInfoToFiles] Saved ${Object.keys(i).length} artifacts for step ${t}`)}catch(n){c.error(`[saveDebugInfoToFiles] Failed to save debug info for step ${t}:`,n)}return i}async updateStepResult(t,e,u,i,r){if(!this.context.stepTracking)return;let n=this.context.stepTracking.results[t];if(n){if(e&&(n.status=e,this.context.stepTracking.currentStepId=void 0,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(void 0)),u!==void 0&&(n.message=u),i&&n.artifacts.push(i),r){let a=r.tokenUsages?.[0]?.model,s=this.saveDebugInfoToFiles(t,r,a);Object.keys(s).length>0&&n.artifacts.push(s)}n.duration=Date.now()-n.startTime,this.context.stepTracking.onStepComplete&&this.context.stepTracking.onStepComplete(t,n)}}async writeExecutionResults(t,e){try{if(await R.promises.mkdir(t,{recursive:!0}),this.context.stepTracking?.results&&Object.keys(this.context.stepTracking.results).length>0){let u=M.join(t,"test-results.json");await R.promises.writeFile(u,JSON.stringify(this.context.stepTracking.results,null,2)),c.debug(`Test results written to: ${u}`)}if(e?.tokenUsages&&this.context.tokenUsages&&this.context.tokenUsages.length>0){let u=M.join(t,"token-usages.json");await R.promises.writeFile(u,JSON.stringify(this.context.tokenUsages,null,2)),c.debug(`Token usages written to: ${u}`)}if(this.context.aiActionDetails&&this.context.aiActionDetails.length>0){let u=M.join(t,"ai-actions.json");await R.promises.writeFile(u,JSON.stringify(this.context.aiActionDetails,null,2)),c.debug(`AI action details written to: ${u}`)}}catch(u){throw c.error("Failed to write execution results:",u),u}}};function bo(){let t=new Date,e=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(t),u=e.find(w=>w.type==="year").value,i=e.find(w=>w.type==="month").value,r=e.find(w=>w.type==="day").value,n=e.find(w=>w.type==="hour").value,a=e.find(w=>w.type==="minute").value,s=e.find(w=>w.type==="second").value,o=String(t.getMilliseconds()).padStart(3,"0"),l=`${u}-${i}-${r}T${n}:${a}:${s}.${o}`,p=t.toISOString().slice(0,-1),A=Date.parse(l+"Z"),E=Date.parse(p+"Z"),x=Math.round((E-A)/(1e3*60)),B=String(Math.floor(Math.abs(x)/60)).padStart(2,"0"),y=String(Math.abs(x)%60).padStart(2,"0"),b=x<=0?"+":"-";return`${u}-${i}-${r}T${n}:${a}:${s}.${o}${b}${B}:${y}`}function wo(t){let e=t.variableStore;return e.has("currentTime")||e.set("currentTime",bo()),{model:t.model,variableStore:e,organizationId:t.organizationId,organizationSettings:t.organizationSettings,executionHistory:t.executionHistory||[],testDataDir:t.testDataDir,downloadDir:t.downloadDir,useNativeGenerator:t.useNativeGenerator,autoDisableModal:t.autoDisableModal,tokenUsages:[],aiActionDetails:[]}}function U0(t){let e=new Au,u=new Set(t.sensitiveKeys||[]);if(t.variables)for(let[r,n]of Object.entries(t.variables))e.set(r,n,u.has(r));let i=wo({model:t.model,variableStore:e,testDataDir:t.testDataDir,downloadDir:t.downloadDir});return new Do(i)}var H0="1.0.0",yo=Nt.object({found:Nt.boolean().describe("Whether an activation code was found in the document"),activation_code:Nt.string().nullable().describe("The extracted activation code, or null if not found"),explanation:Nt.string().describe("Brief explanation of what was found or why nothing was found")});async function Fo(t,e,u){c.info(`Extracting activation code from file: ${t}`);let i=`${e}/${t}`;if(!Wt.existsSync(i))throw new Error(`PDF file not found: ${i}`);let r=Wt.readFileSync(i).toString("base64"),n=`You are analyzing a PDF document to extract an activation code.
|
|
138
138
|
|
|
139
139
|
Please carefully examine the PDF and look for:
|
|
140
140
|
1. The activation code on the first page top right corner
|
|
@@ -142,7 +142,7 @@ Please carefully examine the PDF and look for:
|
|
|
142
142
|
3. The code is typically numeric
|
|
143
143
|
|
|
144
144
|
If you find an activation code, extract it exactly as shown.
|
|
145
|
-
If you cannot find an activation code, explain what you found instead.`,a=[{role:"user",content:[{type:"text",text:"Please examine this PDF document and extract the activation code."},{type:"file",data:r,mediaType:"application/pdf"}]}],s=await le(async()=>(await Ft({model:ie(u),system:n,messages:a,output:
|
|
145
|
+
If you cannot find an activation code, explain what you found instead.`,a=[{role:"user",content:[{type:"text",text:"Please examine this PDF document and extract the activation code."},{type:"file",data:r,mediaType:"application/pdf"}]}],s=await le(async()=>(await Ft({model:ie(u),system:n,messages:a,output:Cu.object({schema:yo}),temperature:.1})).output,{retries:3,onFailedAttempt:o=>{c.warn(`Activation code extraction attempt ${o.attemptNumber} failed. ${o.retriesLeft} retries left. Error: ${o.message}`)}});if(s.found&&s.activation_code)return c.info(`Activation code extracted: ${s.activation_code.substring(0,10)}...`),s.activation_code;{let o=s.explanation||"Activation code not found in PDF";throw c.error(`Activation code extraction failed: ${o}`),new Error(o)}}var vo=class{async execute(t,e,u){let i=e.action_data;if(!i)throw new Error("Action data not found");let r=i.kwargs,n=u.getDownloadDir?.();if(!n)throw new Error("Download directory not configured. Please set downloadDir when creating the agent.");let a=u.getModel?.()||"gemini-2.5-pro",s=await Fo(r.file_name,n,a);u.variableStore.set("activation_code",s,!0),c.info("[extract_activation_code] Extracted and saved to $activation_code")}transpile(t){let e=t.action_data?.kwargs||{};return['await agent.execAction("extract_activation_code", page, {',` action_data: { kwargs: ${JSON.stringify(e)} },`,"});"]}},ko=qi.object({file_name:qi.string().describe("Name of the PDF file to extract activation code from (must be in the download directory)")});function So(t,e){t.register({name:"extract_activation_code",description:"Extract activation code from a downloaded PDF file. The PDF should contain an activation code, typically in the top right corner of the first page. The extracted code will be saved to the $activation_code variable.",schema:ko,async execute(u,i){let{file_name:r}=u,{page:n,agentServices:a}=i;c.info(`[extract_activation_code] Extracting activation code from file: ${r}`);try{let s={action_description:"Extract activation code from PDF",action_data:{action_name:"extract_activation_code",kwargs:{file_name:r}}};return await e.execute(n,s,a),{success:!0,actionEntity:s,message:"Extracted activation code and saved to $activation_code"}}catch(s){return{success:!1,error:s.message,actionEntity:{action_description:"Extract activation code from PDF (failed)",action_data:{action_name:"extract_activation_code",kwargs:{file_name:r}},feedback:s.message}}}}})}function To(){if(c.debug("[sdk-internal] Registering internal tools..."),H.has("extract_activation_code")){c.debug("[sdk-internal] Internal tools already registered, skipping");return}let t=new vo;Yu.registerAction("extract_activation_code",t),So(H,t),c.debug("[sdk-internal] Registered tool: extract_activation_code"),c.debug("[sdk-internal] Internal tools registered successfully")}To();export{Gr as a,x0 as b,A0 as c,E0 as d,B0 as e,S0 as f,T0 as g,L0 as h,_0 as i,I0 as j,N0 as k,$0 as l,O0 as m,M0 as n,mo as o,xo as p,Ao as q,Do as r,wo as s,U0 as t,H0 as u};
|
|
146
146
|
/*! Bundled license information:
|
|
147
147
|
|
|
148
148
|
@otplib/plugin-crypto/index.js:
|