@shiplightai/mcp 0.1.52 → 0.1.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,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 lu,c as hu,d as xt,e as du,f as pu,g as gu,h as fu,i as mu,j as xu,m as Au,p as ee,s as Eu}from"./chunk-LYM7ZAKX.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-J6XQM2BF.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-HARAKNNW.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-YY6R46RP.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,"&Tab;"],[0,"&NewLine;"],[22,"&excl;"],[0,"&quot;"],[0,"&num;"],[0,"&dollar;"],[0,"&percnt;"],[0,"&amp;"],[0,"&apos;"],[0,"&lpar;"],[0,"&rpar;"],[0,"&ast;"],[0,"&plus;"],[0,"&comma;"],[1,"&period;"],[0,"&sol;"],[10,"&colon;"],[0,"&semi;"],[0,{v:"&lt;",n:8402,o:"&nvlt;"}],[0,{v:"&equals;",n:8421,o:"&bne;"}],[0,{v:"&gt;",n:8402,o:"&nvgt;"}],[0,"&quest;"],[0,"&commat;"],[26,"&lbrack;"],[0,"&bsol;"],[0,"&rbrack;"],[0,"&Hat;"],[0,"&lowbar;"],[0,"&DiacriticalGrave;"],[5,{n:106,o:"&fjlig;"}],[20,"&lbrace;"],[0,"&verbar;"],[0,"&rbrace;"],[34,"&nbsp;"],[0,"&iexcl;"],[0,"&cent;"],[0,"&pound;"],[0,"&curren;"],[0,"&yen;"],[0,"&brvbar;"],[0,"&sect;"],[0,"&die;"],[0,"&copy;"],[0,"&ordf;"],[0,"&laquo;"],[0,"&not;"],[0,"&shy;"],[0,"&circledR;"],[0,"&macr;"],[0,"&deg;"],[0,"&PlusMinus;"],[0,"&sup2;"],[0,"&sup3;"],[0,"&acute;"],[0,"&micro;"],[0,"&para;"],[0,"&centerdot;"],[0,"&cedil;"],[0,"&sup1;"],[0,"&ordm;"],[0,"&raquo;"],[0,"&frac14;"],[0,"&frac12;"],[0,"&frac34;"],[0,"&iquest;"],[0,"&Agrave;"],[0,"&Aacute;"],[0,"&Acirc;"],[0,"&Atilde;"],[0,"&Auml;"],[0,"&angst;"],[0,"&AElig;"],[0,"&Ccedil;"],[0,"&Egrave;"],[0,"&Eacute;"],[0,"&Ecirc;"],[0,"&Euml;"],[0,"&Igrave;"],[0,"&Iacute;"],[0,"&Icirc;"],[0,"&Iuml;"],[0,"&ETH;"],[0,"&Ntilde;"],[0,"&Ograve;"],[0,"&Oacute;"],[0,"&Ocirc;"],[0,"&Otilde;"],[0,"&Ouml;"],[0,"&times;"],[0,"&Oslash;"],[0,"&Ugrave;"],[0,"&Uacute;"],[0,"&Ucirc;"],[0,"&Uuml;"],[0,"&Yacute;"],[0,"&THORN;"],[0,"&szlig;"],[0,"&agrave;"],[0,"&aacute;"],[0,"&acirc;"],[0,"&atilde;"],[0,"&auml;"],[0,"&aring;"],[0,"&aelig;"],[0,"&ccedil;"],[0,"&egrave;"],[0,"&eacute;"],[0,"&ecirc;"],[0,"&euml;"],[0,"&igrave;"],[0,"&iacute;"],[0,"&icirc;"],[0,"&iuml;"],[0,"&eth;"],[0,"&ntilde;"],[0,"&ograve;"],[0,"&oacute;"],[0,"&ocirc;"],[0,"&otilde;"],[0,"&ouml;"],[0,"&div;"],[0,"&oslash;"],[0,"&ugrave;"],[0,"&uacute;"],[0,"&ucirc;"],[0,"&uuml;"],[0,"&yacute;"],[0,"&thorn;"],[0,"&yuml;"],[0,"&Amacr;"],[0,"&amacr;"],[0,"&Abreve;"],[0,"&abreve;"],[0,"&Aogon;"],[0,"&aogon;"],[0,"&Cacute;"],[0,"&cacute;"],[0,"&Ccirc;"],[0,"&ccirc;"],[0,"&Cdot;"],[0,"&cdot;"],[0,"&Ccaron;"],[0,"&ccaron;"],[0,"&Dcaron;"],[0,"&dcaron;"],[0,"&Dstrok;"],[0,"&dstrok;"],[0,"&Emacr;"],[0,"&emacr;"],[2,"&Edot;"],[0,"&edot;"],[0,"&Eogon;"],[0,"&eogon;"],[0,"&Ecaron;"],[0,"&ecaron;"],[0,"&Gcirc;"],[0,"&gcirc;"],[0,"&Gbreve;"],[0,"&gbreve;"],[0,"&Gdot;"],[0,"&gdot;"],[0,"&Gcedil;"],[1,"&Hcirc;"],[0,"&hcirc;"],[0,"&Hstrok;"],[0,"&hstrok;"],[0,"&Itilde;"],[0,"&itilde;"],[0,"&Imacr;"],[0,"&imacr;"],[2,"&Iogon;"],[0,"&iogon;"],[0,"&Idot;"],[0,"&imath;"],[0,"&IJlig;"],[0,"&ijlig;"],[0,"&Jcirc;"],[0,"&jcirc;"],[0,"&Kcedil;"],[0,"&kcedil;"],[0,"&kgreen;"],[0,"&Lacute;"],[0,"&lacute;"],[0,"&Lcedil;"],[0,"&lcedil;"],[0,"&Lcaron;"],[0,"&lcaron;"],[0,"&Lmidot;"],[0,"&lmidot;"],[0,"&Lstrok;"],[0,"&lstrok;"],[0,"&Nacute;"],[0,"&nacute;"],[0,"&Ncedil;"],[0,"&ncedil;"],[0,"&Ncaron;"],[0,"&ncaron;"],[0,"&napos;"],[0,"&ENG;"],[0,"&eng;"],[0,"&Omacr;"],[0,"&omacr;"],[2,"&Odblac;"],[0,"&odblac;"],[0,"&OElig;"],[0,"&oelig;"],[0,"&Racute;"],[0,"&racute;"],[0,"&Rcedil;"],[0,"&rcedil;"],[0,"&Rcaron;"],[0,"&rcaron;"],[0,"&Sacute;"],[0,"&sacute;"],[0,"&Scirc;"],[0,"&scirc;"],[0,"&Scedil;"],[0,"&scedil;"],[0,"&Scaron;"],[0,"&scaron;"],[0,"&Tcedil;"],[0,"&tcedil;"],[0,"&Tcaron;"],[0,"&tcaron;"],[0,"&Tstrok;"],[0,"&tstrok;"],[0,"&Utilde;"],[0,"&utilde;"],[0,"&Umacr;"],[0,"&umacr;"],[0,"&Ubreve;"],[0,"&ubreve;"],[0,"&Uring;"],[0,"&uring;"],[0,"&Udblac;"],[0,"&udblac;"],[0,"&Uogon;"],[0,"&uogon;"],[0,"&Wcirc;"],[0,"&wcirc;"],[0,"&Ycirc;"],[0,"&ycirc;"],[0,"&Yuml;"],[0,"&Zacute;"],[0,"&zacute;"],[0,"&Zdot;"],[0,"&zdot;"],[0,"&Zcaron;"],[0,"&zcaron;"],[19,"&fnof;"],[34,"&imped;"],[63,"&gacute;"],[65,"&jmath;"],[142,"&circ;"],[0,"&caron;"],[16,"&breve;"],[0,"&DiacriticalDot;"],[0,"&ring;"],[0,"&ogon;"],[0,"&DiacriticalTilde;"],[0,"&dblac;"],[51,"&DownBreve;"],[127,"&Alpha;"],[0,"&Beta;"],[0,"&Gamma;"],[0,"&Delta;"],[0,"&Epsilon;"],[0,"&Zeta;"],[0,"&Eta;"],[0,"&Theta;"],[0,"&Iota;"],[0,"&Kappa;"],[0,"&Lambda;"],[0,"&Mu;"],[0,"&Nu;"],[0,"&Xi;"],[0,"&Omicron;"],[0,"&Pi;"],[0,"&Rho;"],[1,"&Sigma;"],[0,"&Tau;"],[0,"&Upsilon;"],[0,"&Phi;"],[0,"&Chi;"],[0,"&Psi;"],[0,"&ohm;"],[7,"&alpha;"],[0,"&beta;"],[0,"&gamma;"],[0,"&delta;"],[0,"&epsi;"],[0,"&zeta;"],[0,"&eta;"],[0,"&theta;"],[0,"&iota;"],[0,"&kappa;"],[0,"&lambda;"],[0,"&mu;"],[0,"&nu;"],[0,"&xi;"],[0,"&omicron;"],[0,"&pi;"],[0,"&rho;"],[0,"&sigmaf;"],[0,"&sigma;"],[0,"&tau;"],[0,"&upsi;"],[0,"&phi;"],[0,"&chi;"],[0,"&psi;"],[0,"&omega;"],[7,"&thetasym;"],[0,"&Upsi;"],[2,"&phiv;"],[0,"&piv;"],[5,"&Gammad;"],[0,"&digamma;"],[18,"&kappav;"],[0,"&rhov;"],[3,"&epsiv;"],[0,"&backepsilon;"],[10,"&IOcy;"],[0,"&DJcy;"],[0,"&GJcy;"],[0,"&Jukcy;"],[0,"&DScy;"],[0,"&Iukcy;"],[0,"&YIcy;"],[0,"&Jsercy;"],[0,"&LJcy;"],[0,"&NJcy;"],[0,"&TSHcy;"],[0,"&KJcy;"],[1,"&Ubrcy;"],[0,"&DZcy;"],[0,"&Acy;"],[0,"&Bcy;"],[0,"&Vcy;"],[0,"&Gcy;"],[0,"&Dcy;"],[0,"&IEcy;"],[0,"&ZHcy;"],[0,"&Zcy;"],[0,"&Icy;"],[0,"&Jcy;"],[0,"&Kcy;"],[0,"&Lcy;"],[0,"&Mcy;"],[0,"&Ncy;"],[0,"&Ocy;"],[0,"&Pcy;"],[0,"&Rcy;"],[0,"&Scy;"],[0,"&Tcy;"],[0,"&Ucy;"],[0,"&Fcy;"],[0,"&KHcy;"],[0,"&TScy;"],[0,"&CHcy;"],[0,"&SHcy;"],[0,"&SHCHcy;"],[0,"&HARDcy;"],[0,"&Ycy;"],[0,"&SOFTcy;"],[0,"&Ecy;"],[0,"&YUcy;"],[0,"&YAcy;"],[0,"&acy;"],[0,"&bcy;"],[0,"&vcy;"],[0,"&gcy;"],[0,"&dcy;"],[0,"&iecy;"],[0,"&zhcy;"],[0,"&zcy;"],[0,"&icy;"],[0,"&jcy;"],[0,"&kcy;"],[0,"&lcy;"],[0,"&mcy;"],[0,"&ncy;"],[0,"&ocy;"],[0,"&pcy;"],[0,"&rcy;"],[0,"&scy;"],[0,"&tcy;"],[0,"&ucy;"],[0,"&fcy;"],[0,"&khcy;"],[0,"&tscy;"],[0,"&chcy;"],[0,"&shcy;"],[0,"&shchcy;"],[0,"&hardcy;"],[0,"&ycy;"],[0,"&softcy;"],[0,"&ecy;"],[0,"&yucy;"],[0,"&yacy;"],[1,"&iocy;"],[0,"&djcy;"],[0,"&gjcy;"],[0,"&jukcy;"],[0,"&dscy;"],[0,"&iukcy;"],[0,"&yicy;"],[0,"&jsercy;"],[0,"&ljcy;"],[0,"&njcy;"],[0,"&tshcy;"],[0,"&kjcy;"],[1,"&ubrcy;"],[0,"&dzcy;"],[7074,"&ensp;"],[0,"&emsp;"],[0,"&emsp13;"],[0,"&emsp14;"],[1,"&numsp;"],[0,"&puncsp;"],[0,"&ThinSpace;"],[0,"&hairsp;"],[0,"&NegativeMediumSpace;"],[0,"&zwnj;"],[0,"&zwj;"],[0,"&lrm;"],[0,"&rlm;"],[0,"&dash;"],[2,"&ndash;"],[0,"&mdash;"],[0,"&horbar;"],[0,"&Verbar;"],[1,"&lsquo;"],[0,"&CloseCurlyQuote;"],[0,"&lsquor;"],[1,"&ldquo;"],[0,"&CloseCurlyDoubleQuote;"],[0,"&bdquo;"],[1,"&dagger;"],[0,"&Dagger;"],[0,"&bull;"],[2,"&nldr;"],[0,"&hellip;"],[9,"&permil;"],[0,"&pertenk;"],[0,"&prime;"],[0,"&Prime;"],[0,"&tprime;"],[0,"&backprime;"],[3,"&lsaquo;"],[0,"&rsaquo;"],[3,"&oline;"],[2,"&caret;"],[1,"&hybull;"],[0,"&frasl;"],[10,"&bsemi;"],[7,"&qprime;"],[7,{v:"&MediumSpace;",n:8202,o:"&ThickSpace;"}],[0,"&NoBreak;"],[0,"&af;"],[0,"&InvisibleTimes;"],[0,"&ic;"],[72,"&euro;"],[46,"&tdot;"],[0,"&DotDot;"],[37,"&complexes;"],[2,"&incare;"],[4,"&gscr;"],[0,"&hamilt;"],[0,"&Hfr;"],[0,"&Hopf;"],[0,"&planckh;"],[0,"&hbar;"],[0,"&imagline;"],[0,"&Ifr;"],[0,"&lagran;"],[0,"&ell;"],[1,"&naturals;"],[0,"&numero;"],[0,"&copysr;"],[0,"&weierp;"],[0,"&Popf;"],[0,"&Qopf;"],[0,"&realine;"],[0,"&real;"],[0,"&reals;"],[0,"&rx;"],[3,"&trade;"],[1,"&integers;"],[2,"&mho;"],[0,"&zeetrf;"],[0,"&iiota;"],[2,"&bernou;"],[0,"&Cayleys;"],[1,"&escr;"],[0,"&Escr;"],[0,"&Fouriertrf;"],[1,"&Mellintrf;"],[0,"&order;"],[0,"&alefsym;"],[0,"&beth;"],[0,"&gimel;"],[0,"&daleth;"],[12,"&CapitalDifferentialD;"],[0,"&dd;"],[0,"&ee;"],[0,"&ii;"],[10,"&frac13;"],[0,"&frac23;"],[0,"&frac15;"],[0,"&frac25;"],[0,"&frac35;"],[0,"&frac45;"],[0,"&frac16;"],[0,"&frac56;"],[0,"&frac18;"],[0,"&frac38;"],[0,"&frac58;"],[0,"&frac78;"],[49,"&larr;"],[0,"&ShortUpArrow;"],[0,"&rarr;"],[0,"&darr;"],[0,"&harr;"],[0,"&updownarrow;"],[0,"&nwarr;"],[0,"&nearr;"],[0,"&LowerRightArrow;"],[0,"&LowerLeftArrow;"],[0,"&nlarr;"],[0,"&nrarr;"],[1,{v:"&rarrw;",n:824,o:"&nrarrw;"}],[0,"&Larr;"],[0,"&Uarr;"],[0,"&Rarr;"],[0,"&Darr;"],[0,"&larrtl;"],[0,"&rarrtl;"],[0,"&LeftTeeArrow;"],[0,"&mapstoup;"],[0,"&map;"],[0,"&DownTeeArrow;"],[1,"&hookleftarrow;"],[0,"&hookrightarrow;"],[0,"&larrlp;"],[0,"&looparrowright;"],[0,"&harrw;"],[0,"&nharr;"],[1,"&lsh;"],[0,"&rsh;"],[0,"&ldsh;"],[0,"&rdsh;"],[1,"&crarr;"],[0,"&cularr;"],[0,"&curarr;"],[2,"&circlearrowleft;"],[0,"&circlearrowright;"],[0,"&leftharpoonup;"],[0,"&DownLeftVector;"],[0,"&RightUpVector;"],[0,"&LeftUpVector;"],[0,"&rharu;"],[0,"&DownRightVector;"],[0,"&dharr;"],[0,"&dharl;"],[0,"&RightArrowLeftArrow;"],[0,"&udarr;"],[0,"&LeftArrowRightArrow;"],[0,"&leftleftarrows;"],[0,"&upuparrows;"],[0,"&rightrightarrows;"],[0,"&ddarr;"],[0,"&leftrightharpoons;"],[0,"&Equilibrium;"],[0,"&nlArr;"],[0,"&nhArr;"],[0,"&nrArr;"],[0,"&DoubleLeftArrow;"],[0,"&DoubleUpArrow;"],[0,"&DoubleRightArrow;"],[0,"&dArr;"],[0,"&DoubleLeftRightArrow;"],[0,"&DoubleUpDownArrow;"],[0,"&nwArr;"],[0,"&neArr;"],[0,"&seArr;"],[0,"&swArr;"],[0,"&lAarr;"],[0,"&rAarr;"],[1,"&zigrarr;"],[6,"&larrb;"],[0,"&rarrb;"],[15,"&DownArrowUpArrow;"],[7,"&loarr;"],[0,"&roarr;"],[0,"&hoarr;"],[0,"&forall;"],[0,"&comp;"],[0,{v:"&part;",n:824,o:"&npart;"}],[0,"&exist;"],[0,"&nexist;"],[0,"&empty;"],[1,"&Del;"],[0,"&Element;"],[0,"&NotElement;"],[1,"&ni;"],[0,"&notni;"],[2,"&prod;"],[0,"&coprod;"],[0,"&sum;"],[0,"&minus;"],[0,"&MinusPlus;"],[0,"&dotplus;"],[1,"&Backslash;"],[0,"&lowast;"],[0,"&compfn;"],[1,"&radic;"],[2,"&prop;"],[0,"&infin;"],[0,"&angrt;"],[0,{v:"&ang;",n:8402,o:"&nang;"}],[0,"&angmsd;"],[0,"&angsph;"],[0,"&mid;"],[0,"&nmid;"],[0,"&DoubleVerticalBar;"],[0,"&NotDoubleVerticalBar;"],[0,"&and;"],[0,"&or;"],[0,{v:"&cap;",n:65024,o:"&caps;"}],[0,{v:"&cup;",n:65024,o:"&cups;"}],[0,"&int;"],[0,"&Int;"],[0,"&iiint;"],[0,"&conint;"],[0,"&Conint;"],[0,"&Cconint;"],[0,"&cwint;"],[0,"&ClockwiseContourIntegral;"],[0,"&awconint;"],[0,"&there4;"],[0,"&becaus;"],[0,"&ratio;"],[0,"&Colon;"],[0,"&dotminus;"],[1,"&mDDot;"],[0,"&homtht;"],[0,{v:"&sim;",n:8402,o:"&nvsim;"}],[0,{v:"&backsim;",n:817,o:"&race;"}],[0,{v:"&ac;",n:819,o:"&acE;"}],[0,"&acd;"],[0,"&VerticalTilde;"],[0,"&NotTilde;"],[0,{v:"&eqsim;",n:824,o:"&nesim;"}],[0,"&sime;"],[0,"&NotTildeEqual;"],[0,"&cong;"],[0,"&simne;"],[0,"&ncong;"],[0,"&ap;"],[0,"&nap;"],[0,"&ape;"],[0,{v:"&apid;",n:824,o:"&napid;"}],[0,"&backcong;"],[0,{v:"&asympeq;",n:8402,o:"&nvap;"}],[0,{v:"&bump;",n:824,o:"&nbump;"}],[0,{v:"&bumpe;",n:824,o:"&nbumpe;"}],[0,{v:"&doteq;",n:824,o:"&nedot;"}],[0,"&doteqdot;"],[0,"&efDot;"],[0,"&erDot;"],[0,"&Assign;"],[0,"&ecolon;"],[0,"&ecir;"],[0,"&circeq;"],[1,"&wedgeq;"],[0,"&veeeq;"],[1,"&triangleq;"],[2,"&equest;"],[0,"&ne;"],[0,{v:"&Congruent;",n:8421,o:"&bnequiv;"}],[0,"&nequiv;"],[1,{v:"&le;",n:8402,o:"&nvle;"}],[0,{v:"&ge;",n:8402,o:"&nvge;"}],[0,{v:"&lE;",n:824,o:"&nlE;"}],[0,{v:"&gE;",n:824,o:"&ngE;"}],[0,{v:"&lnE;",n:65024,o:"&lvertneqq;"}],[0,{v:"&gnE;",n:65024,o:"&gvertneqq;"}],[0,{v:"&ll;",n:new Map(Tt([[824,"&nLtv;"],[7577,"&nLt;"]]))}],[0,{v:"&gg;",n:new Map(Tt([[824,"&nGtv;"],[7577,"&nGt;"]]))}],[0,"&between;"],[0,"&NotCupCap;"],[0,"&nless;"],[0,"&ngt;"],[0,"&nle;"],[0,"&nge;"],[0,"&lesssim;"],[0,"&GreaterTilde;"],[0,"&nlsim;"],[0,"&ngsim;"],[0,"&LessGreater;"],[0,"&gl;"],[0,"&NotLessGreater;"],[0,"&NotGreaterLess;"],[0,"&pr;"],[0,"&sc;"],[0,"&prcue;"],[0,"&sccue;"],[0,"&PrecedesTilde;"],[0,{v:"&scsim;",n:824,o:"&NotSucceedsTilde;"}],[0,"&NotPrecedes;"],[0,"&NotSucceeds;"],[0,{v:"&sub;",n:8402,o:"&NotSubset;"}],[0,{v:"&sup;",n:8402,o:"&NotSuperset;"}],[0,"&nsub;"],[0,"&nsup;"],[0,"&sube;"],[0,"&supe;"],[0,"&NotSubsetEqual;"],[0,"&NotSupersetEqual;"],[0,{v:"&subne;",n:65024,o:"&varsubsetneq;"}],[0,{v:"&supne;",n:65024,o:"&varsupsetneq;"}],[1,"&cupdot;"],[0,"&UnionPlus;"],[0,{v:"&sqsub;",n:824,o:"&NotSquareSubset;"}],[0,{v:"&sqsup;",n:824,o:"&NotSquareSuperset;"}],[0,"&sqsube;"],[0,"&sqsupe;"],[0,{v:"&sqcap;",n:65024,o:"&sqcaps;"}],[0,{v:"&sqcup;",n:65024,o:"&sqcups;"}],[0,"&CirclePlus;"],[0,"&CircleMinus;"],[0,"&CircleTimes;"],[0,"&osol;"],[0,"&CircleDot;"],[0,"&circledcirc;"],[0,"&circledast;"],[1,"&circleddash;"],[0,"&boxplus;"],[0,"&boxminus;"],[0,"&boxtimes;"],[0,"&dotsquare;"],[0,"&RightTee;"],[0,"&dashv;"],[0,"&DownTee;"],[0,"&bot;"],[1,"&models;"],[0,"&DoubleRightTee;"],[0,"&Vdash;"],[0,"&Vvdash;"],[0,"&VDash;"],[0,"&nvdash;"],[0,"&nvDash;"],[0,"&nVdash;"],[0,"&nVDash;"],[0,"&prurel;"],[1,"&LeftTriangle;"],[0,"&RightTriangle;"],[0,{v:"&LeftTriangleEqual;",n:8402,o:"&nvltrie;"}],[0,{v:"&RightTriangleEqual;",n:8402,o:"&nvrtrie;"}],[0,"&origof;"],[0,"&imof;"],[0,"&multimap;"],[0,"&hercon;"],[0,"&intcal;"],[0,"&veebar;"],[1,"&barvee;"],[0,"&angrtvb;"],[0,"&lrtri;"],[0,"&bigwedge;"],[0,"&bigvee;"],[0,"&bigcap;"],[0,"&bigcup;"],[0,"&diam;"],[0,"&sdot;"],[0,"&sstarf;"],[0,"&divideontimes;"],[0,"&bowtie;"],[0,"&ltimes;"],[0,"&rtimes;"],[0,"&leftthreetimes;"],[0,"&rightthreetimes;"],[0,"&backsimeq;"],[0,"&curlyvee;"],[0,"&curlywedge;"],[0,"&Sub;"],[0,"&Sup;"],[0,"&Cap;"],[0,"&Cup;"],[0,"&fork;"],[0,"&epar;"],[0,"&lessdot;"],[0,"&gtdot;"],[0,{v:"&Ll;",n:824,o:"&nLl;"}],[0,{v:"&Gg;",n:824,o:"&nGg;"}],[0,{v:"&leg;",n:65024,o:"&lesg;"}],[0,{v:"&gel;",n:65024,o:"&gesl;"}],[2,"&cuepr;"],[0,"&cuesc;"],[0,"&NotPrecedesSlantEqual;"],[0,"&NotSucceedsSlantEqual;"],[0,"&NotSquareSubsetEqual;"],[0,"&NotSquareSupersetEqual;"],[2,"&lnsim;"],[0,"&gnsim;"],[0,"&precnsim;"],[0,"&scnsim;"],[0,"&nltri;"],[0,"&NotRightTriangle;"],[0,"&nltrie;"],[0,"&NotRightTriangleEqual;"],[0,"&vellip;"],[0,"&ctdot;"],[0,"&utdot;"],[0,"&dtdot;"],[0,"&disin;"],[0,"&isinsv;"],[0,"&isins;"],[0,{v:"&isindot;",n:824,o:"&notindot;"}],[0,"&notinvc;"],[0,"&notinvb;"],[1,{v:"&isinE;",n:824,o:"&notinE;"}],[0,"&nisd;"],[0,"&xnis;"],[0,"&nis;"],[0,"&notnivc;"],[0,"&notnivb;"],[6,"&barwed;"],[0,"&Barwed;"],[1,"&lceil;"],[0,"&rceil;"],[0,"&LeftFloor;"],[0,"&rfloor;"],[0,"&drcrop;"],[0,"&dlcrop;"],[0,"&urcrop;"],[0,"&ulcrop;"],[0,"&bnot;"],[1,"&profline;"],[0,"&profsurf;"],[1,"&telrec;"],[0,"&target;"],[5,"&ulcorn;"],[0,"&urcorn;"],[0,"&dlcorn;"],[0,"&drcorn;"],[2,"&frown;"],[0,"&smile;"],[9,"&cylcty;"],[0,"&profalar;"],[7,"&topbot;"],[6,"&ovbar;"],[1,"&solbar;"],[60,"&angzarr;"],[51,"&lmoustache;"],[0,"&rmoustache;"],[2,"&OverBracket;"],[0,"&bbrk;"],[0,"&bbrktbrk;"],[37,"&OverParenthesis;"],[0,"&UnderParenthesis;"],[0,"&OverBrace;"],[0,"&UnderBrace;"],[2,"&trpezium;"],[4,"&elinters;"],[59,"&blank;"],[164,"&circledS;"],[55,"&boxh;"],[1,"&boxv;"],[9,"&boxdr;"],[3,"&boxdl;"],[3,"&boxur;"],[3,"&boxul;"],[3,"&boxvr;"],[7,"&boxvl;"],[7,"&boxhd;"],[7,"&boxhu;"],[7,"&boxvh;"],[19,"&boxH;"],[0,"&boxV;"],[0,"&boxdR;"],[0,"&boxDr;"],[0,"&boxDR;"],[0,"&boxdL;"],[0,"&boxDl;"],[0,"&boxDL;"],[0,"&boxuR;"],[0,"&boxUr;"],[0,"&boxUR;"],[0,"&boxuL;"],[0,"&boxUl;"],[0,"&boxUL;"],[0,"&boxvR;"],[0,"&boxVr;"],[0,"&boxVR;"],[0,"&boxvL;"],[0,"&boxVl;"],[0,"&boxVL;"],[0,"&boxHd;"],[0,"&boxhD;"],[0,"&boxHD;"],[0,"&boxHu;"],[0,"&boxhU;"],[0,"&boxHU;"],[0,"&boxvH;"],[0,"&boxVh;"],[0,"&boxVH;"],[19,"&uhblk;"],[3,"&lhblk;"],[3,"&block;"],[8,"&blk14;"],[0,"&blk12;"],[0,"&blk34;"],[13,"&square;"],[8,"&blacksquare;"],[0,"&EmptyVerySmallSquare;"],[1,"&rect;"],[0,"&marker;"],[2,"&fltns;"],[1,"&bigtriangleup;"],[0,"&blacktriangle;"],[0,"&triangle;"],[2,"&blacktriangleright;"],[0,"&rtri;"],[3,"&bigtriangledown;"],[0,"&blacktriangledown;"],[0,"&dtri;"],[2,"&blacktriangleleft;"],[0,"&ltri;"],[6,"&loz;"],[0,"&cir;"],[32,"&tridot;"],[2,"&bigcirc;"],[8,"&ultri;"],[0,"&urtri;"],[0,"&lltri;"],[0,"&EmptySmallSquare;"],[0,"&FilledSmallSquare;"],[8,"&bigstar;"],[0,"&star;"],[7,"&phone;"],[49,"&female;"],[1,"&male;"],[29,"&spades;"],[2,"&clubs;"],[1,"&hearts;"],[0,"&diamondsuit;"],[3,"&sung;"],[2,"&flat;"],[0,"&natural;"],[0,"&sharp;"],[163,"&check;"],[3,"&cross;"],[8,"&malt;"],[21,"&sext;"],[33,"&VerticalSeparator;"],[25,"&lbbrk;"],[0,"&rbbrk;"],[84,"&bsolhsub;"],[0,"&suphsol;"],[28,"&LeftDoubleBracket;"],[0,"&RightDoubleBracket;"],[0,"&lang;"],[0,"&rang;"],[0,"&Lang;"],[0,"&Rang;"],[0,"&loang;"],[0,"&roang;"],[7,"&longleftarrow;"],[0,"&longrightarrow;"],[0,"&longleftrightarrow;"],[0,"&DoubleLongLeftArrow;"],[0,"&DoubleLongRightArrow;"],[0,"&DoubleLongLeftRightArrow;"],[1,"&longmapsto;"],[2,"&dzigrarr;"],[258,"&nvlArr;"],[0,"&nvrArr;"],[0,"&nvHarr;"],[0,"&Map;"],[6,"&lbarr;"],[0,"&bkarow;"],[0,"&lBarr;"],[0,"&dbkarow;"],[0,"&drbkarow;"],[0,"&DDotrahd;"],[0,"&UpArrowBar;"],[0,"&DownArrowBar;"],[2,"&Rarrtl;"],[2,"&latail;"],[0,"&ratail;"],[0,"&lAtail;"],[0,"&rAtail;"],[0,"&larrfs;"],[0,"&rarrfs;"],[0,"&larrbfs;"],[0,"&rarrbfs;"],[2,"&nwarhk;"],[0,"&nearhk;"],[0,"&hksearow;"],[0,"&hkswarow;"],[0,"&nwnear;"],[0,"&nesear;"],[0,"&seswar;"],[0,"&swnwar;"],[8,{v:"&rarrc;",n:824,o:"&nrarrc;"}],[1,"&cudarrr;"],[0,"&ldca;"],[0,"&rdca;"],[0,"&cudarrl;"],[0,"&larrpl;"],[2,"&curarrm;"],[0,"&cularrp;"],[7,"&rarrpl;"],[2,"&harrcir;"],[0,"&Uarrocir;"],[0,"&lurdshar;"],[0,"&ldrushar;"],[2,"&LeftRightVector;"],[0,"&RightUpDownVector;"],[0,"&DownLeftRightVector;"],[0,"&LeftUpDownVector;"],[0,"&LeftVectorBar;"],[0,"&RightVectorBar;"],[0,"&RightUpVectorBar;"],[0,"&RightDownVectorBar;"],[0,"&DownLeftVectorBar;"],[0,"&DownRightVectorBar;"],[0,"&LeftUpVectorBar;"],[0,"&LeftDownVectorBar;"],[0,"&LeftTeeVector;"],[0,"&RightTeeVector;"],[0,"&RightUpTeeVector;"],[0,"&RightDownTeeVector;"],[0,"&DownLeftTeeVector;"],[0,"&DownRightTeeVector;"],[0,"&LeftUpTeeVector;"],[0,"&LeftDownTeeVector;"],[0,"&lHar;"],[0,"&uHar;"],[0,"&rHar;"],[0,"&dHar;"],[0,"&luruhar;"],[0,"&ldrdhar;"],[0,"&ruluhar;"],[0,"&rdldhar;"],[0,"&lharul;"],[0,"&llhard;"],[0,"&rharul;"],[0,"&lrhard;"],[0,"&udhar;"],[0,"&duhar;"],[0,"&RoundImplies;"],[0,"&erarr;"],[0,"&simrarr;"],[0,"&larrsim;"],[0,"&rarrsim;"],[0,"&rarrap;"],[0,"&ltlarr;"],[1,"&gtrarr;"],[0,"&subrarr;"],[1,"&suplarr;"],[0,"&lfisht;"],[0,"&rfisht;"],[0,"&ufisht;"],[0,"&dfisht;"],[5,"&lopar;"],[0,"&ropar;"],[4,"&lbrke;"],[0,"&rbrke;"],[0,"&lbrkslu;"],[0,"&rbrksld;"],[0,"&lbrksld;"],[0,"&rbrkslu;"],[0,"&langd;"],[0,"&rangd;"],[0,"&lparlt;"],[0,"&rpargt;"],[0,"&gtlPar;"],[0,"&ltrPar;"],[3,"&vzigzag;"],[1,"&vangrt;"],[0,"&angrtvbd;"],[6,"&ange;"],[0,"&range;"],[0,"&dwangle;"],[0,"&uwangle;"],[0,"&angmsdaa;"],[0,"&angmsdab;"],[0,"&angmsdac;"],[0,"&angmsdad;"],[0,"&angmsdae;"],[0,"&angmsdaf;"],[0,"&angmsdag;"],[0,"&angmsdah;"],[0,"&bemptyv;"],[0,"&demptyv;"],[0,"&cemptyv;"],[0,"&raemptyv;"],[0,"&laemptyv;"],[0,"&ohbar;"],[0,"&omid;"],[0,"&opar;"],[1,"&operp;"],[1,"&olcross;"],[0,"&odsold;"],[1,"&olcir;"],[0,"&ofcir;"],[0,"&olt;"],[0,"&ogt;"],[0,"&cirscir;"],[0,"&cirE;"],[0,"&solb;"],[0,"&bsolb;"],[3,"&boxbox;"],[3,"&trisb;"],[0,"&rtriltri;"],[0,{v:"&LeftTriangleBar;",n:824,o:"&NotLeftTriangleBar;"}],[0,{v:"&RightTriangleBar;",n:824,o:"&NotRightTriangleBar;"}],[11,"&iinfin;"],[0,"&infintie;"],[0,"&nvinfin;"],[4,"&eparsl;"],[0,"&smeparsl;"],[0,"&eqvparsl;"],[5,"&blacklozenge;"],[8,"&RuleDelayed;"],[1,"&dsol;"],[9,"&bigodot;"],[0,"&bigoplus;"],[0,"&bigotimes;"],[1,"&biguplus;"],[1,"&bigsqcup;"],[5,"&iiiint;"],[0,"&fpartint;"],[2,"&cirfnint;"],[0,"&awint;"],[0,"&rppolint;"],[0,"&scpolint;"],[0,"&npolint;"],[0,"&pointint;"],[0,"&quatint;"],[0,"&intlarhk;"],[10,"&pluscir;"],[0,"&plusacir;"],[0,"&simplus;"],[0,"&plusdu;"],[0,"&plussim;"],[0,"&plustwo;"],[1,"&mcomma;"],[0,"&minusdu;"],[2,"&loplus;"],[0,"&roplus;"],[0,"&Cross;"],[0,"&timesd;"],[0,"&timesbar;"],[1,"&smashp;"],[0,"&lotimes;"],[0,"&rotimes;"],[0,"&otimesas;"],[0,"&Otimes;"],[0,"&odiv;"],[0,"&triplus;"],[0,"&triminus;"],[0,"&tritime;"],[0,"&intprod;"],[2,"&amalg;"],[0,"&capdot;"],[1,"&ncup;"],[0,"&ncap;"],[0,"&capand;"],[0,"&cupor;"],[0,"&cupcap;"],[0,"&capcup;"],[0,"&cupbrcap;"],[0,"&capbrcup;"],[0,"&cupcup;"],[0,"&capcap;"],[0,"&ccups;"],[0,"&ccaps;"],[2,"&ccupssm;"],[2,"&And;"],[0,"&Or;"],[0,"&andand;"],[0,"&oror;"],[0,"&orslope;"],[0,"&andslope;"],[1,"&andv;"],[0,"&orv;"],[0,"&andd;"],[0,"&ord;"],[1,"&wedbar;"],[6,"&sdote;"],[3,"&simdot;"],[2,{v:"&congdot;",n:824,o:"&ncongdot;"}],[0,"&easter;"],[0,"&apacir;"],[0,{v:"&apE;",n:824,o:"&napE;"}],[0,"&eplus;"],[0,"&pluse;"],[0,"&Esim;"],[0,"&Colone;"],[0,"&Equal;"],[1,"&ddotseq;"],[0,"&equivDD;"],[0,"&ltcir;"],[0,"&gtcir;"],[0,"&ltquest;"],[0,"&gtquest;"],[0,{v:"&leqslant;",n:824,o:"&nleqslant;"}],[0,{v:"&geqslant;",n:824,o:"&ngeqslant;"}],[0,"&lesdot;"],[0,"&gesdot;"],[0,"&lesdoto;"],[0,"&gesdoto;"],[0,"&lesdotor;"],[0,"&gesdotol;"],[0,"&lap;"],[0,"&gap;"],[0,"&lne;"],[0,"&gne;"],[0,"&lnap;"],[0,"&gnap;"],[0,"&lEg;"],[0,"&gEl;"],[0,"&lsime;"],[0,"&gsime;"],[0,"&lsimg;"],[0,"&gsiml;"],[0,"&lgE;"],[0,"&glE;"],[0,"&lesges;"],[0,"&gesles;"],[0,"&els;"],[0,"&egs;"],[0,"&elsdot;"],[0,"&egsdot;"],[0,"&el;"],[0,"&eg;"],[2,"&siml;"],[0,"&simg;"],[0,"&simlE;"],[0,"&simgE;"],[0,{v:"&LessLess;",n:824,o:"&NotNestedLessLess;"}],[0,{v:"&GreaterGreater;",n:824,o:"&NotNestedGreaterGreater;"}],[1,"&glj;"],[0,"&gla;"],[0,"&ltcc;"],[0,"&gtcc;"],[0,"&lescc;"],[0,"&gescc;"],[0,"&smt;"],[0,"&lat;"],[0,{v:"&smte;",n:65024,o:"&smtes;"}],[0,{v:"&late;",n:65024,o:"&lates;"}],[0,"&bumpE;"],[0,{v:"&PrecedesEqual;",n:824,o:"&NotPrecedesEqual;"}],[0,{v:"&sce;",n:824,o:"&NotSucceedsEqual;"}],[2,"&prE;"],[0,"&scE;"],[0,"&precneqq;"],[0,"&scnE;"],[0,"&prap;"],[0,"&scap;"],[0,"&precnapprox;"],[0,"&scnap;"],[0,"&Pr;"],[0,"&Sc;"],[0,"&subdot;"],[0,"&supdot;"],[0,"&subplus;"],[0,"&supplus;"],[0,"&submult;"],[0,"&supmult;"],[0,"&subedot;"],[0,"&supedot;"],[0,{v:"&subE;",n:824,o:"&nsubE;"}],[0,{v:"&supE;",n:824,o:"&nsupE;"}],[0,"&subsim;"],[0,"&supsim;"],[2,{v:"&subnE;",n:65024,o:"&varsubsetneqq;"}],[0,{v:"&supnE;",n:65024,o:"&varsupsetneqq;"}],[2,"&csub;"],[0,"&csup;"],[0,"&csube;"],[0,"&csupe;"],[0,"&subsup;"],[0,"&supsub;"],[0,"&subsub;"],[0,"&supsup;"],[0,"&suphsub;"],[0,"&supdsub;"],[0,"&forkv;"],[0,"&topfork;"],[0,"&mlcp;"],[8,"&Dashv;"],[1,"&Vdashl;"],[0,"&Barv;"],[0,"&vBar;"],[0,"&vBarv;"],[1,"&Vbar;"],[0,"&Not;"],[0,"&bNot;"],[0,"&rnmid;"],[0,"&cirmid;"],[0,"&midcir;"],[0,"&topcir;"],[0,"&nhpar;"],[0,"&parsim;"],[9,{v:"&parsl;",n:8421,o:"&nparsl;"}],[44343,{n:new Map(Tt([[56476,"&Ascr;"],[1,"&Cscr;"],[0,"&Dscr;"],[2,"&Gscr;"],[2,"&Jscr;"],[0,"&Kscr;"],[2,"&Nscr;"],[0,"&Oscr;"],[0,"&Pscr;"],[0,"&Qscr;"],[1,"&Sscr;"],[0,"&Tscr;"],[0,"&Uscr;"],[0,"&Vscr;"],[0,"&Wscr;"],[0,"&Xscr;"],[0,"&Yscr;"],[0,"&Zscr;"],[0,"&ascr;"],[0,"&bscr;"],[0,"&cscr;"],[0,"&dscr;"],[1,"&fscr;"],[1,"&hscr;"],[0,"&iscr;"],[0,"&jscr;"],[0,"&kscr;"],[0,"&lscr;"],[0,"&mscr;"],[0,"&nscr;"],[1,"&pscr;"],[0,"&qscr;"],[0,"&rscr;"],[0,"&sscr;"],[0,"&tscr;"],[0,"&uscr;"],[0,"&vscr;"],[0,"&wscr;"],[0,"&xscr;"],[0,"&yscr;"],[0,"&zscr;"],[52,"&Afr;"],[0,"&Bfr;"],[1,"&Dfr;"],[0,"&Efr;"],[0,"&Ffr;"],[0,"&Gfr;"],[2,"&Jfr;"],[0,"&Kfr;"],[0,"&Lfr;"],[0,"&Mfr;"],[0,"&Nfr;"],[0,"&Ofr;"],[0,"&Pfr;"],[0,"&Qfr;"],[1,"&Sfr;"],[0,"&Tfr;"],[0,"&Ufr;"],[0,"&Vfr;"],[0,"&Wfr;"],[0,"&Xfr;"],[0,"&Yfr;"],[1,"&afr;"],[0,"&bfr;"],[0,"&cfr;"],[0,"&dfr;"],[0,"&efr;"],[0,"&ffr;"],[0,"&gfr;"],[0,"&hfr;"],[0,"&ifr;"],[0,"&jfr;"],[0,"&kfr;"],[0,"&lfr;"],[0,"&mfr;"],[0,"&nfr;"],[0,"&ofr;"],[0,"&pfr;"],[0,"&qfr;"],[0,"&rfr;"],[0,"&sfr;"],[0,"&tfr;"],[0,"&ufr;"],[0,"&vfr;"],[0,"&wfr;"],[0,"&xfr;"],[0,"&yfr;"],[0,"&zfr;"],[0,"&Aopf;"],[0,"&Bopf;"],[1,"&Dopf;"],[0,"&Eopf;"],[0,"&Fopf;"],[0,"&Gopf;"],[1,"&Iopf;"],[0,"&Jopf;"],[0,"&Kopf;"],[0,"&Lopf;"],[0,"&Mopf;"],[1,"&Oopf;"],[3,"&Sopf;"],[0,"&Topf;"],[0,"&Uopf;"],[0,"&Vopf;"],[0,"&Wopf;"],[0,"&Xopf;"],[0,"&Yopf;"],[1,"&aopf;"],[0,"&bopf;"],[0,"&copf;"],[0,"&dopf;"],[0,"&eopf;"],[0,"&fopf;"],[0,"&gopf;"],[0,"&hopf;"],[0,"&iopf;"],[0,"&jopf;"],[0,"&kopf;"],[0,"&lopf;"],[0,"&mopf;"],[0,"&nopf;"],[0,"&oopf;"],[0,"&popf;"],[0,"&qopf;"],[0,"&ropf;"],[0,"&sopf;"],[0,"&topf;"],[0,"&uopf;"],[0,"&vopf;"],[0,"&wopf;"],[0,"&xopf;"],[0,"&yopf;"],[0,"&zopf;"]]))}],[8906,"&fflig;"],[0,"&filig;"],[0,"&fllig;"],[0,"&ffilig;"],[0,"&ffllig;"]])),yi=/["&'<>$\x80-\uFFFF]/g,mr=new Map([[34,"&quot;"],[38,"&amp;"],[39,"&apos;"],[60,"&lt;"],[62,"&gt;"]]),$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,"&quot;"],[38,"&amp;"],[160,"&nbsp;"]])),Ra=Ne(/[&<>\u00A0]/g,new Map([[38,"&amp;"],[60,"&lt;"],[62,"&gt;"],[160,"&nbsp;"]])),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,"&quot;")}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]===`
4
+ import{a as cu,b as lu,c as hu,d as Et,e as du,f as pu,g as fu,h as gu,i as mu,j as xu,m as Au,p as ee,s as Eu}from"./chunk-D7CZ6CG6.js";import{a as ru,b as nu,d as au,g as su,h as Xt}from"./chunk-2BZVD336.js";import{a as Tt,c as Zu,d as Qu,e as Xu,f as ne,g as ae,h as se}from"./chunk-VGJ5XDNL.js";import{a as ue,b as H,c as ie,d as Bu,l as re,n as Cu,o as St}from"./chunk-MINNFENX.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 Iu,l as _u,m as Nu,n as $u,o as Ru,p as Pu,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-XJBTNDI5.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 Ir}from"./chunk-LM633YUO.js";var ei=Qt((_o,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 _r=ei();ut.operation=function(t){var e=ut.timeouts(t);return new _r(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),E=p.pop();p.push(function(B){l.retry(B)||(B&&(arguments[0]=l.mainError()),E.apply(this,arguments))}),l.attempt(function(){o.apply(t,p)})}.bind(t,a),t[n].options=e}}});var ri=Qt(($o,ii)=>{"use strict";ii.exports=ui()});import{createRequire as Pr}from"module";import*as ji from"fs/promises";import*as xt 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 ao from"os";import Bt from"path";import{chromium as Pi,firefox as so,webkit as oo}from"playwright";import*as Tr from"fs";import*as bt from"path";import*as P from"fs";import*as M from"path";import{z as qi}from"zod";import*as Wt from"fs";var ai=Ir(ri(),1);var Nr=Object.prototype.toString,$r=t=>Nr.call(t)==="[object Error]",Rr=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:Rr.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 Rt}from"zod";var c0=Pr(import.meta.url),qr=Z((t,e)=>{"use strict";var u=function(A){return i(A)&&!r(A)};function i(A){return!!A&&typeof A=="object"}function r(A){var C=Object.prototype.toString.call(A);return C==="[object RegExp]"||C==="[object Date]"||s(A)}var n=typeof Symbol=="function"&&Symbol.for,a=n?Symbol.for("react.element"):60103;function s(A){return A.$$typeof===a}function o(A){return Array.isArray(A)?[]:{}}function l(A,C){return C.clone!==!1&&C.isMergeableObject(A)?y(o(A),A,C):A}function p(A,C,w){return A.concat(C).map(function(S){return l(S,w)})}function E(A,C){if(!C.customMerge)return y;var w=C.customMerge(A);return typeof w=="function"?w:y}function B(A){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(A).filter(function(C){return Object.propertyIsEnumerable.call(A,C)}):[]}function m(A){return Object.keys(A).concat(B(A))}function x(A,C){try{return C in A}catch{return!1}}function F(A,C){return x(A,C)&&!(Object.hasOwnProperty.call(A,C)&&Object.propertyIsEnumerable.call(A,C))}function b(A,C,w){var S={};return w.isMergeableObject(A)&&m(A).forEach(function($){S[$]=l(A[$],w)}),m(C).forEach(function($){F(A,$)||(x(A,$)&&w.isMergeableObject(C[$])?S[$]=E($,w)(A[$],C[$],w):S[$]=l(C[$],w))}),S}function y(A,C,w){w=w||{},w.arrayMerge=w.arrayMerge||p,w.isMergeableObject=w.isMergeableObject||u,w.cloneUnlessOtherwiseSpecified=l;var S=Array.isArray(C),$=Array.isArray(A),Y=S===$;return Y?S?w.arrayMerge(A,C,w):b(A,C,w):l(C,w)}y.all=function(A,C){if(!Array.isArray(A))throw new Error("first argument should be an array");return A.reduce(function(w,S){return y(w,S,C)},{})};var _=y;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 E=r[p]-48;if(E<u.length)a=u[E],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,g){return d.length>=h?d:`${Array(h+1).join(g)}${d}`.slice(-1*h)}function o(d){let h=`otpauth://${d.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,g=[];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".');g.push(`&counter=${d.counter}`)}return d.type==="totp"&&d.step&&g.push(`&period=${d.step}`),d.digits&&g.push(`&digits=${d.digits}`),d.algorithm&&g.push(`&algorithm=${d.algorithm.toUpperCase()}`),d.issuer&&g.push(`&issuer=${encodeURIComponent(d.issuer)}`),h.replace("{labelPrefix}",encodeURIComponent(d.issuer||d.accountName)).replace("{accountName}",encodeURIComponent(d.accountName)).replace("{secret}",d.secret).replace("{query}",g.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 g=this.create({...this._defaultOptions,...h});return g.options=this._options,g}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 E=(d,h,g)=>Buffer.from(h,g).toString("hex");function B(){return{algorithm:t.HashAlgorithms.SHA1,createHmacKey:E,createDigest:n,digits:6,encoding:t.KeyEncodings.ASCII}}function m(d){let h={...B(),...d};return p(h),Object.freeze(h)}function x(d){let h=d.toString(16);return s(h,16,"0")}function F(d,h){let g=Buffer.from(d,"hex"),v=g[g.length-1]&15,I=((g[v]&127)<<24|(g[v+1]&255)<<16|(g[v+2]&255)<<8|g[v+3]&255)%Math.pow(10,h);return s(String(I),h,"0")}function b(d,h,g){let v=x(h),I=g.createHmacKey(g.algorithm,d,g.encoding);return g.createDigest(g.algorithm,I,v)}function y(d,h,g){let v=g.digest||b(d,h,g);return F(v,g.digits)}function _(d,h,g,v){if(!a(d))return!1;let I=y(h,g,v);return d===I}function A(d,h,g,v,I){return o({algorithm:I.algorithm,digits:I.digits,type:t.Strategy.HOTP,accountName:d,counter:v,issuer:h,secret:g})}var C=class Mi extends l{create(h={}){return new Mi(h)}allOptions(){return m(this.options)}generate(h,g){return y(h,g,this.allOptions())}check(h,g,v){return _(h,g,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,g,v,I){return A(h,g,v,I,this.allOptions())}};function w(d){if(typeof d=="number")return[Math.abs(d),Math.abs(d)];if(Array.isArray(d)){let[h,g]=d;if(typeof h=="number"&&typeof g=="number")return[Math.abs(h),Math.abs(g)]}throw new Error("Expecting options.window to be an number or [number, number].")}function S(d){if(p(d),w(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,g)=>{let v=d.length,I=Buffer.from(d,h).toString("hex");if(v<g){let et=new Array(g-v+1).join(I);return Buffer.from(et,"hex").slice(0,g).toString("hex")}return I},Y=(d,h,g)=>{switch(d){case t.HashAlgorithms.SHA1:return $(h,g,20);case t.HashAlgorithms.SHA256:return $(h,g,32);case t.HashAlgorithms.SHA512:return $(h,g,64);default:throw new Error(`Expecting algorithm to be one of ${u.join(", ")}. Received ${d}.`)}};function ct(){return{algorithm:t.HashAlgorithms.SHA1,createDigest:n,createHmacKey:Y,digits:6,encoding:t.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function lt(d){let h={...ct(),...d};return S(h),Object.freeze(h)}function ht(d,h){return Math.floor(d/h/1e3)}function vt(d,h){let g=ht(h.epoch,h.step);return y(d,g,h)}function Ge(d,h,g,v){let I=[];if(v===0)return I;for(let et=1;et<=v;et++){let Zt=h*et*g;I.push(d+Zt)}return I}function ze(d,h,g){let v=w(g),I=h*1e3;return{current:d,past:Ge(d,-1,I,v[0]),future:Ge(d,1,I,v[1])}}function Gt(d,h,g){if(!a(d))return!1;let v=vt(h,g);return d===v}function zt(d,h,g,v){let I=null;return d.some((et,Zt)=>Gt(h,g,{...v,epoch:et})?(I=Zt+1,!0):!1),I}function Kt(d,h,g){if(Gt(d,h,g))return 0;let v=ze(g.epoch,g.step,g.window),I=zt(v.past,d,h,g);return I!==null?I*-1:zt(v.future,d,h,g)}function Jt(d,h){return Math.floor(d/1e3)%h}function Ke(d,h){return h-Jt(d,h)}function Je(d,h,g,v){return o({algorithm:v.algorithm,digits:v.digits,step:v.step,type:t.Strategy.TOTP,accountName:d,issuer:h,secret:g})}var Ye=class Ui extends C{create(h={}){return new Ui(h)}allOptions(){return lt(this.options)}generate(h){return vt(h,this.allOptions())}checkDelta(h,g){return Kt(h,g,this.allOptions())}check(h,g){return typeof this.checkDelta(h,g)=="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,g,v){return Je(h,g,v,this.allOptions())}};function Ze(d){if(S(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 kt(d,h){return h.keyDecoder(d,h.encoding)}function tu(d,h){let g=h.createRandomBytes(d,h.encoding);return Yt(g,h)}function eu(d,h){return vt(kt(d,h),h)}function uu(d,h,g){return Kt(d,kt(h,g),g)}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,g){return uu(h,g,this.allOptions())}encode(h){return Yt(h,this.allOptions())}decode(h){return kt(h,this.allOptions())}generateSecret(h=10){return tu(h,this.allOptions())}};t.Authenticator=Lr,t.HASH_ALGORITHMS=u,t.HOTP=C,t.KEY_ENCODINGS=i,t.OTP=l,t.STRATEGY=r,t.TOTP=Ye,t.authenticatorCheckWithWindow=uu,t.authenticatorDecoder=kt,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=x,t.hotpCreateHmacKey=E,t.hotpDefaultOptions=B,t.hotpDigestToToken=F,t.hotpKeyuri=A,t.hotpOptions=m,t.hotpOptionsValidator=p,t.hotpToken=y,t.isTokenValid=a,t.keyuri=o,t.objectValues=e,t.padStart=s,t.totpCheck=Gt,t.totpCheckByEpoch=zt,t.totpCheckWithWindow=Kt,t.totpCounter=ht,t.totpCreateHmacKey=Y,t.totpDefaultOptions=ct,t.totpEpochAvailable=ze,t.totpKeyuri=Je,t.totpOptions=lt,t.totpOptionsValidator=S,t.totpPadSecret=$,t.totpTimeRemaining=Ke,t.totpTimeUsed=Jt,t.totpToken=vt}),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]}})})});async function Gr(t,e){let u=await import(t),i=Object.keys(u),r=new xt.SyntheticModule(i,function(){for(let n of i)this.setExport(n,u[n])},{context:e});return await r.link(()=>{throw new Error("Nested imports not supported in VM context")}),await r.evaluate(),r}function zr(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(xt.isContext(t)?r=new xt.Script(u,{importModuleDynamically:async n=>Gr(n,t)}).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 E0(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))zr(t,n,a,u)}catch(i){throw c.error("Failed to load user functions:",i),i}}async function B0(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 C0(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 D0(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 Kr=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 Jr(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:Kr,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 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 Yr(t){return t.type===T.Tag||t.type===T.Script||t.type===T.Style}var Zr=T.Root,Qr=T.Text,Xr=T.Directive,tn=T.Comment,en=T.Script,un=T.Style,rn=T.Tag,nn=T.CDATA,an=T.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}},fe=class extends we{constructor(){super(...arguments),this.type=T.Text}get nodeType(){return 3}},Wi=class extends we{constructor(){super(...arguments),this.type=T.Comment}get nodeType(){return 8}},Gi=class extends we{constructor(t,e){super(e),this.name=t,this.type=T.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=T.CDATA}get nodeType(){return 4}},ge=class extends ye{constructor(){super(...arguments),this.type=T.Root}get nodeType(){return 9}},Ki=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 Yr(t)}function sn(t){return t.type===T.CDATA}function on(t){return t.type===T.Text}function cn(t){return t.type===T.Comment}function ln(t){return t.type===T.Directive}function hn(t){return t.type===T.Root}function Ji(t,e=!1){let u;if(on(t))u=new fe(t.data);else if(cn(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(sn(t)){let i=e?he(t.children):[],r=new zi(i);i.forEach(n=>n.parent=r),u=r}else if(hn(t)){let i=e?he(t.children):[],r=new ge(i);i.forEach(n=>n.parent=r),t["x-mode"]&&(r["x-mode"]=t["x-mode"]),u=r}else if(ln(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},dn=class{constructor(t,e,u){this.dom=[],this.root=new ge(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 ge(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 Ki(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 fe(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 Wi(t);this.addNode(e),this.lastNode=e}oncommentend(){this.lastNode=null}oncdatastart(){let t=new fe(""),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}},pn=/\n/g;function fn(t){let e=[...t.matchAll(pn)].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?fn(s):()=>({line:0,column:0}),p=o,E=[];t:for(;p<s.length;){let B=!1;for(let m of n){m.regex.lastIndex=p;let x=m.regex.exec(s);if(x&&x[0].length>0){if(!m.discard){let F=l(p),b=typeof m.replace=="string"?x[0].replace(new RegExp(m.regex.source,m.regex.flags),m.replace):x[0];E.push({state:r,name:m.name,text:b,offset:p,len:x[0].length,line:F.line,column:F.column})}if(p=m.regex.lastIndex,B=!0,m.push){let F=m.push(s,p);E.push(...F.tokens),p=F.offset}if(m.pop)break t;break}}if(!B)break}return{tokens:E,offset:p,complete:s.length<=p}}}function gn(t,e){return{...t,regex:mn(t,e)}}function mn(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 Ot(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 Mt(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 ot(t,e){return(u,i)=>{let r=t(u,i);return r.matched?r:e(u,i)}}function xn(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 xn(t,()=>!0)}function An(t){return U(t,ke(t),(e,u)=>[e,...u])}function U(t,e,u){return(i,r)=>Ot(t(i,r),n=>ve(e(i,n.position),(a,s)=>u(n.value,a,i,r,s)))}function En(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)=>Ot(t(r,n),a=>Ot(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 Bn(...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 Cn(...t){return Dn(Bn(...t))}function Dn(t){return O(t,e=>e.flatMap(u=>u))}function bn(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 wn(t,e,u){return bn(t,i=>O(e,(r,n,a,s)=>u(i,r,n,a,s)))}function Xi(t,e,u){return yn(t,i=>wn(i,U(e,u,(r,n)=>[r,n]),(r,[n,a])=>n(r,a)))}function yn(t,e){return(u,i)=>Ot(t(u,i),r=>e(r.value,u,i,r.position)(u,r.position))}var Fn="(?:[ \\t\\r\\n\\f]*)",tr="(?:\\n|\\r\\n|\\r|\\f)",jt="[^\\x00-\\x7F]",wt="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",yt="(?:\\\\[^\\n\\r\\f0-9a-f])",vn=`(?:[_a-z]|${jt}|${wt}|${yt})`,er=`(?:[_a-z0-9-]|${jt}|${wt}|${yt})`,kn=`(?:${er}+)`,Sn=`(?:[-]?${vn}${er}*)`,Tn=`'([^\\n\\r\\f\\\\']|\\\\${tr}|${jt}|${wt}|${yt})*'`,Ln=`"([^\\n\\r\\f\\\\"]|\\\\${tr}|${jt}|${wt}|${yt})*"`,In=Zi([{name:"ws",regex:new RegExp(Fn)},{name:"hash",regex:new RegExp(`#${kn}`,"i")},{name:"ident",regex:new RegExp(Sn,"i")},{name:"str1",regex:new RegExp(Tn,"i")},{name:"str2",regex:new RegExp(Ln,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"}]),_n=Zi([{name:"unicode",regex:new RegExp(wt,"i")},{name:"escape",regex:new RegExp(yt,"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 Nn(t){return t.reduce(ur,[0,0,0])}var $n=tt(t=>t.name==="unicode"?String.fromCodePoint(parseInt(t.text.slice(1),16)):void 0),Rn=tt(t=>t.name==="escape"?t.text.slice(1):void 0),Pn=tt(t=>t.name==="any"?t.text:void 0),qn=O(ke(Ht($n,Rn,Pn)),t=>t.join(""));function Te(t){let e=_n(t);return qn({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=Mt(Le,null);function ft(t){return Qi(xe,t,xe)}var Dt=tt(t=>t.name==="ident"?Te(t.text):void 0),On=tt(t=>t.name==="hash"?Te(t.text.slice(1)):void 0),Mn=tt(t=>t.name.startsWith("str")?Te(t.text.slice(1,-1)):void 0),ir=En(Mt(Dt,""),N("|")),Ie=ot(U(ir,Dt,(t,e)=>({name:e,namespace:t})),O(Dt,t=>({name:t,namespace:null}))),Un=ot(U(ir,N("*"),t=>({type:"universal",namespace:t,specificity:[0,0,0]})),O(N("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),Hn=O(Ie,({name:t,namespace:e})=>({type:"tag",name:t,namespace:e,specificity:[0,0,1]})),jn=U(N("."),Dt,(t,e)=>({type:"class",name:e,specificity:[0,1,0]})),Vn=O(On,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"}}),Wn=ot(U(Mn,Mt(li(xe,hi),null),(t,e)=>({value:t,modifier:e})),U(Dt,Mt(li(Le,hi),null),(t,e)=>({value:t,modifier:e}))),Gn=Ht(O(N("="),()=>"="),U(N("~"),N("="),()=>"~="),U(N("|"),N("="),()=>"|="),U(N("^"),N("="),()=>"^="),U(N("$"),N("="),()=>"$="),U(N("*"),N("="),()=>"*=")),zn=Se(N("["),ft(Ie),N("]"),(t,{name:e,namespace:u})=>({type:"attrPresence",name:e,namespace:u,specificity:[0,1,0]})),Kn=Qi(N("["),Se(ft(Ie),Gn,ft(Wn),({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("]")),Jn=ot(zn,Kn),Yn=ot(Un,Hn),di=Ht(Vn,jn,Jn),pi=O(ot(Cn(Yn,ke(di)),An(di)),t=>({type:"compound",list:t,specificity:Nn(t.map(e=>e.specificity))})),Zn=Ht(O(N(">"),()=>">"),O(N("+"),()=>"+"),O(N("~"),()=>"~"),U(N("|"),N("|"),()=>"||")),Qn=ot(ft(Zn),O(Le,()=>" ")),Ae=Xi(pi,O(Qn,t=>(e,u)=>({type:"compound",list:[...u.list,{type:"combinator",combinator:t,left:e,specificity:e.specificity}],specificity:ur(e.specificity,u.specificity)})),pi),y0=Xi(O(Ae,t=>({type:"list",list:[t]})),O(ft(N(",")),()=>(t,e)=>({type:"list",list:[...t.list,e]})),Ae);function Xn(t,e){if(!(typeof e=="string"||e instanceof String))throw new Error("Expected a selector string. Actual input is not a string!");let u=In(e);if(!u.complete)throw new Error(`The input "${e}" was only partially tokenized, stopped at offset ${u.offset}!
6
+ `+fi(e,u.offset));let i=ft(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
+ `+fi(e,r.offset,r.len))}return i.value}function fi(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 ta(t){return Xn(Ae,t)}function K(t){if(!t.type)throw new Error("This is not an AST node.");switch(t.type){case"universal":return Lt(t.namespace)+"*";case"tag":return Lt(t.namespace)+pt(t.name);case"class":return"."+pt(t.name);case"id":return"#"+pt(t.name);case"attrPresence":return`[${Lt(t.namespace)}${pt(t.name)}]`;case"attrValue":return`[${Lt(t.namespace)}${pt(t.name)}${t.matcher}"${ea(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 Lt(t){return t||t===""?pt(t)+"|":""}function Pt(t){return`\\${t.codePointAt(0).toString(16)} `}function pt(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?Pt(u):i?"-"+Pt(i.slice(1)):r?"\\-":n||(a?"\uFFFD":s?Pt(s):"\\"+o))}function ea(t){return t.replace(/(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g,(e,u,i,r,n)=>u?'\\"':i?"\\\\":r?"\uFFFD":Pt(n))}function qt(t){if(!t.type)throw new Error("This is not an AST node.");switch(t.type){case"compound":{t.list.forEach(qt),t.list.sort((e,u)=>nr(gi(e),gi(u)));break}case"combinator":{qt(t.left);break}case"list":{t.list.forEach(qt),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 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(ua(t))}build(t){return t(this.branches)}};function ua(t){let e=t.length,u=new Array(e);for(let i=0;i<e;i++){let[r,n]=t[i],a=ia(ta(r));u[i]={ast:a,terminal:{type:"terminal",valueContainer:{index:i,value:n,specificity:a.specificity}}}}return u}function ia(t){return ar(t),qt(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}=na(t,u);t=r,i.length&&e.push(aa(u,i)),n.length&&e.push(...ra(n))}return e}function ra(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}=ha(i.cont,a=>a.type==="terminal");r.forEach(a=>e.push(a)),n.length&&(i.cont=n,e.push(i))}}return e}function na(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 aa(t,e){if(t==="tag")return sa(e);if(t.startsWith("attrValue "))return ca(t.substring(10),e);if(t.startsWith("attrPresence "))return oa(t.substring(13),e);if(t==="combinator >")return xi(">",e);if(t==="combinator +")return xi("+",e);throw new Error(`Unsupported selector kind: ${t}`)}function sa(t){let e=_e(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 oa(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 ca(t,e){let u=_e(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=la(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 la(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=_e(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 _e(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}=da(t,a),l=null;for(let p of s){let E=or(p,n);l||(l=E)}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 ha(t,e){let u=[],i=[];for(let r of t)e(r)?u.push(r):i.push(r);return{matches:u,rest:i}}function da(t,e){let u=[],i=[];for(let r of t)e(r)?u.push(r):i.push(r);return{matches:u,rest:i}}var pa=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?fa:ga,n=u[0];for(let a=1;a<i;a++){let s=u[a];r(n,s)&&(n=s)}return n.value}};function fa(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 pa(At(t))}function At(t){let e=t.map(ma);return(u,...i)=>e.flatMap(r=>r(u,...i))}function ma(t){switch(t.type){case"terminal":{let e=[t.valueContainer];return(u,...i)=>e}case"tagName":return xa(t);case"attrValue":return Ea(t);case"attrPresence":return Aa(t);case"pushElement":return Ba(t);case"popElement":return Da(t)}}function xa(t){let e={};for(let u of t.variants)e[u.value]=At(u.cont);return(u,...i)=>{let r=e[u.name];return r?r(u,...i):[]}}function Aa(t){let e=t.name,u=At(t.cont);return(i,...r)=>Object.prototype.hasOwnProperty.call(i.attribs,e)?u(i,...r):[]}function Ea(t){let e=[];for(let i of t.matchers){let r=i.predicate,n=At(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 Ba(t){let e=At(t.cont),u=t.combinator==="+"?lr:Ca;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)},Ca=t=>{let e=t.parent;return e&&Fe(e)?e:null};function Da(t){let e=At(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,ba=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=ba.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 wa=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 ya(t){return t>=q.UPPER_A&&t<=q.UPPER_F||t>=q.LOWER_A&&t<=q.LOWER_F}function Fa(t){return t>=q.UPPER_A&&t<=q.UPPER_Z||t>=q.LOWER_A&&t<=q.LOWER_Z||Be(t)}function va(t){return t===q.EQUALS||Fa(t)}var R;(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"})(R||(R={}));var nt;(function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"})(nt||(nt={}));var ka=class{constructor(t,e,u){this.decodeTree=t,this.emitCodePoint=e,this.errors=u,this.state=R.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=nt.Strict}startEntity(t){this.decodeMode=t,this.state=R.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,e){switch(this.state){case R.EntityStart:return t.charCodeAt(e)===q.NUM?(this.state=R.NumericStart,this.consumed+=1,this.stateNumericStart(t,e+1)):(this.state=R.NamedEntity,this.stateNamedEntity(t,e));case R.NumericStart:return this.stateNumericStart(t,e);case R.NumericDecimal:return this.stateNumericDecimal(t,e);case R.NumericHex:return this.stateNumericHex(t,e);case R.NamedEntity:return this.stateNamedEntity(t,e)}}stateNumericStart(t,e){return e>=t.length?-1:(t.charCodeAt(e)|wa)===q.LOWER_X?(this.state=R.NumericHex,this.consumed+=1,this.stateNumericHex(t,e+1)):(this.state=R.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)||ya(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===nt.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=gr(u,i,this.treeIndex+Math.max(1,r),n),this.treeIndex<0)return this.result===0||this.decodeMode===nt.Attribute&&(r===0||va(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!==nt.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 R.NamedEntity:return this.result!==0&&(this.decodeMode!==nt.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case R.NumericDecimal:return this.emitNumericEntity(0,2);case R.NumericHex:return this.emitNumericEntity(0,3);case R.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case R.EntityStart:return 0}}};function fr(t){let e="",u=new ka(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 F0=fr(hr),v0=fr(dr),D;(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"})(D||(D={}));var f;(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"})(f||(f={}));function X(t){return t===D.Space||t===D.NewLine||t===D.Tab||t===D.FormFeed||t===D.CarriageReturn}function It(t){return t===D.Slash||t===D.Gt||X(t)}function Ei(t){return t>=D.Zero&&t<=D.Nine}function Sa(t){return t>=D.LowerA&&t<=D.LowerZ||t>=D.UpperA&&t<=D.UpperZ}function Ta(t){return t>=D.UpperA&&t<=D.UpperF||t>=D.LowerA&&t<=D.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])},La=class{constructor({xmlMode:t=!1,decodeEntities:e=!0},u){this.cbs=u,this.state=f.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=f.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=f.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=f.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===D.Lt||!this.decodeEntities&&this.fastForwardTo(D.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=f.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===D.Amp&&(this.state=f.BeforeEntity)}stateSpecialStartSequence(t){let e=this.sequenceIndex===this.currentSequence.length;if(!(e?It(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!e){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=f.InTagName,this.stateInTagName(t)}stateInSpecialTag(t){if(this.sequenceIndex===this.currentSequence.length){if(t===D.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===D.Amp&&(this.state=f.BeforeEntity):this.fastForwardTo(D.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===D.Lt)}stateCDATASequence(t){t===j.Cdata[this.sequenceIndex]?++this.sequenceIndex===j.Cdata.length&&(this.state=f.InCommentLike,this.currentSequence=j.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=f.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=f.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?!It(t):Sa(t)}startSpecial(t,e){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=e,this.state=f.SpecialStartSequence}stateBeforeTagName(t){if(t===D.ExclamationMark)this.state=f.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===D.Questionmark)this.state=f.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]?f.BeforeSpecialS:f.InTagName}else t===D.Slash?this.state=f.BeforeClosingTagName:(this.state=f.Text,this.stateText(t))}stateInTagName(t){It(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=f.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateBeforeClosingTagName(t){X(t)||(t===D.Gt?this.state=f.Text:(this.state=this.isTagStartChar(t)?f.InClosingTagName:f.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(t){(t===D.Gt||X(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=f.AfterClosingTagName,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){(t===D.Gt||this.fastForwardTo(D.Gt))&&(this.state=f.Text,this.baseState=f.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(t){t===D.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=f.InSpecialTag,this.sequenceIndex=0):this.state=f.Text,this.baseState=this.state,this.sectionStart=this.index+1):t===D.Slash?this.state=f.InSelfClosingTag:X(t)||(this.state=f.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===D.Gt?(this.cbs.onselfclosingtag(this.index),this.state=f.Text,this.baseState=f.Text,this.sectionStart=this.index+1,this.isSpecial=!1):X(t)||(this.state=f.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateInAttributeName(t){(t===D.Eq||It(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=f.AfterAttributeName,this.stateAfterAttributeName(t))}stateAfterAttributeName(t){t===D.Eq?this.state=f.BeforeAttributeValue:t===D.Slash||t===D.Gt?(this.cbs.onattribend(z.NoValue,this.index),this.state=f.BeforeAttributeName,this.stateBeforeAttributeName(t)):X(t)||(this.cbs.onattribend(z.NoValue,this.index),this.state=f.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(t){t===D.DoubleQuote?(this.state=f.InAttributeValueDq,this.sectionStart=this.index+1):t===D.SingleQuote?(this.state=f.InAttributeValueSq,this.sectionStart=this.index+1):X(t)||(this.sectionStart=this.index,this.state=f.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===D.DoubleQuote?z.Double:z.Single,this.index),this.state=f.BeforeAttributeName):this.decodeEntities&&t===D.Amp&&(this.baseState=this.state,this.state=f.BeforeEntity)}stateInAttributeValueDoubleQuotes(t){this.handleInAttributeValue(t,D.DoubleQuote)}stateInAttributeValueSingleQuotes(t){this.handleInAttributeValue(t,D.SingleQuote)}stateInAttributeValueNoQuotes(t){X(t)||t===D.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(z.Unquoted,this.index),this.state=f.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===D.Amp&&(this.baseState=this.state,this.state=f.BeforeEntity)}stateBeforeDeclaration(t){t===D.OpeningSquareBracket?(this.state=f.CDATASequence,this.sequenceIndex=0):this.state=t===D.Dash?f.BeforeComment:f.InDeclaration}stateInDeclaration(t){(t===D.Gt||this.fastForwardTo(D.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=f.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===D.Gt||this.fastForwardTo(D.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=f.Text,this.sectionStart=this.index+1)}stateBeforeComment(t){t===D.Dash?(this.state=f.InCommentLike,this.currentSequence=j.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=f.InDeclaration}stateInSpecialComment(t){(t===D.Gt||this.fastForwardTo(D.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=f.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=f.InTagName,this.stateInTagName(t))}stateBeforeEntity(t){this.entityExcess=1,this.entityResult=0,t===D.Number?this.state=f.BeforeNumericEntity:t===D.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=f.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!==D.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)===D.LowerX?(this.entityExcess++,this.state=f.InHexEntity):(this.state=f.InNumericEntity,this.stateInNumericEntity(t))}emitNumericEntity(t){let e=this.index-this.entityExcess-1;e+2+ +(this.state===f.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===D.Semi?this.emitNumericEntity(!0):Ei(t)?(this.entityResult=this.entityResult*10+(t-D.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(t){t===D.Semi?this.emitNumericEntity(!0):Ei(t)?(this.entityResult=this.entityResult*16+(t-D.Zero),this.entityExcess++):Ta(t)?(this.entityResult=this.entityResult*16+((t|32)-D.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===f.Text||this.baseState===f.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===f.Text||this.state===f.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===f.InAttributeValueDq||this.state===f.InAttributeValueSq||this.state===f.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 f.Text:{this.stateText(t);break}case f.SpecialStartSequence:{this.stateSpecialStartSequence(t);break}case f.InSpecialTag:{this.stateInSpecialTag(t);break}case f.CDATASequence:{this.stateCDATASequence(t);break}case f.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(t);break}case f.InAttributeName:{this.stateInAttributeName(t);break}case f.InCommentLike:{this.stateInCommentLike(t);break}case f.InSpecialComment:{this.stateInSpecialComment(t);break}case f.BeforeAttributeName:{this.stateBeforeAttributeName(t);break}case f.InTagName:{this.stateInTagName(t);break}case f.InClosingTagName:{this.stateInClosingTagName(t);break}case f.BeforeTagName:{this.stateBeforeTagName(t);break}case f.AfterAttributeName:{this.stateAfterAttributeName(t);break}case f.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(t);break}case f.BeforeAttributeValue:{this.stateBeforeAttributeValue(t);break}case f.BeforeClosingTagName:{this.stateBeforeClosingTagName(t);break}case f.AfterClosingTagName:{this.stateAfterClosingTagName(t);break}case f.BeforeSpecialS:{this.stateBeforeSpecialS(t);break}case f.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(t);break}case f.InSelfClosingTag:{this.stateInSelfClosingTag(t);break}case f.InDeclaration:{this.stateInDeclaration(t);break}case f.BeforeDeclaration:{this.stateBeforeDeclaration(t);break}case f.BeforeComment:{this.stateBeforeComment(t);break}case f.InProcessingInstruction:{this.stateInProcessingInstruction(t);break}case f.InNamedEntity:{this.stateInNamedEntity(t);break}case f.BeforeEntity:{this.stateBeforeEntity(t);break}case f.InHexEntity:{this.stateInHexEntity(t);break}case f.InNumericEntity:{this.stateInNumericEntity(t);break}default:this.stateBeforeNumericEntity(t)}this.index++}this.cleanup()}finish(){this.state===f.InNamedEntity&&this.emitNamedEntity(),this.sectionStart<this.index&&this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let t=this.buffer.length+this.offset;this.state===f.InCommentLike?this.currentSequence===j.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===f.InNumericEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===f.InHexEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===f.InTagName||this.state===f.BeforeAttributeName||this.state===f.BeforeAttributeValue||this.state===f.AfterAttributeName||this.state===f.InAttributeName||this.state===f.InAttributeValueSq||this.state===f.InAttributeValueDq||this.state===f.InAttributeValueNq||this.state===f.InClosingTagName||this.cbs.ontext(this.sectionStart,t)}emitPartial(t,e){this.baseState!==f.Text&&this.baseState!==f.InSpecialTag?this.cbs.onattribdata(t,e):this.cbs.ontext(t,e)}emitCodePoint(t){this.baseState!==f.Text&&this.baseState!==f.InSpecialTag?this.cbs.onattribentity(t):this.cbs.ontextentity(t)}},dt=new Set(["input","option","optgroup","select","button","datalist","textarea"]),L=new Set(["p"]),Bi=new Set(["thead","tbody"]),Ci=new Set(["dd","dt"]),Di=new Set(["rt","rp"]),Ia=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",L],["h1",L],["h2",L],["h3",L],["h4",L],["h5",L],["h6",L],["select",dt],["input",dt],["output",dt],["button",dt],["datalist",dt],["textarea",dt],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",Ci],["dt",Ci],["address",L],["article",L],["aside",L],["blockquote",L],["details",L],["div",L],["dl",L],["fieldset",L],["figcaption",L],["figure",L],["footer",L],["form",L],["header",L],["hr",L],["main",L],["nav",L],["ol",L],["pre",L],["section",L],["table",L],["ul",L],["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"]),Na=/\s|\//,$a=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:La)(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&&Ia.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(Na),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,E,B;this.endIndex=e;let m=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,m),(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[${m}]]`),(B=(E=this.cbs).oncommentend)===null||B===void 0||B.call(E)),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 _t(t){for(let e=1;e<t.length;e++)t[e][0]+=t[e-1][0]+1;return t}var k0=new Map(_t([[9,"&Tab;"],[0,"&NewLine;"],[22,"&excl;"],[0,"&quot;"],[0,"&num;"],[0,"&dollar;"],[0,"&percnt;"],[0,"&amp;"],[0,"&apos;"],[0,"&lpar;"],[0,"&rpar;"],[0,"&ast;"],[0,"&plus;"],[0,"&comma;"],[1,"&period;"],[0,"&sol;"],[10,"&colon;"],[0,"&semi;"],[0,{v:"&lt;",n:8402,o:"&nvlt;"}],[0,{v:"&equals;",n:8421,o:"&bne;"}],[0,{v:"&gt;",n:8402,o:"&nvgt;"}],[0,"&quest;"],[0,"&commat;"],[26,"&lbrack;"],[0,"&bsol;"],[0,"&rbrack;"],[0,"&Hat;"],[0,"&lowbar;"],[0,"&DiacriticalGrave;"],[5,{n:106,o:"&fjlig;"}],[20,"&lbrace;"],[0,"&verbar;"],[0,"&rbrace;"],[34,"&nbsp;"],[0,"&iexcl;"],[0,"&cent;"],[0,"&pound;"],[0,"&curren;"],[0,"&yen;"],[0,"&brvbar;"],[0,"&sect;"],[0,"&die;"],[0,"&copy;"],[0,"&ordf;"],[0,"&laquo;"],[0,"&not;"],[0,"&shy;"],[0,"&circledR;"],[0,"&macr;"],[0,"&deg;"],[0,"&PlusMinus;"],[0,"&sup2;"],[0,"&sup3;"],[0,"&acute;"],[0,"&micro;"],[0,"&para;"],[0,"&centerdot;"],[0,"&cedil;"],[0,"&sup1;"],[0,"&ordm;"],[0,"&raquo;"],[0,"&frac14;"],[0,"&frac12;"],[0,"&frac34;"],[0,"&iquest;"],[0,"&Agrave;"],[0,"&Aacute;"],[0,"&Acirc;"],[0,"&Atilde;"],[0,"&Auml;"],[0,"&angst;"],[0,"&AElig;"],[0,"&Ccedil;"],[0,"&Egrave;"],[0,"&Eacute;"],[0,"&Ecirc;"],[0,"&Euml;"],[0,"&Igrave;"],[0,"&Iacute;"],[0,"&Icirc;"],[0,"&Iuml;"],[0,"&ETH;"],[0,"&Ntilde;"],[0,"&Ograve;"],[0,"&Oacute;"],[0,"&Ocirc;"],[0,"&Otilde;"],[0,"&Ouml;"],[0,"&times;"],[0,"&Oslash;"],[0,"&Ugrave;"],[0,"&Uacute;"],[0,"&Ucirc;"],[0,"&Uuml;"],[0,"&Yacute;"],[0,"&THORN;"],[0,"&szlig;"],[0,"&agrave;"],[0,"&aacute;"],[0,"&acirc;"],[0,"&atilde;"],[0,"&auml;"],[0,"&aring;"],[0,"&aelig;"],[0,"&ccedil;"],[0,"&egrave;"],[0,"&eacute;"],[0,"&ecirc;"],[0,"&euml;"],[0,"&igrave;"],[0,"&iacute;"],[0,"&icirc;"],[0,"&iuml;"],[0,"&eth;"],[0,"&ntilde;"],[0,"&ograve;"],[0,"&oacute;"],[0,"&ocirc;"],[0,"&otilde;"],[0,"&ouml;"],[0,"&div;"],[0,"&oslash;"],[0,"&ugrave;"],[0,"&uacute;"],[0,"&ucirc;"],[0,"&uuml;"],[0,"&yacute;"],[0,"&thorn;"],[0,"&yuml;"],[0,"&Amacr;"],[0,"&amacr;"],[0,"&Abreve;"],[0,"&abreve;"],[0,"&Aogon;"],[0,"&aogon;"],[0,"&Cacute;"],[0,"&cacute;"],[0,"&Ccirc;"],[0,"&ccirc;"],[0,"&Cdot;"],[0,"&cdot;"],[0,"&Ccaron;"],[0,"&ccaron;"],[0,"&Dcaron;"],[0,"&dcaron;"],[0,"&Dstrok;"],[0,"&dstrok;"],[0,"&Emacr;"],[0,"&emacr;"],[2,"&Edot;"],[0,"&edot;"],[0,"&Eogon;"],[0,"&eogon;"],[0,"&Ecaron;"],[0,"&ecaron;"],[0,"&Gcirc;"],[0,"&gcirc;"],[0,"&Gbreve;"],[0,"&gbreve;"],[0,"&Gdot;"],[0,"&gdot;"],[0,"&Gcedil;"],[1,"&Hcirc;"],[0,"&hcirc;"],[0,"&Hstrok;"],[0,"&hstrok;"],[0,"&Itilde;"],[0,"&itilde;"],[0,"&Imacr;"],[0,"&imacr;"],[2,"&Iogon;"],[0,"&iogon;"],[0,"&Idot;"],[0,"&imath;"],[0,"&IJlig;"],[0,"&ijlig;"],[0,"&Jcirc;"],[0,"&jcirc;"],[0,"&Kcedil;"],[0,"&kcedil;"],[0,"&kgreen;"],[0,"&Lacute;"],[0,"&lacute;"],[0,"&Lcedil;"],[0,"&lcedil;"],[0,"&Lcaron;"],[0,"&lcaron;"],[0,"&Lmidot;"],[0,"&lmidot;"],[0,"&Lstrok;"],[0,"&lstrok;"],[0,"&Nacute;"],[0,"&nacute;"],[0,"&Ncedil;"],[0,"&ncedil;"],[0,"&Ncaron;"],[0,"&ncaron;"],[0,"&napos;"],[0,"&ENG;"],[0,"&eng;"],[0,"&Omacr;"],[0,"&omacr;"],[2,"&Odblac;"],[0,"&odblac;"],[0,"&OElig;"],[0,"&oelig;"],[0,"&Racute;"],[0,"&racute;"],[0,"&Rcedil;"],[0,"&rcedil;"],[0,"&Rcaron;"],[0,"&rcaron;"],[0,"&Sacute;"],[0,"&sacute;"],[0,"&Scirc;"],[0,"&scirc;"],[0,"&Scedil;"],[0,"&scedil;"],[0,"&Scaron;"],[0,"&scaron;"],[0,"&Tcedil;"],[0,"&tcedil;"],[0,"&Tcaron;"],[0,"&tcaron;"],[0,"&Tstrok;"],[0,"&tstrok;"],[0,"&Utilde;"],[0,"&utilde;"],[0,"&Umacr;"],[0,"&umacr;"],[0,"&Ubreve;"],[0,"&ubreve;"],[0,"&Uring;"],[0,"&uring;"],[0,"&Udblac;"],[0,"&udblac;"],[0,"&Uogon;"],[0,"&uogon;"],[0,"&Wcirc;"],[0,"&wcirc;"],[0,"&Ycirc;"],[0,"&ycirc;"],[0,"&Yuml;"],[0,"&Zacute;"],[0,"&zacute;"],[0,"&Zdot;"],[0,"&zdot;"],[0,"&Zcaron;"],[0,"&zcaron;"],[19,"&fnof;"],[34,"&imped;"],[63,"&gacute;"],[65,"&jmath;"],[142,"&circ;"],[0,"&caron;"],[16,"&breve;"],[0,"&DiacriticalDot;"],[0,"&ring;"],[0,"&ogon;"],[0,"&DiacriticalTilde;"],[0,"&dblac;"],[51,"&DownBreve;"],[127,"&Alpha;"],[0,"&Beta;"],[0,"&Gamma;"],[0,"&Delta;"],[0,"&Epsilon;"],[0,"&Zeta;"],[0,"&Eta;"],[0,"&Theta;"],[0,"&Iota;"],[0,"&Kappa;"],[0,"&Lambda;"],[0,"&Mu;"],[0,"&Nu;"],[0,"&Xi;"],[0,"&Omicron;"],[0,"&Pi;"],[0,"&Rho;"],[1,"&Sigma;"],[0,"&Tau;"],[0,"&Upsilon;"],[0,"&Phi;"],[0,"&Chi;"],[0,"&Psi;"],[0,"&ohm;"],[7,"&alpha;"],[0,"&beta;"],[0,"&gamma;"],[0,"&delta;"],[0,"&epsi;"],[0,"&zeta;"],[0,"&eta;"],[0,"&theta;"],[0,"&iota;"],[0,"&kappa;"],[0,"&lambda;"],[0,"&mu;"],[0,"&nu;"],[0,"&xi;"],[0,"&omicron;"],[0,"&pi;"],[0,"&rho;"],[0,"&sigmaf;"],[0,"&sigma;"],[0,"&tau;"],[0,"&upsi;"],[0,"&phi;"],[0,"&chi;"],[0,"&psi;"],[0,"&omega;"],[7,"&thetasym;"],[0,"&Upsi;"],[2,"&phiv;"],[0,"&piv;"],[5,"&Gammad;"],[0,"&digamma;"],[18,"&kappav;"],[0,"&rhov;"],[3,"&epsiv;"],[0,"&backepsilon;"],[10,"&IOcy;"],[0,"&DJcy;"],[0,"&GJcy;"],[0,"&Jukcy;"],[0,"&DScy;"],[0,"&Iukcy;"],[0,"&YIcy;"],[0,"&Jsercy;"],[0,"&LJcy;"],[0,"&NJcy;"],[0,"&TSHcy;"],[0,"&KJcy;"],[1,"&Ubrcy;"],[0,"&DZcy;"],[0,"&Acy;"],[0,"&Bcy;"],[0,"&Vcy;"],[0,"&Gcy;"],[0,"&Dcy;"],[0,"&IEcy;"],[0,"&ZHcy;"],[0,"&Zcy;"],[0,"&Icy;"],[0,"&Jcy;"],[0,"&Kcy;"],[0,"&Lcy;"],[0,"&Mcy;"],[0,"&Ncy;"],[0,"&Ocy;"],[0,"&Pcy;"],[0,"&Rcy;"],[0,"&Scy;"],[0,"&Tcy;"],[0,"&Ucy;"],[0,"&Fcy;"],[0,"&KHcy;"],[0,"&TScy;"],[0,"&CHcy;"],[0,"&SHcy;"],[0,"&SHCHcy;"],[0,"&HARDcy;"],[0,"&Ycy;"],[0,"&SOFTcy;"],[0,"&Ecy;"],[0,"&YUcy;"],[0,"&YAcy;"],[0,"&acy;"],[0,"&bcy;"],[0,"&vcy;"],[0,"&gcy;"],[0,"&dcy;"],[0,"&iecy;"],[0,"&zhcy;"],[0,"&zcy;"],[0,"&icy;"],[0,"&jcy;"],[0,"&kcy;"],[0,"&lcy;"],[0,"&mcy;"],[0,"&ncy;"],[0,"&ocy;"],[0,"&pcy;"],[0,"&rcy;"],[0,"&scy;"],[0,"&tcy;"],[0,"&ucy;"],[0,"&fcy;"],[0,"&khcy;"],[0,"&tscy;"],[0,"&chcy;"],[0,"&shcy;"],[0,"&shchcy;"],[0,"&hardcy;"],[0,"&ycy;"],[0,"&softcy;"],[0,"&ecy;"],[0,"&yucy;"],[0,"&yacy;"],[1,"&iocy;"],[0,"&djcy;"],[0,"&gjcy;"],[0,"&jukcy;"],[0,"&dscy;"],[0,"&iukcy;"],[0,"&yicy;"],[0,"&jsercy;"],[0,"&ljcy;"],[0,"&njcy;"],[0,"&tshcy;"],[0,"&kjcy;"],[1,"&ubrcy;"],[0,"&dzcy;"],[7074,"&ensp;"],[0,"&emsp;"],[0,"&emsp13;"],[0,"&emsp14;"],[1,"&numsp;"],[0,"&puncsp;"],[0,"&ThinSpace;"],[0,"&hairsp;"],[0,"&NegativeMediumSpace;"],[0,"&zwnj;"],[0,"&zwj;"],[0,"&lrm;"],[0,"&rlm;"],[0,"&dash;"],[2,"&ndash;"],[0,"&mdash;"],[0,"&horbar;"],[0,"&Verbar;"],[1,"&lsquo;"],[0,"&CloseCurlyQuote;"],[0,"&lsquor;"],[1,"&ldquo;"],[0,"&CloseCurlyDoubleQuote;"],[0,"&bdquo;"],[1,"&dagger;"],[0,"&Dagger;"],[0,"&bull;"],[2,"&nldr;"],[0,"&hellip;"],[9,"&permil;"],[0,"&pertenk;"],[0,"&prime;"],[0,"&Prime;"],[0,"&tprime;"],[0,"&backprime;"],[3,"&lsaquo;"],[0,"&rsaquo;"],[3,"&oline;"],[2,"&caret;"],[1,"&hybull;"],[0,"&frasl;"],[10,"&bsemi;"],[7,"&qprime;"],[7,{v:"&MediumSpace;",n:8202,o:"&ThickSpace;"}],[0,"&NoBreak;"],[0,"&af;"],[0,"&InvisibleTimes;"],[0,"&ic;"],[72,"&euro;"],[46,"&tdot;"],[0,"&DotDot;"],[37,"&complexes;"],[2,"&incare;"],[4,"&gscr;"],[0,"&hamilt;"],[0,"&Hfr;"],[0,"&Hopf;"],[0,"&planckh;"],[0,"&hbar;"],[0,"&imagline;"],[0,"&Ifr;"],[0,"&lagran;"],[0,"&ell;"],[1,"&naturals;"],[0,"&numero;"],[0,"&copysr;"],[0,"&weierp;"],[0,"&Popf;"],[0,"&Qopf;"],[0,"&realine;"],[0,"&real;"],[0,"&reals;"],[0,"&rx;"],[3,"&trade;"],[1,"&integers;"],[2,"&mho;"],[0,"&zeetrf;"],[0,"&iiota;"],[2,"&bernou;"],[0,"&Cayleys;"],[1,"&escr;"],[0,"&Escr;"],[0,"&Fouriertrf;"],[1,"&Mellintrf;"],[0,"&order;"],[0,"&alefsym;"],[0,"&beth;"],[0,"&gimel;"],[0,"&daleth;"],[12,"&CapitalDifferentialD;"],[0,"&dd;"],[0,"&ee;"],[0,"&ii;"],[10,"&frac13;"],[0,"&frac23;"],[0,"&frac15;"],[0,"&frac25;"],[0,"&frac35;"],[0,"&frac45;"],[0,"&frac16;"],[0,"&frac56;"],[0,"&frac18;"],[0,"&frac38;"],[0,"&frac58;"],[0,"&frac78;"],[49,"&larr;"],[0,"&ShortUpArrow;"],[0,"&rarr;"],[0,"&darr;"],[0,"&harr;"],[0,"&updownarrow;"],[0,"&nwarr;"],[0,"&nearr;"],[0,"&LowerRightArrow;"],[0,"&LowerLeftArrow;"],[0,"&nlarr;"],[0,"&nrarr;"],[1,{v:"&rarrw;",n:824,o:"&nrarrw;"}],[0,"&Larr;"],[0,"&Uarr;"],[0,"&Rarr;"],[0,"&Darr;"],[0,"&larrtl;"],[0,"&rarrtl;"],[0,"&LeftTeeArrow;"],[0,"&mapstoup;"],[0,"&map;"],[0,"&DownTeeArrow;"],[1,"&hookleftarrow;"],[0,"&hookrightarrow;"],[0,"&larrlp;"],[0,"&looparrowright;"],[0,"&harrw;"],[0,"&nharr;"],[1,"&lsh;"],[0,"&rsh;"],[0,"&ldsh;"],[0,"&rdsh;"],[1,"&crarr;"],[0,"&cularr;"],[0,"&curarr;"],[2,"&circlearrowleft;"],[0,"&circlearrowright;"],[0,"&leftharpoonup;"],[0,"&DownLeftVector;"],[0,"&RightUpVector;"],[0,"&LeftUpVector;"],[0,"&rharu;"],[0,"&DownRightVector;"],[0,"&dharr;"],[0,"&dharl;"],[0,"&RightArrowLeftArrow;"],[0,"&udarr;"],[0,"&LeftArrowRightArrow;"],[0,"&leftleftarrows;"],[0,"&upuparrows;"],[0,"&rightrightarrows;"],[0,"&ddarr;"],[0,"&leftrightharpoons;"],[0,"&Equilibrium;"],[0,"&nlArr;"],[0,"&nhArr;"],[0,"&nrArr;"],[0,"&DoubleLeftArrow;"],[0,"&DoubleUpArrow;"],[0,"&DoubleRightArrow;"],[0,"&dArr;"],[0,"&DoubleLeftRightArrow;"],[0,"&DoubleUpDownArrow;"],[0,"&nwArr;"],[0,"&neArr;"],[0,"&seArr;"],[0,"&swArr;"],[0,"&lAarr;"],[0,"&rAarr;"],[1,"&zigrarr;"],[6,"&larrb;"],[0,"&rarrb;"],[15,"&DownArrowUpArrow;"],[7,"&loarr;"],[0,"&roarr;"],[0,"&hoarr;"],[0,"&forall;"],[0,"&comp;"],[0,{v:"&part;",n:824,o:"&npart;"}],[0,"&exist;"],[0,"&nexist;"],[0,"&empty;"],[1,"&Del;"],[0,"&Element;"],[0,"&NotElement;"],[1,"&ni;"],[0,"&notni;"],[2,"&prod;"],[0,"&coprod;"],[0,"&sum;"],[0,"&minus;"],[0,"&MinusPlus;"],[0,"&dotplus;"],[1,"&Backslash;"],[0,"&lowast;"],[0,"&compfn;"],[1,"&radic;"],[2,"&prop;"],[0,"&infin;"],[0,"&angrt;"],[0,{v:"&ang;",n:8402,o:"&nang;"}],[0,"&angmsd;"],[0,"&angsph;"],[0,"&mid;"],[0,"&nmid;"],[0,"&DoubleVerticalBar;"],[0,"&NotDoubleVerticalBar;"],[0,"&and;"],[0,"&or;"],[0,{v:"&cap;",n:65024,o:"&caps;"}],[0,{v:"&cup;",n:65024,o:"&cups;"}],[0,"&int;"],[0,"&Int;"],[0,"&iiint;"],[0,"&conint;"],[0,"&Conint;"],[0,"&Cconint;"],[0,"&cwint;"],[0,"&ClockwiseContourIntegral;"],[0,"&awconint;"],[0,"&there4;"],[0,"&becaus;"],[0,"&ratio;"],[0,"&Colon;"],[0,"&dotminus;"],[1,"&mDDot;"],[0,"&homtht;"],[0,{v:"&sim;",n:8402,o:"&nvsim;"}],[0,{v:"&backsim;",n:817,o:"&race;"}],[0,{v:"&ac;",n:819,o:"&acE;"}],[0,"&acd;"],[0,"&VerticalTilde;"],[0,"&NotTilde;"],[0,{v:"&eqsim;",n:824,o:"&nesim;"}],[0,"&sime;"],[0,"&NotTildeEqual;"],[0,"&cong;"],[0,"&simne;"],[0,"&ncong;"],[0,"&ap;"],[0,"&nap;"],[0,"&ape;"],[0,{v:"&apid;",n:824,o:"&napid;"}],[0,"&backcong;"],[0,{v:"&asympeq;",n:8402,o:"&nvap;"}],[0,{v:"&bump;",n:824,o:"&nbump;"}],[0,{v:"&bumpe;",n:824,o:"&nbumpe;"}],[0,{v:"&doteq;",n:824,o:"&nedot;"}],[0,"&doteqdot;"],[0,"&efDot;"],[0,"&erDot;"],[0,"&Assign;"],[0,"&ecolon;"],[0,"&ecir;"],[0,"&circeq;"],[1,"&wedgeq;"],[0,"&veeeq;"],[1,"&triangleq;"],[2,"&equest;"],[0,"&ne;"],[0,{v:"&Congruent;",n:8421,o:"&bnequiv;"}],[0,"&nequiv;"],[1,{v:"&le;",n:8402,o:"&nvle;"}],[0,{v:"&ge;",n:8402,o:"&nvge;"}],[0,{v:"&lE;",n:824,o:"&nlE;"}],[0,{v:"&gE;",n:824,o:"&ngE;"}],[0,{v:"&lnE;",n:65024,o:"&lvertneqq;"}],[0,{v:"&gnE;",n:65024,o:"&gvertneqq;"}],[0,{v:"&ll;",n:new Map(_t([[824,"&nLtv;"],[7577,"&nLt;"]]))}],[0,{v:"&gg;",n:new Map(_t([[824,"&nGtv;"],[7577,"&nGt;"]]))}],[0,"&between;"],[0,"&NotCupCap;"],[0,"&nless;"],[0,"&ngt;"],[0,"&nle;"],[0,"&nge;"],[0,"&lesssim;"],[0,"&GreaterTilde;"],[0,"&nlsim;"],[0,"&ngsim;"],[0,"&LessGreater;"],[0,"&gl;"],[0,"&NotLessGreater;"],[0,"&NotGreaterLess;"],[0,"&pr;"],[0,"&sc;"],[0,"&prcue;"],[0,"&sccue;"],[0,"&PrecedesTilde;"],[0,{v:"&scsim;",n:824,o:"&NotSucceedsTilde;"}],[0,"&NotPrecedes;"],[0,"&NotSucceeds;"],[0,{v:"&sub;",n:8402,o:"&NotSubset;"}],[0,{v:"&sup;",n:8402,o:"&NotSuperset;"}],[0,"&nsub;"],[0,"&nsup;"],[0,"&sube;"],[0,"&supe;"],[0,"&NotSubsetEqual;"],[0,"&NotSupersetEqual;"],[0,{v:"&subne;",n:65024,o:"&varsubsetneq;"}],[0,{v:"&supne;",n:65024,o:"&varsupsetneq;"}],[1,"&cupdot;"],[0,"&UnionPlus;"],[0,{v:"&sqsub;",n:824,o:"&NotSquareSubset;"}],[0,{v:"&sqsup;",n:824,o:"&NotSquareSuperset;"}],[0,"&sqsube;"],[0,"&sqsupe;"],[0,{v:"&sqcap;",n:65024,o:"&sqcaps;"}],[0,{v:"&sqcup;",n:65024,o:"&sqcups;"}],[0,"&CirclePlus;"],[0,"&CircleMinus;"],[0,"&CircleTimes;"],[0,"&osol;"],[0,"&CircleDot;"],[0,"&circledcirc;"],[0,"&circledast;"],[1,"&circleddash;"],[0,"&boxplus;"],[0,"&boxminus;"],[0,"&boxtimes;"],[0,"&dotsquare;"],[0,"&RightTee;"],[0,"&dashv;"],[0,"&DownTee;"],[0,"&bot;"],[1,"&models;"],[0,"&DoubleRightTee;"],[0,"&Vdash;"],[0,"&Vvdash;"],[0,"&VDash;"],[0,"&nvdash;"],[0,"&nvDash;"],[0,"&nVdash;"],[0,"&nVDash;"],[0,"&prurel;"],[1,"&LeftTriangle;"],[0,"&RightTriangle;"],[0,{v:"&LeftTriangleEqual;",n:8402,o:"&nvltrie;"}],[0,{v:"&RightTriangleEqual;",n:8402,o:"&nvrtrie;"}],[0,"&origof;"],[0,"&imof;"],[0,"&multimap;"],[0,"&hercon;"],[0,"&intcal;"],[0,"&veebar;"],[1,"&barvee;"],[0,"&angrtvb;"],[0,"&lrtri;"],[0,"&bigwedge;"],[0,"&bigvee;"],[0,"&bigcap;"],[0,"&bigcup;"],[0,"&diam;"],[0,"&sdot;"],[0,"&sstarf;"],[0,"&divideontimes;"],[0,"&bowtie;"],[0,"&ltimes;"],[0,"&rtimes;"],[0,"&leftthreetimes;"],[0,"&rightthreetimes;"],[0,"&backsimeq;"],[0,"&curlyvee;"],[0,"&curlywedge;"],[0,"&Sub;"],[0,"&Sup;"],[0,"&Cap;"],[0,"&Cup;"],[0,"&fork;"],[0,"&epar;"],[0,"&lessdot;"],[0,"&gtdot;"],[0,{v:"&Ll;",n:824,o:"&nLl;"}],[0,{v:"&Gg;",n:824,o:"&nGg;"}],[0,{v:"&leg;",n:65024,o:"&lesg;"}],[0,{v:"&gel;",n:65024,o:"&gesl;"}],[2,"&cuepr;"],[0,"&cuesc;"],[0,"&NotPrecedesSlantEqual;"],[0,"&NotSucceedsSlantEqual;"],[0,"&NotSquareSubsetEqual;"],[0,"&NotSquareSupersetEqual;"],[2,"&lnsim;"],[0,"&gnsim;"],[0,"&precnsim;"],[0,"&scnsim;"],[0,"&nltri;"],[0,"&NotRightTriangle;"],[0,"&nltrie;"],[0,"&NotRightTriangleEqual;"],[0,"&vellip;"],[0,"&ctdot;"],[0,"&utdot;"],[0,"&dtdot;"],[0,"&disin;"],[0,"&isinsv;"],[0,"&isins;"],[0,{v:"&isindot;",n:824,o:"&notindot;"}],[0,"&notinvc;"],[0,"&notinvb;"],[1,{v:"&isinE;",n:824,o:"&notinE;"}],[0,"&nisd;"],[0,"&xnis;"],[0,"&nis;"],[0,"&notnivc;"],[0,"&notnivb;"],[6,"&barwed;"],[0,"&Barwed;"],[1,"&lceil;"],[0,"&rceil;"],[0,"&LeftFloor;"],[0,"&rfloor;"],[0,"&drcrop;"],[0,"&dlcrop;"],[0,"&urcrop;"],[0,"&ulcrop;"],[0,"&bnot;"],[1,"&profline;"],[0,"&profsurf;"],[1,"&telrec;"],[0,"&target;"],[5,"&ulcorn;"],[0,"&urcorn;"],[0,"&dlcorn;"],[0,"&drcorn;"],[2,"&frown;"],[0,"&smile;"],[9,"&cylcty;"],[0,"&profalar;"],[7,"&topbot;"],[6,"&ovbar;"],[1,"&solbar;"],[60,"&angzarr;"],[51,"&lmoustache;"],[0,"&rmoustache;"],[2,"&OverBracket;"],[0,"&bbrk;"],[0,"&bbrktbrk;"],[37,"&OverParenthesis;"],[0,"&UnderParenthesis;"],[0,"&OverBrace;"],[0,"&UnderBrace;"],[2,"&trpezium;"],[4,"&elinters;"],[59,"&blank;"],[164,"&circledS;"],[55,"&boxh;"],[1,"&boxv;"],[9,"&boxdr;"],[3,"&boxdl;"],[3,"&boxur;"],[3,"&boxul;"],[3,"&boxvr;"],[7,"&boxvl;"],[7,"&boxhd;"],[7,"&boxhu;"],[7,"&boxvh;"],[19,"&boxH;"],[0,"&boxV;"],[0,"&boxdR;"],[0,"&boxDr;"],[0,"&boxDR;"],[0,"&boxdL;"],[0,"&boxDl;"],[0,"&boxDL;"],[0,"&boxuR;"],[0,"&boxUr;"],[0,"&boxUR;"],[0,"&boxuL;"],[0,"&boxUl;"],[0,"&boxUL;"],[0,"&boxvR;"],[0,"&boxVr;"],[0,"&boxVR;"],[0,"&boxvL;"],[0,"&boxVl;"],[0,"&boxVL;"],[0,"&boxHd;"],[0,"&boxhD;"],[0,"&boxHD;"],[0,"&boxHu;"],[0,"&boxhU;"],[0,"&boxHU;"],[0,"&boxvH;"],[0,"&boxVh;"],[0,"&boxVH;"],[19,"&uhblk;"],[3,"&lhblk;"],[3,"&block;"],[8,"&blk14;"],[0,"&blk12;"],[0,"&blk34;"],[13,"&square;"],[8,"&blacksquare;"],[0,"&EmptyVerySmallSquare;"],[1,"&rect;"],[0,"&marker;"],[2,"&fltns;"],[1,"&bigtriangleup;"],[0,"&blacktriangle;"],[0,"&triangle;"],[2,"&blacktriangleright;"],[0,"&rtri;"],[3,"&bigtriangledown;"],[0,"&blacktriangledown;"],[0,"&dtri;"],[2,"&blacktriangleleft;"],[0,"&ltri;"],[6,"&loz;"],[0,"&cir;"],[32,"&tridot;"],[2,"&bigcirc;"],[8,"&ultri;"],[0,"&urtri;"],[0,"&lltri;"],[0,"&EmptySmallSquare;"],[0,"&FilledSmallSquare;"],[8,"&bigstar;"],[0,"&star;"],[7,"&phone;"],[49,"&female;"],[1,"&male;"],[29,"&spades;"],[2,"&clubs;"],[1,"&hearts;"],[0,"&diamondsuit;"],[3,"&sung;"],[2,"&flat;"],[0,"&natural;"],[0,"&sharp;"],[163,"&check;"],[3,"&cross;"],[8,"&malt;"],[21,"&sext;"],[33,"&VerticalSeparator;"],[25,"&lbbrk;"],[0,"&rbbrk;"],[84,"&bsolhsub;"],[0,"&suphsol;"],[28,"&LeftDoubleBracket;"],[0,"&RightDoubleBracket;"],[0,"&lang;"],[0,"&rang;"],[0,"&Lang;"],[0,"&Rang;"],[0,"&loang;"],[0,"&roang;"],[7,"&longleftarrow;"],[0,"&longrightarrow;"],[0,"&longleftrightarrow;"],[0,"&DoubleLongLeftArrow;"],[0,"&DoubleLongRightArrow;"],[0,"&DoubleLongLeftRightArrow;"],[1,"&longmapsto;"],[2,"&dzigrarr;"],[258,"&nvlArr;"],[0,"&nvrArr;"],[0,"&nvHarr;"],[0,"&Map;"],[6,"&lbarr;"],[0,"&bkarow;"],[0,"&lBarr;"],[0,"&dbkarow;"],[0,"&drbkarow;"],[0,"&DDotrahd;"],[0,"&UpArrowBar;"],[0,"&DownArrowBar;"],[2,"&Rarrtl;"],[2,"&latail;"],[0,"&ratail;"],[0,"&lAtail;"],[0,"&rAtail;"],[0,"&larrfs;"],[0,"&rarrfs;"],[0,"&larrbfs;"],[0,"&rarrbfs;"],[2,"&nwarhk;"],[0,"&nearhk;"],[0,"&hksearow;"],[0,"&hkswarow;"],[0,"&nwnear;"],[0,"&nesear;"],[0,"&seswar;"],[0,"&swnwar;"],[8,{v:"&rarrc;",n:824,o:"&nrarrc;"}],[1,"&cudarrr;"],[0,"&ldca;"],[0,"&rdca;"],[0,"&cudarrl;"],[0,"&larrpl;"],[2,"&curarrm;"],[0,"&cularrp;"],[7,"&rarrpl;"],[2,"&harrcir;"],[0,"&Uarrocir;"],[0,"&lurdshar;"],[0,"&ldrushar;"],[2,"&LeftRightVector;"],[0,"&RightUpDownVector;"],[0,"&DownLeftRightVector;"],[0,"&LeftUpDownVector;"],[0,"&LeftVectorBar;"],[0,"&RightVectorBar;"],[0,"&RightUpVectorBar;"],[0,"&RightDownVectorBar;"],[0,"&DownLeftVectorBar;"],[0,"&DownRightVectorBar;"],[0,"&LeftUpVectorBar;"],[0,"&LeftDownVectorBar;"],[0,"&LeftTeeVector;"],[0,"&RightTeeVector;"],[0,"&RightUpTeeVector;"],[0,"&RightDownTeeVector;"],[0,"&DownLeftTeeVector;"],[0,"&DownRightTeeVector;"],[0,"&LeftUpTeeVector;"],[0,"&LeftDownTeeVector;"],[0,"&lHar;"],[0,"&uHar;"],[0,"&rHar;"],[0,"&dHar;"],[0,"&luruhar;"],[0,"&ldrdhar;"],[0,"&ruluhar;"],[0,"&rdldhar;"],[0,"&lharul;"],[0,"&llhard;"],[0,"&rharul;"],[0,"&lrhard;"],[0,"&udhar;"],[0,"&duhar;"],[0,"&RoundImplies;"],[0,"&erarr;"],[0,"&simrarr;"],[0,"&larrsim;"],[0,"&rarrsim;"],[0,"&rarrap;"],[0,"&ltlarr;"],[1,"&gtrarr;"],[0,"&subrarr;"],[1,"&suplarr;"],[0,"&lfisht;"],[0,"&rfisht;"],[0,"&ufisht;"],[0,"&dfisht;"],[5,"&lopar;"],[0,"&ropar;"],[4,"&lbrke;"],[0,"&rbrke;"],[0,"&lbrkslu;"],[0,"&rbrksld;"],[0,"&lbrksld;"],[0,"&rbrkslu;"],[0,"&langd;"],[0,"&rangd;"],[0,"&lparlt;"],[0,"&rpargt;"],[0,"&gtlPar;"],[0,"&ltrPar;"],[3,"&vzigzag;"],[1,"&vangrt;"],[0,"&angrtvbd;"],[6,"&ange;"],[0,"&range;"],[0,"&dwangle;"],[0,"&uwangle;"],[0,"&angmsdaa;"],[0,"&angmsdab;"],[0,"&angmsdac;"],[0,"&angmsdad;"],[0,"&angmsdae;"],[0,"&angmsdaf;"],[0,"&angmsdag;"],[0,"&angmsdah;"],[0,"&bemptyv;"],[0,"&demptyv;"],[0,"&cemptyv;"],[0,"&raemptyv;"],[0,"&laemptyv;"],[0,"&ohbar;"],[0,"&omid;"],[0,"&opar;"],[1,"&operp;"],[1,"&olcross;"],[0,"&odsold;"],[1,"&olcir;"],[0,"&ofcir;"],[0,"&olt;"],[0,"&ogt;"],[0,"&cirscir;"],[0,"&cirE;"],[0,"&solb;"],[0,"&bsolb;"],[3,"&boxbox;"],[3,"&trisb;"],[0,"&rtriltri;"],[0,{v:"&LeftTriangleBar;",n:824,o:"&NotLeftTriangleBar;"}],[0,{v:"&RightTriangleBar;",n:824,o:"&NotRightTriangleBar;"}],[11,"&iinfin;"],[0,"&infintie;"],[0,"&nvinfin;"],[4,"&eparsl;"],[0,"&smeparsl;"],[0,"&eqvparsl;"],[5,"&blacklozenge;"],[8,"&RuleDelayed;"],[1,"&dsol;"],[9,"&bigodot;"],[0,"&bigoplus;"],[0,"&bigotimes;"],[1,"&biguplus;"],[1,"&bigsqcup;"],[5,"&iiiint;"],[0,"&fpartint;"],[2,"&cirfnint;"],[0,"&awint;"],[0,"&rppolint;"],[0,"&scpolint;"],[0,"&npolint;"],[0,"&pointint;"],[0,"&quatint;"],[0,"&intlarhk;"],[10,"&pluscir;"],[0,"&plusacir;"],[0,"&simplus;"],[0,"&plusdu;"],[0,"&plussim;"],[0,"&plustwo;"],[1,"&mcomma;"],[0,"&minusdu;"],[2,"&loplus;"],[0,"&roplus;"],[0,"&Cross;"],[0,"&timesd;"],[0,"&timesbar;"],[1,"&smashp;"],[0,"&lotimes;"],[0,"&rotimes;"],[0,"&otimesas;"],[0,"&Otimes;"],[0,"&odiv;"],[0,"&triplus;"],[0,"&triminus;"],[0,"&tritime;"],[0,"&intprod;"],[2,"&amalg;"],[0,"&capdot;"],[1,"&ncup;"],[0,"&ncap;"],[0,"&capand;"],[0,"&cupor;"],[0,"&cupcap;"],[0,"&capcup;"],[0,"&cupbrcap;"],[0,"&capbrcup;"],[0,"&cupcup;"],[0,"&capcap;"],[0,"&ccups;"],[0,"&ccaps;"],[2,"&ccupssm;"],[2,"&And;"],[0,"&Or;"],[0,"&andand;"],[0,"&oror;"],[0,"&orslope;"],[0,"&andslope;"],[1,"&andv;"],[0,"&orv;"],[0,"&andd;"],[0,"&ord;"],[1,"&wedbar;"],[6,"&sdote;"],[3,"&simdot;"],[2,{v:"&congdot;",n:824,o:"&ncongdot;"}],[0,"&easter;"],[0,"&apacir;"],[0,{v:"&apE;",n:824,o:"&napE;"}],[0,"&eplus;"],[0,"&pluse;"],[0,"&Esim;"],[0,"&Colone;"],[0,"&Equal;"],[1,"&ddotseq;"],[0,"&equivDD;"],[0,"&ltcir;"],[0,"&gtcir;"],[0,"&ltquest;"],[0,"&gtquest;"],[0,{v:"&leqslant;",n:824,o:"&nleqslant;"}],[0,{v:"&geqslant;",n:824,o:"&ngeqslant;"}],[0,"&lesdot;"],[0,"&gesdot;"],[0,"&lesdoto;"],[0,"&gesdoto;"],[0,"&lesdotor;"],[0,"&gesdotol;"],[0,"&lap;"],[0,"&gap;"],[0,"&lne;"],[0,"&gne;"],[0,"&lnap;"],[0,"&gnap;"],[0,"&lEg;"],[0,"&gEl;"],[0,"&lsime;"],[0,"&gsime;"],[0,"&lsimg;"],[0,"&gsiml;"],[0,"&lgE;"],[0,"&glE;"],[0,"&lesges;"],[0,"&gesles;"],[0,"&els;"],[0,"&egs;"],[0,"&elsdot;"],[0,"&egsdot;"],[0,"&el;"],[0,"&eg;"],[2,"&siml;"],[0,"&simg;"],[0,"&simlE;"],[0,"&simgE;"],[0,{v:"&LessLess;",n:824,o:"&NotNestedLessLess;"}],[0,{v:"&GreaterGreater;",n:824,o:"&NotNestedGreaterGreater;"}],[1,"&glj;"],[0,"&gla;"],[0,"&ltcc;"],[0,"&gtcc;"],[0,"&lescc;"],[0,"&gescc;"],[0,"&smt;"],[0,"&lat;"],[0,{v:"&smte;",n:65024,o:"&smtes;"}],[0,{v:"&late;",n:65024,o:"&lates;"}],[0,"&bumpE;"],[0,{v:"&PrecedesEqual;",n:824,o:"&NotPrecedesEqual;"}],[0,{v:"&sce;",n:824,o:"&NotSucceedsEqual;"}],[2,"&prE;"],[0,"&scE;"],[0,"&precneqq;"],[0,"&scnE;"],[0,"&prap;"],[0,"&scap;"],[0,"&precnapprox;"],[0,"&scnap;"],[0,"&Pr;"],[0,"&Sc;"],[0,"&subdot;"],[0,"&supdot;"],[0,"&subplus;"],[0,"&supplus;"],[0,"&submult;"],[0,"&supmult;"],[0,"&subedot;"],[0,"&supedot;"],[0,{v:"&subE;",n:824,o:"&nsubE;"}],[0,{v:"&supE;",n:824,o:"&nsupE;"}],[0,"&subsim;"],[0,"&supsim;"],[2,{v:"&subnE;",n:65024,o:"&varsubsetneqq;"}],[0,{v:"&supnE;",n:65024,o:"&varsupsetneqq;"}],[2,"&csub;"],[0,"&csup;"],[0,"&csube;"],[0,"&csupe;"],[0,"&subsup;"],[0,"&supsub;"],[0,"&subsub;"],[0,"&supsup;"],[0,"&suphsub;"],[0,"&supdsub;"],[0,"&forkv;"],[0,"&topfork;"],[0,"&mlcp;"],[8,"&Dashv;"],[1,"&Vdashl;"],[0,"&Barv;"],[0,"&vBar;"],[0,"&vBarv;"],[1,"&Vbar;"],[0,"&Not;"],[0,"&bNot;"],[0,"&rnmid;"],[0,"&cirmid;"],[0,"&midcir;"],[0,"&topcir;"],[0,"&nhpar;"],[0,"&parsim;"],[9,{v:"&parsl;",n:8421,o:"&nparsl;"}],[44343,{n:new Map(_t([[56476,"&Ascr;"],[1,"&Cscr;"],[0,"&Dscr;"],[2,"&Gscr;"],[2,"&Jscr;"],[0,"&Kscr;"],[2,"&Nscr;"],[0,"&Oscr;"],[0,"&Pscr;"],[0,"&Qscr;"],[1,"&Sscr;"],[0,"&Tscr;"],[0,"&Uscr;"],[0,"&Vscr;"],[0,"&Wscr;"],[0,"&Xscr;"],[0,"&Yscr;"],[0,"&Zscr;"],[0,"&ascr;"],[0,"&bscr;"],[0,"&cscr;"],[0,"&dscr;"],[1,"&fscr;"],[1,"&hscr;"],[0,"&iscr;"],[0,"&jscr;"],[0,"&kscr;"],[0,"&lscr;"],[0,"&mscr;"],[0,"&nscr;"],[1,"&pscr;"],[0,"&qscr;"],[0,"&rscr;"],[0,"&sscr;"],[0,"&tscr;"],[0,"&uscr;"],[0,"&vscr;"],[0,"&wscr;"],[0,"&xscr;"],[0,"&yscr;"],[0,"&zscr;"],[52,"&Afr;"],[0,"&Bfr;"],[1,"&Dfr;"],[0,"&Efr;"],[0,"&Ffr;"],[0,"&Gfr;"],[2,"&Jfr;"],[0,"&Kfr;"],[0,"&Lfr;"],[0,"&Mfr;"],[0,"&Nfr;"],[0,"&Ofr;"],[0,"&Pfr;"],[0,"&Qfr;"],[1,"&Sfr;"],[0,"&Tfr;"],[0,"&Ufr;"],[0,"&Vfr;"],[0,"&Wfr;"],[0,"&Xfr;"],[0,"&Yfr;"],[1,"&afr;"],[0,"&bfr;"],[0,"&cfr;"],[0,"&dfr;"],[0,"&efr;"],[0,"&ffr;"],[0,"&gfr;"],[0,"&hfr;"],[0,"&ifr;"],[0,"&jfr;"],[0,"&kfr;"],[0,"&lfr;"],[0,"&mfr;"],[0,"&nfr;"],[0,"&ofr;"],[0,"&pfr;"],[0,"&qfr;"],[0,"&rfr;"],[0,"&sfr;"],[0,"&tfr;"],[0,"&ufr;"],[0,"&vfr;"],[0,"&wfr;"],[0,"&xfr;"],[0,"&yfr;"],[0,"&zfr;"],[0,"&Aopf;"],[0,"&Bopf;"],[1,"&Dopf;"],[0,"&Eopf;"],[0,"&Fopf;"],[0,"&Gopf;"],[1,"&Iopf;"],[0,"&Jopf;"],[0,"&Kopf;"],[0,"&Lopf;"],[0,"&Mopf;"],[1,"&Oopf;"],[3,"&Sopf;"],[0,"&Topf;"],[0,"&Uopf;"],[0,"&Vopf;"],[0,"&Wopf;"],[0,"&Xopf;"],[0,"&Yopf;"],[1,"&aopf;"],[0,"&bopf;"],[0,"&copf;"],[0,"&dopf;"],[0,"&eopf;"],[0,"&fopf;"],[0,"&gopf;"],[0,"&hopf;"],[0,"&iopf;"],[0,"&jopf;"],[0,"&kopf;"],[0,"&lopf;"],[0,"&mopf;"],[0,"&nopf;"],[0,"&oopf;"],[0,"&popf;"],[0,"&qopf;"],[0,"&ropf;"],[0,"&sopf;"],[0,"&topf;"],[0,"&uopf;"],[0,"&vopf;"],[0,"&wopf;"],[0,"&xopf;"],[0,"&yopf;"],[0,"&zopf;"]]))}],[8906,"&fflig;"],[0,"&filig;"],[0,"&fllig;"],[0,"&ffilig;"],[0,"&ffllig;"]])),yi=/["&'<>$\x80-\uFFFF]/g,mr=new Map([[34,"&quot;"],[38,"&amp;"],[39,"&apos;"],[60,"&lt;"],[62,"&gt;"]]),Ra=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${Ra(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 S0=Ne(/[&<>'"]/g,mr),Pa=Ne(/["&\u00A0]/g,new Map([[34,"&quot;"],[38,"&amp;"],[160,"&nbsp;"]])),qa=Ne(/[&<>\u00A0]/g,new Map([[38,"&amp;"],[60,"&lt;"],[62,"&gt;"],[160,"&nbsp;"]])),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 Oa=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])),Ma=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])),Ua=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function Ha(t){return t.replace(/"/g,"&quot;")}function ja(t,e){var u;if(!t)return;let i=((u=e.encodeEntities)!==null&&u!==void 0?u:e.decodeEntities)===!1?Ha: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=Ma.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+=Va(u[r],e);return i}function Va(t,e){switch(t.type){case Zr:return Vt(t.children,e);case an:case Xr:return Ka(t);case tn:return Za(t);case nn:return Ya(t);case en:case un:case rn:return za(t,e);case Qr:return Ja(t,e)}}var Wa=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),Ga=new Set(["svg","math"]);function za(t,e){var u;e.xmlMode==="foreign"&&(t.name=(u=Oa.get(t.name))!==null&&u!==void 0?u:t.name,t.parent&&Wa.has(t.parent.name)&&(e={...e,xmlMode:!1})),!e.xmlMode&&Ga.has(t.name)&&(e={...e,xmlMode:"foreign"});let i=`<${t.name}`,r=ja(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 Ka(t){return`<${t.data}>`}function Ja(t,e){var u;let i=t.data||"";return((u=e.encodeEntities)!==null&&u!==void 0?u:e.decodeEntities)!==!1&&!(!e.xmlMode&&t.parent&&Ua.has(t.parent.name))&&(i=e.xmlMode||e.encodeEntities!=="utf8"?xr(i):qa(i)),i}function Ya(t){return`<![CDATA[${t.children[0].data}]]>`}function Za(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 Qa(t,e){let u=new dn(void 0,e);return new $a(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 Xa(t,e){let u=t.length;for(;u>0&&t[u-1]===e;)--u;return u<t.length?t.substring(0,u):t}function ts(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:es}):r)}return[...u.values()].reverse()}var es=(t,e,u)=>[...e];function mt(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 Ii(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=mt(t,["longWordSplit","wrapCharacters"])||[],this.forceWrapOnLimit=mt(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}},Ft=class{constructor(t=null){this.next=t}getRoot(){return this.next?this.next:this}},G=class extends Ft{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}},_i=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}},at=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 Ft{constructor(t=null){super(t),this.rows=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},$i=class extends Ft{constructor(t=null){super(t),this.cells=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},st=class extends Ft{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}},us=class extends Ft{constructor(t=null,e){super(t),this.transform=e}};function is(t){return[...t].map(e=>"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0")).join("")}var rs=class{constructor(t){this.whitespaceChars=t.preserveNewlines?t.whitespaceCharacters.replace(/\n/g,""):t.whitespaceCharacters;let e=is(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}},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,"&quot;")}`).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,`
14
+ `)e++;else return 0;return e}},ns=class{constructor(t,e,u=void 0){this.options=t,this.picker=e,this.metadata=u,this.whitespaceProcessor=new rs(t),this._stackItem=new G(t),this._wordTransformer=void 0}pushWordTransform(t){this._wordTransformer=new us(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 at||this._stackItem instanceof st)&&(this._stackItem.isPre?this._stackItem.rawText+=`
15
+ `:this._stackItem.inlineTextBuilder.startNewLine())}addWordBreakOpportunity(){(this._stackItem instanceof G||this._stackItem instanceof at||this._stackItem instanceof st)&&(this._stackItem.inlineTextBuilder.wordBreakOpportunity=!0)}addInline(t,{noWordTransform:e=!1}={}){if(this._stackItem instanceof G||this._stackItem instanceof at||this._stackItem instanceof st){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 at||this._stackItem instanceof st)&&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);Nt(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 _i(this.options,this._stackItem,{interRowLineBreaks:u,leadingLineBreaks:i,maxLineLength:this._stackItem.inlineTextBuilder.maxLineLength,maxPrefixLength:t,prefixAlign:e})}openListItem({prefix:t=""}={}){if(!(this._stackItem instanceof _i))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 at(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);Nt(e,r,t.leadingLineBreaks,Math.max(t.stashedLineBreaks,e.interRowLineBreaks))}closeList({trailingLineBreaks:t=2}={}){let e=this._popStackItem(),u=it(e);u&&Nt(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 st(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&&Nt(this._stackItem,r,e,u)}toString(){return it(this._stackItem.getRoot())}};function it(t){if(!(t instanceof G||t instanceof at||t instanceof st))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 Nt(t,e,u,i){if(!(t instanceof G||t instanceof at||t instanceof st))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 as(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=ls(t.encodeCharacters));let i=new mi(t.baseElements.selectors.map((a,s)=>[a,s+1])).build(Ai);function r(a){return os(a,t,i)}let n=$e(t.limits.maxDepth,cs,function(a,s){s.addInline(t.limits.ellipsis||"")});return function(a,s=void 0){return ss(a,s,t,u,r,n)}}function ss(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=Qa(t,{decodeEntities:u.decodeEntities}),o=r(s.children),l=new ns(u,i,e);return n(o,l),l.toString()}function os(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 cs(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 ls(t){if(!t||Object.keys(t).length===0)return;let e=Object.entries(t).filter(([,n])=>n!==!1),u=new RegExp(e.map(([n])=>`(${ts([...n][0])})`).join("|"),"g"),i=e.map(([,n])=>n),r=(n,...a)=>i[a.findIndex(s=>s)];return n=>n.replace(u,r)}function hs(t,e,u,i){}function ds(t,e,u,i){u.addLiteral(i.string||"")}function ps(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),u.addLiteral(i.string||""),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function fs(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,"&quot;")}`).join(" "):"";return`<${t.name}${e}>`}function wr(t){return`</${t.name}>`}function ms(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 xs(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 As(t,e,u,i){u.startNoWrap(),u.addLiteral(Vt(t,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap()}function Es(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 Bs(t,e,u,i){u.addLiteral(i.prefix||""),e(t.children,u),u.addLiteral(i.suffix||"")}var Cs=Object.freeze({__proto__:null,block:gs,blockHtml:Es,blockString:ps,blockTag:xs,inline:fs,inlineHtml:As,inlineString:ds,inlineSurround:Bs,inlineTag:ms,skip:hs});function Ut(t,e){return t[e]||(t[e]=[]),t[e]}function Ds(t,e=0){for(;t[e];)e++;return e}function bs(t,e){for(let u=0;u<e;u++){let i=Ut(t,u);for(let r=0;r<u;r++){let n=Ut(t,r);if(i[r]||n[u]){let a=i[r];i[r]=n[u],n[u]=a}}}}function ws(t,e,u,i){for(let r=0;r<t.rowspan;r++){let n=Ut(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 Ri(t,e,u,i){t[e+u]=Math.max(Ce(t,e+u),Ce(t,e)+i)}function ys(t,e,u){let i=[],r=0,n=t.length,a=[0];for(let l=0;l<n;l++){let p=Ut(i,l),E=t[l],B=0;for(let m=0;m<E.length;m++){let x=E[m];B=Ds(p,B),ws(x,i,l,B),B+=x.colspan,x.lines=x.text.split(`
19
+ `);let F=x.lines.length;Ri(a,l,x.rowspan,F+e)}r=p.length>r?p.length:r}bs(i,n>r?n:r);let s=[],o=[0];for(let l=0;l<r;l++){let p=0,E,B=Math.min(n,i[l].length);for(;p<B;)if(E=i[l][p],E){if(!E.rendered){let m=0;for(let x=0;x<E.lines.length;x++){let F=E.lines[x],b=a[p]+x;s[b]=(s[b]||"").padEnd(o[l])+F,m=F.length>m?F.length:m}Ri(o,l,E.colspan,m+u),E.rendered=!0}p+=E.rowspan}else{let m=a[p];s[m]=s[m]||"",p++}}return s.join(`
20
+ `)}function Fs(t,e,u,i){u.addLineBreak()}function vs(t,e,u,i){u.addWordBreakOpportunity()}function ks(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 Ss(t,e,u,i){u.openBlock({leadingLineBreaks:i.leadingLineBreaks||2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function Ts(t,e,u,i){u.openBlock({isPre:!0,leadingLineBreaks:i.leadingLineBreaks||2}),e(t.children,u),u.closeBlock({trailingLineBreaks:i.trailingLineBreaks||2})}function Ls(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 Is(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 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.
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?Xa(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 Ns(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=mt(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 $s(t,e,u,i){let r=i.itemPrefix||" * ";return Fr(t,e,u,i,()=>r)}function Rs(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=>Ii(e).toLowerCase();case"I":return e=>Ii(e);case"1":default:return e=>e.toString()}}function qs(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 Os(t,e){if(e===!0)return!0;if(!t)return!1;let{classes:u,ids:i}=qs(e),r=(t.class||"").split(" "),n=(t.id||"").split(" ");return r.some(a=>u.includes(a))||n.some(a=>i.includes(a))}function Ms(t,e,u,i){return Os(t.attribs,u.options.tables)?vr(t,e,u,i):Us(t,e,u,i)}function Us(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=>ys(a,i.rowSpacing??0,i.colSpacing??3),leadingLineBreaks:i.leadingLineBreaks,trailingLineBreaks:i.trailingLineBreaks});function r(a){let s=+mt(a,["attribs","colspan"])||1,o=+mt(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 Hs=Object.freeze({__proto__:null,anchor:Ns,blockquote:Is,dataTable:vr,heading:Ls,horizontalLine:ks,image:_s,lineBreak:Fs,orderedList:Rs,paragraph:Ss,pre:Ts,table:Ms,unorderedList:$s,wbr:vs}),js={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},Vs=(t,e,u)=>[...t,...e],kr=(t,e,u)=>[...e],Ws=(t,e,u)=>t.some(i=>typeof i=="object")?Vs(t,e):kr(t,e);function Gs(t={}){return t=(0,Ar.default)(js,t,{arrayMerge:kr,customMerge:e=>e==="selectors"?Ws:void 0}),t.formatters=Object.assign({},Cs,Hs,t.formatters),t.selectors=Br(t.selectors,e=>e.selector),Ks(t),as(t)}function zs(t,e={},u=void 0){return Gs(e)(t,u)}function Ks(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"&&mt(u,["options","noLinkBrackets"])&&e(u,["options","linkBrackets"],!1)}async function Js(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 E=(p.storage||{}).url;if(c.info(`message_url: ${E}`),!E){let x=(p.message||{}).headers||{},F=x.subject||"",b=x.from||"",y=x.to||"";if(u.from_email&&!b.toLowerCase().includes(u.from_email.toLowerCase())||u.to_email&&!y.toLowerCase().includes(u.to_email.toLowerCase())||u.subject&&!F.toLowerCase().includes(u.subject.toLowerCase()))continue;n.push({subject:F,from:b,to:y,date:new Date(p.timestamp*1e3).toUTCString(),body:"Message body not available (Mailgun storage disabled)",message_id:x["message-id"]||""});continue}let B=E.split("/"),m=B[B.length-1];if(c.info(`Storage key: ${m}`),m){let x=`https://api.mailgun.net/v3/domains/${r}/messages/${m}`;try{let F=await fetch(x,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${i}`).toString("base64")}`,Accept:"application/json"}});if(F.ok){let b=await F.json(),y=b.Subject||"",_=b.From||"",A=b.To||"",C=b.Date||"",w=b["Message-Id"]||"";c.info(`subject: ${y}`),c.info(`from_addr: ${_}`),c.info(`to_addr: ${A}`),c.info(`date: ${C}`),c.info(`message_id: ${w}`);let S=b["body-html"]||b["body-plain"]||"";if(S&&S.includes("<")&&(S=zs(S)),c.info(`Body: ${S.substring(0,200)}...`),u.subject&&!y.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!S.toLowerCase().includes(u.body_contains.toLowerCase()))continue;n.push({subject:y,from:_,to:A,date:C,body:S,message_id:w});continue}else c.warn(`Messages API returned ${F.status}`)}catch(F){c.warn(`Failed to parse JSON response: ${F}`)}}try{let x=await fetch(E,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${i}`).toString("base64")}`}});if(!x.ok){c.warn(`Could not fetch stored message: ${x.status}`);continue}let F=await x.text();c.info(`Fallback: Raw email length: ${F.length}`);let b=F.split(`
25
+ `),y=!0,_={},A="";for(let ct=0;ct<b.length;ct++){let lt=b[ct];if(lt.trim()===""&&y){y=!1;continue}if(y){let ht=lt.match(/^([^:]+):\s*(.+)$/);ht&&(_[ht[1].toLowerCase()]=ht[2])}else A+=lt+`
26
+ `}let C=_.subject||"",w=_.from||"",S=_.to||"",$=_.date||"",Y=_["message-id"]||"";if(u.subject&&!C.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!A.toLowerCase().includes(u.body_contains.toLowerCase()))continue;n.push({subject:C,from:w,to:S,date:$,body:A.trim(),message_id:Y})}catch(x){c.warn(`Error fetching raw message: ${x}`)}}if(n.length>0){try{n.sort((E,B)=>{let m=new Date(E.date).getTime();return new Date(B.date).getTime()-m})}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 Ys(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&param2=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 Ys(t,e,u){try{let i=`${e}
83
+ Return only the required content or 'NOT_FOUND'.`}else throw new Error(`Unsupported extraction type: ${t}`)}async function Zs(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: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:
89
+ `,r=ie(u);return(await St({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 Qs(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=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
- From: ${E.from}
96
- To: ${E.to}
97
- Date: ${E.date}
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=Ys(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 Js(t,e.forward_email,l);if(p.length>0){c.info(`Found ${p.length} emails matching criteria`);let E=[];for(let B of p){let m=`Subject: ${B.subject}
95
+ From: ${B.from}
96
+ To: ${B.to}
97
+ Date: ${B.date}
98
98
 
99
99
  Body:
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-CWKN3QZI-3CQ72ACY.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-CWKN3QZI-3CQ72ACY.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=xu(t.deviceName),r=mu(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=pu(t.deviceName),l=fu(t.deviceName),p={acceptDownloads:!0,...o,timezoneId:t.timezoneId||"America/Los_Angeles",locale:t.locale||"en-US"};t.viewport&&(p.viewport=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+lu}:gu(t.deviceName);c.info(`[BrowserManager] windowSize=${JSON.stringify(b)}`),n&&x.on("page",async f=>{try{await su(f,b.width,b.height),y&&await f.setViewportSize(y)}catch(D){c.warn("[BrowserManager] Failed to set window bounds via CDP:",D)}});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===hu)return"desktop";let e=du(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 cu(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-CWKN3QZI-3CQ72ACY.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.
100
+ ${B.body}`,x=await Zs(m,r,e.model);c.info(`Extracted content: ${x}`),x&&x!=="NOT_FOUND"&&E.push({content:x,email_subject:B.subject,email_from:B.from,email_date:B.date})}if(E.length>0){let B=E[0],m=`$email_${e.extraction_type}`;e.extraction_type==="custom"?m="$email_extracted_content":e.extraction_type==="activation_link"?m="$email_magic_link":e.extraction_type==="verification_code"&&(m="$email_otp_code");let x=(new Date().getTime()-n.getTime())/1e3;return c.info(`Successfully extracted content after ${s} attempts in ${x.toFixed(1)} seconds`),{data:B.content,result_variable:m,status:"success",message:`Successfully extracted content from email: ${B.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 Xs=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 Qs(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)} },`,"});"]}},to=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 eo(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:to,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:E}=u,{page:B,agentServices:m}=i;c.info(`[extract_email_content] Extracting ${n} from ${r}`);try{let x={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:E}}};await e.execute(B,x,m);let F=Sr(n);return{success:!0,actionEntity:x,message:`Extracted ${n} and saved to $${F}`}}catch(x){return{success:!1,error:x.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:E}},feedback:x.message}}}}})}var $t=null;async function J(){if($t)return $t;let t=(await import("./handler-NCYONWSZ-FHSI4NBE.js")).default;return $t=new t,$t}async function Re(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),Iu(t,r),Vu(t,n),"Click, hover, double-click, right-click, or drag elements"}async function Pe(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),Ru(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 Pu(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),_u(t,i),ju(t,r),Jr(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 Xs;return(await import("./handler-NCYONWSZ-FHSI4NBE.js")).default.registerAction("extract_email_content",u),eo(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 uo(t){let[e,u,i,r,n,a,s,o,l,p]=await Promise.all([Re(t),Pe(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 io(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 ro=[Re(H),Pe(H),qe(H),Oe(H),Me(H),Ue(H),He(H),je(H),We(H),Ve(H)],no=Promise.all(ro);async function L0(){await no}function I0(){return H}function _0(t=!0){let e=new ue;return t&&(Re(e),Pe(e),qe(e),Oe(e),Me(e),Ue(e),He(e),Ve(e),je(e),We(e)),e}async function N0(){let t=new ue,e=await uo(t),u=io(e);return{registry:t,capabilities:e,summary:u}}function $0(){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 R0=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:Tt(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:Tt(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 P0(t){return t.getTools().map(e=>({name:e.name,description:e.description,inputSchema:Tt(e.schema)}))}async function co(t,e){let u=JSON.parse(rt.readFileSync(e,"utf-8"));u.cookies?.length&&await t.addCookies(u.cookies)}var H0=class{constructor(t={}){t.testDir&&(this.testDir=t.testDir,this.videoBasePath=Bt.join(t.testDir,"videos"),this.statesBasePath=Bt.join(t.testDir,"states"),this.downloadsBasePath=Bt.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=xu(t.deviceName),r=mu(t.deviceName),n=i===Et.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 C=[];(t.enableCamera||t.enableMicrophone)&&(C.push("--use-fake-device-for-media-stream","--use-fake-ui-for-media-stream"),t.enableMicrophone&&t.fakeAudioCapturePath&&(C.push(`--use-file-for-fake-audio-capture=${t.fakeAudioCapturePath}`),c.info(`[BrowserManager] Using fake audio capture file: ${t.fakeAudioCapturePath}`)));let w=a&&t.extensionPath?[`--disable-extensions-except=${t.extensionPath}`,`--load-extension=${t.extensionPath}`]:[];s.args=[...nu(e,t.disableSecurity??!0,u),...C,...w,...this.additionalArgs],r&&(s.channel=r,c.debug(`[BrowserManager] Launching browser with channel: ${r}`))}let o=pu(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 E=a&&n?t.localStorageStatePath:void 0;t.localStorageStatePath&&!E&&(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 B,m,x,F=!1;if(n&&(a||t.userDataDir)){if(t.userDataDir)x=t.userDataDir;else{let w=this.testDir||rt.mkdtempSync(Bt.join(ao.tmpdir(),"shiplight-"));x=Bt.join(w,`ext-profile-${Date.now()}`),rt.mkdirSync(x,{recursive:!0}),F=!0}let C={...s,...p};m=await Pi.launchPersistentContext(x,C),E&&(await co(m,E),c.info(`[BrowserManager] Loaded storage state into persistent context from ${E}`)),B=m.browser(),c.info(`[BrowserManager] Launched persistent context${t.extensionPath?` for extension at ${t.extensionPath}`:` with profile at ${x}`}`)}else{switch(i){case Et.Firefox:B=await so.launch(s);break;case Et.Webkit:B=await oo.launch(s);break;case Et.Chromium:default:B=await Pi.launch(s);break}m=await B.newContext(p)}if(m.addInitScript(ru),t.enableCamera||t.enableMicrophone)if(!n)c.warn("[BrowserManager] Camera/microphone enabled but browser is not Chromium; ignoring.");else{let C=[];t.enableCamera&&C.push("camera"),t.enableMicrophone&&C.push("microphone");try{await m.grantPermissions(C),c.info(`[BrowserManager] Granted permissions: ${C.join(", ")}`)}catch(w){c.warn("[BrowserManager] Failed to grant camera/microphone permissions:",w)}}if(t.cookies&&t.cookies.length>0){let C=(Date.now()+31536e6)/1e3,w=t.cookies.map(S=>({...S,expires:C}));await m.addCookies(w),c.info(`[BrowserManager] Added ${t.cookies.length} cookies to browser context with expires=${C}`)}let b=t.viewport,y=b?{width:b.width,height:b.height+lu}:fu(t.deviceName);if(c.info(`[BrowserManager] windowSize=${JSON.stringify(y)}`),n){let C=async w=>{try{await su(w,y.width,y.height),b&&await w.setViewportSize(b)}catch(S){c.warn("[BrowserManager] Failed to set window bounds via CDP:",S)}};for(let w of m.pages())await C(w);m.on("page",C)}let _="";if(n&&e!==void 0)try{_=await au(e)}catch(C){c.warn("[BrowserManager] Failed to get CDP WebSocket URL:",C)}let A={debugPort:e,browser:B,context:m,startTime:new Date,timeout:null,browserWsUrl:_,downloadsBasePath:this.downloadsBasePath,browserType:i,userDataDir:x,isTempUserDataDir:F};if(this.terminationTimeout!==null){let C=setTimeout(()=>{c.info(`[BrowserManager] Browser auto-terminated after ${this.terminationTimeout}ms`),this.terminateBrowser(A).catch(w=>c.error("[BrowserManager] Error terminating browser:",w))},this.terminationTimeout);A.timeout=C}return A}async terminateBrowser(t){if(t.timeout&&clearTimeout(t.timeout),await t.context.close(),await t.browser.close(),t.isTempUserDataDir&&t.userDataDir)try{rt.rmSync(t.userDataDir,{recursive:!0,force:!0})}catch(e){c.warn("[BrowserManager] Failed to clean up temp user data dir:",t.userDataDir,e)}}getVideoBasePath(){return this.videoBasePath}getStatesBasePath(){return this.statesBasePath}getDownloadsBasePath(){return this.downloadsBasePath}},j0=t=>{if(!t||t===hu)return"desktop";let e=du(t);return e&&e.isMobile?"mobile":"desktop"},lo=(t=>(t.Desktop="desktop",t.Mobile="mobile",t))(lo||{}),ho=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 po(t,e=3e3,u=1e3){try{await Xt(t,e,u)}catch{}}async function fo(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 go(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 mo=te(Wr(),1);function xo(t){return t.url()===":"}var Ao=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 ho(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 cu(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 fo(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=mo.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}`),[]}}},Eo=(t=>(t.Started="started",t.Action="action",t.Completion="completion",t.Error="error",t.Aborted="aborted",t.Keepalive="keepalive",t))(Eo||{}),Bo=class extends Error{constructor(t){super(t),this.name="AgentTaskFailedError",this.details=t}},Co=1,Do=3,bo=40;function Ct(t,e){let u={};for(let[i,r]of Object.entries(t))u[i]=e.has(i)?"*****":r;return u}var wo=class{constructor(t){this.context=t,this._newActionEntities=new Map,this.agentServices=new Ao(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-NCYONWSZ-FHSI4NBE.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,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);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-RY6JUSEK-Y2CICX3C.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.
125
+ If NO intrusive popup is present, do nothing and report that no intrusive popup was found.`,void 0,!1,Do),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()}`),xo(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");P.existsSync(i)||P.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?E=>{if(E.type==="action"&&E.debugInfo){let B=`${u}-step${E.step}`;this.saveDebugInfoToFiles(B,E.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 E={tokenUsages:s.tokenUsages};this.trackAIAction(u,"execute",E,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 E=`${u}-step${p.step}`;this.saveDebugInfoToFiles(E,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 Bo(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?Ct(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},E=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 B=await e();t=this.agentServices.validatePage(t);let m=t.url(),x=await this.captureDOMSnapshot(t),F=this.context.stepTracking?.captureVariables?Ct(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 y=Date.now()-s,_=this.context.stepTracking.results[i]?.screenshot,A=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:E,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:y,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:m,domSnapshot:x||void 0,variables:F,screenshotPath:_,timestamp:A})}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),B}catch(B){t=this.agentServices.validatePage(t);let m=n&&!this.context.isSelfHealing;if(m&&(this.context.stepTracking&&await this.updateStepResult(i,"failure",B.message),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=B.message)),!u||u.trim()==="")throw c.error("No description provided for self-healing"),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),B;if(!m){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(),y=await this.captureDOMSnapshot(t),_=this.context.stepTracking.captureVariables?Ct(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},A=Date.now()-s,C=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:o,domSnapshot:l||void 0,variables:p,screenshotPath:E,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:A,status:"failure",errorMessage:B.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:b,domSnapshot:y||void 0,variables:_,timestamp:C})}throw this.context.stepTracking&&(await this.updateStepResult(i,void 0,void 0),this.context.stepTracking.currentStepId=void 0),B}this.context.isSelfHealing=!0,c.info(`Action failed at step ${i}. ${u}`),c.info(`with error: ${B.message}`);let x;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){x=`[Auto-dismissed modal: ${b.details}]`,c.info(`Modal dismissed, retrying original action for step ${i}`);try{let y=await e();return this.context.isSelfHealing=!1,this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=x+" Retry successful"),this.context.stepTracking&&(await this.updateStepResult(i,"success",x),this.context.stepTracking.currentStepId=void 0),y}catch(y){c.info(`Retry after modal dismissal failed: ${y.message}, falling back to self-healing`)}}}let F=a??Co;c.info(`Calling execute() to self-heal (maxSteps: ${F})`);try{let b=await this.execute(t,u,i,!1,F);if(this.context.isSelfHealing=!1,!b.success)throw new Error(`Self-healing failed: ${b.details}`);let y=b.actions?.at(-1);r&&y&&(this._newActionEntities.set(r,y),c.info(`Stored new action entity for stmtUid: ${r} (last of ${b.actions?.length} actions)`));let _=t.url(),A=await this.captureDOMSnapshot(t),C=this.context.stepTracking?.captureVariables?Ct(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking){this.context.stepTracking.results[i].autoHealed=!0,this.context.stepTracking.results[i].healedAction=y;let w=x||"";await this.updateStepResult(i,"success",w)}if(this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=Date.now()-s,S=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:E,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{actionEntity:y,playwrightCode:b.actions?.map(Y=>Y.locator||""),llmPrompt:b.debugInfo?.userPrompt,llmResponse:b.debugInfo?.rawLlmResponse,llmReasoning:b.debugInfo?.reasoningContent},consoleLogs:this.getConsoleLogsForStep(i),durationMs:w,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:_,domSnapshot:A||void 0,variables:C,screenshotPath:S,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 y=t.url(),_=await this.captureDOMSnapshot(t),A=this.context.stepTracking.captureVariables?Ct(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},C=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:E,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:i,description:u,action:{playwrightCode:[e.toString()]},consoleLogs:this.getConsoleLogsForStep(i),durationMs:C,status:"failure",errorMessage:b.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:y,domSnapshot:_||void 0,variables:A,timestamp:w})}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 po(t,e,u)}async waitUntilCondition(t,e,u=60,i){return go(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-5KZL6HVN-IMIVPSCB.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}
@@ -134,7 +134,7 @@ If the page is not signed in, sign in with the OAuth provider "${n.provider_name
134
134
  `}e.additional_prompt&&(r+=`
135
135
  Additional instructions: ${e.additional_prompt}
136
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-CWKN3QZI-3CQ72ACY.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.
137
+ ${r}`);let n=this.agentServices.knowledgeRetriever,a=!1;this.agentServices.hasKnowledgeRetriever()&&n&&(k.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(B,m,x,F)=>await n(B,m,x,"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 B=await Eu(t,e.site_url,{verification_hint:e.verification_hint,num_verification_exprs:e.num_verification_exprs},async(m,x)=>this.run(m,x),async m=>this.getDOMText(m));B?(l=B,k.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):k.log("Failed to generate validation locators, login will still succeed")}catch(B){k.log(`Error generating validation locators: ${B.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||[],E=p.length>0?p:u?.cached_actions;return{success:!0,page:t,storage_state:o,cached_actions:E,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-NCYONWSZ-FHSI4NBE.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,"-"));P.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(P.mkdirSync(r,{recursive:!0}),e.systemPrompt){let n=M.join(r,"system_prompt.txt");P.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");P.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};P.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`);P.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");P.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");P.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 P.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 P.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 P.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 P.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 yo(){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(y=>y.type==="year").value,i=e.find(y=>y.type==="month").value,r=e.find(y=>y.type==="day").value,n=e.find(y=>y.type==="hour").value,a=e.find(y=>y.type==="minute").value,s=e.find(y=>y.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),E=Date.parse(l+"Z"),B=Date.parse(p+"Z"),m=Math.round((B-E)/(1e3*60)),x=String(Math.floor(Math.abs(m)/60)).padStart(2,"0"),F=String(Math.abs(m)%60).padStart(2,"0"),b=m<=0?"+":"-";return`${u}-${i}-${r}T${n}:${a}:${s}.${o}${b}${x}:${F}`}function Fo(t){let e=t.variableStore;return e.has("currentTime")||e.set("currentTime",yo()),{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 V0(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=Fo({model:t.model,variableStore:e,testDataDir:t.testDataDir,downloadDir:t.downloadDir});return new wo(i)}var W0="1.0.0",vo=Rt.object({found:Rt.boolean().describe("Whether an activation code was found in the document"),activation_code:Rt.string().nullable().describe("The extracted activation code, or null if not found"),explanation:Rt.string().describe("Brief explanation of what was found or why nothing was found")});async function ko(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: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};
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 St({model:ie(u),system:n,messages:a,output:Cu.object({schema:vo}),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 So=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 ko(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)} },`,"});"]}},To=qi.object({file_name:qi.string().describe("Name of the PDF file to extract activation code from (must be in the download directory)")});function Lo(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:To,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 Io(){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 So;Yu.registerAction("extract_activation_code",t),Lo(H,t),c.debug("[sdk-internal] Registered tool: extract_activation_code"),c.debug("[sdk-internal] Internal tools registered successfully")}Io();export{zr as a,E0 as b,B0 as c,C0 as d,D0 as e,L0 as f,I0 as g,_0 as h,N0 as i,$0 as j,R0 as k,P0 as l,H0 as m,j0 as n,Ao as o,Eo as p,Bo as q,wo as r,Fo as s,V0 as t,W0 as u};
146
146
  /*! Bundled license information:
147
147
 
148
148
  @otplib/plugin-crypto/index.js: