@cortex-js/compute-engine 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -5
- package/dist/compute-engine.esm.js +16755 -10484
- package/dist/compute-engine.min.esm.js +2 -7
- package/dist/compute-engine.min.js +2 -7
- package/dist/math-json.esm.js +148 -12472
- package/dist/math-json.min.esm.js +2 -7
- package/dist/math-json.min.js +2 -7
- package/dist/types/common/grapheme-splitter.d.ts +1 -1
- package/dist/types/common/signals.d.ts +90 -0
- package/dist/types/compute-engine/assume.d.ts +21 -6
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +107 -0
- package/dist/types/compute-engine/boxed-expression/box.d.ts +56 -0
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +39 -0
- package/dist/types/compute-engine/boxed-expression/boxed-domain.d.ts +8 -0
- package/dist/types/compute-engine/boxed-expression/boxed-function-definition.d.ts +2 -0
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +95 -0
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +83 -0
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +21 -0
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +23 -0
- package/dist/types/compute-engine/boxed-expression/boxed-symbol-definition.d.ts +98 -0
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +74 -0
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +12 -0
- package/dist/types/compute-engine/boxed-expression/order.d.ts +53 -0
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +15 -0
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +37 -0
- package/dist/types/compute-engine/compute-engine.d.ts +284 -99
- package/dist/types/compute-engine/cost-function.d.ts +3 -0
- package/dist/types/compute-engine/dictionary/arithmetic-add.d.ts +11 -0
- package/dist/types/compute-engine/dictionary/arithmetic-divide.d.ts +9 -0
- package/dist/types/compute-engine/dictionary/arithmetic-multiply.d.ts +17 -0
- package/dist/types/compute-engine/dictionary/arithmetic-power.d.ts +9 -0
- package/dist/types/compute-engine/dictionary/arithmetic.d.ts +2 -12
- package/dist/types/compute-engine/dictionary/collections.d.ts +1 -1
- package/dist/types/compute-engine/dictionary/core.d.ts +2 -2
- package/dist/types/compute-engine/dictionary/dictionary.d.ts +18 -11
- package/dist/types/compute-engine/dictionary/logic.d.ts +1 -1
- package/dist/types/compute-engine/dictionary/polynomials.d.ts +2 -0
- package/dist/types/compute-engine/dictionary/relational-operator.d.ts +2 -0
- package/dist/types/compute-engine/dictionary/sets.d.ts +1 -1
- package/dist/types/compute-engine/dictionary/trigonometry.d.ts +2 -2
- package/dist/types/compute-engine/domain-utils.d.ts +30 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +2 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +2 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +2 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +4 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-inequalities.d.ts +2 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +2 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +2 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +2 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +2 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +2 -0
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +57 -0
- package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +23 -0
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +198 -0
- package/dist/types/compute-engine/latex-syntax/public.d.ts +576 -0
- package/dist/types/{common → compute-engine/latex-syntax}/serialize-number.d.ts +4 -5
- package/dist/types/{latex-syntax → compute-engine/latex-syntax}/serializer-style.d.ts +2 -1
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +41 -0
- package/dist/types/{latex-syntax/core → compute-engine/latex-syntax}/tokenizer.d.ts +2 -2
- package/dist/types/compute-engine/numerics/numeric-complex.d.ts +3 -0
- package/dist/types/compute-engine/numerics/numeric-decimal.d.ts +12 -0
- package/dist/types/compute-engine/numerics/numeric.d.ts +35 -0
- package/dist/types/compute-engine/numerics/primes.d.ts +2 -0
- package/dist/types/compute-engine/public.d.ts +1416 -447
- package/dist/types/compute-engine/rules.d.ts +16 -6
- package/dist/types/compute-engine/simplify-rules.d.ts +17 -0
- package/dist/types/compute-engine/symbolic/expand.d.ts +11 -0
- package/dist/types/compute-engine/symbolic/flatten.d.ts +7 -0
- package/dist/types/compute-engine/symbolic/negate.d.ts +12 -0
- package/dist/types/compute-engine/symbolic/polynomials.d.ts +52 -0
- package/dist/types/compute-engine/symbolic/product.d.ts +45 -0
- package/dist/types/compute-engine/symbolic/sum.d.ts +25 -0
- package/dist/types/compute-engine/symbolic/utils.d.ts +47 -0
- package/dist/types/compute-engine.d.ts +3 -5
- package/dist/types/math-json/math-json-format.d.ts +101 -0
- package/dist/types/math-json/utils.d.ts +97 -0
- package/dist/types/math-json.d.ts +4 -3
- package/package.json +29 -28
- package/dist/compute-engine.js +0 -17296
- package/dist/cortex.esm.js +0 -20989
- package/dist/cortex.js +0 -21011
- package/dist/cortex.min.esm.js +0 -7
- package/dist/cortex.min.js +0 -7
- package/dist/math-json.js +0 -12517
- package/dist/types/common/debug.d.ts +0 -28
- package/dist/types/common/utils.d.ts +0 -153
- package/dist/types/compute-engine/canonical-forms.d.ts +0 -74
- package/dist/types/compute-engine/dictionary/domains.d.ts +0 -26
- package/dist/types/compute-engine/dictionary/utils.d.ts +0 -5
- package/dist/types/compute-engine/domains.d.ts +0 -4
- package/dist/types/compute-engine/evaluate.d.ts +0 -13
- package/dist/types/compute-engine/expression-map.d.ts +0 -11
- package/dist/types/compute-engine/internal-compute-engine.d.ts +0 -108
- package/dist/types/compute-engine/numeric-complex.d.ts +0 -2
- package/dist/types/compute-engine/numeric-decimal.d.ts +0 -12
- package/dist/types/compute-engine/numeric.d.ts +0 -21
- package/dist/types/compute-engine/numerical-eval.d.ts +0 -5
- package/dist/types/compute-engine/order.d.ts +0 -18
- package/dist/types/compute-engine/patterns.d.ts +0 -22
- package/dist/types/compute-engine/predicates.d.ts +0 -42
- package/dist/types/compute-engine/simplify.d.ts +0 -6
- package/dist/types/compute-engine/utils.d.ts +0 -15
- package/dist/types/cortex/formatter.d.ts +0 -165
- package/dist/types/cortex/parse-cortex.d.ts +0 -5
- package/dist/types/cortex/reserved-words.d.ts +0 -1
- package/dist/types/cortex/serialize-cortex.d.ts +0 -14
- package/dist/types/cortex.d.ts +0 -8
- package/dist/types/latex-syntax/definitions-algebra.d.ts +0 -2
- package/dist/types/latex-syntax/definitions-arithmetic.d.ts +0 -3
- package/dist/types/latex-syntax/definitions-calculus.d.ts +0 -2
- package/dist/types/latex-syntax/definitions-core.d.ts +0 -3
- package/dist/types/latex-syntax/definitions-inequalities.d.ts +0 -2
- package/dist/types/latex-syntax/definitions-other.d.ts +0 -3
- package/dist/types/latex-syntax/definitions-sets.d.ts +0 -2
- package/dist/types/latex-syntax/definitions-symbols.d.ts +0 -3
- package/dist/types/latex-syntax/definitions-trigonometry.d.ts +0 -3
- package/dist/types/latex-syntax/definitions.d.ts +0 -40
- package/dist/types/latex-syntax/latex-syntax.d.ts +0 -27
- package/dist/types/latex-syntax/parse.d.ts +0 -138
- package/dist/types/latex-syntax/public.d.ts +0 -456
- package/dist/types/latex-syntax/serializer.d.ts +0 -26
- package/dist/types/latex-syntax/utils.d.ts +0 -10
- package/dist/types/point-free-parser/characters.d.ts +0 -25
- package/dist/types/point-free-parser/combinators.d.ts +0 -46
- package/dist/types/point-free-parser/core-combinators.d.ts +0 -78
- package/dist/types/point-free-parser/grammar.d.ts +0 -12
- package/dist/types/point-free-parser/identifier-parsers.d.ts +0 -7
- package/dist/types/point-free-parser/numeric-parsers.d.ts +0 -8
- package/dist/types/point-free-parser/parsers.d.ts +0 -130
- package/dist/types/point-free-parser/string-parsers.d.ts +0 -29
- package/dist/types/point-free-parser/whitespace-parsers.d.ts +0 -17
- package/dist/types/public.d.ts +0 -163
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((e="undefined"!=typeof globalThis?globalThis:e||self).ComputeEngine={})}(this,(function(e){const i=8205,n=[127462,127487];function t(e){return e===i||65038===e||65039===e||e>=127995&&e<=128e3||e>=129456&&e<=129460||e>=917536&&e<=917632}function r(e){return e>=n[0]&&e<=n[1]}class o{constructor(e){this.obeyspaces=!1,this.s=function(e){if(/^[\u0020-\u00FF]*$/.test(e))return e;const n=[],o=function(e){const i=[];for(let n=0;n<e.length;n++){let t=e.charCodeAt(n);if(t>=55296&&t<=56319){const i=e.charCodeAt(n+1);i>=56320&&i<=57343&&(t=65536+1024*(t-55296)+(i-56320),n++)}i.push(t)}return i}(e);let s=0;for(;s<o.length;){const e=o[s++],a=o[s];if(a===i){const e=s-1;for(s+=2;o[s]===i;)s+=2;n.push(String.fromCodePoint(...o.slice(e,2*s-e+1)))}else if(t(a)){const e=s-1;for(;t(o[s]);)s+=o[s]===i?2:1;n.push(String.fromCodePoint(...o.slice(e,2*s-e-1)))}else r(e)?(s+=1,n.push(String.fromCodePoint(...o.slice(s-2,2)))):n.push(String.fromCodePoint(e))}return n}(e),this.pos=0}end(){return this.pos>=this.s.length}get(){return this.pos<this.s.length?this.s[this.pos++]:""}peek(){return this.s[this.pos]}match(e){let i;return i="string"==typeof this.s?e.exec(this.s.slice(this.pos)):e.exec(this.s.slice(this.pos).join("")),(null==i?void 0:i[0])?(this.pos+=i[0].length,i[0]):null}next(){if(this.end())return null;if(!this.obeyspaces&&this.match(/^[ \f\n\r\t\v\xA0\u2028\u2029]+/))return"<space>";if(this.obeyspaces&&this.match(/^[ \f\n\r\t\v\xA0\u2028\u2029]/))return"<space>";const e=this.get();if("\\"===e){if(!this.end()){let e=this.match(/^[a-zA-Z*]+/);if(e)this.match(/^[ \f\n\r\t\v\xA0\u2028\u2029]*/);else if(e=this.get()," "===e)return"<space>";return"\\"+e}}else{if("{"===e)return"<{>";if("}"===e)return"<}>";if("^"===e){if("^"===this.peek()){this.get();const e=this.match(/^(\^(\^(\^(\^[0-9a-f])?[0-9a-f])?[0-9a-f])?[0-9a-f])?[0-9a-f][0-9a-f]/);if(e)return String.fromCodePoint(parseInt(e.slice(e.lastIndexOf("^")+1),16))}return e}if("#"===e){if(!this.end()){let e=!1;if(/[0-9?]/.test(this.peek())&&(e=!0,this.pos+1<this.s.length)){const i=this.s[this.pos+1];e=/[^0-9A-Za-z]/.test(i)}return e?"#"+this.get():"#"}}else if("$"===e)return"$"===this.peek()?(this.get(),"<$$>"):"<$>"}return e}}function s(e,i){var n,t,r,o;let s=[],l=e.next();if(l)if("\\relax"===l);else if("\\noexpand"===l)l=e.next(),l&&s.push(l);else if("\\obeyspaces"===l)e.obeyspaces=!0;else if("\\space"===l||"~"===l)s.push("<space>");else if("\\bgroup"===l)s.push("<{>");else if("\\egroup"===l)s.push("<}>");else if("\\string"===l)l=e.next(),l&&("\\"===l[0]?Array.from(l).forEach((e=>s.push("\\"===e?"\\backslash":e))):"<{>"===l?s.push("\\{"):"<space>"===l?s.push("~"):"<}>"===l&&s.push("\\}"));else if("\\csname"===l){for(;"<space>"===e.peek();)e.next();let r="",o=!1,u=[];do{if(0===u.length)if(/^#[0-9?]$/.test(e.peek())){const r=e.get().slice(1);u=a(null!==(t=null!==(n=null==i?void 0:i[r])&&void 0!==n?n:null==i?void 0:i["?"])&&void 0!==t?t:"\\placeholder{}",i),l=u[0]}else l=e.next(),u=l?[l]:[];o=0===u.length,o||"\\endcsname"!==l||(o=!0,u.shift()),o||(o="<$>"===l||"<$$>"===l||"<{>"===l||"<}>"===l||!!l&&l.length>1&&"\\"===l[0]),o||(r+=u.shift())}while(!o);r&&s.push("\\"+r),s=s.concat(u)}else if("\\endcsname"===l);else if(l.length>1&&"#"===l[0]){const e=l.slice(1);s=s.concat(a(null!==(o=null!==(r=null==i?void 0:i[e])&&void 0!==r?r:null==i?void 0:i["?"])&&void 0!==o?o:"\\placeholder{}",i))}else s.push(l);return s}function a(e,i){const n=e.toString().split(/\r?\n/);let t="",r="";for(const e of n){t+=r,r=" ";const i=e.match(/((?:\\%)|[^%])*/);null!==i&&(t+=i[0])}const a=new o(t);let l=[];do{l=l.concat(s(a,i))}while(!a.end());return l}function l(e){let i="",n="";for(const t of e)t&&(/[a-zA-Z*]/.test(t[0])&&(n+=i),i=/\\[a-zA-Z]+\*?$/.test(t)?" ":"",n+=t);return n}function u(e){let i=[];if(Array.isArray(e))for(const n of e)Array.isArray(n)?i=[...i,...n]:i.push(n);else i=[e];return l(i.map((e=>{var i;return null!==(i={"<space>":" ","<$$>":"$$","<$>":"$","<{>":"{","<}>":"}"}[e])&&void 0!==i?i:e})))}var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},m={exports:{}};!function(e){!function(i){var n,t,r,o,s=9e15,a=1e9,l="0123456789abcdef",u="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",c="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",m={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-s,maxE:s,crypto:!1},f=!0,h="[DecimalError] ",p=h+"Invalid argument: ",g=h+"Precision limit exceeded",d=h+"crypto unavailable",v=Math.floor,x=Math.pow,y=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,b=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,N=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,w=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,S=1e7,M=u.length-1,E=c.length-1,D={name:"[object Decimal]"};function A(e){var i,n,t,r=e.length-1,o="",s=e[0];if(r>0){for(o+=s,i=1;i<r;i++)(n=7-(t=e[i]+"").length)&&(o+=_(n)),o+=t;(n=7-(t=(s=e[i])+"").length)&&(o+=_(n))}else if(0===s)return"0";for(;s%10==0;)s/=10;return o+s}function C(e,i,n){if(e!==~~e||e<i||e>n)throw Error(p+e)}function q(e,i,n,t){var r,o,s,a;for(o=e[0];o>=10;o/=10)--i;return--i<0?(i+=7,r=0):(r=Math.ceil((i+1)/7),i%=7),o=x(10,7-i),a=e[r]%o|0,null==t?i<3?(0==i?a=a/100|0:1==i&&(a=a/10|0),s=n<4&&99999==a||n>3&&49999==a||5e4==a||0==a):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(e[r+1]/o/100|0)==x(10,i-2)-1||(a==o/2||0==a)&&0==(e[r+1]/o/100|0):i<4?(0==i?a=a/1e3|0:1==i?a=a/100|0:2==i&&(a=a/10|0),s=(t||n<4)&&9999==a||!t&&n>3&&4999==a):s=((t||n<4)&&a+1==o||!t&&n>3&&a+1==o/2)&&(e[r+1]/o/1e3|0)==x(10,i-3)-1,s}function F(e,i,n){for(var t,r,o=[0],s=0,a=e.length;s<a;){for(r=o.length;r--;)o[r]*=i;for(o[0]+=l.indexOf(e.charAt(s++)),t=0;t<o.length;t++)o[t]>n-1&&(void 0===o[t+1]&&(o[t+1]=0),o[t+1]+=o[t]/n|0,o[t]%=n)}return o.reverse()}D.absoluteValue=D.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),k(e)},D.ceil=function(){return k(new this.constructor(this),this.e+1,2)},D.comparedTo=D.cmp=function(e){var i,n,t,r,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return l&&u?l!==u?l:s===a?0:!s^l<0?1:-1:NaN;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(i=0,n=(t=s.length)<(r=a.length)?t:r;i<n;++i)if(s[i]!==a[i])return s[i]>a[i]^l<0?1:-1;return t===r?0:t>r^l<0?1:-1},D.cosine=D.cos=function(){var e,i,n=this,t=n.constructor;return n.d?n.d[0]?(e=t.precision,i=t.rounding,t.precision=e+Math.max(n.e,n.sd())+7,t.rounding=1,n=function(e,i){var n,t,r=i.d.length;r<32?t=(1/W(4,n=Math.ceil(r/3))).toString():(n=16,t="2.3283064365386962890625e-10"),e.precision+=n,i=G(e,1,i.times(t),new e(1));for(var o=n;o--;){var s=i.times(i);i=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,i}(t,V(t,n)),t.precision=e,t.rounding=i,k(2==o||3==o?n.neg():n,e,i,!0)):new t(1):new t(NaN)},D.cubeRoot=D.cbrt=function(){var e,i,n,t,r,o,s,a,l,u,c=this,m=c.constructor;if(!c.isFinite()||c.isZero())return new m(c);for(f=!1,(o=c.s*x(c.s*c,1/3))&&Math.abs(o)!=1/0?t=new m(o.toString()):(n=A(c.d),(o=((e=c.e)-n.length+1)%3)&&(n+=1==o||-2==o?"0":"00"),o=x(n,1/3),e=v((e+1)/3)-(e%3==(e<0?-1:2)),(t=new m(n=o==1/0?"5e"+e:(n=o.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=c.s),s=(e=m.precision)+3;;)if(u=(l=(a=t).times(a).times(a)).plus(c),t=I(u.plus(c).times(a),u.plus(l),s+2,1),A(a.d).slice(0,s)===(n=A(t.d)).slice(0,s)){if("9999"!=(n=n.slice(s-3,s+1))&&(r||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(k(t,e+1,1),i=!t.times(t).times(t).eq(c));break}if(!r&&(k(a,e+1,0),a.times(a).times(a).eq(c))){t=a;break}s+=4,r=1}return f=!0,k(t,e,m.rounding,i)},D.decimalPlaces=D.dp=function(){var e,i=this.d,n=NaN;if(i){if(n=7*((e=i.length-1)-v(this.e/7)),e=i[e])for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},D.dividedBy=D.div=function(e){return I(this,new this.constructor(e))},D.dividedToIntegerBy=D.divToInt=function(e){var i=this.constructor;return k(I(this,new i(e),0,1,1),i.precision,i.rounding)},D.equals=D.eq=function(e){return 0===this.cmp(e)},D.floor=function(){return k(new this.constructor(this),this.e+1,3)},D.greaterThan=D.gt=function(e){return this.cmp(e)>0},D.greaterThanOrEqualTo=D.gte=function(e){var i=this.cmp(e);return 1==i||0===i},D.hyperbolicCosine=D.cosh=function(){var e,i,n,t,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,t=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,(r=o.d.length)<32?i=(1/W(4,e=Math.ceil(r/3))).toString():(e=16,i="2.3283064365386962890625e-10"),o=G(s,1,o.times(i),new s(1),!0);for(var l,u=e,c=new s(8);u--;)l=o.times(o),o=a.minus(l.times(c.minus(l.times(c))));return k(o,s.precision=n,s.rounding=t,!0)},D.hyperbolicSine=D.sinh=function(){var e,i,n,t,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(i=o.precision,n=o.rounding,o.precision=i+Math.max(r.e,r.sd())+4,o.rounding=1,(t=r.d.length)<3)r=G(o,2,r,r,!0);else{e=(e=1.4*Math.sqrt(t))>16?16:0|e,r=G(o,2,r=r.times(1/W(5,e)),r,!0);for(var s,a=new o(5),l=new o(16),u=new o(20);e--;)s=r.times(r),r=r.times(a.plus(s.times(l.times(s).plus(u))))}return o.precision=i,o.rounding=n,k(r,i,n,!0)},D.hyperbolicTangent=D.tanh=function(){var e,i,n=this,t=n.constructor;return n.isFinite()?n.isZero()?new t(n):(e=t.precision,i=t.rounding,t.precision=e+7,t.rounding=1,I(n.sinh(),n.cosh(),t.precision=e,t.rounding=i)):new t(n.s)},D.inverseCosine=D.acos=function(){var e,i=this,n=i.constructor,t=i.abs().cmp(1),r=n.precision,o=n.rounding;return-1!==t?0===t?i.isNeg()?z(n,r,o):new n(0):new n(NaN):i.isZero()?z(n,r+4,o).times(.5):(n.precision=r+6,n.rounding=1,i=i.asin(),e=z(n,r+4,o).times(.5),n.precision=r,n.rounding=o,e.minus(i))},D.inverseHyperbolicCosine=D.acosh=function(){var e,i,n=this,t=n.constructor;return n.lte(1)?new t(n.eq(1)?0:NaN):n.isFinite()?(e=t.precision,i=t.rounding,t.precision=e+Math.max(Math.abs(n.e),n.sd())+4,t.rounding=1,f=!1,n=n.times(n).minus(1).sqrt().plus(n),f=!0,t.precision=e,t.rounding=i,n.ln()):new t(n)},D.inverseHyperbolicSine=D.asinh=function(){var e,i,n=this,t=n.constructor;return!n.isFinite()||n.isZero()?new t(n):(e=t.precision,i=t.rounding,t.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,t.rounding=1,f=!1,n=n.times(n).plus(1).sqrt().plus(n),f=!0,t.precision=e,t.rounding=i,n.ln())},D.inverseHyperbolicTangent=D.atanh=function(){var e,i,n,t,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=o.precision,i=o.rounding,t=r.sd(),Math.max(t,e)<2*-r.e-1?k(new o(r),e,i,!0):(o.precision=n=t-r.e,r=I(r.plus(1),new o(1).minus(r),n+e,1),o.precision=e+4,o.rounding=1,r=r.ln(),o.precision=e,o.rounding=i,r.times(.5))):new o(NaN)},D.inverseSine=D.asin=function(){var e,i,n,t,r=this,o=r.constructor;return r.isZero()?new o(r):(i=r.abs().cmp(1),n=o.precision,t=o.rounding,-1!==i?0===i?((e=z(o,n+4,t).times(.5)).s=r.s,e):new o(NaN):(o.precision=n+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=t,r.times(2)))},D.inverseTangent=D.atan=function(){var e,i,n,t,r,o,s,a,l,u=this,c=u.constructor,m=c.precision,h=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&m+4<=E)return(s=z(c,m+4,h).times(.25)).s=u.s,s}else{if(!u.s)return new c(NaN);if(m+4<=E)return(s=z(c,m+4,h).times(.5)).s=u.s,s}for(c.precision=a=m+10,c.rounding=1,e=n=Math.min(28,a/7+2|0);e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(f=!1,i=Math.ceil(a/7),t=1,l=u.times(u),s=new c(u),r=u;-1!==e;)if(r=r.times(l),o=s.minus(r.div(t+=2)),r=r.times(l),void 0!==(s=o.plus(r.div(t+=2))).d[i])for(e=i;s.d[e]===o.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),f=!0,k(s,c.precision=m,c.rounding=h,!0)},D.isFinite=function(){return!!this.d},D.isInteger=D.isInt=function(){return!!this.d&&v(this.e/7)>this.d.length-2},D.isNaN=function(){return!this.s},D.isNegative=D.isNeg=function(){return this.s<0},D.isPositive=D.isPos=function(){return this.s>0},D.isZero=function(){return!!this.d&&0===this.d[0]},D.lessThan=D.lt=function(e){return this.cmp(e)<0},D.lessThanOrEqualTo=D.lte=function(e){return this.cmp(e)<1},D.logarithm=D.log=function(e){var i,n,t,r,o,s,a,l,u=this,c=u.constructor,m=c.precision,h=c.rounding;if(null==e)e=new c(10),i=!0;else{if(n=(e=new c(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new c(NaN);i=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new c(n&&!n[0]?-1/0:1!=u.s?NaN:n?0:1/0);if(i)if(n.length>1)o=!0;else{for(r=n[0];r%10==0;)r/=10;o=1!==r}if(f=!1,s=j(u,a=m+5),t=i?O(c,a+10):j(e,a),q((l=I(s,t,a,1)).d,r=m,h))do{if(s=j(u,a+=10),t=i?O(c,a+10):j(e,a),l=I(s,t,a,1),!o){+A(l.d).slice(r+1,r+15)+1==1e14&&(l=k(l,m+1,0));break}}while(q(l.d,r+=10,h));return f=!0,k(l,m,h)},D.minus=D.sub=function(e){var i,n,t,r,o,s,a,l,u,c,m,h,p=this,g=p.constructor;if(e=new g(e),!p.d||!e.d)return p.s&&e.s?p.d?e.s=-e.s:e=new g(e.d||p.s!==e.s?p:NaN):e=new g(NaN),e;if(p.s!=e.s)return e.s=-e.s,p.plus(e);if(u=p.d,h=e.d,a=g.precision,l=g.rounding,!u[0]||!h[0]){if(h[0])e.s=-e.s;else{if(!u[0])return new g(3===l?-0:0);e=new g(p)}return f?k(e,a,l):e}if(n=v(e.e/7),c=v(p.e/7),u=u.slice(),o=c-n){for((m=o<0)?(i=u,o=-o,s=h.length):(i=h,n=c,s=u.length),o>(t=Math.max(Math.ceil(a/7),s)+2)&&(o=t,i.length=1),i.reverse(),t=o;t--;)i.push(0);i.reverse()}else{for((m=(t=u.length)<(s=h.length))&&(s=t),t=0;t<s;t++)if(u[t]!=h[t]){m=u[t]<h[t];break}o=0}for(m&&(i=u,u=h,h=i,e.s=-e.s),s=u.length,t=h.length-s;t>0;--t)u[s++]=0;for(t=h.length;t>o;){if(u[--t]<h[t]){for(r=t;r&&0===u[--r];)u[r]=S-1;--u[r],u[t]+=S}u[t]-=h[t]}for(;0===u[--s];)u.pop();for(;0===u[0];u.shift())--n;return u[0]?(e.d=u,e.e=T(u,n),f?k(e,a,l):e):new g(3===l?-0:0)},D.modulo=D.mod=function(e){var i,n=this,t=n.constructor;return e=new t(e),!n.d||!e.s||e.d&&!e.d[0]?new t(NaN):!e.d||n.d&&!n.d[0]?k(new t(n),t.precision,t.rounding):(f=!1,9==t.modulo?(i=I(n,e.abs(),0,3,1)).s*=e.s:i=I(n,e,0,t.modulo,1),i=i.times(e),f=!0,n.minus(i))},D.naturalExponential=D.exp=function(){return H(this)},D.naturalLogarithm=D.ln=function(){return j(this)},D.negated=D.neg=function(){var e=new this.constructor(this);return e.s=-e.s,k(e)},D.plus=D.add=function(e){var i,n,t,r,o,s,a,l,u,c,m=this,h=m.constructor;if(e=new h(e),!m.d||!e.d)return m.s&&e.s?m.d||(e=new h(e.d||m.s===e.s?m:NaN)):e=new h(NaN),e;if(m.s!=e.s)return e.s=-e.s,m.minus(e);if(u=m.d,c=e.d,a=h.precision,l=h.rounding,!u[0]||!c[0])return c[0]||(e=new h(m)),f?k(e,a,l):e;if(o=v(m.e/7),t=v(e.e/7),u=u.slice(),r=o-t){for(r<0?(n=u,r=-r,s=c.length):(n=c,t=o,s=u.length),r>(s=(o=Math.ceil(a/7))>s?o+1:s+1)&&(r=s,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for((s=u.length)-(r=c.length)<0&&(r=s,n=c,c=u,u=n),i=0;r;)i=(u[--r]=u[r]+c[r]+i)/S|0,u[r]%=S;for(i&&(u.unshift(i),++t),s=u.length;0==u[--s];)u.pop();return e.d=u,e.e=T(u,t),f?k(e,a,l):e},D.precision=D.sd=function(e){var i,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(p+e);return n.d?(i=L(n.d),e&&n.e+1>i&&(i=n.e+1)):i=NaN,i},D.round=function(){var e=this,i=e.constructor;return k(new i(e),e.e+1,i.rounding)},D.sine=D.sin=function(){var e,i,n=this,t=n.constructor;return n.isFinite()?n.isZero()?new t(n):(e=t.precision,i=t.rounding,t.precision=e+Math.max(n.e,n.sd())+7,t.rounding=1,n=function(e,i){var n,t=i.d.length;if(t<3)return G(e,2,i,i);n=(n=1.4*Math.sqrt(t))>16?16:0|n,i=G(e,2,i=i.times(1/W(5,n)),i);for(var r,o=new e(5),s=new e(16),a=new e(20);n--;)r=i.times(i),i=i.times(o.plus(r.times(s.times(r).minus(a))));return i}(t,V(t,n)),t.precision=e,t.rounding=i,k(o>2?n.neg():n,e,i,!0)):new t(NaN)},D.squareRoot=D.sqrt=function(){var e,i,n,t,r,o,s=this,a=s.d,l=s.e,u=s.s,c=s.constructor;if(1!==u||!a||!a[0])return new c(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(f=!1,0==(u=Math.sqrt(+s))||u==1/0?(((i=A(a)).length+l)%2==0&&(i+="0"),u=Math.sqrt(i),l=v((l+1)/2)-(l<0||l%2),t=new c(i=u==1/0?"5e"+l:(i=u.toExponential()).slice(0,i.indexOf("e")+1)+l)):t=new c(u.toString()),n=(l=c.precision)+3;;)if(t=(o=t).plus(I(s,o,n+2,1)).times(.5),A(o.d).slice(0,n)===(i=A(t.d)).slice(0,n)){if("9999"!=(i=i.slice(n-3,n+1))&&(r||"4999"!=i)){+i&&(+i.slice(1)||"5"!=i.charAt(0))||(k(t,l+1,1),e=!t.times(t).eq(s));break}if(!r&&(k(o,l+1,0),o.times(o).eq(s))){t=o;break}n+=4,r=1}return f=!0,k(t,l,c.rounding,e)},D.tangent=D.tan=function(){var e,i,n=this,t=n.constructor;return n.isFinite()?n.isZero()?new t(n):(e=t.precision,i=t.rounding,t.precision=e+10,t.rounding=1,(n=n.sin()).s=1,n=I(n,new t(1).minus(n.times(n)).sqrt(),e+10,0),t.precision=e,t.rounding=i,k(2==o||4==o?n.neg():n,e,i,!0)):new t(NaN)},D.times=D.mul=function(e){var i,n,t,r,o,s,a,l,u,c=this,m=c.constructor,h=c.d,p=(e=new m(e)).d;if(e.s*=c.s,!(h&&h[0]&&p&&p[0]))return new m(!e.s||h&&!h[0]&&!p||p&&!p[0]&&!h?NaN:h&&p?0*e.s:e.s/0);for(n=v(c.e/7)+v(e.e/7),(l=h.length)<(u=p.length)&&(o=h,h=p,p=o,s=l,l=u,u=s),o=[],t=s=l+u;t--;)o.push(0);for(t=u;--t>=0;){for(i=0,r=l+t;r>t;)a=o[r]+p[t]*h[r-t-1]+i,o[r--]=a%S|0,i=a/S|0;o[r]=(o[r]+i)%S|0}for(;!o[--s];)o.pop();return i?++n:o.shift(),e.d=o,e.e=T(o,n),f?k(e,m.precision,m.rounding):e},D.toBinary=function(e,i){return Y(this,2,e,i)},D.toDecimalPlaces=D.toDP=function(e,i){var n=this,t=n.constructor;return n=new t(n),void 0===e?n:(C(e,0,a),void 0===i?i=t.rounding:C(i,0,8),k(n,e+n.e+1,i))},D.toExponential=function(e,i){var n,t=this,r=t.constructor;return void 0===e?n=P(t,!0):(C(e,0,a),void 0===i?i=r.rounding:C(i,0,8),n=P(t=k(new r(t),e+1,i),!0,e+1)),t.isNeg()&&!t.isZero()?"-"+n:n},D.toFixed=function(e,i){var n,t,r=this,o=r.constructor;return void 0===e?n=P(r):(C(e,0,a),void 0===i?i=o.rounding:C(i,0,8),n=P(t=k(new o(r),e+r.e+1,i),!1,e+t.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},D.toFraction=function(e){var i,n,t,r,o,s,a,l,u,c,m,h,g=this,d=g.d,v=g.constructor;if(!d)return new v(g);if(u=n=new v(1),t=l=new v(0),s=(o=(i=new v(t)).e=L(d)-g.e-1)%7,i.d[0]=x(10,s<0?7+s:s),null==e)e=o>0?i:u;else{if(!(a=new v(e)).isInt()||a.lt(u))throw Error(p+a);e=a.gt(i)?o>0?i:u:a}for(f=!1,a=new v(A(d)),c=v.precision,v.precision=o=7*d.length*2;m=I(a,i,0,1,1),1!=(r=n.plus(m.times(t))).cmp(e);)n=t,t=r,r=u,u=l.plus(m.times(r)),l=r,r=i,i=a.minus(m.times(r)),a=r;return r=I(e.minus(n),t,0,1,1),l=l.plus(r.times(u)),n=n.plus(r.times(t)),l.s=u.s=g.s,h=I(u,t,o,1).minus(g).abs().cmp(I(l,n,o,1).minus(g).abs())<1?[u,t]:[l,n],v.precision=c,f=!0,h},D.toHexadecimal=D.toHex=function(e,i){return Y(this,16,e,i)},D.toNearest=function(e,i){var n=this,t=n.constructor;if(n=new t(n),null==e){if(!n.d)return n;e=new t(1),i=t.rounding}else{if(e=new t(e),void 0===i?i=t.rounding:C(i,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(f=!1,n=I(n,e,0,i,1).times(e),f=!0,k(n)):(e.s=n.s,n=e),n},D.toNumber=function(){return+this},D.toOctal=function(e,i){return Y(this,8,e,i)},D.toPower=D.pow=function(e){var i,n,t,r,o,s,a=this,l=a.constructor,u=+(e=new l(e));if(!(a.d&&e.d&&a.d[0]&&e.d[0]))return new l(x(+a,u));if((a=new l(a)).eq(1))return a;if(t=l.precision,o=l.rounding,e.eq(1))return k(a,t,o);if((i=v(e.e/7))>=e.d.length-1&&(n=u<0?-u:u)<=9007199254740991)return r=R(l,a,n,t),e.s<0?new l(1).div(r):k(r,t,o);if((s=a.s)<0){if(i<e.d.length-1)return new l(NaN);if(0==(1&e.d[i])&&(s=1),0==a.e&&1==a.d[0]&&1==a.d.length)return a.s=s,a}return(i=0!=(n=x(+a,u))&&isFinite(n)?new l(n+"").e:v(u*(Math.log("0."+A(a.d))/Math.LN10+a.e+1)))>l.maxE+1||i<l.minE-1?new l(i>0?s/0:0):(f=!1,l.rounding=a.s=1,n=Math.min(12,(i+"").length),(r=H(e.times(j(a,t+n)),t)).d&&q((r=k(r,t+5,1)).d,t,o)&&(i=t+10,+A((r=k(H(e.times(j(a,i+n)),i),i+5,1)).d).slice(t+1,t+15)+1==1e14&&(r=k(r,t+1,0))),r.s=s,f=!0,l.rounding=o,k(r,t,o))},D.toPrecision=function(e,i){var n,t=this,r=t.constructor;return void 0===e?n=P(t,t.e<=r.toExpNeg||t.e>=r.toExpPos):(C(e,1,a),void 0===i?i=r.rounding:C(i,0,8),n=P(t=k(new r(t),e,i),e<=t.e||t.e<=r.toExpNeg,e)),t.isNeg()&&!t.isZero()?"-"+n:n},D.toSignificantDigits=D.toSD=function(e,i){var n=this.constructor;return void 0===e?(e=n.precision,i=n.rounding):(C(e,1,a),void 0===i?i=n.rounding:C(i,0,8)),k(new n(this),e,i)},D.toString=function(){var e=this,i=e.constructor,n=P(e,e.e<=i.toExpNeg||e.e>=i.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},D.truncated=D.trunc=function(){return k(new this.constructor(this),this.e+1,1)},D.valueOf=D.toJSON=function(){var e=this,i=e.constructor,n=P(e,e.e<=i.toExpNeg||e.e>=i.toExpPos);return e.isNeg()?"-"+n:n};var I=function(){function e(e,i,n){var t,r=0,o=e.length;for(e=e.slice();o--;)t=e[o]*i+r,e[o]=t%n|0,r=t/n|0;return r&&e.unshift(r),e}function i(e,i,n,t){var r,o;if(n!=t)o=n>t?1:-1;else for(r=o=0;r<n;r++)if(e[r]!=i[r]){o=e[r]>i[r]?1:-1;break}return o}function n(e,i,n,t){for(var r=0;n--;)e[n]-=r,r=e[n]<i[n]?1:0,e[n]=r*t+e[n]-i[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,o,s,a,l,u){var c,m,f,h,p,g,d,x,y,b,N,w,M,E,D,A,C,q,F,I,P=r.constructor,T=r.s==o.s?1:-1,O=r.d,z=o.d;if(!(O&&O[0]&&z&&z[0]))return new P(r.s&&o.s&&(O?!z||O[0]!=z[0]:z)?O&&0==O[0]||!z?0*T:T/0:NaN);for(u?(p=1,m=r.e-o.e):(u=S,p=7,m=v(r.e/p)-v(o.e/p)),F=z.length,C=O.length,b=(y=new P(T)).d=[],f=0;z[f]==(O[f]||0);f++);if(z[f]>(O[f]||0)&&m--,null==s?(E=s=P.precision,a=P.rounding):E=l?s+(r.e-o.e)+1:s,E<0)b.push(1),g=!0;else{if(E=E/p+2|0,f=0,1==F){for(h=0,z=z[0],E++;(f<C||h)&&E--;f++)D=h*u+(O[f]||0),b[f]=D/z|0,h=D%z|0;g=h||f<C}else{for((h=u/(z[0]+1)|0)>1&&(z=e(z,h,u),O=e(O,h,u),F=z.length,C=O.length),A=F,w=(N=O.slice(0,F)).length;w<F;)N[w++]=0;(I=z.slice()).unshift(0),q=z[0],z[1]>=u/2&&++q;do{h=0,(c=i(z,N,F,w))<0?(M=N[0],F!=w&&(M=M*u+(N[1]||0)),(h=M/q|0)>1?(h>=u&&(h=u-1),1==(c=i(d=e(z,h,u),N,x=d.length,w=N.length))&&(h--,n(d,F<x?I:z,x,u))):(0==h&&(c=h=1),d=z.slice()),(x=d.length)<w&&d.unshift(0),n(N,d,w,u),-1==c&&(c=i(z,N,F,w=N.length))<1&&(h++,n(N,F<w?I:z,w,u)),w=N.length):0===c&&(h++,N=[0]),b[f++]=h,c&&N[0]?N[w++]=O[A]||0:(N=[O[A]],w=1)}while((A++<C||void 0!==N[0])&&E--);g=void 0!==N[0]}b[0]||b.shift()}if(1==p)y.e=m,t=g;else{for(f=1,h=b[0];h>=10;h/=10)f++;y.e=f+m*p-1,k(y,l?s+y.e+1:s,a,g)}return y}}();function k(e,i,n,t){var r,o,s,a,l,u,c,m,h,p=e.constructor;e:if(null!=i){if(!(m=e.d))return e;for(r=1,a=m[0];a>=10;a/=10)r++;if((o=i-r)<0)o+=7,s=i,l=(c=m[h=0])/x(10,r-s-1)%10|0;else if((h=Math.ceil((o+1)/7))>=(a=m.length)){if(!t)break e;for(;a++<=h;)m.push(0);c=l=0,r=1,s=(o%=7)-7+1}else{for(c=a=m[h],r=1;a>=10;a/=10)r++;l=(s=(o%=7)-7+r)<0?0:c/x(10,r-s-1)%10|0}if(t=t||i<0||void 0!==m[h+1]||(s<0?c:c%x(10,r-s-1)),u=n<4?(l||t)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||t||6==n&&(o>0?s>0?c/x(10,r-s):0:m[h-1])%10&1||n==(e.s<0?8:7)),i<1||!m[0])return m.length=0,u?(i-=e.e+1,m[0]=x(10,(7-i%7)%7),e.e=-i||0):m[0]=e.e=0,e;if(0==o?(m.length=h,a=1,h--):(m.length=h+1,a=x(10,7-o),m[h]=s>0?(c/x(10,r-s)%x(10,s)|0)*a:0),u)for(;;){if(0==h){for(o=1,s=m[0];s>=10;s/=10)o++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,m[0]==S&&(m[0]=1));break}if(m[h]+=a,m[h]!=S)break;m[h--]=0,a=1}for(o=m.length;0===m[--o];)m.pop()}return f&&(e.e>p.maxE?(e.d=null,e.e=NaN):e.e<p.minE&&(e.e=0,e.d=[0])),e}function P(e,i,n){if(!e.isFinite())return $(e);var t,r=e.e,o=A(e.d),s=o.length;return i?(n&&(t=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+_(t):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):r<0?(o="0."+_(-r-1)+o,n&&(t=n-s)>0&&(o+=_(t))):r>=s?(o+=_(r+1-s),n&&(t=n-r-1)>0&&(o=o+"."+_(t))):((t=r+1)<s&&(o=o.slice(0,t)+"."+o.slice(t)),n&&(t=n-s)>0&&(r+1===s&&(o+="."),o+=_(t))),o}function T(e,i){var n=e[0];for(i*=7;n>=10;n/=10)i++;return i}function O(e,i,n){if(i>M)throw f=!0,n&&(e.precision=n),Error(g);return k(new e(u),i,1,!0)}function z(e,i,n){if(i>E)throw Error(g);return k(new e(c),i,n,!0)}function L(e){var i=e.length-1,n=7*i+1;if(i=e[i]){for(;i%10==0;i/=10)n--;for(i=e[0];i>=10;i/=10)n++}return n}function _(e){for(var i="";e--;)i+="0";return i}function R(e,i,n,t){var r,o=new e(1),s=Math.ceil(t/7+4);for(f=!1;;){if(n%2&&J((o=o.times(i)).d,s)&&(r=!0),0===(n=v(n/2))){n=o.d.length-1,r&&0===o.d[n]&&++o.d[n];break}J((i=i.times(i)).d,s)}return f=!0,o}function Z(e){return 1&e.d[e.d.length-1]}function Q(e,i,n){for(var t,r=new e(i[0]),o=0;++o<i.length;){if(!(t=new e(i[o])).s){r=t;break}r[n](t)&&(r=t)}return r}function H(e,i){var n,t,r,o,s,a,l,u=0,c=0,m=0,h=e.constructor,p=h.rounding,g=h.precision;if(!e.d||!e.d[0]||e.e>17)return new h(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==i?(f=!1,l=g):l=i,a=new h(.03125);e.e>-2;)e=e.times(a),m+=5;for(l+=t=Math.log(x(2,m))/Math.LN10*2+5|0,n=o=s=new h(1),h.precision=l;;){if(o=k(o.times(e),l,1),n=n.times(++c),A((a=s.plus(I(o,n,l,1))).d).slice(0,l)===A(s.d).slice(0,l)){for(r=m;r--;)s=k(s.times(s),l,1);if(null!=i)return h.precision=g,s;if(!(u<3&&q(s.d,l-t,p,u)))return k(s,h.precision=g,p,f=!0);h.precision=l+=10,n=o=a=new h(1),c=0,u++}s=a}}function j(e,i){var n,t,r,o,s,a,l,u,c,m,h,p=1,g=e,d=g.d,v=g.constructor,x=v.rounding,y=v.precision;if(g.s<0||!d||!d[0]||!g.e&&1==d[0]&&1==d.length)return new v(d&&!d[0]?-1/0:1!=g.s?NaN:d?0:g);if(null==i?(f=!1,c=y):c=i,v.precision=c+=10,t=(n=A(d)).charAt(0),!(Math.abs(o=g.e)<15e14))return u=O(v,c+2,y).times(o+""),g=j(new v(t+"."+n.slice(1)),c-10).plus(u),v.precision=y,null==i?k(g,y,x,f=!0):g;for(;t<7&&1!=t||1==t&&n.charAt(1)>3;)t=(n=A((g=g.times(e)).d)).charAt(0),p++;for(o=g.e,t>1?(g=new v("0."+n),o++):g=new v(t+"."+n.slice(1)),m=g,l=s=g=I(g.minus(1),g.plus(1),c,1),h=k(g.times(g),c,1),r=3;;){if(s=k(s.times(h),c,1),A((u=l.plus(I(s,new v(r),c,1))).d).slice(0,c)===A(l.d).slice(0,c)){if(l=l.times(2),0!==o&&(l=l.plus(O(v,c+2,y).times(o+""))),l=I(l,new v(p),c,1),null!=i)return v.precision=y,l;if(!q(l.d,c-10,x,a))return k(l,v.precision=y,x,f=!0);v.precision=c+=10,u=s=g=I(m.minus(1),m.plus(1),c,1),h=k(g.times(g),c,1),r=a=1}l=u,r+=2}}function $(e){return String(e.s*e.s/0)}function B(e,i){var n,t,r;for((n=i.indexOf("."))>-1&&(i=i.replace(".","")),(t=i.search(/e/i))>0?(n<0&&(n=t),n+=+i.slice(t+1),i=i.substring(0,t)):n<0&&(n=i.length),t=0;48===i.charCodeAt(t);t++);for(r=i.length;48===i.charCodeAt(r-1);--r);if(i=i.slice(t,r)){if(r-=t,e.e=n=n-t-1,e.d=[],t=(n+1)%7,n<0&&(t+=7),t<r){for(t&&e.d.push(+i.slice(0,t)),r-=7;t<r;)e.d.push(+i.slice(t,t+=7));t=7-(i=i.slice(t)).length}else t-=r;for(;t--;)i+="0";e.d.push(+i),f&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function U(e,i){var t,r,o,s,a,l,u,c,m;if("Infinity"===i||"NaN"===i)return+i||(e.s=NaN),e.e=NaN,e.d=null,e;if(b.test(i))t=16,i=i.toLowerCase();else if(y.test(i))t=2;else{if(!N.test(i))throw Error(p+i);t=8}for((s=i.search(/p/i))>0?(u=+i.slice(s+1),i=i.substring(2,s)):i=i.slice(2),a=(s=i.indexOf("."))>=0,r=e.constructor,a&&(s=(l=(i=i.replace(".","")).length)-s,o=R(r,new r(t),s,2*s)),s=m=(c=F(i,t,S)).length-1;0===c[s];--s)c.pop();return s<0?new r(0*e.s):(e.e=T(c,m),e.d=c,f=!1,a&&(e=I(e,o,4*l)),u&&(e=e.times(Math.abs(u)<54?x(2,u):n.pow(2,u))),f=!0,e)}function G(e,i,n,t,r){var o,s,a,l,u=e.precision,c=Math.ceil(u/7);for(f=!1,l=n.times(n),a=new e(t);;){if(s=I(a.times(l),new e(i++*i++),u,1),a=r?t.plus(s):t.minus(s),t=I(s.times(l),new e(i++*i++),u,1),void 0!==(s=a.plus(t)).d[c]){for(o=c;s.d[o]===a.d[o]&&o--;);if(-1==o)break}o=a,a=t,t=s,s=o}return f=!0,s.d.length=c+1,s}function W(e,i){for(var n=e;--i;)n*=e;return n}function V(e,i){var n,t=i.s<0,r=z(e,e.precision,1),s=r.times(.5);if((i=i.abs()).lte(s))return o=t?4:1,i;if((n=i.divToInt(r)).isZero())o=t?3:2;else{if((i=i.minus(n.times(r))).lte(s))return o=Z(n)?t?2:3:t?4:1,i;o=Z(n)?t?1:4:t?3:2}return i.minus(r).abs()}function Y(e,i,n,r){var o,s,u,c,m,f,h,p,g,d=e.constructor,v=void 0!==n;if(v?(C(n,1,a),void 0===r?r=d.rounding:C(r,0,8)):(n=d.precision,r=d.rounding),e.isFinite()){for(v?(o=2,16==i?n=4*n-3:8==i&&(n=3*n-2)):o=i,(u=(h=P(e)).indexOf("."))>=0&&(h=h.replace(".",""),(g=new d(1)).e=h.length-u,g.d=F(P(g),10,o),g.e=g.d.length),s=m=(p=F(h,10,o)).length;0==p[--m];)p.pop();if(p[0]){if(u<0?s--:((e=new d(e)).d=p,e.e=s,p=(e=I(e,g,n,r,0,o)).d,s=e.e,f=t),u=p[n],c=o/2,f=f||void 0!==p[n+1],f=r<4?(void 0!==u||f)&&(0===r||r===(e.s<0?3:2)):u>c||u===c&&(4===r||f||6===r&&1&p[n-1]||r===(e.s<0?8:7)),p.length=n,f)for(;++p[--n]>o-1;)p[n]=0,n||(++s,p.unshift(1));for(m=p.length;!p[m-1];--m);for(u=0,h="";u<m;u++)h+=l.charAt(p[u]);if(v){if(m>1)if(16==i||8==i){for(u=16==i?4:3,--m;m%u;m++)h+="0";for(m=(p=F(h,o,i)).length;!p[m-1];--m);for(u=1,h="1.";u<m;u++)h+=l.charAt(p[u])}else h=h.charAt(0)+"."+h.slice(1);h=h+(s<0?"p":"p+")+s}else if(s<0){for(;++s;)h="0"+h;h="0."+h}else if(++s>m)for(s-=m;s--;)h+="0";else s<m&&(h=h.slice(0,s)+"."+h.slice(s))}else h=v?"0p+0":"0";h=(16==i?"0x":2==i?"0b":8==i?"0o":"")+h}else h=$(e);return e.s<0?"-"+h:h}function J(e,i){if(e.length>i)return e.length=i,!0}function X(e){return new this(e).abs()}function K(e){return new this(e).acos()}function ee(e){return new this(e).acosh()}function ie(e,i){return new this(e).plus(i)}function ne(e){return new this(e).asin()}function te(e){return new this(e).asinh()}function re(e){return new this(e).atan()}function oe(e){return new this(e).atanh()}function se(e,i){e=new this(e),i=new this(i);var n,t=this.precision,r=this.rounding,o=t+4;return e.s&&i.s?e.d||i.d?!i.d||e.isZero()?(n=i.s<0?z(this,t,r):new this(0)).s=e.s:!e.d||i.isZero()?(n=z(this,o,1).times(.5)).s=e.s:i.s<0?(this.precision=o,this.rounding=1,n=this.atan(I(e,i,o,1)),i=z(this,o,1),this.precision=t,this.rounding=r,n=e.s<0?n.minus(i):n.plus(i)):n=this.atan(I(e,i,o,1)):(n=z(this,o,1).times(i.s>0?.25:.75)).s=e.s:n=new this(NaN),n}function ae(e){return new this(e).cbrt()}function le(e){return k(e=new this(e),e.e+1,2)}function ue(e){if(!e||"object"!=typeof e)throw Error(h+"Object expected");var i,n,t,r=!0===e.defaults,o=["precision",1,a,"rounding",0,8,"toExpNeg",-s,0,"toExpPos",0,s,"maxE",0,s,"minE",-s,0,"modulo",0,9];for(i=0;i<o.length;i+=3)if(n=o[i],r&&(this[n]=m[n]),void 0!==(t=e[n])){if(!(v(t)===t&&t>=o[i+1]&&t<=o[i+2]))throw Error(p+n+": "+t);this[n]=t}if(n="crypto",r&&(this[n]=m[n]),void 0!==(t=e[n])){if(!0!==t&&!1!==t&&0!==t&&1!==t)throw Error(p+n+": "+t);if(t){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(d);this[n]=!0}else this[n]=!1}return this}function ce(e){return new this(e).cos()}function me(e){return new this(e).cosh()}function fe(e,i){return new this(e).div(i)}function he(e){return new this(e).exp()}function pe(e){return k(e=new this(e),e.e+1,3)}function ge(){var e,i,n=new this(0);for(f=!1,e=0;e<arguments.length;)if((i=new this(arguments[e++])).d)n.d&&(n=n.plus(i.times(i)));else{if(i.s)return f=!0,new this(1/0);n=i}return f=!0,n.sqrt()}function de(e){return e instanceof n||e&&"[object Decimal]"===e.name||!1}function ve(e){return new this(e).ln()}function xe(e,i){return new this(e).log(i)}function ye(e){return new this(e).log(2)}function be(e){return new this(e).log(10)}function Ne(){return Q(this,arguments,"lt")}function we(){return Q(this,arguments,"gt")}function Se(e,i){return new this(e).mod(i)}function Me(e,i){return new this(e).mul(i)}function Ee(e,i){return new this(e).pow(i)}function De(e){var i,n,t,r,o=0,s=new this(1),l=[];if(void 0===e?e=this.precision:C(e,1,a),t=Math.ceil(e/7),this.crypto)if(crypto.getRandomValues)for(i=crypto.getRandomValues(new Uint32Array(t));o<t;)(r=i[o])>=429e7?i[o]=crypto.getRandomValues(new Uint32Array(1))[0]:l[o++]=r%1e7;else{if(!crypto.randomBytes)throw Error(d);for(i=crypto.randomBytes(t*=4);o<t;)(r=i[o]+(i[o+1]<<8)+(i[o+2]<<16)+((127&i[o+3])<<24))>=214e7?crypto.randomBytes(4).copy(i,o):(l.push(r%1e7),o+=4);o=t/4}else for(;o<t;)l[o++]=1e7*Math.random()|0;for(e%=7,(t=l[--o])&&e&&(r=x(10,7-e),l[o]=(t/r|0)*r);0===l[o];o--)l.pop();if(o<0)n=0,l=[0];else{for(n=-1;0===l[0];n-=7)l.shift();for(t=1,r=l[0];r>=10;r/=10)t++;t<7&&(n-=7-t)}return s.e=n,s.d=l,s}function Ae(e){return k(e=new this(e),e.e+1,this.rounding)}function Ce(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function qe(e){return new this(e).sin()}function Fe(e){return new this(e).sinh()}function Ie(e){return new this(e).sqrt()}function ke(e,i){return new this(e).sub(i)}function Pe(e){return new this(e).tan()}function Te(e){return new this(e).tanh()}function Oe(e){return k(e=new this(e),e.e+1,1)}(n=function e(i){var n,t,r;function o(e){var i,n,t,r=this;if(!(r instanceof o))return new o(e);if(r.constructor=o,e instanceof o)return r.s=e.s,void(f?!e.d||e.e>o.maxE?(r.e=NaN,r.d=null):e.e<o.minE?(r.e=0,r.d=[0]):(r.e=e.e,r.d=e.d.slice()):(r.e=e.e,r.d=e.d?e.d.slice():e.d));if("number"==(t=typeof e)){if(0===e)return r.s=1/e<0?-1:1,r.e=0,void(r.d=[0]);if(e<0?(e=-e,r.s=-1):r.s=1,e===~~e&&e<1e7){for(i=0,n=e;n>=10;n/=10)i++;return void(f?i>o.maxE?(r.e=NaN,r.d=null):i<o.minE?(r.e=0,r.d=[0]):(r.e=i,r.d=[e]):(r.e=i,r.d=[e]))}return 0*e!=0?(e||(r.s=NaN),r.e=NaN,void(r.d=null)):B(r,e.toString())}if("string"!==t)throw Error(p+e);return 45===(n=e.charCodeAt(0))?(e=e.slice(1),r.s=-1):(43===n&&(e=e.slice(1)),r.s=1),w.test(e)?B(r,e):U(r,e)}if(o.prototype=D,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=o.set=ue,o.clone=e,o.isDecimal=de,o.abs=X,o.acos=K,o.acosh=ee,o.add=ie,o.asin=ne,o.asinh=te,o.atan=re,o.atanh=oe,o.atan2=se,o.cbrt=ae,o.ceil=le,o.cos=ce,o.cosh=me,o.div=fe,o.exp=he,o.floor=pe,o.hypot=ge,o.ln=ve,o.log=xe,o.log10=be,o.log2=ye,o.max=Ne,o.min=we,o.mod=Se,o.mul=Me,o.pow=Ee,o.random=De,o.round=Ae,o.sign=Ce,o.sin=qe,o.sinh=Fe,o.sqrt=Ie,o.sub=ke,o.tan=Pe,o.tanh=Te,o.trunc=Oe,void 0===i&&(i={}),i&&!0!==i.defaults)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],n=0;n<r.length;)i.hasOwnProperty(t=r[n++])||(i[t]=this[t]);return o.config(i),o}(m)).default=n.Decimal=n,u=new n(u),c=new n(c),e.exports?("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator&&(D[Symbol.for("nodejs.util.inspect.custom")]=D.toString,D[Symbol.toStringTag]="Decimal"),e.exports=n):(i||(i="undefined"!=typeof self&&self&&self.self==self?self:window),r=i.Decimal,n.noConflict=function(){return i.Decimal=r,n},i.Decimal=n)}(c)}(m);var f={exports:{}};
|
|
2
|
-
/**
|
|
3
|
-
* @license Complex.js v2.0.13 12/05/2020
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) 2020, Robert Eisele (robert@xarg.org)
|
|
6
|
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
7
|
-
**/!function(e,i){!function(i){var n=function(e){return.5*(Math.exp(e)+Math.exp(-e))},t=function(e){return.5*(Math.exp(e)-Math.exp(-e))},r=function(){throw SyntaxError("Invalid Param")};function o(e,i){var n=Math.abs(e),t=Math.abs(i);return 0===e?Math.log(t):0===i?Math.log(n):n<3e3&&t<3e3?.5*Math.log(e*e+i*i):Math.log(e/Math.cos(Math.atan2(i,e)))}function s(e,i){if(!(this instanceof s))return new s(e,i);var n=function(e,i){var n={re:0,im:0};if(null==e)n.re=n.im=0;else if(void 0!==i)n.re=e,n.im=i;else switch(typeof e){case"object":if("im"in e&&"re"in e)n.re=e.re,n.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return s.INFINITY;n.re=e.abs*Math.cos(e.arg),n.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return s.INFINITY;n.re=e.r*Math.cos(e.phi),n.im=e.r*Math.sin(e.phi)}else 2===e.length?(n.re=e[0],n.im=e[1]):r();break;case"string":n.im=n.re=0;var t=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),o=1,a=0;null===t&&r();for(var l=0;l<t.length;l++){var u=t[l];" "===u||"\t"===u||"\n"===u||("+"===u?o++:"-"===u?a++:"i"===u||"I"===u?(o+a===0&&r()," "===t[l+1]||isNaN(t[l+1])?n.im+=parseFloat((a%2?"-":"")+"1"):(n.im+=parseFloat((a%2?"-":"")+t[l+1]),l++),o=a=0):((o+a===0||isNaN(u))&&r(),"i"===t[l+1]||"I"===t[l+1]?(n.im+=parseFloat((a%2?"-":"")+u),l++):n.re+=parseFloat((a%2?"-":"")+u),o=a=0))}o+a>0&&r();break;case"number":n.im=0,n.re=e;break;default:r()}return isNaN(n.re)||isNaN(n.im),n}(e,i);this.re=n.re,this.im=n.im}s.prototype={re:0,im:0,sign:function(){var e=this.abs();return new s(this.re/e,this.im/e)},add:function(e,i){var n=new s(e,i);return this.isInfinite()&&n.isInfinite()?s.NAN:this.isInfinite()||n.isInfinite()?s.INFINITY:new s(this.re+n.re,this.im+n.im)},sub:function(e,i){var n=new s(e,i);return this.isInfinite()&&n.isInfinite()?s.NAN:this.isInfinite()||n.isInfinite()?s.INFINITY:new s(this.re-n.re,this.im-n.im)},mul:function(e,i){var n=new s(e,i);return this.isInfinite()&&n.isZero()||this.isZero()&&n.isInfinite()?s.NAN:this.isInfinite()||n.isInfinite()?s.INFINITY:0===n.im&&0===this.im?new s(this.re*n.re,0):new s(this.re*n.re-this.im*n.im,this.re*n.im+this.im*n.re)},div:function(e,i){var n=new s(e,i);if(this.isZero()&&n.isZero()||this.isInfinite()&&n.isInfinite())return s.NAN;if(this.isInfinite()||n.isZero())return s.INFINITY;if(this.isZero()||n.isInfinite())return s.ZERO;e=this.re,i=this.im;var t,r,o=n.re,a=n.im;return 0===a?new s(e/o,i/o):Math.abs(o)<Math.abs(a)?new s((e*(r=o/a)+i)/(t=o*r+a),(i*r-e)/t):new s((e+i*(r=a/o))/(t=a*r+o),(i-e*r)/t)},pow:function(e,i){var n=new s(e,i);if(e=this.re,i=this.im,n.isZero())return s.ONE;if(0===n.im){if(0===i&&e>0)return new s(Math.pow(e,n.re),0);if(0===e)switch((n.re%4+4)%4){case 0:return new s(Math.pow(i,n.re),0);case 1:return new s(0,Math.pow(i,n.re));case 2:return new s(-Math.pow(i,n.re),0);case 3:return new s(0,-Math.pow(i,n.re))}}if(0===e&&0===i&&n.re>0&&n.im>=0)return s.ZERO;var t=Math.atan2(i,e),r=o(e,i);return e=Math.exp(n.re*r-n.im*t),i=n.im*r+n.re*t,new s(e*Math.cos(i),e*Math.sin(i))},sqrt:function(){var e,i,n=this.re,t=this.im,r=this.abs();if(n>=0){if(0===t)return new s(Math.sqrt(n),0);e=.5*Math.sqrt(2*(r+n))}else e=Math.abs(t)/Math.sqrt(2*(r-n));return i=n<=0?.5*Math.sqrt(2*(r-n)):Math.abs(t)/Math.sqrt(2*(r+n)),new s(e,t<0?-i:i)},exp:function(){var e=Math.exp(this.re);return this.im,new s(e*Math.cos(this.im),e*Math.sin(this.im))},expm1:function(){var e=this.re,i=this.im;return new s(Math.expm1(e)*Math.cos(i)+function(e){var i=Math.PI/4;if(e<-i||e>i)return Math.cos(e)-1;var n=e*e;return n*(n*(1/24+n*(-1/720+n*(1/40320+n*(-1/3628800+n*(1/4790014600+n*(-1/87178291200+n*(1/20922789888e3)))))))-.5)}(i),Math.exp(e)*Math.sin(i))},log:function(){var e=this.re,i=this.im;return new s(o(e,i),Math.atan2(i,e))},abs:function(){return e=this.re,i=this.im,n=Math.abs(e),t=Math.abs(i),n<3e3&&t<3e3?Math.sqrt(n*n+t*t):(n<t?(n=t,t=e/i):t=i/e,n*Math.sqrt(1+t*t));var e,i,n,t},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){var e=this.re,i=this.im;return new s(Math.sin(e)*n(i),Math.cos(e)*t(i))},cos:function(){var e=this.re,i=this.im;return new s(Math.cos(e)*n(i),-Math.sin(e)*t(i))},tan:function(){var e=2*this.re,i=2*this.im,r=Math.cos(e)+n(i);return new s(Math.sin(e)/r,t(i)/r)},cot:function(){var e=2*this.re,i=2*this.im,r=Math.cos(e)-n(i);return new s(-Math.sin(e)/r,t(i)/r)},sec:function(){var e=this.re,i=this.im,r=.5*n(2*i)+.5*Math.cos(2*e);return new s(Math.cos(e)*n(i)/r,Math.sin(e)*t(i)/r)},csc:function(){var e=this.re,i=this.im,r=.5*n(2*i)-.5*Math.cos(2*e);return new s(Math.sin(e)*n(i)/r,-Math.cos(e)*t(i)/r)},asin:function(){var e=this.re,i=this.im,n=new s(i*i-e*e+1,-2*e*i).sqrt(),t=new s(n.re-i,n.im+e).log();return new s(t.im,-t.re)},acos:function(){var e=this.re,i=this.im,n=new s(i*i-e*e+1,-2*e*i).sqrt(),t=new s(n.re-i,n.im+e).log();return new s(Math.PI/2-t.im,t.re)},atan:function(){var e=this.re,i=this.im;if(0===e){if(1===i)return new s(0,1/0);if(-1===i)return new s(0,-1/0)}var n=e*e+(1-i)*(1-i),t=new s((1-i*i-e*e)/n,-2*e/n).log();return new s(-.5*t.im,.5*t.re)},acot:function(){var e=this.re,i=this.im;if(0===i)return new s(Math.atan2(1,e),0);var n=e*e+i*i;return 0!==n?new s(e/n,-i/n).atan():new s(0!==e?e/0:0,0!==i?-i/0:0).atan()},asec:function(){var e=this.re,i=this.im;if(0===e&&0===i)return new s(0,1/0);var n=e*e+i*i;return 0!==n?new s(e/n,-i/n).acos():new s(0!==e?e/0:0,0!==i?-i/0:0).acos()},acsc:function(){var e=this.re,i=this.im;if(0===e&&0===i)return new s(Math.PI/2,1/0);var n=e*e+i*i;return 0!==n?new s(e/n,-i/n).asin():new s(0!==e?e/0:0,0!==i?-i/0:0).asin()},sinh:function(){var e=this.re,i=this.im;return new s(t(e)*Math.cos(i),n(e)*Math.sin(i))},cosh:function(){var e=this.re,i=this.im;return new s(n(e)*Math.cos(i),t(e)*Math.sin(i))},tanh:function(){var e=2*this.re,i=2*this.im,r=n(e)+Math.cos(i);return new s(t(e)/r,Math.sin(i)/r)},coth:function(){var e=2*this.re,i=2*this.im,r=n(e)-Math.cos(i);return new s(t(e)/r,-Math.sin(i)/r)},csch:function(){var e=this.re,i=this.im,r=Math.cos(2*i)-n(2*e);return new s(-2*t(e)*Math.cos(i)/r,2*n(e)*Math.sin(i)/r)},sech:function(){var e=this.re,i=this.im,r=Math.cos(2*i)+n(2*e);return new s(2*n(e)*Math.cos(i)/r,-2*t(e)*Math.sin(i)/r)},asinh:function(){var e=this.im;this.im=-this.re,this.re=e;var i=this.asin();return this.re=-this.im,this.im=e,e=i.re,i.re=-i.im,i.im=e,i},acosh:function(){var e=this.acos();if(e.im<=0){var i=e.re;e.re=-e.im,e.im=i}else i=e.im,e.im=-e.re,e.re=i;return e},atanh:function(){var e=this.re,i=this.im,n=e>1&&0===i,t=1-e,r=1+e,a=t*t+i*i,l=0!==a?new s((r*t-i*i)/a,(i*t+r*i)/a):new s(-1!==e?e/0:0,0!==i?i/0:0),u=l.re;return l.re=o(l.re,l.im)/2,l.im=Math.atan2(l.im,u)/2,n&&(l.im=-l.im),l},acoth:function(){var e=this.re,i=this.im;if(0===e&&0===i)return new s(0,Math.PI/2);var n=e*e+i*i;return 0!==n?new s(e/n,-i/n).atanh():new s(0!==e?e/0:0,0!==i?-i/0:0).atanh()},acsch:function(){var e=this.re,i=this.im;if(0===i)return new s(0!==e?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var n=e*e+i*i;return 0!==n?new s(e/n,-i/n).asinh():new s(0!==e?e/0:0,0!==i?-i/0:0).asinh()},asech:function(){var e=this.re,i=this.im;if(this.isZero())return s.INFINITY;var n=e*e+i*i;return 0!==n?new s(e/n,-i/n).acosh():new s(0!==e?e/0:0,0!==i?-i/0:0).acosh()},inverse:function(){if(this.isZero())return s.INFINITY;if(this.isInfinite())return s.ZERO;var e=this.re,i=this.im,n=e*e+i*i;return new s(e/n,-i/n)},conjugate:function(){return new s(this.re,-this.im)},neg:function(){return new s(-this.re,-this.im)},ceil:function(e){return e=Math.pow(10,e||0),new s(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)},floor:function(e){return e=Math.pow(10,e||0),new s(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)},round:function(e){return e=Math.pow(10,e||0),new s(Math.round(this.re*e)/e,Math.round(this.im*e)/e)},equals:function(e,i){var n=new s(e,i);return Math.abs(n.re-this.re)<=s.EPSILON&&Math.abs(n.im-this.im)<=s.EPSILON},clone:function(){return new s(this.re,this.im)},toString:function(){var e=this.re,i=this.im,n="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(e)<s.EPSILON&&(e=0),Math.abs(i)<s.EPSILON&&(i=0),0===i?n+e:(0!==e?(n+=e,n+=" ",i<0?(i=-i,n+="-"):n+="+",n+=" "):i<0&&(i=-i,n+="-"),1!==i&&(n+=i),n+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return 0===this.im?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return 0===this.im&&0===this.re},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},s.ZERO=new s(0,0),s.ONE=new s(1,0),s.I=new s(0,1),s.PI=new s(Math.PI,0),s.E=new s(Math.E,0),s.INFINITY=new s(1/0,1/0),s.NAN=new s(NaN,NaN),s.EPSILON=1e-15,Object.defineProperty(s,"__esModule",{value:!0}),s.default=s,s.Complex=s,e.exports=s}()}(f);const h=new m.exports.Decimal(0),p=new m.exports.Decimal(1),g=new m.exports.Decimal(-1),d=new m.exports.Decimal(NaN),v=new m.exports.Decimal(1/0),x=new m.exports.Decimal(-1/0);function y(e){if("number"==typeof e&&(e=new m.exports.Decimal(e)),!e.isInteger()||e.isNegative())return d;if(e.lessThan(10))return new m.exports.Decimal([1,1,2,6,24,120,720,5040,40320,362880,3628800][e.toNumber()]);if(e.gt(Number.MAX_SAFE_INTEGER)){let i=p,n=new m.exports.Decimal(2);for(;n.lessThan(e);)i=i.mul(n),n=n.add(1);return i}if(e.modulo(2).eq(1))return e.times(y(e.minus(1)));let i=e.toNumber(),n=e.toNumber(),t=e;for(;i>2;)i-=2,n+=i,t=t.mul(n);return t}const b=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7].map((e=>new m.exports.Decimal(e))),N=new m.exports.Decimal(607).div(128),w=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22].map((e=>new m.exports.Decimal(e)));function S(e){if("number"==typeof e&&(e=new m.exports.Decimal(e)),e.isNegative())return d;let i=w[0];for(let n=w.length-1;n>0;--n)i=i.add(w[n].div(e.add(n)));const n=e.add(N).add(.5);return m.exports.Decimal.acos(-1).mul(2).log().mul(.5).add(n.log().mul(e.add(.5)).minus(n).add(i.log()).minus(e.log()))}function M(e){if("number"==typeof e&&(e=new m.exports.Decimal(e)),e.lessThan(.5)){const i=m.exports.Decimal.acos(-1);return i.div(i.mul(e).sin().mul(M(m.exports.Decimal.sub(1,e))))}if(e.greaterThan(100))return S(e).exp();{e=e.sub(1);let i=b[0];for(let n=1;n<9;n++)i=i.add(b[n].div(e.add(n)));const n=e.add(7).add(.5);return m.exports.Decimal.acos(-1).times(2).sqrt().mul(i.mul(n.neg().exp()).mul(m.exports.Decimal.pow(n,e.add(.5))))}}const E=Math.log10(Math.pow(2,53)),D=Math.pow(10,-10),A=new Set([2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919]);function C(e,i){if(!Number.isInteger(e)||!Number.isInteger(i))return NaN;for(;0!==i;)[e,i]=[i,e%i];return e<0?-e:e}const q=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],F=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];function I(e){if(e<0)return NaN;let i=F[0];for(let n=F.length-1;n>0;--n)i+=F[n]/(e+n);const n=e+4.7421875+.5;return.5*Math.log(2*Math.PI)+(e+.5)*Math.log(n)-n+Math.log(i)-Math.log(e)}function k(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*k(1-e));if(e>100)return Math.exp(I(e));{e-=1;let i=q[0];for(let n=1;n<9;n++)i+=q[n]/(e+n);const n=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(n,e+.5)*Math.exp(-n)*i}}const P="Parentheses",T="Identity",O="LatexTokens",z="List",L="Missing",_="Nothing",R="Sequence",Z="Sequence2",Q="Add",H="Derivative",j="Divide",$="InverseFunction",B="Multiply",U="Negate",G="Power",W="Prime",V="Root",Y="Sqrt",J="Subtract",X="ComplexInfinity",K="ExponentialE",ee="ImaginaryUnit";function ie(e){return null!==e&&"object"==typeof e&&"num"in e}function ne(e){return null!==e&&"object"==typeof e&&"sym"in e}function te(e){return null!==e&&"object"==typeof e&&"str"in e}function re(e){return null!==e&&"object"==typeof e&&"fn"in e}function oe(e){return null!==e&&"object"==typeof e&&"dict"in e}function se(e){if("number"==typeof e)return e;if(null===e)return null;if(ie(e))return e.num.endsWith("d")||e.num.endsWith("n")?null:parseFloat(e.num);const i=ve(e);return null===i?null:"NaN"===i?NaN:"+Infinity"===i?1/0:"-Infinity"===i?-1/0:"Complex"===de(e)&&0===se(Ne(e,2))?se(Ne(e,1)):null}function ae(e){if(null===e)return null;if(e instanceof f.exports.Complex)return e;const i=ve(e);if(null!==i){if("ComplexInfinity"===i)return f.exports.Complex.INFINITY;if(i===ee)return f.exports.Complex.I}const n=de(e);if("Complex"===n){const i=se(Ne(e,1)),n=se(Ne(e,2));return null===i||null===n?null:new f.exports.Complex(i,n)}let t=le(e);if(null!==t)return new f.exports.Complex(0,t);if("Add"===n&&2===we(e)){let i=se(Ne(e,1));if(null!==i?t=le(Ne(e,2)):(t=le(Ne(e,1)),null!==t&&(i=se(Ne(e,2)))),null!==i&&null!==t)return new f.exports.Complex(i,t)}if("Subtract"===n){const i=se(Ne(e,1)),n=Ne(e,2);if(null!==i){if(ve(n)===ee)return new f.exports.Complex(i,-1);if("Multiply"===de(n)&&Ne(n,2)===ee){const e=se(Ne(n,1));if(null!==e)return new f.exports.Complex(i,-e)}}}if("Multiply"===n&&2===we(e)){let i=null;if(ve(Ne(e,2))===ee?i=se(Ne(e,2)):ve(Ne(e,1))===ee&&(i=se(Ne(e,1))),null!==i&&Number.isInteger(i))return 0===i?f.exports.Complex.ZERO:1===i?f.exports.Complex.ONE:-1===i?f.exports.Complex.ONE.neg():new f.exports.Complex(0,i)}if("Negate"===n){const i=ae(Ne(e,1));if(null!==i)return i.neg()}return null}function le(e){if("ImaginaryUnit"===ve(e))return 1;let i=null;const n=de(e);return"Multiply"===n&&2===we(e)?"ImaginaryUnit"===ve(Ne(e,1))?i=se(Ne(e,2)):"ImaginaryUnit"===ve(Ne(e,2))&&(i=se(Ne(e,1))):"Negate"===n&&1===we(e)&&"ImaginaryUnit"===ve(Ne(e,1))&&(i=-1),0===i?null:i}function ue(e){var i,n;if(e instanceof m.exports.Decimal)return e;const t=ve(e);if(null!==t){if("NaN"===t)return d;if("+Infinity"===t)return v;if("-Infinity"===t)return x}if(ie(e))return e.num.endsWith("d")||e.num.endsWith("n")?new m.exports.Decimal(e.num.slice(0,-1)):new m.exports.Decimal(null!==(i=se(e))&&void 0!==i?i:NaN);if(null!==e&&e instanceof f.exports.Complex){const i=e;return 0===i.im?new m.exports.Decimal(i.re):null}return"Complex"===de(e)&&0===se(Ne(e,2))?new m.exports.Decimal(null!==(n=se(Ne(e,1)))&&void 0!==n?n:NaN):null}function ce(e){return null===e?null:"object"==typeof e&&"str"in e?e.str:"string"!=typeof e||e.length<2||"'"!==e[0]||"'"!==e[e.length-1]?null:e.substring(1,e.length-1)}function me(e){var i,n,t,r,o,s;const a=ve(e);if("ThreeQuarter"===a)return[3,4];if("TwoThird"===a)return[2,3];if("Half"===a)return[1,2];if("Third"===a)return[1,3];if("Quarter"===a)return[1,4];if(ge(e))return[null,null];const l=de(e);if(!l)return[null,null];let u=null,c=null;if(l===G){const t=se(Ne(e,2));1===t?(u=null!==(i=se(Ne(e,1)))&&void 0!==i?i:null,c=1):-1===t&&(u=1,c=null!==(n=se(Ne(e,1)))&&void 0!==n?n:null)}return l===j&&(u=null!==(t=se(Ne(e,1)))&&void 0!==t?t:null,c=null!==(r=se(Ne(e,2)))&&void 0!==r?r:null),l===B&&de(Ne(e,2))===G&&-1===se(Ne(Ne(e,2),2))&&(u=null!==(o=se(Ne(e,1)))&&void 0!==o?o:null,c=null!==(s=se(Ne(Ne(e,2),1)))&&void 0!==s?s:null),null===u||null===c?[null,null]:Number.isInteger(u)&&Number.isInteger(c)?[u,c]:[null,null]}function fe(e,i){var n,t,r,o;if(ve(e)===i)return[1,1];const s=de(e);if(s===B){if(ve(null!==(n=Ne(e,2))&&void 0!==n?n:L)!==i)return[null,null];const t=Ne(e,1),r=se(t);return null!==r?[r,1]:me(null!=t?t:L)}if(s===j){const n=se(null!==(t=Ne(e,2))&&void 0!==t?t:L);if(null===n||isNaN(n))return[null,null];const o=null!==(r=Ne(e,1))&&void 0!==r?r:L,s=ve(o);if(s===i)return[1,n];let a=null;if("MinusDoublePi"===s)a=-2;else if("MinusPi"===s)a=-1;else if("DoublePi"===s)a=2;else{if(de(o)!==B)return[null,null];if(ve(Ne(o,2))!==i)return[null,null];a=se(Ne(o,1))}return null===a?[null,null]:[a,n]}if(s===U){const[n,t]=fe(null!==(o=Ne(e,1))&&void 0!==o?o:L,i);return null===n||isNaN(n)?[null,null]:[-n,t]}return[null,null]}function he(e){return Array.isArray(e)?e[0]:re(e)?e.fn[0]:"number"==typeof e||ie(e)?"Number":"string"==typeof e?"String":ne(e)?"Symbol":oe(e)?"Dictionary":null}function pe(e){return null===e?null:Array.isArray(e)?e[0]:re(e)?e.fn[0]:null}function ge(e){return null===e||!Array.isArray(e)&&("object"!=typeof e||!("fn"in e||"dic"in e))}function de(e){if(null===e)return"";const i=pe(e);return"string"==typeof i?i:""}function ve(e){return null===e?null:"string"==typeof e?e.length>=2&&"'"===e[0]&&"'"===e[e.length-1]?null:e:ne(e)?e.sym:null}function xe(e){return Array.isArray(e)?e.slice(1):re(e)?e.fn.slice(1):[]}function ye(e,i){const n=pe(e);if(null!==n)return[i(n),...xe(e).map(i)];const t=Se(e);if(null!==t){const e=Object.keys(t),n={};for(const r of e)n[r]=i(t[r]);return{dict:n}}return i(e)}function be(e,i){let n=null;if(Array.isArray(e)&&(n=e),re(e)&&(n=e.fn),null===n)return[];let t=1;const r=[];for(;t<n.length;)r.push(i(n[t])),t+=1;return r}function Ne(e,i){var n,t;return null===e?null:Array.isArray(e)?null!==(n=e[i])&&void 0!==n?n:null:re(e)&&null!==(t=e.fn[i])&&void 0!==t?t:null}function we(e){return Array.isArray(e)?Math.max(0,e.length-1):re(e)?Math.max(0,e.fn.length-1):0}function Se(e){return"object"==typeof e&&"dict"in e?e.dict:null}function Me(e,i){if(typeof e!=typeof i)return!1;if(null===e)return null===i;if(void 0===e)return void 0===i;if("number"==typeof e)return e===i;if("string"==typeof e)return e===i;if(Array.isArray(e)&&Array.isArray(i)){if(!Me(he(e),he(i)))return!1;const n=we(e);if(we(i)!==n)return!1;for(let t=0;t<n;t++)if(!Me(Ne(e,t),Ne(i,t)))return!1;return!0}if("object"==typeof e){if(ie(e)&&ie(i))return se(e)===se(i);if(ne(e)&&ne(i))return ve(e)===ve(i);if(re(e)&&re(i)){if(!Me(he(e),he(i)))return!1;const n=we(e);if(we(i)!==n)return!1;for(let t=0;t<n;t++)if(!Me(Ne(e,t),Ne(i,t)))return!1;return!0}if(te(e)&&te(i))return ce(e)===ce(i);if(oe(e)&&oe(i)){const n=Se(e),t=Se(i);if(null===n&&null!==t)return!1;if(null===n&&null===t)return!0;const r=Object.keys(n);if(null===t||r.length!==Object.keys(t).length)return!1;for(const e of r)if(!Me(n[e],t[e]))return!1;return!0}}return!1}const Ee=[{name:"Overscript",trigger:{infix:"\\overset"},precedence:700},{name:"Underscript",trigger:{infix:"\\underset"},precedence:700},{name:"Increment",trigger:{postfix:["+","+"]},precedence:880},{name:"Decrement",trigger:{postfix:["-","-"]},precedence:880},{name:"PreIncrement",trigger:{prefix:["+","+"]},precedence:880},{name:"PreDecrement",trigger:{prefix:["-","-"]},precedence:880},{name:"Ring",trigger:{infix:"\\circ"},precedence:265},{name:"Transpose",trigger:{superfix:"T"}},{name:"ConjugateTranspose",trigger:{superfix:"H"}},{name:"StringJoin",trigger:{infix:["\\lt","\\gt"]},precedence:780},{name:"Starstar",trigger:{infix:["\\star","\\star"]},precedence:780},{name:"PartialDerivative",trigger:{prefix:"\\partial"},parse:(e,i,n)=>{var t,r;let o=!1,s=_,a=_;for(;!o;)i.skipSpace(),i.match("_")?a=i.matchRequiredLatexArgument():i.match("^")?s=i.matchRequiredLatexArgument():o=!0;if(de(a)===R&&(a=[z,...xe(a)]),!a||!s)return[e,null];let l=null!==(t=i.matchRequiredLatexArgument())&&void 0!==t?t:_;return l!==_&&(l=[l,...null!==(r=i.matchArguments("group"))&&void 0!==r?r:_]),[null,["PartialDerivative",l,a,s]]},serialize:(e,i)=>{let n="\\partial";const t=Ne(i,1),r=Ne(i,2),o=Ne(i,3);return null!==r&&r!==_&&(pe(r)===z?n+="_{"+e.serialize([R,...xe(r)])+"}":n+="_{"+e.serialize(r)+"}"),null!==o&&o!==_&&(n+="^{"+e.serialize(o)+"}"),null!==t&&t!==_&&(n+=e.serialize(t)),n},precedence:740},{name:"OverBar",trigger:{symbol:"\\overline"},requiredLatexArg:1},{name:"UnderBar",trigger:{symbol:"\\underline"},requiredLatexArg:1},{name:"OverVector",trigger:{symbol:"\\vec"},requiredLatexArg:1},{name:"OverTile",trigger:{symbol:"\\tilde"},requiredLatexArg:1},{name:"OverHat",trigger:{symbol:"\\hat"},requiredLatexArg:1},{name:"OverHat",trigger:{symbol:"\\hat"},requiredLatexArg:1},{name:"OverRightArrow",trigger:{symbol:"\\overrightarrow"},requiredLatexArg:1},{name:"OverLeftArrow",trigger:{symbol:"\\overleftarrow"},requiredLatexArg:1},{name:"OverRightDoubleArrow",trigger:{symbol:"\\Overrightarrow"},requiredLatexArg:1},{name:"OverLeftHarpoon",trigger:{symbol:"\\overleftharpoon"},requiredLatexArg:1},{name:"OverRightHarpoon",trigger:{symbol:"\\overrightharpoon"},requiredLatexArg:1},{name:"OverLeftRightArrow",trigger:{symbol:"\\overleftrightarrow"},requiredLatexArg:1},{name:"OverBrace",trigger:{symbol:"\\overbrace"},requiredLatexArg:1},{name:"OverLineSegment",trigger:{symbol:"\\overlinesegment"},requiredLatexArg:1},{name:"OverGroup",trigger:{symbol:"\\overgroup"},requiredLatexArg:1}];function De(e,i){return i>2?"solidus":"radical"}function Ae(e){return"<space>"===e||"\\qquad"===e||"\\quad"===e||"\\enskip"===e||"\\;"===e||"\\,"===e||"\\ "===e||"~"===e}function Ce(e,i,n){return(t,r,o)=>{if(o>=i)return[t,null];r.skipSpace(),r.match(n),"Missing"===t&&(t=_);const s=[e,null!=t?t:_];let a=!1;for(;!a;){for(a=!0,r.skipSpace();r.match(n);)s.push(_),r.skipSpace();if(r.atEnd)s.push(_);else{const e=r.matchExpression(i);s.push(null!=e?e:_),a=null===e}a||(r.skipSpace(),a=!r.match(n))}return[null,s]}}function qe(e){return(i,n)=>xe(n).map((e=>i.serialize(e))).join(e)}const Fe=[{name:O,serialize:function(e,i){return xe(i).map((i=>{const n=ce(i);return null===n?e.serialize(i):"<{>"===n?"{":"<}>"===n?"}":"<$>"===n?"$":"<$$>"===n?"$$":"<space>'"===n?" ":n})).join("")}},{name:P,trigger:{matchfix:"("},parse:(e,i,n)=>{var t;const r=i.index;if(!i.match("("))return[e,null];let o=!1,s=!0,a=!1,l=0,u="";for(;!o&&s;){const e=i.next();i.atEnd||")"===e?o=!0:"\\mathtt"===e?(i.match("<{>"),a=!0):Ae(e)||(/^[0-9a-zA-Z]$/.test(e)?(l=Math.max(l,parseInt(e,36)),u+=e):s=!1),a&&i.match("<}>")}if(i.skipSpace(),s&&i.match("_")){const n=null!==(t=se(i.matchRequiredLatexArgument()))&&void 0!==t?t:NaN;return!isFinite(n)||n<2||n>36||l>=n?(i.onError({code:"base-out-of-range"}),[e,_]):[e,["BaseForm",parseInt(u,n),n]]}i.index=r;const c=i.matchBalancedExpression("(",")",i.onError);return c?de(c)===R?[e,[P,...xe(c)]]:[e,[P,c]]:[e,[P]]},serialize:(e,i)=>e.wrapString(qe(",")(e,i),(e.level,"paren")),separator:",",closeFence:")",precedence:20},{name:z,trigger:{matchfix:"\\lbrack"},separator:",",closeFence:"\\rbrack",precedence:20,parse:(e,i,n)=>{if(null===e){const n=i.matchBalancedExpression("\\lbrack","\\rbrack",i.onError);return n?de(n)===R?[e,[z,...xe(n)]]:[e,[z,n]]:[null,[z]]}return[e,null]}},{name:"BaseForm",serialize:(e,i)=>{var n,t;const r=null!==(n=se(Ne(i,2)))&&void 0!==n?n:NaN;if(isFinite(r)&&r>=2&&r<=36){const e=null!==(t=se(Ne(i,1)))&&void 0!==t?t:NaN;if(isFinite(e)){let i=Number(e).toString(r),n=0;if(2===r||10===r?n=4:16===r?n=2:r>16&&(n=4),n>0){const e=i;i="";for(let t=0;t<e.length;t++)t>0&&t%n==0&&(i="\\, "+i),i=e[e.length-t-1]+i}return`(\\mathtt{${i}})_{${r}}`}}return"\\operatorname{BaseForm}("+e.serialize(Ne(i,1))+", "+e.serialize(Ne(i,2))+")"}},{name:"Set",trigger:{matchfix:"\\lbrace"},separator:",",closeFence:"\\rbrace",precedence:20},{name:R,trigger:{infix:","},parse:Ce(R,20,","),serialize:qe(", "),precedence:20},{name:Z,trigger:{infix:";"},parse:Ce(Z,19,";"),serialize:qe("; "),precedence:19},{name:L,trigger:"\\placeholder",serialize:"\\placeholder",requiredLatexArg:1},{name:"Subscript",trigger:{infix:"_"},precedence:720,serialize:(e,i)=>2===we(i)?e.serialize(Ne(i,1))+"_{"+e.serialize(Ne(i,2))+"}":"_{"+e.serialize(Ne(i,1))+"}",parse:(e,i,n)=>{var t;if(!i.match("_"))return[e,null];const r=null!==(t=i.matchRequiredLatexArgument())&&void 0!==t?t:L;return e?[null,["Subscript",e,r]]:[null,["Subscript",r]]}},{name:"Superplus",trigger:{superfix:"+"}},{name:"Subplus",trigger:{subfix:"+"}},{name:"Superminus",trigger:{superfix:"-"}},{name:"Subminus",trigger:{subfix:"-"}},{name:"Superstar",trigger:{superfix:"*"}},{name:"Superstar",trigger:{superfix:"\\star"}},{name:"Substar",trigger:{subfix:"*"}},{name:"Substar",trigger:{subfix:"\\star"}},{name:"Superdagger",trigger:{superfix:"\\dagger"}},{name:"Superdagger",trigger:{superfix:"\\dag"}},{name:W,trigger:{superfix:"\\prime"},arguments:"group"},{trigger:{superfix:"\\doubleprime"},parse:(e,i)=>[null,[W,null!=e?e:_,2]],arguments:"group"},{name:$,serialize:(e,i)=>e.serialize(Ne(i,1))+"^{-1}"},{name:H,trigger:"D",parse:(e,i)=>[e,[H,1]],serialize:(e,i)=>{var n;const t=null!==(n=se(Ne(i,1)))&&void 0!==n?n:NaN;if(!isFinite(t))return"";const r=e.serialize(Ne(i,2));return 1===t?r+"^{\\prime}":2===t?r+"^{\\doubleprime}":r+"^{("+Number(t).toString()+")}"}},{name:"Piecewise",trigger:{environment:"cases"},parse:(e,i)=>{var n;return[e,["Piecewise",null!==(n=i.matchTabular())&&void 0!==n?n:_]]},serialize:(e,i)=>{if(de(Ne(i,1))!==z)return"";const n=xe(Ne(i,1));let t="",r="";for(const i of n){t+=r;const n=Ne(i,1);if(null!==n){t+=e.serialize(n);const r=Ne(i,2);null!==r&&(t+="&"+e.serialize(r))}r="\\\\"}return"\\begin{cases}"+t+"\\end{cases}"}}];function Ie(e,i){const n=se(i);return null!==n?0===n:!!e.is(["Equal",i,0])||!0!==e.is(["NotEqual",i,0])&&!0!==e.is(["Greater",i,0])&&!0!==e.is(["Less",i,0])&&null===n&&void 0}function ke(e,i){const n=Ie(e,i);return void 0===n?void 0:!n}function Pe(e,i){if(null===i)return;const n=se(i);if(null!==n&&!Number.isFinite(n))return!0;if(null!==n&&isNaN(n))return;const t=ve(i);if(t===X)return!0;if(t===L||t===_)return!1;if(e.is(i,"ComplexNumber"))return!1;const r=de(i);if("Negate"===r){if(Pe(e,Ne(i,1)))return!0}else if("Multiply"===r){const n=xe(i);if(n.some((i=>!0===Pe(e,i)))&&n.every((i=>!0===ke(e,i))))return!0}return null===n&&void 0}function Te(e,i){if(null===i)return;const n=se(i);if(null!==n)return n>0;const t=ve(i);if(t&&["Quarter","Third","Half","TwoThird","ThreeQuarter","MinusDoublePi","MinusPi","QuarterPi","ThirdPi","HalfPi","TwoThirdPi","ThreeQuarterPi","Pi","DoublePi","MachineEpsilon","CatalanConstant","GoldenRatio","EulerGamma","ExponentialE"].includes(t))return!0;if(e.is(["Greater",i,0]))return!0;if(e.is(["LessEqual",i,0]))return!1;if(e.is(["Less",i,0]))return!1;const r=de(i);if(r){if(("Cosh"===r||"Exp"===r)&&ze(0,Ne(i,1)))return!0;if("Sqrt"===r&&Te(e,Ne(i,1)))return!0;if(r===B||r===Q)return xe(i).every((i=>!0===Te(e,i)));if(r===j&&Te(e,Ne(i,1))&&Te(e,Ne(i,2)))return!0;if(r===G&&Te(e,Ne(i,1)))return!0}}function Oe(e,i){const n=Te(e,i);return!0!==n&&(void 0!==n?!1===Ie(e,i):void 0)}function ze(e,i){return null!==i&&null!==se(i)}function Le(e,i,n){var t,r,o;if(!i||!n)return!1;if("string"==typeof i&&i===n)return!0;if("Anything"===n)return!0;if("Nothing"===n)return!1;const s=de(i);if("Union"===s)return xe(i).some((i=>Le(e,i,n)));if("Intersection"===s)return xe(i).every((i=>Le(e,i,n)));if("SetMinus"===s)return Le(e,Ne(i,1),n)&&!Le(e,Ne(i,2),n);const a=de(n);if("Union"===a)return xe(n).some((n=>Le(e,i,n)));if("Intersection"===a)return xe(n).every((n=>Le(e,i,n)));if("SetMinus"===a)return Le(e,i,Ne(n,1))&&!Le(e,i,Ne(n,2));const l=null!==(t=ve(n))&&void 0!==t?t:a;if(!l){const e=null!==(r=se(n))&&void 0!==r?r:NaN;if(Number.isNaN(e))return!1;n=0===n?"NumberZero":["Set",n]}const u=e.getSetDefinition(l);if(!u)return!1;if("function"==typeof u.isSubsetOf)return u.isSubsetOf(this,i,n);const c=null!==(o=ve(i))&&void 0!==o?o:s;if(!c)return!1;const m=e.getSetDefinition(c);if(!m)return!1;for(const i of m.supersets)if(Le(e,i,n))return!0;return!1}const _e={MachineEpsilon:{domain:"RealNumber",constant:!0,value:{num:Number.EPSILON.toString()}},ImaginaryUnit:{domain:"ImaginaryNumber",constant:!0,wikidata:"Q193796"},ExponentialE:{domain:"TranscendentalNumber",wikidata:"Q82435",constant:!0,value:e=>"decimal"===e.numericFormat?m.exports.Decimal.exp(1):"complex"===e.numericFormat?f.exports.Complex.E:2.718281828459045},GoldenRatio:{domain:"IrrationalNumber",wikidata:"Q41690",constant:!0,hold:!1,value:["Divide",["Add",1,["Sqrt",5]],2]},CatalanConstant:{domain:"RealNumber",wikidata:"Q855282",constant:!0,value:{num:"0.91596559417721901505"}},EulerGamma:{domain:"RealNumber",wikidata:"Q273023",constant:!0,value:{num:"0.577215664901532860606"}},Quarter:{domain:"RationalNumber",wikidata:"Q2310416",constant:!0,hold:!1,value:[j,3,4]},Third:{domain:"RationalNumber",wikidata:"Q20021125",constant:!0,hold:!1,value:[j,1,3]},Half:{domain:"RationalNumber",wikidata:"Q2114394",constant:!0,hold:!1,value:[j,1,2]},TwoThird:{domain:"RationalNumber",constant:!0,hold:!1,value:[j,2,3]},ThreeQuarter:{domain:"RationalNumber",constant:!0,hold:!1,value:[j,3,4]},Abs:{domain:"Function",wikidata:"Q3317982",threadable:!0,idempotent:!0,numeric:!0,range:["Interval",0,1/0],evalNumber:(e,i)=>Math.abs(i),evalComplex:(e,i)=>f.exports.Complex.abs(i),evalDecimal:(e,i)=>m.exports.Decimal.abs(i)},Add:{domain:"Function",wikidata:"Q32043",associative:!0,commutative:!0,threadable:!0,idempotent:!0,range:"Number",numeric:!0,simplify:function(e,...i){var n,t;if(0===i.length)return 0;if(1===i.length)return i[0];let r=0,o=1,s=h,a=f.exports.Complex.ZERO,l=!1,u=!1;const c=[];for(const n of i){const i=ve(n);if(i===L||i===_)return NaN;if(i===X)return X;Pe(e,n)&&(Te(e,n)?l=!0:u=!0);const[t,m]=me(n);if(null!==t&&null!==m){if(isNaN(t)||isNaN(m))return NaN;r=r*m+t*o,o*=m}else{const i=ae(n);if(null!==i)Number.isInteger(i.re)&&Number.isInteger(i.im)?a=a.add(i):c.push(n);else{const i=ue(n);if(null!==i&&i.isInteger())s=s.add(i);else{const i=se(n);null!==i&&Number.isInteger(i)?r+=i:!1!==ke(e,n)&&c.push(n)}}}}if(l&&u)return NaN;if(l)return 1/0;if(u)return-1/0;if(s.isZero()||c.push(s),a.isZero()||c.push(a),0===c.length)return 0===r?0:1===o?r:["Divide",r,o];if(0!==r){const e=C(r,o);r/=e,o/=e,1===o?c.push(r):c.push(["Divide",r,o])}return 1===c.length?c[0]:2===c.length&&de(c[1])===U?["Subtract",c[0],null!==(n=Ne(c[1],1))&&void 0!==n?n:L]:2===c.length&&de(c[0])===U?["Subtract",c[1],null!==(t=Ne(c[0],1))&&void 0!==t?t:L]:["Add",...c]},evalNumber:(e,...i)=>{if(0===i.length)return 0;let n=0;for(const e of i)n+=e;return n},evalComplex:(e,...i)=>{if(0===i.length)return f.exports.Complex.ZERO;let n=f.exports.Complex.ZERO;for(const e of i)n=n.add(e);return n},evalDecimal:(e,...i)=>{if(0===i.length)return h;let n=h;for(const e of i)n=n.add(e);return n},evaluate:(e,...i)=>{if(0===i.length)return 0;let n=["Add"];const t=i.filter((e=>e instanceof m.exports.Decimal));t.length>0&&(1===t.length?n.push(t[0]):n.push(e.N(["Add",...t])));const r=i.filter((e=>e instanceof f.exports.Complex));r.length>0&&(1===r.length?n.push(r[0]):n.push(e.N(["Add",...r])));const o=i.filter((e=>"number"==typeof e));o.length>0&&(1===o.length?n.push(o[0]):n.push(e.N(["Add",...o])));const s=i.filter((e=>!("number"==typeof e||e instanceof m.exports.Decimal||e instanceof f.exports.Complex)));return n=[...n,...s],0===n.length?0:1===n.length?n[1]:n}},Chop:{domain:"Function",associative:!0,threadable:!0,idempotent:!0,numeric:!0,range:"Number",evalNumber:(e,i)=>e.chop(i),evalComplex:(e,i)=>e.chop(i),evalDecimal:(e,i)=>e.chop(i)},Ceil:{domain:"Function",range:"Number",numeric:!0,evalNumber:(e,i)=>Math.ceil(i),evalComplex:(e,i)=>f.exports.Complex.ceil(i),evalDecimal:(e,i)=>m.exports.Decimal.ceil(i)},Divide:{domain:"Function",range:"Number",numeric:!0,evalNumber:(e,i,n)=>i/n,evalComplex:(e,i,n)=>"number"==typeof i?new f.exports.Complex(i).div(n):i.div(n),evalDecimal:(e,i,n)=>m.exports.Decimal.div(i,n)},Exp:{domain:["ContinuousFunction","MonotonicFunction"],wikidata:"Q168698",threadable:!0,range:"Number",numeric:!0,evalNumber:(e,i)=>Math.exp(i),evalComplex:(e,i)=>"number"==typeof i?new f.exports.Complex(i).exp():i.exp(),evalDecimal:(e,i)=>m.exports.Decimal.exp(i)},Erf:{domain:["ContinuousFunction","MonotonicFunction"],range:"Number",numeric:!0},Erfc:{domain:["ContinuousFunction","MonotonicFunction"],range:"Number",numeric:!0},Factorial:{wikidata:"Q120976",domain:"MonotonicFunction",range:"Integer",numeric:!0,evalNumber:(e,i)=>function(e){if(!Number.isInteger(e)||e<0)return NaN;let i=1;for(let n=2;n<=e;n++)i*=n;return i}(i),evalComplex:(e,i)=>"number"==typeof i?new f.exports.Complex(i+1):i.add(1),evalDecimal:(e,i)=>y(i)},Floor:{domain:"Function",wikidata:"Q56860783",range:"Number",numeric:!0,evalNumber:(e,i)=>Math.floor(i),evalDecimal:(e,i)=>m.exports.Decimal.floor(i)},Gamma:{domain:"Function",wikidata:"Q190573",range:"Number",numeric:!0,evalNumber:(e,i)=>k(i),evalDecimal:(e,i)=>M(i)},LogGamma:{domain:"Function",range:"Number",numeric:!0,evalNumber:(e,i)=>I(i),evalDecimal:(e,i)=>S(i)},Ln:{domain:"Function",wikidata:"Q11197",range:"Number",numeric:!0,evalNumber:(e,i)=>Math.log(i),evalComplex:(e,i)=>"number"==typeof i?new f.exports.Complex(i).log():i.log(),evalDecimal:(e,i)=>m.exports.Decimal.log(i)},Log:{domain:"Function",range:"Number",numeric:!0,evalNumber:(e,i,n)=>Math.log(n)/Math.log(i),evalComplex:(e,i,n)=>{const t="number"==typeof i?new f.exports.Complex(i):i;return("number"==typeof n?new f.exports.Complex(n):n).log().div(t.log())},evalDecimal:(e,i,n)=>m.exports.Decimal.log(n).div(m.exports.Decimal.log(i))},Lb:{domain:"Function",wikidata:"Q581168",range:"Number",numeric:!0,evalNumber:(e,i)=>Math.log2(i),evalComplex:(e,i,n)=>("number"==typeof n?new f.exports.Complex(n):n).log().div(f.exports.Complex.log(2)),evalDecimal:(e,i)=>m.exports.Decimal.log(i).div(m.exports.Decimal.log(2))},Lg:{domain:"Function",wikidata:"Q966582",range:"Number",numeric:!0,evalNumber:(e,i)=>Math.log10(i),evalComplex:(e,i,n)=>("number"==typeof n?new f.exports.Complex(n):n).log().div(f.exports.Complex.log(10)),evalDecimal:(e,i)=>m.exports.Decimal.log(i).div(m.exports.Decimal.log(10))},Multiply:{domain:"Function",wikidata:"Q40276",associative:!0,commutative:!0,idempotent:!0,range:"Number",simplify:function(e,...i){if(0===i.length)return 1;if(1===i.length)return i[0];const n=[];let t=1,r=1,o=f.exports.Complex.ONE;for(const s of i){const i=se(s);if(0===i)return 0;if(null===i||Number.isFinite(i)&&!Number.isInteger(i)){const[i,a]=[null,null];if(null!==i&&null!==a)t*=i,r*=a;else{const i=ae(s);if(null!==i)Number.isInteger(i.re)&&Number.isInteger(i.im)?o=o.mul(i):n.push(s);else{if(Ie(e,s))return 0;n.push(s)}}}else t*=i}return 0!==o.im?(o=o.mul(t),t=1):(t*=o.re,o=f.exports.Complex.ONE),0!==t&&isFinite(t)?(o.equals(f.exports.Complex.ONE)||n.push(["Complex",o.re,o.im]),0===n.length?1===r?t:["Divide",t,r]:(1!==r&&(n.unshift(["Divide",t,r]),t=1,r=1),1===n.length&&1===t?n[0]:1===n.length&&-1===t?["Negate",n[0]]:1===t?["Multiply",...n]:-1===t?["Negate",["Multiply",...n]]:["Multiply",t,...n])):t/r},numeric:!0,evalNumber:function(e,...i){if(0===i.length)return 1;if(1===i.length)return i[0];let n=1;for(const e of i)n*=e;return n},evalComplex:(e,...i)=>{if(0===i.length)return f.exports.Complex.ONE;let n=f.exports.Complex.ONE;for(const e of i)n=n.mul(e);return n},evalDecimal:(e,...i)=>{if(0===i.length)return p;let n=p;for(const e of i)n=n.mul(e);return n},evaluate:(e,...i)=>{if(0===i.length)return 0;let n=["Multiply"];const t=i.filter((e=>e instanceof m.exports.Decimal));t.length>0&&(1===t.length?n.push(t[0]):n.push(e.N(["Multiply",...t])));const r=i.filter((e=>e instanceof f.exports.Complex));r.length>0&&(1===r.length?n.push(r[0]):n.push(e.N(["Multiply",...r])));const o=i.filter((e=>"number"==typeof e));o.length>0&&(1===o.length?n.push(o[0]):n.push(e.N(["Multiply",...o])));const s=i.filter((e=>!("number"==typeof e||e instanceof m.exports.Decimal||e instanceof f.exports.Complex)));return n=[...n,...s],0===n.length?1:1===n.length?n[1]:n}},Negate:{domain:"Function",wikidata:"Q715358",range:"Number",simplify:(e,i)=>{var n;return null!==(n=Re(i))&&void 0!==n?n:["Negate",i]},numeric:!0,evalNumber:(e,i)=>-i,evalComplex:(e,i)=>"number"==typeof i?new f.exports.Complex(-i):i.neg(),evalDecimal:(e,i)=>"number"==typeof i?new m.exports.Decimal(-i):i.neg()},Power:{domain:"Function",wikidata:"Q33456",commutative:!1,numeric:!0,range:"Number",simplify:(e,...i)=>Qe(e,["Power",...i]),evalNumber:(e,i,n)=>Math.pow(i,n),evalComplex:(e,i,n)=>{const t="number"==typeof i?new f.exports.Complex(i):i,r="number"==typeof n?new f.exports.Complex(n):n;return f.exports.Complex.pow(t,r)},evalDecimal:(e,i,n)=>m.exports.Decimal.pow(i,n)},Round:{domain:"Function",range:"Number",numeric:!0,evalNumber:(e,i)=>Math.round(i),evalComplex:(e,i)=>"number"==typeof i?new f.exports.Complex(i).round():i.round(),evalDecimal:(e,i)=>m.exports.Decimal.round(i)},Sign:{domain:"Function",range:["Range",-1,1],numeric:!0,simplify:(e,i)=>Ie(e,i)?0:Oe(e,i)?-1:1,evalNumber:(e,i)=>0===i?0:i<0?-1:1,evalComplex:(e,i)=>{const n="number"==typeof i?new f.exports.Complex(i):i;return n.div(n.abs())},evalDecimal:(e,i)=>"number"==typeof i?0===i?h:i<0?g:p:i.isZero()?h:i.isNeg()?g:p},SignGamma:{domain:"Function",range:"Number",numeric:!0},Sqrt:{domain:"Function",wikidata:"Q134237",range:"Number",numeric:!0,evalNumber:(e,i)=>Math.sqrt(i),evalComplex:(e,i)=>"number"==typeof i?new f.exports.Complex(i).sqrt():i.sqrt(),evalDecimal:(e,i)=>m.exports.Decimal.sqrt(i)},Square:{domain:"Function",wikidata:"Q3075175",range:"Number",numeric:!0,evalNumber:(e,i)=>i*i,evalComplex:(e,i)=>"number"==typeof i?new f.exports.Complex(i).multiply(i):i.mul(i),evalDecimal:(e,i)=>m.exports.Decimal.mul(i,i)},Root:{domain:"Function",commutative:!1,range:"Number",numeric:!0,evalNumber:(e,i,n)=>Math.pow(i,1/n),evalComplex:(e,i,n)=>{const t="number"==typeof i?new f.exports.Complex(i):i,r="number"==typeof n?new f.exports.Complex(1/n):new f.exports.Complex(f.exports.Complex.ONE.div(n));return f.exports.Complex.pow(t,r)},evalDecimal:(e,i,n)=>m.exports.Decimal.pow(i,p.div(n))},Subtract:{domain:"Function",wikidata:"Q32043",range:"Number",numeric:!0,evalNumber:(e,i,n)=>i-n,evalComplex:(e,i,n)=>"number"==typeof i?new f.exports.Complex(i).sub(n):i.sub(n),evalDecimal:(e,i,n)=>m.exports.Decimal.sub(i,n)}};function Re(e){var i,n,t,r;if("number"==typeof(e=Ze(e)))return-e;if(e&&ie(e))return"-"===e.num[0]?{num:e.num.slice(1)}:"+"===e.num[0]?{num:"-"+e.num.slice(1)}:{num:"-"+e.num};if(e instanceof m.exports.Decimal)return e.mul(-1);if(e instanceof f.exports.Complex)return e.mul(-1);const o=de(e),s=we(e);if(o===U&&1===s)return null!==(i=Ne(e,1))&&void 0!==i?i:L;if(o===B){const i=Re(null!==(n=Ne(e,1))&&void 0!==n?n:L);return[B,i,...xe(e).slice(1)]}return o===Q?[Q,...be(e,Re)]:o===J?[J,null!==(t=Ne(e,2))&&void 0!==t?t:L,null!==(r=Ne(e,1))&&void 0!==r?r:L]:o===P&&1===s?Re(Ne(Ne(e,1),1)):[U,null!=e?e:L]}function Ze(e){return null===e?_:ge(e)?e:pe(e)===P&&1===we(e)?Ze(Ne(e,1)):ye(e,Ze)}function Qe(e,i){var n,t;if(2!==we(i=Ze(i)))return i;const r=Ne(i,1),o=null!==(n=se(r))&&void 0!==n?n:NaN,s=Ne(i,2);if("ComplexInfinity"===ve(s))return NaN;const a=null!==(t=se(s))&&void 0!==t?t:NaN;if(Ie(e,s))return 1;if(1===a)return r;if(2===a)return["Square",r];if(-1===a)return-1===o||1===o?-1:Number.isFinite(o)?["Divide",1,r]:0;if(!Number.isFinite(a)){if(0===o&&a<0)return"ComplexInfinity";if(1===o||-1===o)return NaN;if(o===1/0){if(a>0)return 1/0;if(a<0)return 0}if(o===-1/0&&!Number.isFinite(a))return NaN}return i}function He(e){if(ge(e))return e;let[i,n]=me(e);return 3===i&&4===n?"ThreeQuarter":2===i&&3===n?"TwoThird":1===i&&2===n?"Half":1===i&&4===n?"Quarter":([i,n]=fe(e,"Pi"),null===i||null===n?ye(e,(e=>He(e))):-2===i&&1===n?"MinusDoublePi":-1===i&&2===n?"MinusHalfPi":1===i&&4===n?"QuarterPi":1===i&&3===n?"ThirdPi":1===i&&2===n?"HalfPi":2===i&&3===n?"TwoThirdPi":3===i&&4===n?"ThreeQuarterPi":2===i&&1===n?"DoublePi":1===i&&1===n?"Pi":1===i?["Divide","Pi",n]:1===n?["Multiply",i,"Pi"]:["Multiply",["Divide",i,n],"Pi"])}function je(e,i,n,t){return null===n?"\\sqrt{}":(t=null!=t?t:2,"solidus"===i?e.wrapShort(n)+"^{1\\/"+e.serialize(t)+"}":"quotient"===i?e.wrapShort(n)+"^{\\frac{1}{"+e.serialize(t)+"}}":2===se(t)?"\\sqrt{"+e.serialize(n)+"}":"\\sqrt["+e.serialize(t)+"]{"+e.serialize(n)+"}")}function $e(e,i,n){if(!i.match("\\sqrt"))return[e,null];const t=i.matchOptionalLatexArgument(),r=i.matchRequiredLatexArgument();return null===r?null!==t?[e,[V,_,t]]:[e,[Y]]:null!==t?[e,[V,r,t]]:[e,[Y,r]]}function Be(e,i,n){if(276<n)return[e,null];const t=i.index;if(!i.match("-"))return[e,null];const r=i.matchExpression(null===e?400:277);return null===r?(i.index=t,[e,null]):null===e?[null,[U,r]]:[null,[J,e,r]]}function Ue(e,i){var n;if(null===i)return"";e.level-=1;let t="";const[r,o]=function(e){var i,n,t,r,o,s;if(de(e)!==B)return[[],[]];const a=[],l=[],u=xe(e);for(const e of u)if(de(e)===G)if(de(Ne(e,2))===U){const t=null!==(i=Ne(e,1))&&void 0!==i?i:_,r=null!==(n=Ne(Ne(e,2),1))&&void 0!==n?n:_;l.push([G,t,r])}else{const i=null!==(t=se(Ne(e,2)))&&void 0!==t?t:NaN;-1===i?l.push(null!==(r=Ne(e,1))&&void 0!==r?r:_):i<0?l.push([G,null!==(o=Ne(e,1))&&void 0!==o?o:_,null!==(s=Re(Ne(e,2)))&&void 0!==s?s:_]):a.push(e)}else a.push(e);return[a,l]}(i);if(o.length>0&&(t=1===o.length&&1===o[0]?0===r.length?"1":1===r.length?e.serialize(r[0]):Ue(e,[B,...r]):e.serialize([j,1===r.length?r[0]:[B,...r],1===o.length?o[0]:[B,...o]])),t)return e.level+=1,t;let s=!1,a=null;const u=we(i)+1;let c=!1;for(let r=1;r<u;r++)if(a=Ne(i,r),null!==a){let i;"number"==typeof a||ie(a)?(i=e.serialize(a),"-1"!==i||t?("-"===i[0]&&(i=i.slice(1),s=!s),t=t?l([t,e.options.multiply,i]):i):t="-",c=!0):de(a)!==G||isNaN(null!==(n=se(Ne(a,1)))&&void 0!==n?n:NaN)?(de(a)===U&&(a=Ne(a,1),s=!s),i=e.wrap(a,390),t=t?c&&de(a)===j?l([t,"\\times",i]):e.options.invisibleMultiply?l([t,e.options.invisibleMultiply,i]):l([t,i]):i,c=!1):(t=t?l([t,e.options.multiply,e.serialize(a)]):e.serialize(a),c=!0)}return e.level+=1,s?"-"+t:t}function Ge(e,i){if(null===i)return"";if(1===we(i))return e.serialize(Ne(i,1));const n=e.level>3?"inline-solidus":"quotient";if("inline-solidus"===n||"nice-solidus"===n){const t=e.wrapShort(Ne(i,1)),r=e.wrapShort(Ne(i,2));return"nice-solidus"===n?`^{${t}}\\!\\!/\\!_{${r}}`:`${t}\\/${r}`}return"reciprocal"===n?e.wrap(Ne(i,1))+e.wrap(Ne(i,2))+"^{-1}":"factor"===n?"\\frac{1}{"+e.serialize(Ne(i,2))+"}"+e.wrap(Ne(i,1)):"\\frac{"+e.serialize(Ne(i,1))+"}{"+e.serialize(Ne(i,2))+"}"}function We(e,i){var n;const t=Ne(i,1),r=Ne(i,2);if(null===r)return e.serialize(t);if(null===t)return"";const o=de(i);if(o===Y||o===V)return je(e,De(0,e.level),Ne(i,1),Ne(i,2));const s=null!==(n=se(r))&&void 0!==n?n:1;if(-1===s)return e.serialize([j,"1",t]);if(s<0)return e.serialize([j,"1",[G,t,-s]]);if(de(r)===j){if(1===se(Ne(r,1)))return je(e,De(0,e.level),t,Ne(r,2))}else if(de(r)===G&&-1===se(Ne(r,2)))return je(e,De(0,e.level),t,Ne(r,1));return e.wrapShort(t)+"^{"+e.serialize(r)+"}"}function Ve(e,i,n){var t;const r=i.next();let o=!1,s=0;if(i.skipSpace(),i.match("^")){if(i.skipSpace(),i.match("<{>")){i.skipSpace(),i.match("-")&&i.match("1")&&(o=!0);do{i.match("\\doubleprime")&&(s+=2),i.match("\\prime")&&(s+=1),i.match("'")&&(s+=1)}while(!i.match("<}>")&&!i.atEnd)}let e=!1;for(;!e;)i.skipSpace(),i.match("\\doubleprime")?s+=2:i.match("\\prime")||i.match("'")?s+=1:e=!0}let a=null!==(t={"\\arcsin":"Arcsin","\\arccos":"Arccos","\\arctan":"Arctan","\\arctg":"Arctan","\\arcctg":"Arctan","\\arcsec":"Arcsec","\\arccsc":" Arccsc","\\arsinh":"Arsinh","\\arcosh":"Arcosh","\\artanh":"Artanh","\\arcsech":"Arcsech","\\arccsch":"Arcsch","\\ch":"Cosh","\\cos":"Cos","\\cosec":"Csc","\\cosh":"Csch","\\cot":"Cot","\\cotg":"Cot","\\coth":"Coth","\\csc":"Csc","\\ctg":"Cot","\\cth":"Coth","\\sec":"Sec","\\sin":"Sin","\\sinh":"Sinh","\\sh":"Sinh","\\tan":"Tan","\\tanh":"Tanh","\\tg":"Tan","\\th":"Tanh"}[r])&&void 0!==t?t:r;o&&(a=[$,a]),s>=1&&(a=[H,s,a]);const l=i.matchArguments("implicit");return null===l?[null,a]:[null,[a,...l]]}function Ye(e){return u(e)}const Je={algebra:[{name:"To",trigger:{infix:"\\to"},precedence:270}],arithmetic:[{name:"ThreeQuarter",serialize:"\\frac{3}{4}"},{name:"TwoThird",serialize:"\\frac{2}{3}"},{name:"Half",serialize:"\\frac{1}{2}"},{name:"Third",serialize:"\\frac{1}{3}"},{name:"Quarter",serialize:"\\frac{1}{4}"},{name:"CatalanConstant",serialize:"G"},{name:"GoldenRatio",serialize:"\\varphi"},{name:"EulerGamma",serialize:"\\gamma"},{name:"Degrees",serialize:"\\frac{\\pi}{180}"},{name:"MinusDoublePi",serialize:"-2\\pi"},{name:"MinusPi",serialize:"-\\pi"},{name:"MinusHalfPi",serialize:"-\\frac{\\pi}{2}"},{name:"QuarterPi",serialize:"\\frac{\\pi}{4}"},{name:"ThirdPi",serialize:"\\frac{\\pi}{3}"},{name:"HalfPi",serialize:"\\frac{\\pi}{2}"},{name:"TwoThirdPi",serialize:"\\frac{2\\pi}{3}"},{name:"ThreeQuarterPi",serialize:"\\frac{3\\pi}{4}"},{name:"DoublePi",serialize:"2\\pi"},{name:"Complex",precedence:275,serialize:(e,i)=>{const n=se(Ne(i,1)),t=se(Ne(i,2));if(0===t)return e.serialize(Ne(i,1));const r=1===t?"\\imaginaryI":-1===t?"-\\imaginaryI":l([e.serialize(Ne(i,2)),"\\imaginaryI"]);return 0===n?r:l([e.serialize(Ne(i,1)),"+",r])}},{name:"Exp",serialize:(e,i)=>{var n;return l(["\\exponentialE^{",e.serialize(null!==(n=Ne(i,1))&&void 0!==n?n:_),"}"])}},{name:"Square",serialize:(e,i)=>e.wrapShort(Ne(i,1))+"^2"},{trigger:{symbol:"\\infty"},parse:{num:"+Infinity"}},{name:X,trigger:{symbol:["\\tilde","\\infty"]},serialize:"\\tilde\\infty"},{name:X,trigger:{symbol:["\\tilde","<{>","\\infty","<}>"]},serialize:"\\tilde\\infty"},{name:"Pi",trigger:{symbol:"\\pi"}},{name:"Pi",trigger:{symbol:"π"},serialize:"\\pi"},{name:K,trigger:{symbol:"e"},serialize:"e"},{name:ee,trigger:{symbol:"i"},serialize:"\\imaginaryI"},{name:ee,trigger:{symbol:"\\imaginaryI"}},{name:Q,trigger:{prefix:"+",infix:"+"},parse:function(e,i,n){if(275<n)return[e,null];const t=i.index;if(!i.match("+"))return[e,null];const r=i.matchExpression(null===e?400:275);return null===r?(i.index=t,[e,null]):null===e?[null,r]:i.applyOperator(Q,e,r)},serialize:function(e,i){var n,t;e.level-=1;const r=de(i);let o="",s=Ne(i,1),a=!Number.isNaN(null!==(n=se(s))&&void 0!==n?n:NaN);if(r===U)o="-"+e.wrap(s,276);else if(r===Q){o=e.serialize(s);const n=we(i)+1;for(let r=2;r<n;r++){s=Ne(i,r);const n=null!==(t=se(s))&&void 0!==t?t:NaN,l=!Number.isNaN(n);let u=!1;if(null!==s&&a){const[i,n]=me(s);null!==i&&null!==n&&isFinite(i)&&isFinite(n)&&1!==n&&(o+=e.options.invisiblePlus+e.serialize(s),u=!0)}if(!u)if(n<0)o+=e.serialize(s);else if(de(s)===U)o+=e.wrap(s,275);else{const i=e.wrap(s,275);"-"===i[0]||"+"===i[0]?o+=i:o=o+"+"+i}a=l}}else if(r===J){const n=Ne(i,2);o=null!==n?e.wrap(s,275)+"-"+e.wrap(n,275):e.wrap(s,275)}return e.level+=1,o},associativity:"both",precedence:275},{name:U,trigger:{prefix:"-"},parse:Be,associativity:"left",precedence:275},{name:J,trigger:{infix:"-"},parse:Be,associativity:"both",precedence:275},{name:"PlusMinus",trigger:{infix:"\\pm"},associativity:"both",precedence:270},{name:"MinusPlus",trigger:{infix:"\\mp"},associativity:"both",precedence:270},{name:B,trigger:{infix:"\\times"},serialize:Ue,associativity:"both",precedence:390},{name:B,trigger:{infix:"\\cdot"},serialize:Ue,associativity:"both",precedence:390},{name:B,trigger:{infix:"*"},serialize:Ue,associativity:"both",precedence:390},{name:j,trigger:"\\frac",parse:function(e,i,n){var t,r,o,s;if(!i.match("\\frac"))return[e,null];const a=null!==(t=i.matchRequiredLatexArgument())&&void 0!==t?t:L,l=null!==(r=i.matchRequiredLatexArgument())&&void 0!==r?r:L;if("PartialDerivative"===de(a)&&("PartialDerivative"===de(l)||de(l)===B&&"PartialDerivative"===de(Ne(l,1)))){const n=null!==(o=Ne(a,3))&&void 0!==o?o:_;let t=Ne(a,1);null!==t&&t!==_||(t=null!==(s=i.matchExpression())&&void 0!==s?s:_);let r=[];if(de(l)===B){for(const e of xe(l))if("PartialDerivative"===pe(e)){const i=Ne(e,2);i&&r.push(i)}}else{const e=Ne(l,2);e&&r.push(e)}return r.length>1&&(r=[z,...r]),[e,["PartialDerivative",t,r,n===_?1:n]]}return[e,[j,a,l]]},serialize:Ge,requiredLatexArg:2},{name:j,trigger:{infix:"\\/"},serialize:Ge,associativity:"non",precedence:660},{name:j,trigger:{infix:"/"},serialize:Ge,associativity:"non",precedence:660},{name:j,trigger:{infix:"\\div"},serialize:Ge,associativity:"non",precedence:660},{name:G,trigger:{infix:"^"},associativity:"non",precedence:720,serialize:We},{name:G,trigger:{infix:["*","*"]},associativity:"non",precedence:720,serialize:We},{name:Y,trigger:"\\sqrt",optionalLatexArg:1,requiredLatexArg:1,parse:$e,serialize:We},{name:V,trigger:"\\sqrt",optionalLatexArg:1,requiredLatexArg:1,parse:$e},{name:"Norm",trigger:{matchfix:"\\lVert"},closeFence:"\\rVert"},{name:"Norm",trigger:{matchfix:"\\|"},closeFence:"\\|"},{name:"Norm",trigger:{matchfix:["|","|"]},closeFence:["|","|"]},{name:"Abs",trigger:{matchfix:"|"},closeFence:"|"},{name:"Abs",trigger:{matchfix:"\\lvert"},closeFence:"\\rvert"},{name:"Factorial",trigger:{postfix:"!"},precedence:810},{name:"Factorial2",trigger:{postfix:["!","!"]},precedence:810},{name:"Lcm",trigger:{symbol:["\\operatorname","<{>","l","c","m","<}>"]}},{name:"Gcd",trigger:{symbol:["\\operatorname","<{>","g","c","d","<}>"]}},{name:"Ceil",trigger:{symbol:["\\operatorname","<{>","c","e","i","l","<}>"]}},{name:"Floor",trigger:{symbol:["\\operatorname","<{>","f","l","o","o","r","<}>"]}},{name:"Round",trigger:{symbol:["\\operatorname","<{>","r","o","u","n","d","<}>"]}},{name:"Sign",trigger:{symbol:["\\operatorname","<{>","s","g","n","<}>"]}}],calculus:[{trigger:{symbol:"\\int"},parse:function(e,i,n){if(!i.match("\\int"))return[e,null];let t=_,r=_,o=!1;for(;!o;)i.skipSpace(),i.match("_")?r=i.matchRequiredLatexArgument():i.match("^")?t=i.matchRequiredLatexArgument():o=!0;const s=i.matchBalancedExpression("<{>","<}>");return[e,["Integral",null!=s?s:"",null!=t?t:_,null!=r?r:_]]},serialize:function(e,i){return""}}],core:Fe,inequalities:[{name:"NotLess",trigger:{infix:["!","<"]},associativity:"right",precedence:246},{name:"NotLess",trigger:{infix:"\\nless"},associativity:"right",precedence:246},{name:"Less",trigger:{infix:"<"},associativity:"right",precedence:245},{name:"Less",trigger:{infix:"\\lt"},associativity:"right",precedence:245},{name:"LessEqual",trigger:{infix:["<","="]},associativity:"right",precedence:241},{name:"LessEqual",trigger:{infix:"\\le"},associativity:"right",precedence:241},{name:"LessEqual",trigger:{infix:"\\leq"},associativity:"right",precedence:241},{name:"LessEqual",trigger:{infix:"\\leqslant"},associativity:"right",precedence:265},{name:"LessNotEqual",trigger:{infix:"\\lneqq"},associativity:"right",precedence:260},{name:"NotLessNotEqual",trigger:{infix:"\\nleqq"},associativity:"right",precedence:260},{name:"LessOverEqual",trigger:{infix:"\\leqq"},associativity:"right",precedence:265},{name:"GreaterOverEqual",trigger:{infix:"\\geqq"},associativity:"right",precedence:265},{name:"Equal",trigger:{infix:"="},associativity:"right",precedence:260},{name:"StarEqual",trigger:{infix:["*","="]},associativity:"right",precedence:260},{name:"StarEqual",trigger:{infix:["\\star","="]},associativity:"right",precedence:260},{name:"PlusEqual",trigger:{infix:["+","="]},associativity:"right",precedence:260},{name:"MinusEqual",trigger:{infix:["-","="]},associativity:"right",precedence:260},{name:"SlashEqual",trigger:{infix:["/","="]},associativity:"right",precedence:260},{name:"EqualEqual",trigger:{infix:["=","="]},associativity:"right",precedence:260},{name:"EqualEqualEqual",trigger:{infix:["=","=","="]},associativity:"right",precedence:265},{name:"TildeFullEqual",trigger:{infix:"\\cong"},associativity:"right",precedence:260},{name:"NotTildeFullEqual",trigger:{infix:"\\ncong"},associativity:"right",precedence:260},{name:"Assign",trigger:{infix:[":","="]},associativity:"right",precedence:260},{name:"Assign",trigger:{infix:"\\coloneq"},associativity:"right",precedence:260},{name:"Approx",trigger:{infix:"\\approx"},associativity:"right",precedence:247},{name:"NotApprox",trigger:{infix:"\\approx"},associativity:"right",precedence:247},{name:"ApproxEqual",trigger:{infix:"\\approxeq"},associativity:"right",precedence:260},{name:"NotApproxEqual",trigger:{infix:["!","\\approxeq"]},associativity:"right",precedence:250},{name:"NotEqual",trigger:{infix:"\\ne"},associativity:"right",precedence:255},{name:"Unequal",trigger:{infix:["!","="]},associativity:"right",precedence:260},{name:"GreaterEqual",trigger:{infix:"\\ge"},associativity:"right",precedence:242},{name:"GreaterEqual",trigger:{infix:"\\geq"},associativity:"right",precedence:242},{name:"GreaterEqual",trigger:{infix:[">","="]},associativity:"right",precedence:243},{name:"GreaterEqual",trigger:{infix:"\\geqslant"},associativity:"right",precedence:265},{name:"GreaterNotEqual",trigger:{infix:"\\gneqq"},associativity:"right",precedence:260},{name:"NotGreaterNotEqual",trigger:{infix:"\\ngeqq"},associativity:"right",precedence:260},{name:"Greater",trigger:{infix:">"},associativity:"right",precedence:245},{name:"Greater",trigger:{infix:"\\gt"},associativity:"right",precedence:245},{name:"NotGreater",trigger:{infix:"\\ngtr"},associativity:"right",precedence:244},{name:"NotGreater",trigger:{infix:["!",">"]},associativity:"right",precedence:244},{name:"RingEqual",trigger:{infix:"\\circeq"},associativity:"right",precedence:260},{name:"TriangleEqual",trigger:{infix:"\\triangleq"},associativity:"right",precedence:260},{name:"DotEqual",trigger:{infix:"\\doteq"},associativity:"right",precedence:265},{name:"DotEqualDot",trigger:{infix:"\\doteqdot"},associativity:"right",precedence:265},{name:"FallingDotEqual",trigger:{infix:"\\fallingdotseq"},associativity:"right",precedence:265},{name:"RisingDotEqual",trigger:{infix:"\\fallingdotseq"},associativity:"right",precedence:265},{name:"QuestionEqual",trigger:{infix:"\\questeq"},associativity:"right",precedence:260},{name:"Equivalent",trigger:{infix:"\\equiv"},associativity:"right",precedence:260},{name:"MuchLess",trigger:{infix:"\\ll"},associativity:"right",precedence:260},{name:"MuchGreater",trigger:{infix:"\\gg"},associativity:"right",precedence:260},{name:"Precedes",trigger:{infix:"\\prec"},associativity:"right",precedence:260},{name:"Succeeds",trigger:{infix:"\\succ"},associativity:"right",precedence:260},{name:"PrecedesEqual",trigger:{infix:"\\preccurlyeq"},associativity:"right",precedence:260},{name:"SucceedsEqual",trigger:{infix:"\\curlyeqprec"},associativity:"right",precedence:260},{name:"NotPrecedes",trigger:{infix:"\\nprec"},associativity:"right",precedence:260},{name:"NotSucceeds",trigger:{infix:"\\nsucc"},associativity:"right",precedence:260},{name:"Between",trigger:{infix:"\\between"},associativity:"right",precedence:265}],other:Ee,physics:[{name:"mu-0",trigger:{symbol:["\\mu","_","0"]}}],sets:[{trigger:{symbol:"\\N"},parse:"NaturalNumber"},{trigger:{symbol:"\\Z"},parse:"Integer"},{trigger:{symbol:"\\Q"},parse:"RationalNumber"},{trigger:{symbol:["\\mathbb","<{>","A","<}>"]},parse:"AlgebraicNumber"},{trigger:{symbol:"\\R"},parse:"RealNumber"},{trigger:{symbol:"\\C"},parse:"ComplexNumber"},{trigger:{symbol:"\\varnothing"},parse:"EmptySet"},{trigger:{symbol:"\\emptyset"},parse:"EmptySet"},{name:"Complement",trigger:{infix:"\\complement"},precedence:240},{name:"Element",trigger:{infix:"\\in"},precedence:240},{name:"Intersection",trigger:{infix:"\\Cap"},precedence:350},{name:"NotElement",trigger:{infix:"\\notin"},precedence:240},{name:"SetMinus",trigger:{infix:"\\setminus"},precedence:650},{name:"SubsetEqual",trigger:{infix:"\\subseteq"},precedence:240},{name:"SymmetricDifference",trigger:{infix:"\\triangle"},precedence:260},{name:"Union",trigger:{infix:"\\cup"},precedence:350},{name:"Contains",trigger:{infix:"\\ni"},associativity:"right",precedence:160},{name:"Subset",trigger:{infix:"\\subset"},associativity:"right",precedence:240},{name:"SquareSubset",trigger:{infix:"\\sqsubset"},associativity:"right",precedence:265},{name:"SquareSubsetEqual",trigger:{infix:"\\sqsubseteq"},associativity:"right",precedence:265},{name:"Superset",trigger:{infix:"\\supset"},associativity:"right",precedence:240},{name:"SquareSuperset",trigger:{infix:"\\sqsupset"},associativity:"right",precedence:265},{name:"SquareSupersetEqual",trigger:{infix:"\\sqsupseteq"},associativity:"right",precedence:265},{name:"NotSubset",trigger:{infix:"\\nsubset"},associativity:"right",precedence:240},{name:"NotSuperset",trigger:{infix:"\\nsupset"},associativity:"right",precedence:240},{name:"SupersetEqual",trigger:{infix:"\\supseteq"},associativity:"right",precedence:240},{name:"NotSubsetNotEqual",trigger:{infix:"\\nsubseteq"},associativity:"right",precedence:240},{name:"NotSupersetNotEqual",trigger:{infix:"\\nsupseteq"},associativity:"right",precedence:240},{name:"SubsetNotEqual",trigger:{infix:"\\subsetneq"},associativity:"right",precedence:240},{name:"SubsetNotEqual",trigger:{infix:"\\varsupsetneqq"},associativity:"right",precedence:240},{name:"SupersetNotEqual",trigger:{infix:"\\supsetneq"},associativity:"right",precedence:240},{name:"SupersetNotEqual",trigger:{infix:"\\varsupsetneq"},associativity:"right",precedence:240}],symbols:[{trigger:{symbol:"\\alpha"},parse:"α"},{trigger:{symbol:"\\beta"},parse:"β"},{trigger:{symbol:"\\gamma"},parse:"γ"},{trigger:{symbol:"\\delta"},parse:"δ"},{trigger:{symbol:"\\epsilon"},parse:"ϵ"},{trigger:{symbol:"\\varepsilon"},parse:"ε"},{trigger:{symbol:"\\zeta"},parse:"ζ"},{trigger:{symbol:"\\eta"},parse:"η"},{trigger:{symbol:"\\theta"},parse:"θ"},{trigger:{symbol:"\\vartheta"},parse:"ϑ"},{trigger:{symbol:"\\iota"},parse:"ι"},{trigger:{symbol:"\\kappa"},parse:"κ"},{trigger:{symbol:"\\varkappa"},parse:"ϰ"},{trigger:{symbol:"\\lambda"},parse:"λ"},{trigger:{symbol:"\\mu"},parse:"μ"},{trigger:{symbol:"\\nu"},parse:"ν"},{trigger:{symbol:"\\xi"},parse:"ξ"},{trigger:{symbol:"\\omicron"},parse:"ο"},{trigger:{symbol:"\\varpi"},parse:"ϖ"},{trigger:{symbol:"\\rho"},parse:"ρ"},{trigger:{symbol:"\\varrho"},parse:"ϱ"},{trigger:{symbol:"\\sigma"},parse:"σ"},{trigger:{symbol:"\\varsigma"},parse:"ς"},{trigger:{symbol:"\\tau"},parse:"τ"},{trigger:{symbol:"\\phi"},parse:"ϕ"},{trigger:{symbol:"\\varphi"},parse:"φ"},{trigger:{symbol:"\\upsilon"},parse:"υ"},{trigger:{symbol:"\\chi"},parse:"χ"},{trigger:{symbol:"\\psi"},parse:"ψ"},{trigger:{symbol:"\\omega"},parse:"ω"},{trigger:{symbol:"\\Gamma"},parse:"Γ"},{trigger:{symbol:"\\Delta"},parse:"Δ"},{trigger:{symbol:"\\Theta"},parse:"Θ"},{trigger:{symbol:"\\Lambda"},parse:"Λ"},{trigger:{symbol:"\\Xi"},parse:"Ξ"},{trigger:{symbol:"\\Pi"},parse:"Π"},{trigger:{symbol:"\\Sigma"},parse:"Σ"},{trigger:{symbol:"\\Upsilon"},parse:"Υ"},{trigger:{symbol:"\\Phi"},parse:"Φ"},{trigger:{symbol:"\\Psi"},parse:"Ψ"},{trigger:{symbol:"\\Omega"},parse:"Ω"},{trigger:{symbol:"\\digamma"},parse:"ϝ"},{trigger:{symbol:"\\aleph"},parse:"ℵ"},{trigger:{symbol:"\\beth"},parse:"ℶ"},{trigger:{symbol:"\\daleth"},parse:"ℸ"},{trigger:{symbol:"\\gimel"},parse:"ℷ"},{trigger:{symbol:"\\Finv"},parse:"Ⅎ"},{trigger:{symbol:"\\Game"},parse:"⅁"},{trigger:{symbol:"\\wp"},parse:"℘"},{trigger:{symbol:"\\eth"},parse:"ð"},{trigger:{symbol:"\\mho"},parse:"℧"},{trigger:{symbol:"\\clubsuit"},parse:"♣"},{trigger:{symbol:"\\heartsuit"},parse:"♡"},{trigger:{symbol:"\\spadesuit"},parse:"♠"},{trigger:{symbol:"\\diamondsuit"},parse:"♢"},{trigger:{symbol:"\\sharp"},parse:"♯"},{trigger:{symbol:"\\flat"},parse:"♭"},{trigger:{symbol:"\\natural"},parse:"♮"}],trigonometry:[{name:"Arcsin",trigger:"\\arcsin",arguments:"implicit",parse:Ve},{name:"Arccos",trigger:"\\arccos",arguments:"implicit",parse:Ve},{name:"Arctan",trigger:"\\arctan",arguments:"implicit",parse:Ve},{name:"Arctan",trigger:"\\arctg",arguments:"implicit",parse:Ve},{name:"Arccot",trigger:"\\arcctg",arguments:"implicit",parse:Ve},{name:"Arcsec",trigger:"\\arcsec",arguments:"implicit",parse:Ve},{name:"Arccsc",trigger:"\\arccsc",arguments:"implicit",parse:Ve},{name:"Arsinh",trigger:"\\arsinh",arguments:"implicit",parse:Ve},{name:"Arcosh",trigger:"\\arcosh",arguments:"implicit",parse:Ve},{name:"Artanh",trigger:"\\artanh",arguments:"implicit",parse:Ve},{name:"Arsech",trigger:"\\arsech",arguments:"implicit",parse:Ve},{name:"Arcsch",trigger:"\\arcsch",arguments:"implicit",parse:Ve},{name:"Cosh",trigger:"\\ch",arguments:"implicit",parse:Ve},{name:"Cosec",trigger:"\\cosec",arguments:"implicit",parse:Ve},{name:"Cosh",trigger:"\\cosh",arguments:"implicit",parse:Ve},{name:"Cot",trigger:"\\cot",arguments:"implicit",parse:Ve},{name:"Cot",trigger:"\\cotg",arguments:"implicit",parse:Ve},{name:"Coth",trigger:"\\coth",arguments:"implicit",parse:Ve},{name:"Csc",trigger:"\\csc",arguments:"implicit",parse:Ve},{name:"Cot",trigger:"\\ctg",arguments:"implicit",parse:Ve},{name:"Coth",trigger:"\\cth",arguments:"implicit",parse:Ve},{name:"Sec",trigger:"\\sec",arguments:"implicit",parse:Ve},{name:"Sinh",trigger:"\\sinh",arguments:"implicit",parse:Ve},{name:"Sinh",trigger:"\\sh",arguments:"implicit",parse:Ve},{name:"Tan",trigger:"\\tan",arguments:"implicit",parse:Ve},{name:"Tan",trigger:"\\tg",arguments:"implicit",parse:Ve},{name:"Tanh",trigger:"\\tanh",arguments:"implicit",parse:Ve},{name:"Tanh",trigger:"\\th",arguments:"implicit",parse:Ve},{name:"Cos",trigger:"\\cos",arguments:"implicit",parse:Ve},{name:"Sin",trigger:"\\sin",arguments:"implicit",parse:Ve}]},Xe={precision:15,positiveInfinity:"\\infty",negativeInfinity:"-\\infty",notANumber:"\\operatorname{NaN}",decimalMarker:".",groupSeparator:",",exponentProduct:"\\cdot",beginExponentMarker:"10^{",endExponentMarker:"}",notation:"auto",truncationMarker:"\\ldots",beginRepeatingDigits:"\\overline{",endRepeatingDigits:"}",imaginaryNumber:"\\imaginaryI"},Ke={invisibleOperator:B,skipSpace:!0,parseArgumentsOfUnknownLatexCommands:!0,parseNumbers:!0,promoteUnknownSymbols:/^[a-zA-Z]$/,promoteUnknownFunctions:/^[fg]$/,ignoreCommands:["\\displaystyle","\\!","\\:","\\enskip","\\quad","\\,","\\;","\\enspace","\\qquad","\\selectfont","\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],idempotentCommands:["\\left","\\right","\\mleft","\\mright","\\middle","\\bigl","\\bigm","\\bigr","\\Bigl","\\Bigm","\\Bigr","\\biggl","\\biggm","\\biggr","\\Biggl","\\Biggm","\\Biggr"],invisiblePlusOperator:Q,preserveLatex:!1},ei={invisibleMultiply:"",invisiblePlus:"",multiply:"\\times"};function ii(e,i){var n;let t=e;for(let e=0;e<i.length;e++){let r=null!==(n=i[e])&&void 0!==n?n:"";if(/[a-zA-Z*]/.test(r[0])){const i=t.match(new RegExp("(.*)#"+Number(e+1).toString()));i&&/\\[a-zA-Z*]+/.test(i[1])&&(r=" "+r)}t=t.replace("#"+Number(e+1).toString(),r)}return t}class ni{constructor(e,i,n,t){let r;this.index=0,this.options={...Xe,...Ke,...i},this.tokens=e,this.onError=e=>t({...e,before:this.latexBefore(),after:this.latexAfter()}),this.dictionary=n,this.invisibleOperatorPrecedence=0,this.options.invisibleOperator&&(r=this.dictionary.name.get(this.options.invisibleOperator),void 0===r?t({code:"unknown-operator",arg:"invisible operator "+this.options.invisibleOperator}):void 0===r.precedence?t({code:"expected-operator",arg:"invisible operator "+this.options.invisibleOperator}):this.invisibleOperatorPrecedence=r.precedence)}clone(e,i){return new ni(this.tokens.slice(e,i),this.options,this.dictionary,this.onError)}balancedClone(e,i,n=!0){if(!this.matchAll(e))return n||this.onError({code:"syntax-error",arg:"Expected "+u(e)}),null;const t=this.index;let r=t,o=1;for(;!this.atEnd&&0!==o;)this.skipSpace(),r=this.index,this.matchAll(i)?o-=1:this.matchAll(e)?o+=1:this.next();return 0!==o?(n||this.onError({code:"unbalanced-symbols",arg:u(e)+u(i)}),this.index=t,null):this.clone(t,r)}get atEnd(){return this.index>=this.tokens.length}get peek(){return this.tokens[this.index]}latex(e,i){return u(this.tokens.slice(e,i))}latexAhead(e){return u(this.tokens.slice(this.index,this.index+e))}latexBefore(){return this.latex(0,this.index)}latexAfter(){return this.latex(this.index)}lookAhead(){let e=Math.min(this.dictionary.lookahead,this.tokens.length-this.index);const i=[];for(;e>0;)i[e]=this.latexAhead(e--);return i}peekDefinition(e){let i;i="operator"===e?this.lookAhead().map(((e,i)=>{var n,t,r,o,s;return null!==(o=null!==(t=null===(n=this.dictionary.infix[i])||void 0===n?void 0:n.get(e))&&void 0!==t?t:null===(r=this.dictionary.postfix[i])||void 0===r?void 0:r.get(e))&&void 0!==o?o:null===(s=this.dictionary.prefix[i])||void 0===s?void 0:s.get(e)})):this.lookAhead().map(((i,n)=>{var t;return null===(t=this.dictionary[e][n])||void 0===t?void 0:t.get(i)}));for(let e=i.length;e>0;e--)if(void 0!==i[e])return[i[e],e];return[null,0]}next(){return this.tokens[this.index++]}skipSpace(){if(!this.atEnd&&"<{>"===this.peek&&"<}>"===this.tokens[this.index+1])return this.index+=2,this.skipSpace(),!0;let e=!1;for(;!this.atEnd&&(this.options.ignoreCommands.includes(this.peek)||this.options.idempotentCommands.includes(this.peek));)this.index+=1,this.skipSpace(),e=!0;if(!this.options.skipSpace)return!1;for(;this.match("<space>");)e=!0;return e&&this.skipSpace(),e}match(e){return this.tokens[this.index]===e&&(this.index++,!0)}matchAll(e){let i=!0;"string"==typeof e&&(e=[e]);let n=0;do{i=this.tokens[this.index+n]===e[n++]}while(i&&n<e.length);return i&&(this.index+=n),i}matchAny(e){return e.includes(this.tokens[this.index])?this.tokens[this.index++]:""}matchWhile(e){const i=[];for(;e.includes(this.tokens[this.index]);)i.push(this.tokens[this.index++]);return i}matchSign(){let e=!1,i=!1;for(;!i;)this.skipSpace()?i=!1:this.match("-")?(e=!e,i=!1):i=!this.match("+");return e?"-":"+"}matchDecimalDigits(){let e="",i=!1;for(;!i;)if(e+=this.matchWhile(["0","1","2","3","4","5","6","7","8","9"]).join(""),i=!0,this.options.groupSeparator){const e=this.index;this.match(this.options.groupSeparator)&&(/[0-9]/.test(this.peek)?i=!1:this.index=e)}return e}matchSignedInteger(){const e=this.index,i=this.matchSign(),n=this.matchDecimalDigits();return n?("-"===i?"-":"")+n:(this.index=e,"")}matchExponent(){const e=this.index;let i="";if(this.matchAny(["e","E","d","D"])){const e=this.matchSignedInteger();e&&(i="e"+e)}if(i)return i;if(this.match("\\times")&&(this.skipSpace(),this.match("1")&&this.match("0")&&this.match("^"))){if(/[0-9]/.test(this.peek))return"e"+this.next();if(this.match("<{>")){this.skipSpace();const e=this.matchSignedInteger();if(this.skipSpace(),this.match("<}>")&&e)return"e"+e}}return this.index=e,""}matchNumber(){var e,i;if(!this.options.parseNumbers)return"";const n=this.index,t=this.matchSign();let r=this.matchDecimalDigits();if(!r)return this.index=n,"";r=("-"===t?"-":"")+r;let o=!1,s=!1;this.match(null!==(e=this.options.decimalMarker)&&void 0!==e?e:"")&&(o=!0,r+="."+(null!==(i=this.matchDecimalDigits())&&void 0!==i?i:"0"));const a=this.matchExponent();return a&&(s=!0),r?r.length+a.length>12?o||s?r+a+"d":r+"n":r+a:(this.index=n,"")}matchOperator(e,i=null,n=0){const[t,r]=this.peekDefinition(e);if(null===t)return null;if("function"==typeof t.parse){let e=null;return[i,e]=t.parse(i,this,n),null===e?null:this.applyInvisibleOperator(i,e)}let o=t.precedence;if(void 0===o||o<n)return null;o+="left"===t.associativity?1:0,this.index+=r;const s=this.matchExpression(o);return this.applyInvisibleOperator(...this.applyOperator(t.parse,i,s))}matchArguments(e){if(!e)return null;const i=this.index;let n=null;const t=this.matchMatchfixOperator();if("group"===e&&de(t)===P)n=xe(t);else if("implicit"===e)if(de(t)===P)n=xe(t);else if(null!==t)n=[t];else{const e=this.matchPrimary();null!==e&&(n=[e])}else this.index=i;return n}matchMatchfixOperator(){const[e]=this.peekDefinition("matchfix");if(null===e)return null;if("function"==typeof e.parse)return this.applyInvisibleOperator(...e.parse(null,this,0));const i="object"==typeof e.trigger?e.trigger.matchfix:e.trigger;if(!i||!e.closeFence||!e.parse)return null;const n=this.matchBalancedExpression(i,e.closeFence,this.onError);return n?[e.parse,n]:[e.parse]}matchDefinition(e){const[i,n]=this.peekDefinition(e);if("function"==typeof(null==i?void 0:i.parse)){const[,e]=i.parse(null,this,0);return[i,e]}return this.index+=n,[i,null]}matchSymbol(){var e,i,n,t;const[r,o]=this.matchDefinition("symbol");if(null!==o)return o;if(null===r){if(null===(e=this.options.promoteUnknownFunctions)||void 0===e?void 0:e.test(this.peek)){const e=this.next(),i=this.matchMatchfixOperator();return null===i?e:de(i)!==P?null:[e,...xe(i)]}return(null===(i=this.options.promoteUnknownSymbols)||void 0===i?void 0:i.test(this.peek))?this.next():this.matchUnknownLatexCommand()}const s=[],a=[];let l,u=null!==(n=r.optionalLatexArg)&&void 0!==n?n:0;for(;u>0;)l=this.matchOptionalLatexArgument(),null!==l&&a.push(l),u--;for(u=null!==(t=r.requiredLatexArg)&&void 0!==t?t:0;u>0;)l=this.matchRequiredLatexArgument(),null===l&&this.onError({code:"expected-argument"}),null!==l&&s.push(l),u--;const c=this.matchArguments(r.arguments);return null===c?0===s.length&&0===a.length?r.parse:[r.parse,...s,...a]:[r.parse,...s,...c,...a]}matchOptionalLatexArgument(){return this.skipSpace(),this.matchBalancedExpression("[","]")}matchRequiredLatexArgument(){return this.skipSpace(),this.matchBalancedExpression("<{>","<}>")||(/^[0-9]$/.test(this.peek)?parseFloat(this.next()):/^[^\\#]$/.test(this.peek)?this.next():this.matchSymbol())}matchSupsub(e){if(null===e)return null;let i=null;return this.skipSpace(),[["^","superfix"],["_","subfix"]].forEach((n=>{var t,r,o;if(null!==i)return;const[s,a]=n,l=this.index;if(!this.match(s))return;const u=this.index;let c,m=0;if(this.match("<{>")?([c,m]=this.peekDefinition(a),c?"function"==typeof c.parse?i=c.parse(e,this,0)[1]:(this.index+=m,this.match("<}>")?i=[null!==(t=c.parse)&&void 0!==t?t:c.name,e]:this.index=u):this.index=u):([c,m]=this.peekDefinition(a),c?"function"==typeof c.parse?i=c.parse(e,this,0)[1]:(this.index+=m,i=[null!==(r=c.parse)&&void 0!==r?r:c.name,e]):this.index=u),null===i&&(c=null===(o=this.dictionary.infix[1])||void 0===o?void 0:o.get(s),"function"==typeof(null==c?void 0:c.parse)?(this.index=l,i=c.parse(e,this,0)[1]):"string"==typeof(null==c?void 0:c.parse)?([e,i]=this.applyOperator(c.parse,e,this.matchRequiredLatexArgument()),i=this.applyInvisibleOperator(e,i)):i=this.applyInvisibleOperator(e,s)),null!==i){const e=this.matchArguments(null==c?void 0:c.arguments);null!==e&&(i=[i,...e])}})),i}matchPostfix(e){if(null===e)return null;const[i,n]=this.peekDefinition("postfix");return null==i?null:"function"==typeof i.parse?([,e]=i.parse(e,this,0),null===e?null:e):(this.index+=n,[i.parse,e])}matchString(){let e="",i=this.atEnd;for(;!i;){if(this.match("<space>"))e+=" ";else{const n=this.peek;"]"===n?i=!0:/^<({|}|\$|\$\$|space)>$/.test(n)?"\\"===n[0]?(this.onError({code:"unexpected-command"}),e+=this.next()):i=!0:e+=this.next()}i=i||this.atEnd}return e}matchEnvironmentName(e,i){if(this.match(e)){const e=this.index;if(this.match("<{>")){const e=this.matchString();if(this.match("<}>")&&e===i)return!0}this.index=e}return!1}matchTabular(){const e=["list"];let i=["list"],n=null,t=!1;for(;!this.atEnd&&!t;)if(this.match("&"))i.push(null!=n?n:_),n=null;else if(this.match("\\\\")||this.match("\\cr"))this.skipSpace(),this.matchOptionalLatexArgument(),null!==n&&i.push(n),e.push(i),i=["list"],n=null;else{const e=this.matchExpression();null===e&&(t=!0),n=null!==n?this.applyInvisibleOperator(n,e):e}return i.length>1&&e.push(i),e}matchEnvironment(){var e;if(this.match("\\begin")&&this.match("<{>")){const i=this.matchString();if(this.match("<}>")){const n=this.index;let t=this.index,r=1;for(;!this.atEnd&&0!==r;)t=this.index,this.matchEnvironmentName("\\begin",i)?r+=1:this.matchEnvironmentName("\\end",i)?r-=1:this.next();const o=this.dictionary.environment.get(i);return"function"==typeof(null==o?void 0:o.parse)?o.parse(null,this.clone(n,t),0)[1]:null!==(e=null==o?void 0:o.parse)&&void 0!==e?e:null}}return null}applyOperator(e,i,n){var t,r,o,s;const a=this.dictionary.name.get(e);if(void 0===a)return this.onError({code:"unknown-operator"}),[i,n];if(void 0!==(null===(t=a.trigger)||void 0===t?void 0:t.prefix)&&null===i&&null!==n)return[null,[a.name,n]];if(void 0!==(null===(r=a.trigger)||void 0===r?void 0:r.postfix)&&null!==i)return[null,[a.name,i]];if(void 0!==(null===(o=a.trigger)||void 0===o?void 0:o.matchfix)||void 0!==(null===(s=a.trigger)||void 0===s?void 0:s.infix)){if("non"===a.associativity)return[null,[e,null!=i?i:"Missing",null!=n?n:"Missing"]];if(de(i)===e){if("both"===a.associativity){if(de(n)===e){if(Array.isArray(i))return[null,i.concat(xe(n))];if(re(i))return[null,i.fn.concat(xe(n))]}else n&&(Array.isArray(i)&&i.push(n),re(i)&&i.fn.push(n));return[null,i]}return"left"===a.associativity?[null,[e,null!=i?i:L,null!=n?n:L]]:Array.isArray(i)?[null,[e,i[1],[e,i[2],null!=n?n:L]]]:(re(i)&&(i.fn[2]=[e,i.fn[2],null!=n?n:L]),[null,i])}return de(n)===e?"both"===a.associativity?(Array.isArray(n)&&i&&n.splice(1,0,i),re(n)&&i&&n.fn.splice(1,0,i),[null,n]):"right"===a.associativity?[null,[e,null!=i?i:L,null!=n?n:L]]:Array.isArray(n)?[null,[e,n[1],[e,n[2],null!=i?i:L]]]:(re(n)&&(n.fn[2]=[e,n.fn[2],null!=i?i:L]),[null,n]):[null,[e,null!=i?i:"Missing",null!=n?n:"Missing"]]}return[i,null]}applyInvisibleOperator(e,i){if(null===e)return i;if(null===i)return e;if(this.options.invisiblePlusOperator&&("number"==typeof e||ie(e))&&function(e){var i,n;const t=ve(e);if(null!==t&&["ThreeQuarter","TwoThird","Half","Third","Quarter"].includes(t))return!0;if(de(e)!==j)return!1;const r=null!==(i=se(Ne(e,1)))&&void 0!==i?i:NaN,o=null!==(n=se(Ne(e,2)))&&void 0!==n?n:NaN;return Number.isInteger(r)&&Number.isInteger(o)}(i))return[e,i]=this.applyOperator(this.options.invisiblePlusOperator,e,i),null===e?i:null;if(this.options.invisibleOperator)return[e,i]=this.applyOperator(this.options.invisibleOperator,e,i),null===e?i:null;let n=[O];return de(e)===O?n=n.concat(xe(e)):n.push(e),null!==i&&(de(i)===O?n=n.concat(xe(i)):n.push(i)),this.options.invisibleOperator&&this.onError({code:"unexpected-sequence"}),n}matchUnknownLatexCommand(){var e;const i=this.peek;if(!i||"\\"!==i[0])return null;if(this.next(),"\\operatorname"===i){if(this.skipSpace(),"<{>"===this.peek){let e="";for(this.next();!this.atEnd&&"<}>"!==this.tokens[this.index];)e+=this.next();return e}return null!==(e=this.next())&&void 0!==e?e:L}const n=[],t=[];let r=!1;do{r=!0;let e=this.matchOptionalLatexArgument();null!==e&&(n.push(e),r=!1),this.skipSpace(),"<{>"===this.peek&&(e=this.matchRequiredLatexArgument(),null!==e&&(t.push(e),r=!1))}while(!r);return n.length>0||t.length>0?[i,...t,...n]:i}matchPrimary(e){let i=null;const n=this.index,t=this.matchNumber();t&&(i={num:t}),null===i&&(i=this.matchMatchfixOperator()),null===i&&(i=this.matchEnvironment()),null===i&&(i=this.matchSymbol());let r=null;do{r=this.matchSupsub(i),i=null!=r?r:i}while(null!==r);let o=null;do{o=this.matchPostfix(i),i=null!=o?o:i}while(null!==o);return this.decorate(i,n)}matchBalancedExpression(e,i,n){const t=this.balancedClone(e,i);if(!t)return null==n||n({code:"unbalanced-symbols",arg:u(e)+u(i)}),null;const r=t.matchExpression();return t.atEnd||null==n||n({code:"unbalanced-symbols",arg:u(e)+u(i)}),r}matchExpression(e=0){let i=null;const n=this.index;this.skipSpace(),i=this.matchPrimary(e),null===i&&(i=this.matchOperator("prefix"));let t=!1;for(;!this.atEnd&&!t;){this.skipSpace();let n=this.matchOperator("infix",i,e);if(null===n&&null!==i){const[e]=this.peekDefinition("operator");if(null===e){const e=this.matchExpression(this.invisibleOperatorPrecedence);null!==e&&(n=this.applyInvisibleOperator(i,e))}}null!==n?i=n:t=!0}return this.decorate(i,n)}decorate(e,i){if(null===e)return null;if(this.options.preserveLatex){const n=this.latex(i,this.index);Array.isArray(e)?e={latex:n,fn:e}:"number"==typeof e?e={latex:n,num:Number(e).toString()}:"string"==typeof e?e={latex:n,sym:e}:"object"==typeof e&&null!==e&&(e.latex=n)}return e}}function ti(e,i){const n=e.length,t=e;e=e.slice(0,-1);for(let n=0;n<e.length-16;n++){const t=e.substr(0,n);for(let r=0;r<17;r++){const o=e.substr(n,r+1),s=Math.floor((e.length-t.length)/o.length);if(s>1&&(t+o.repeat(s+1)).startsWith(e))return"0"===o?t.replace(/(\d{3})/g,"$1"+i.groupSeparator):t.replace(/(\d{3})/g,"$1"+i.groupSeparator)+i.beginRepeatingDigits+o+i.endRepeatingDigits}}const r=n>i.precision-1;return e=t,r&&(e=e.substr(0,i.precision-1)),i.groupSeparator&&(e=e.replace(/(\d{3})/g,"$1"+i.groupSeparator)).endsWith(i.groupSeparator)&&(e=e.slice(0,-i.groupSeparator.length)),r?e+i.truncationMarker:e}function ri(e,i){var n;return e?i.beginExponentMarker?i.beginExponentMarker+e+(null!==(n=i.endExponentMarker)&&void 0!==n?n:""):"10^{"+e+"}":""}class oi{constructor(e,i,n){this.level=-1,this.options=e,e.invisibleMultiply&&(/#1/.test(e.invisibleMultiply)&&/#2/.test(e.invisibleMultiply)||n({code:"expected-argument",arg:"invisibleMultiply"})),this.onError=n,this.dictionary=i}wrap(e,i){if(null===e)return"";if(void 0===i)return"("+this.serialize(e)+")";if("number"==typeof e||ie(e)||"string"==typeof e||ne(e))return this.serialize(e);const n=de(e);if(n&&n!==P){const t=this.dictionary.name.get(n);if(t&&void 0!==t.precedence&&t.precedence<i)return this.wrapString(this.serialize(e),(this.level,"paren"))}return this.serialize(e)}wrapShort(e){if(null===e)return"";const i=this.serialize(e);return de(e)===P||"number"==typeof e||ie(e)||/(^(.|\\[a-zA-Z*]+))$/.test(i)?i:this.wrapString(i,(this.level,"paren"))}wrapString(e,i){return"none"===i?e:"("+e+")"}serializeSymbol(e,i){const n=pe(e);if(!n){if("string"==typeof(null==i?void 0:i.serialize))return i.serialize;const n=ve(e);if(null===n)return"";switch(function(e,i){const n=ve(e);return null===n?"asis":n.length>1?"upright":"asis"}(e,this.level)){case"upright":return"\\operatorname{"+n+"}";default:return n}}const t=xe(e);if(!i){if("string"==typeof n&&n.length>0&&"\\"===n[0]){let e=n;for(const i of t)e+="{"+this.serialize(i)+"}";return e}return`${this.serialize(n)}(${t.map((e=>this.serialize(e))).join(", ")})`}if(i.requiredLatexArg>0){let e="",n="",r=0;for(;r<i.requiredLatexArg;)n+="{"+this.serialize(t[r++])+"}";for(;r<Math.min(t.length,i.optionalLatexArg+i.requiredLatexArg);){const i=this.serialize(t[1+r++]);i&&(e+="["+i+"]")}return i.serialize+(e+n)}return this.level,i.serialize+this.serialize([P,...t])}serializeDictionary(e){return`\\left[\\begin{array}{lll}${Object.keys(e).map((i=>`\\textbf{${i}} & \\rightarrow & ${this.serialize(e[i])}`)).join("\\\\")}\\end{array}\\right]`}serialize(e){if(null===e)return"";this.level+=1;const i=(()=>{var i,n,t,r;const o=function(e,i){var n,t;let r;if("number"==typeof e)r=e;else{if(!ie(e))return"";r=e.num}if(r===1/0||"Infinity"===r||"+Infinity"===r)return i.positiveInfinity;if(r===-1/0||"-Infinity"===r)return i.negativeInfinity;if("NaN"===r||"number"==typeof r&&Number.isNaN(r))return i.notANumber;if("number"==typeof r)return"engineering"===i.notation?function(e,i){if(0===e)return"0";const n=Math.abs(e);let t=Math.round(Math.log10(n));t-=t%3,n<1e3&&(t=0);const r=n/Math.pow(10,t);let o="";const s=r.toString().match(/^(.*)\.(.*)$/);(null==s?void 0:s[1])&&s[2]&&(o=s[1]+i.decimalMarker+s[2]),i.groupSeparator&&(o=ti(r.toExponential(),i));let a="";return 0!==t&&(a=ri(t.toString(),i)),(e<0?"-":"")+o+a}(r,i):function(e,i){let n,t=e.match(/^(.*)[e|E]([-+]?[0-9]+)$/i);(null==t?void 0:t[1])&&t[2]&&(n=ri(t[2],i),n&&(n=i.exponentProduct+n));let r=e,o="";return t=(n?t[1]:e).match(/^(.*)\.(.*)$/),(null==t?void 0:t[1])&&t[2]&&(r=t[1],o=t[2]),i.groupSeparator&&(r=r.replace(/\B(?=(\d{3})+(?!\d))/g,i.groupSeparator),o=ti(o,i)),o&&(o=i.decimalMarker+o),r+o+(null!=n?n:"")}(r.toString(),i);/[a-zA-Z]$/.test(r)&&(r=r.slice(0,-1));let o="";for("-"===r[0]?(o="-",r=r.substr(1)):"+"===r[0]&&(r=r.substr(1));"0"===r[0];)r=r.substr(1);if(0===r.length)return o+"0";"."===r[0]&&(r="0"+r);let s="";if(r.indexOf(".")>=0){const e=r.match(/(\d*)\.(\d*)([e|E]([-+]?[0-9]*))?/);if(!e)return"";const t=e[1],a=e[2];if(s=null!==(n=e[4])&&void 0!==n?n:"","0"===t){let e=0;for(;"0"===a[e]&&e<a.length;)e+=1;let n="";if(e<=4)n="0"+i.decimalMarker,n+=a.substr(0,e),n+=ti(r.substr(n.length),i);else if(e+1>=i.precision)n="0",o="";else{n=r[e];const t=ti(r.substr(e+1),i);t&&(n+=i.decimalMarker+t)}"0"!==n&&(!(r.length-1>i.precision)||i.endRepeatingDigits&&n.endsWith(i.endRepeatingDigits)||!i.truncationMarker||n.endsWith(i.truncationMarker)||(n+=i.truncationMarker),e>4&&(n+=i.exponentProduct+ri((1-e).toString(),i))),r=n}else{r=t.replace(/\B(?=(\d{3})+(?!\d))/g,i.groupSeparator);const e=ti(a,i);e&&(r+=i.decimalMarker+e)}}else if(r.length>i.precision){const e=r.length;let n=r[0];const t=ti(r.substr(1),i);t&&(n+=i.decimalMarker+t,i.truncationMarker&&!n.endsWith(i.truncationMarker)&&i.endRepeatingDigits&&!n.endsWith(i.endRepeatingDigits)&&(n+=i.truncationMarker)),"1"!==n?n+=i.exponentProduct:n="",r=n+ri((e-1).toString(),i)}else{const e=r.match(/([0-9]*)\.?([0-9]*)([e|E]([-+]?[0-9]+))?/);e&&(r=e[1],e[2]&&(r+=i.decimalMarker+e[2]),s=null!==(t=e[4])&&void 0!==t?t:""),r=r.replace(/\B(?=(\d{3})+(?!\d))/g,i.groupSeparator)}const a=ri(s,i);return o+r+(a?i.exponentProduct+a:"")}(e,this.options);if(o)return o;const s=ce(e);if(null!==s)return`\\text{${s}}`;const a=ve(e);if(null!==a)return this.serializeSymbol(e,this.dictionary.name.get(a));const c=Se(e);if(null!==c)return this.serializeDictionary(c);const m=de(e);if(m){if("\\"===m[0]){const i=xe(e);return 0===i.length?m:m+"{"+i.map((e=>this.serialize(e))).filter((e=>Boolean(e))).join("}{")+"}"}const o=this.dictionary.name.get(m);if(o){let s="";return"function"==typeof o.serialize&&(s=o.serialize(this,e)),s||void 0===o.precedence&&!(null===(i=o.trigger)||void 0===i?void 0:i.superfix)&&!(null===(n=o.trigger)||void 0===n?void 0:n.subfix)||(s=function(e,i,n){var t,r,o,s,a;let l="";const u=we(i),c=de(i);if((null===(t=n.trigger)||void 0===t?void 0:t.superfix)||(null===(r=n.trigger)||void 0===r?void 0:r.subfix))return 1!==u&&e.onError({code:"operator-requires-one-operand",arg:e.serializeSymbol(c)}),ii(n.serialize,[e.serialize(Ne(i,1))]);if(null===(o=n.trigger)||void 0===o?void 0:o.postfix)return 1!==u&&e.onError({code:"postfix-operator-requires-one-operand",arg:e.serializeSymbol(c)}),ii(n.serialize,[e.wrap(Ne(i,1),n.precedence)]);if(null===(s=n.trigger)||void 0===s?void 0:s.prefix)return 1!==u&&e.onError({code:"prefix-operator-requires-one-operand",arg:e.serializeSymbol(c)}),ii(n.serialize,[e.wrap(Ne(i,1),n.precedence+1)]);if(null===(a=n.trigger)||void 0===a?void 0:a.infix){l=e.wrap(Ne(i,1),n.precedence);for(let t=2;t<u+1;t++){const r=Ne(i,t);null!==r&&(l=ii(n.serialize,[l,e.wrap(r,n.precedence)]))}}return l}(this,e,o)),!s&&(null===(t=o.trigger)||void 0===t?void 0:t.matchfix)&&(s=function(e,i,n){var t,r;let o=[];if("string"==typeof(null===(t=n.trigger)||void 0===t?void 0:t.matchfix)?o.push(null===(r=n.trigger)||void 0===r?void 0:r.matchfix):n.trigger&&Array.isArray(n.trigger.matchfix)&&(o=[...n.trigger.matchfix]),we(i)>=1){let t="";for(const r of xe(i))r&&(o.push(t),o.push(e.serialize(r)),t=n.separator)}return o.push(u(n.closeFence)),l(o)}(this,e,o)),!s&&(null===(r=o.trigger)||void 0===r?void 0:r.symbol)&&(s=this.serializeSymbol(e,o)),s}}if(Array.isArray(e)||re(e))return this.serializeSymbol(e);this.onError({code:"syntax-error",arg:JSON.stringify(e)})})();return this.level-=1,null!=i?i:""}}class si{constructor(e){var i,n;this.onError=null!==(i=null==e?void 0:e.onError)&&void 0!==i?i:e=>{"undefined"!=typeof window&&(!e.before||e.after)};const t={...null!=e?e:{}};delete t.dictionary,delete t.onError,this.options={...Xe,...ei,...Ke,...t},this.dictionary=function(e,i){var n,t,r,o,s,a,l,u,c,m,f,h,p,g,d;const v={lookahead:1,name:new Map,prefix:[],infix:[],postfix:[],matchfix:[],superfix:[],subfix:[],symbol:[],environment:new Map};for(const x of e)void 0===x.parse&&(x.parse=x.name),"string"==typeof x.trigger&&(x.trigger={symbol:x.trigger}),"string"==typeof x.serialize&&void 0!==(null===(n=x.trigger)||void 0===n?void 0:n.symbol)&&/#[0-9]/.test(x.serialize)&&i({code:"unexpected-argument",arg:x.name}),void 0===x.serialize&&(void 0!==(null===(t=x.trigger)||void 0===t?void 0:t.postfix)?x.serialize="#1"+Ye(x.trigger.postfix):void 0!==(null===(r=x.trigger)||void 0===r?void 0:r.prefix)?x.serialize=Ye(x.trigger.prefix)+"#1":void 0!==(null===(o=x.trigger)||void 0===o?void 0:o.infix)?x.serialize="#1"+Ye(x.trigger.infix)+"#2":void 0!==(null===(s=x.trigger)||void 0===s?void 0:s.symbol)?x.serialize=Ye(x.trigger.symbol):void 0!==(null===(a=x.trigger)||void 0===a?void 0:a.superfix)?x.serialize="#1^{"+Ye(null===(l=x.trigger)||void 0===l?void 0:l.superfix)+"}":void 0!==(null===(u=x.trigger)||void 0===u?void 0:u.subfix)?x.serialize="#1_{"+Ye(null===(c=x.trigger)||void 0===c?void 0:c.subfix)+"}":x.serialize=""),void 0!==(null===(m=x.trigger)||void 0===m?void 0:m.infix)&&(void 0===x.precedence&&i({code:"syntax-error",arg:"Infix operators require a precedence"}),x.associativity||(x.associativity="non")),void 0!==(null===(f=x.trigger)||void 0===f?void 0:f.symbol)&&(x.arguments=null!==(h=x.arguments)&&void 0!==h?h:"",x.optionalLatexArg=null!==(p=x.optionalLatexArg)&&void 0!==p?p:0,x.requiredLatexArg=null!==(g=x.requiredLatexArg)&&void 0!==g?g:0),void 0!==(null===(d=x.trigger)||void 0===d?void 0:d.matchfix)&&("function"===x.parse||x.closeFence||i({code:"syntax-error",arg:"Matchfix operators require a close fence or a custom parse function"})),void 0!==x.trigger&&(["infix","prefix","postfix","symbol","matchfix","superfix","subfix"].forEach((e=>{if(x.trigger[e]){const n=(i=x.trigger[e],Array.isArray(i)?i.length:1);v.lookahead=Math.max(v.lookahead,n),void 0===v[e][n]&&(v[e][n]=new Map),v[e][n].set(Ye(x.trigger[e]),x)}var i})),void 0!==x.trigger.environment&&v.environment.set(x.trigger.environment,x)),void 0!==x.name?v.name.set(Ye(x.name),x):"string"==typeof x.parse&&v.name.set(x.parse,x),void 0!==x.trigger||x.name||i({code:"syntax-error",arg:"Need at least a trigger or a name"});return v}(null!==(n=null==e?void 0:e.dictionary)&&void 0!==n?n:si.getDictionary(),this.onError)}static getDictionary(e="all"){if("all"===e){let e=[];for(const i of Object.keys(Je))e=[...e,...Je[i]];return e}return Je[e]?[...Je[e]]:[]}parse(e){var i;const n=new ni(a(e,[]),this.options,this.dictionary,this.onError),t=n.matchExpression();return n.atEnd||null===(i=this.onError)||void 0===i||i.call(this,{code:"syntax-error"}),null!=t?t:""}serialize(e){return new oi(this.options,this.dictionary,this.onError).serialize(e)}}class ai{constructor(e){this.signal={severity:"error",...e}}toString(){let e="";if(this.signal.head&&(e+=this.signal.head+": "),"string"==typeof this.signal.message)e+=this.signal.message;else{e+=" ";for(const i of this.signal.message)e+=i.toString()+" "}return e}}function li(e,i,n){const t=xe(i);if(t.length>0)t.forEach((i=>li(e,i,n)));else{const t=ve(i);if(t&&!n.has(t)){const i=e.getSymbolDefinition(t);i&&!1!==i.constant||n.add(t)}}}function ui(e,i){const n=new Set;return li(e,i,n),n}function ci(e){var i,n,t;let r=!0;const o=de(e);return"Not"===o?([e,r]=ci(null!==(i=Ne(e,1))&&void 0!==i?i:L),r=!r):"NotEqual"===o?(r=!1,e=["Equal",null!==(n=Ne(e,1))&&void 0!==n?n:L]):"NotElement"===o&&(r=!1,e=["Element",null!==(t=Ne(e,1))&&void 0!==t?t:L]),[e,r]}function mi(e,i){const n=de(i=e.canonical(i));if(!n)throw new ai({message:"expected-predicate"});let t=!0;if("And"===n)for(const n of xe(i)){const i=mi(e,n);if("ok"!==i)return i}else[i,t]=ci(i);const r=e.is(i);if(void 0!==r){if(r===t)return"tautology";if(r!==t)return"contradiction"}return e.assumptions.set(i,t),"ok"}const fi={Anything:[],Expression:"Anything",Domain:["Set","Symbol"],ParametricDomain:["Domain","Function"],MaybeBoolean:"Expression",Boolean:"MaybeBoolean",Collection:"Expression",Dictionary:"Collection",List:"Collection",Sequence:"Collection",Tuple:"Collection",Set:"Collection",FiniteSet:"Set",InfiniteSet:"Set",EmptySet:"FiniteSet",String:"Expression",Symbol:"String",Function:"Expression",Predicate:"Function",LogicalFunction:"Predicate",TranscendentalFunction:"Function",AlgebraicFunction:"Function",PeriodicFunction:"Function",TrigonometricFunction:["PeriodicFunction","TranscendentalFunction"],HyperbolicFunction:"TranscendentalFunction",MonotonicFunction:"Function",StrictMonotonicFunction:"MonotonicFunction",ContinuousFunction:"Function",DifferentiableFunction:"ContinuousFunction",InfinitelyDifferentiableFunction:"DifferentiableFunction",RationalFunction:["AlgebraicFunction","ContinuousFunction"],PolynomialFunction:["AlgebraicFunction","InfinitelyDifferentiableFunction"],QuadraticFunction:"PolynomialFunction",LinearFunction:["QuadraticFunction","MonotonicFunction"],ConstantFunction:"LinearFunction",Number:"Set",ImaginaryNumber:["ComplexNumber","InfiniteSet"],ComplexNumber:"ExtendedComplexNumber",ExtendedComplexNumber:"Number",ComplexInfinity:"ExtendedComplexNumber",NumberZero:["CompositeNumber","ImaginaryNumber","FiniteSet"],NaturalNumber:"Integer",CompositeNumber:"NaturalNumber",PrimeNumber:"NaturalNumber",Integer:["RationalNumber","ExtendedInteger"],ExtendedInteger:"ExtendedRationalNumber",RationalNumber:["AlgebraicNumber","ExtendedRationalNumber"],IrrationalNumber:"RealNumber",TranscendentalNumber:["IrrationalNumber","ImaginaryNumber"],AlgebraicNumber:"IrrationalNumber",RealNumber:["ComplexNumber","ExtendedRealNumber"],ExtendedRealNumber:"ExtendedComplexNumber",ExtendedNaturalNumber:"ExtendedInteger",ExtendedRationalNumber:"ExtendedRealNumber",SignedInfinity:"ExtendedNaturalNumber",Tensor:"Expression",Scalar:"Tensor",Vector:"Matrix",Row:"Vector",Column:"Vector",Matrix:"Tensor",ComplexTensor:"Tensor",RealTensor:"ComplexTensor",IntegerTensor:"RealTensor",LogicalTensor:"IntegerTensor",SquareMatrix:"Matrix",MonomialMatrix:"SquareMatrix",TriangularMatrix:"SquareMatrix",UpperTriangularMatrix:"TriangularMatrix",LowerTriangularMatrix:"TriangularMatrix",PermutationMatrix:["MonomialMatrix","LogicalTensor","OrthogonalMatrix"],OrthogonalMatrix:["SquareMatrix","RealTensor"],DiagonalMatrix:["UpperTriangularMatrix","LowerTriangularMatrix"],IdentityMatrix:["DiagonalMatrix","SymmetricMatrix","PermutationMatrix"],ZeroMatrix:["DiagonalMatrix","SymmetricMatrix","PermutationMatrix"],SymmetricMatrix:["HermitianMatrix","SquareMatrix","RealTensor"],HermitianMatrix:"ComplexTensor",Quaternion:["SquareMatrix","ComplexTensor"]},hi={Function:"Q11348",ComplexNumber:"Q26851286",Integer:"Q47007735",ImaginaryNumber:"Q47310259",NaturalNumber:"Q28920052"},pi={MaybeBoolean:["Union","Boolean",["Set","Maybe"]],NaturalNumber:["Union","CompositeNumber","PrimeNumber"],Scalar:["Intersection","Row","Column"],TriangularMatrix:["Union","UpperTriangularMatrix","LowerTriangularMatrix"],Vector:["Union","Row","Column"]},gi={Boolean:2,MaybeBoolean:3,EmptySet:0,IdentityMatrix:1,ZeroMatrix:1,NumberZero:1},di={Range:{range:"ParametricDomain",evaluate:(e,i,n)=>(i=Math.round(i),n=Math.round(n),Number.isNaN(i)||Number.isNaN(n)||i>n?"EmptySet":i===-1/0&&n===1/0?"Integer":0===i&&n===1/0?"NaturalNumber":0===i&&0===n?"NumberZero":["Range",i,n])},Interval:{range:"ParametricDomain",evaluate:(e,i,n)=>Number.isNaN(i)||Number.isNaN(n)||i>n?"EmptySet":i===-1/0&&n===1/0?"RealNumber":0===i&&0===n?"NumberZero":["Interval",i,n]}};function vi(e,i,n){if(null===i)return null;const t=Ni(e);return""===t?n:n[t]?null===yi(i,n[t])?null:n:(n[t]=i,n)}function xi(e,i,n,t){var r;const o=se(i);if(null!==o)return Math.abs(o-(null!==(r=se(e))&&void 0!==r?r:NaN))<=t.numericalTolerance?n:null;const s=ce(i);if(null!==s)return ce(e)===s?n:null;const a=Se(i);if(null!==a){const i=Object.keys(a),r=Se(e);if(null===r)return null;if(Object.keys(r).length!==i.length)return null;for(const e of i){const i=xi(r[e],a[e],n,t);if(null===i)return null;n=i}return n}const l=ve(i);if(null!==l)return l.startsWith("_")?vi(l,e,n):l===ve(e)?"object"==typeof i&&"object"==typeof e&&"wikidata"in i&&"wikidata"in e&&i.wikidata!==e.wikidata?null:n:"object"==typeof i&&"object"==typeof e&&"wikidata"in i&&"wikidata"in e&&i.wikidata===e.wikidata?n:null;const u=pe(i);if(null===u)return null;if("string"==typeof u&&u.startsWith("_"))return vi(u,pe(e),n);{const i=pe(e);if(null===i)return null;if(null===yi(u,i,t))return null}const c=xe(i),m=xe(e),f=c.length;if(f!==m.length)return null;let h={...n},p=0;for(;p<f;){const e=c[p],i=ve(e);if(null!==i)if(i.startsWith("__")){let e=0;if(void 0===c[p+1])e=m.length+1;else{let i=!1;for(;!i&&e<m.length;)i=null!==yi(c[p+1],m[e],t),e+=1;if(!i)return null}if(!i.startsWith("___")&&e<=1)return null;h=vi(i,["Sequence",...m.splice(0,e-1)],h)}else if(i.startsWith("_"))h=vi(i,m.shift(),h);else{const i=yi(e,m.shift(),t);if(null===i)return null;h={...h,...i}}else{const i=yi(e,m.shift(),t);if(null===i)return null;h={...h,...i}}if(null===h)return null;p+=1}return h}function yi(e,i,n){return xi(i,e,{},null!=n?n:{numericalTolerance:D})}function bi(e,i){var n;const t=ve(e);if(null!==t)return t.startsWith("_")&&null!==(n=i[Ni(t)])&&void 0!==n?n:e;const r=Se(e);if(null!==r){const e={};for(const n of Object.keys(r))e[n]=bi(r[n],i);return{dict:e}}const o=pe(e);if(null!==o){let n=[bi(o,i)];for(const t of xe(e)){const e=ve(t);if(null!==e&&e.startsWith("__")){const t=i[Ni(e)];void 0===t||"Sequence"!==de(t)?n.push(e):n=n.concat(xe(t))}else n.push(bi(t,i))}return n}return e}function Ni(e){const i=e.match(/^__?_?([a-zA-Z0-9]+)/);return null===i?"":i[1]}class wi{constructor(e){this._items=e?new Map(e instanceof wi?e._items:e):new Map}has(e){for(const i of this._items.keys())if(yi(e,i))return!0;return!1}get(e){for(const[i,n]of this._items)if(yi(e,i))return n}set(e,i){for(const n of this._items.keys())if(yi(e,n))return void this._items.set(n,i);this._items.set(e,i)}delete(e){this._items.delete(e)}[Symbol.iterator](){return this._items.entries()}entries(){return this._items.entries()}}const Si=["Sqrt",2],Mi=["Sqrt",3],Ei=["Sqrt",5],Di=["Sqrt",6],Ai=new wi([[["Divide","Pi",12],{Sin:["Divide",["Subtract",Di,Si],4],Cos:["Divide",["Add",Di,Si],4],Tan:["Subtract",[2,Mi]],Cot:["Add",[2,Mi]],Sec:["Subtract",[Di,Si]],Csc:["Add",[Di,Si]]}],[["Divide","Pi",10],{Sin:["Divide",["Subtract",Ei,1],4],Cos:["Divide",["Sqrt",["Add",10,["Multiply",2,Ei]]],4],Tan:["Divide",["Sqrt",["Subtract",25,["Multiply",10,Ei]]],4],Cot:["Sqrt",["Add",5,["Multiply",2,Ei]]],Sec:["Divide",["Sqrt",["Subtract",50,["Multiply",10,Ei]]],5],Csc:["Add",1,Ei]}],[["Divide","Pi",4],{Sin:["Divide",Si,2],Cos:["Divide",Si,2],Tan:1,Cot:1,Sec:Si,Csc:Si}],[["Divide","Pi",3],{Sin:["Divide",Mi,2],Cos:"Half",Tan:Mi,Cot:["Divide",Mi,3],Sec:2,Csc:["Divide",["Multiply",2,Mi],3]}],[["Divide","Pi",2],{Sin:1,Cos:0,Tan:1/0,Cot:0,Sec:1/0,Csc:1}]]),Ci={Degrees:{domain:"Real",constant:!0,value:.017453292519943295},MinusDoublePi:{domain:"TranscendentalNumber",constant:!0,hold:!1,value:[B,-2,"Pi"]},MinusPi:{domain:"TranscendentalNumber",constant:!0,hold:!1,value:[U,"Pi"]},MinusHalfPi:{domain:"TranscendentalNumber",constant:!0,hold:!1,value:[j,[U,"Pi"],2]},QuarterPi:{domain:"TranscendentalNumber",constant:!0,hold:!1,value:[j,"Pi",4]},ThirdPi:{domain:"TranscendentalNumber",constant:!0,hold:!1,value:[j,"Pi",3]},HalfPi:{domain:"TranscendentalNumber",constant:!0,hold:!1,value:[j,"Pi",2]},TwoThirdPi:{domain:"TranscendentalNumber",constant:!0,hold:!1,value:[B,2,[j,"Pi",3]]},ThreeQuarterPi:{domain:"TranscendentalNumber",constant:!0,hold:!1,value:[B,3,[j,"Pi",4]]},Pi:{domain:"TranscendentalNumber",constant:!0,wikidata:"Q167",value:e=>"decimal"===e.numericFormat?m.exports.Decimal.acos(-1):"complex"===e.numericFormat?f.exports.Complex.PI:Math.PI},DoublePi:{domain:"TranscendentalNumber",constant:!0,hold:!1,value:[B,2,"Pi"]},Arccos:{domain:"TrigonometricFunction",range:["Interval",0,"Pi"],numeric:!0,value:["Subtract","HalfPi",["Arcsin","_"]],simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Arccos)&&void 0!==t?t:["Subtract","HalfPi",["Arcsin",i]]},evalNumber:(e,i)=>Math.acos(i),evalDecimal:(e,i)=>m.exports.Decimal.acos(i),evalComplex:(e,i)=>f.exports.Complex.acos(i)},Arcosh:{domain:"HyperbolicFunction",range:["Interval",0,1/0],numeric:!0,value:["Ln",["Add","_",["Sqrt",["Subtract",["Square","_"],1]]]],simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Arccosh)&&void 0!==t?t:["Ln",["Add",i,["Sqrt",["Subtract",["Square",i],1]]]]},evalNumber:(e,i)=>Math.acosh(i),evalDecimal:(e,i)=>m.exports.Decimal.acosh(i),evalComplex:(e,i)=>f.exports.Complex.acosh(i)},Arcsin:{domain:"TrigonometricFunction",range:["Interval","MinusHalfPi","HalfPi"],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Arcsin)&&void 0!==t?t:["Multiply",2,["Arctan2",i,["Add",1,["Sqrt",["Subtract",1,["Square",i]]]]]]},value:["Multiply",2,["Arctan2","_",["Add",1,["Sqrt",["Subtract",1,["Square","_"]]]]]],evalNumber:(e,i)=>Math.asin(i),evalDecimal:(e,i)=>m.exports.Decimal.asin(i),evalComplex:(e,i)=>f.exports.Complex.asin(i)},Arsinh:{domain:"HyperbolicFunction",range:["Interval",-1/0,1/0],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Arsinh)&&void 0!==t?t:["Ln",["Add",i,["Sqrt",["Add",["Square",i],1]]]]},value:["Ln",["Add","_",["Sqrt",["Add",["Square","_"],1]]]],evalNumber:(e,i)=>Math.asinh(i),evalDecimal:(e,i)=>m.exports.Decimal.asinh(i),evalComplex:(e,i)=>f.exports.Complex.asinh(i)},Arctan:{wikidata:"Q2257242",domain:"TrigonometricFunction",range:["Interval","MinusHalfPi","HalfPi"],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Arctan)&&void 0!==t?t:i},evalNumber:(e,i)=>Math.atan(i),evalDecimal:(e,i)=>m.exports.Decimal.atan(i),evalComplex:(e,i)=>f.exports.Complex.atan(i)},Arctan2:{wikidata:"Q776598",range:["Interval","MinusPi","Pi"],domain:"TrigonometricFunction",numeric:!0,evalNumber:(e,i,n)=>Math.atan2(i,n),evalDecimal:(e,i,n)=>m.exports.Decimal.atan2(i,n),evalComplex:(e,i,n)=>f.exports.Complex.atan2(i,n)},Artanh:{domain:"HyperbolicFunction",range:["Interval",-1/0,1/0],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Artanh)&&void 0!==t?t:["Multiply","Half",["Ln",["Divide",["Add",1,i],["Subtract",1,i]]]]},value:["Multiply","Half",["Ln",["Divide",["Add",1,"_"],["Subtract",1,"_"]]]],evalNumber:(e,i)=>Math.atanh(i),evalDecimal:(e,i)=>m.exports.Decimal.atanh(i),evalComplex:(e,i)=>f.exports.Complex.atanh(i)},Cosh:{domain:"HyperbolicFunction",range:["Interval",1,1/0],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Cosh)&&void 0!==t?t:i},value:["Multiply","Half",["Add",["Exp","_"],["Exp",["Negate","_"]]]],evalNumber:(e,i)=>Math.cosh(i),evalDecimal:(e,i)=>m.exports.Decimal.cosh(i),evalComplex:(e,i)=>f.exports.Complex.cosh(i)},Cos:{domain:"TrigonometricFunction",range:["Interval",-1,1],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Cos)&&void 0!==t?t:["Sin",["Add",i,"HalfPi"]]},value:["Sin",["Add","_","HalfPi"]],evalNumber:(e,i)=>Math.cos(i),evalDecimal:(e,i)=>m.exports.Decimal.cos(i),evalComplex:(e,i)=>f.exports.Complex.cos(i)},Cot:{domain:"TrigonometricFunction",range:"ComplexNumber",numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Cot)&&void 0!==t?t:["Divide",["Cos",i],["Sin",i]]},value:["Divide",["Cos","_"],["Sin","_"]],evalNumber:(e,i)=>1/Math.tan(i),evalDecimal:(e,i)=>p.div(m.exports.Decimal.tan(i)),evalComplex:(e,i)=>f.exports.Complex.ONE.div(f.exports.Complex.tan(i))},Coth:{domain:"HyperbolicFunction",range:"ComplexNumber",numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Coth)&&void 0!==t?t:["Divide",1,["Tanh",i]]},value:["Divide",1,["Tanh","_"]],evalNumber:(e,i)=>1/Math.tanh(i),evalDecimal:(e,i)=>p.div(m.exports.Decimal.tanh(i)),evalComplex:(e,i)=>f.exports.Complex.ONE.div(f.exports.Complex.tanh(i))},Csc:{domain:"TrigonometricFunction",range:["Interval",-1,1],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Csc)&&void 0!==t?t:["Divide",1,["Sin",i]]},value:["Divide",1,["Sin","_"]],evalNumber:(e,i)=>1/Math.tanh(i),evalDecimal:(e,i)=>p.div(m.exports.Decimal.tanh(i)),evalComplex:(e,i)=>f.exports.Complex.ONE.div(f.exports.Complex.tanh(i))},Csch:{domain:"HyperbolicFunction",range:["Interval",-1,1],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Csch)&&void 0!==t?t:["Divide",1,["Sinh",i]]},value:["Divide",1,["Sinh","_"]],evalNumber:(e,i)=>1/Math.sinh(i),evalDecimal:(e,i)=>p.div(m.exports.Decimal.sinh(i)),evalComplex:(e,i)=>f.exports.Complex.ONE.div(f.exports.Complex.sinh(i))},FromPolarCoordinates:{domain:"Function",range:["TupleOf","RealNumber","RealNumber"]},Haversine:{wikidata:"Q2528380",domain:"TrigonometricFunction",range:["Interval",0,1],value:["Divide",["Subtract",1,["Cos","_"]],2],numeric:!0},Hypot:{domain:"Function",range:["Interval",0,1/0],value:["Sqrt",["Square","_"],["Square","_2"]],evalNumber:(e,i,n)=>Math.sqrt(i*i*+n*n),evalDecimal:(e,i,n)=>m.exports.Decimal.sqrt(i.mul(i).add(n.mul(n))),evalComplex:(e,i,n)=>f.exports.Complex.sqrt(i.mul(i).add(n.mul(n)))},InverseFunction:{domain:"Function",range:"Function",simplify:(e,i)=>{var n,t;const r=null!==(n=Ne(i,1))&&void 0!==n?n:L;return"string"!=typeof r?i:null!==(t={Sin:"Arcsin",Cos:"Arccos",Tan:"Arctan",Sec:"Arcsec",Csc:" Arccsc",Sinh:"Arsinh",Cosh:"Arcosh",Tanh:"Artanh",Sech:"Arcsech",Csch:"Arcsch",Arcosh:"Cosh",Arcos:"Cos",Arccsc:"Csc",Arcsch:"Csch",Arcsec:"Sec",Arcsin:"Sin",Arsinh:"Sinh",Arctan:"Tan",Artanh:"Tanh"}[r])&&void 0!==t?t:i}},InverseHaversine:{domain:"TrigonometricFunction",range:["Interval",["MinusPi"],"Pi"],numeric:!0,value:["Multiply",2,["Arcsin",["Sqrt","_"]]]},Sec:{domain:"TrigonometricFunction",range:["Interval",-1,1],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Sec)&&void 0!==t?t:["Divide",1,["Cos",i]]},value:["Divide",1,["Cos","_"]],evalNumber:(e,i)=>1/Math.cos(i),evalDecimal:(e,i)=>p.div(m.exports.Decimal.cos(i)),evalComplex:(e,i)=>f.exports.Complex.ONE.div(f.exports.Complex.cos(i))},Sech:{domain:"HyperbolicFunction",range:["Interval",-1,1],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Sech)&&void 0!==t?t:["Divide",1,["Cosh",i]]},value:["Divide",1,["Cosh","_"]],evalNumber:(e,i)=>1/Math.cosh(i),evalDecimal:(e,i)=>p.div(m.exports.Decimal.cosh(i)),evalComplex:(e,i)=>f.exports.Complex.ONE.div(f.exports.Complex.cosh(i))},Sinh:{domain:"HyperbolicFunction",range:["Interval",-1/0,1/0],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Sinh)&&void 0!==t?t:["Multiply","Half",["Subtract",["Exp",i],["Exp",["Negate",i]]]]},value:["Multiply","Half",["Subtract",["Exp","_"],["Exp",["Negate","_"]]]]},Sin:{domain:"TrigonometricFunction",range:["Interval",-1,1],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Sin)&&void 0!==t?t:i},value:["Divide",["Subtract",["Exp",["Multiply","ImaginaryUnit","_"]],["Exp",["Multiply","ImaginaryUnit",["Negate","_"]]]],["Multiply",2,"ImaginaryUnit"]],evalNumber:(e,i)=>Math.sin(i),evalDecimal:(e,i)=>i.sin(),evalComplex:(e,i)=>i.sin()},Tanh:{domain:"HyperbolicFunction",range:["Interval",-1/0,1/0],numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Tanh)&&void 0!==t?t:["Divide",["Sinh",i],["Cosh",i]]},value:["Divide",["Sinh","_"],["Cosh","_"]],evalNumber:(e,i)=>Math.tanh(i),evalDecimal:(e,i)=>i.tanh(),evalComplex:(e,i)=>i.tanh()},Tan:{domain:"TrigonometricFunction",range:"RealNumber",numeric:!0,simplify:(e,i)=>{var n,t;return null!==(t=null===(n=Ai.get(i))||void 0===n?void 0:n.Tan)&&void 0!==t?t:["Divide",["Sin",i],["Cos",i]]},value:["Divide",["Sin","_"],["Cos","_"]],evalNumber:(e,i)=>Math.tan(i),evalDecimal:(e,i)=>i.tan(),evalComplex:(e,i)=>i.tan()},ToPolarCoordinates:{domain:"Function",range:["TupleOf","RealNumber","RealNumber"]}};function qi(e){return null!==e&&"object"==typeof e&&"supersets"in e}function Fi(e){return null!==e&&"object"==typeof e&&"constant"in e}function Ii(e){return null!==e&&"object"==typeof e&&"range"in e}function ki(e){return null!==e&&"object"==typeof e&&"countable"in e}function Pi(e,i){var n;const t=Ti(i);if(null!==t)return t;const r=ve(i);if(null!==r){const t=e.ask(["Element",i,"_domain"]);if(t.length>0)return 1===t.length?t[0].domain:"Anything";const o=e.getDefinition(r);return o&&"function"==typeof o.domain?null!==(n=o.domain(i))&&void 0!==n?n:"Anything":o&&o.domain?o.domain:o&&"value"in o&&o.value?"function"==typeof o.value?Pi(e,o.value(e)):Pi(e,o.value):"Anything"}const o=pe(i);if("string"==typeof o){const n=e.getFunctionDefinition(o);if(n){if("function"==typeof n.range)return n.range(e,...xe(i));if(void 0!==n.range)return n.range;if(void 0!==n.value)return Pi(e,n.value)}}return te(i)?"String":oe(i)?"Dictionary":null}function Ti(e){var i,n;if(void 0===e)return null;const t=se(e);if(null!==t&&!isNaN(t))return 0===t?"NumberZero":isFinite(t)?Number.isInteger(t)?A.has(t)?"PrimeNumber":t>=1&&t<7919?"CompositeNumber":t>0?"NaturalNumber":"Integer":t>0?["Interval",["Open",0],1/0]:"RealNumber":"SignedInfinity";if(e instanceof m.exports.Decimal)return e.isNaN()?"Number":e.isZero()?"NumberZero":e.isFinite()?e.isInteger()?e.abs().lessThan(Number.MAX_SAFE_INTEGER)?Ti(e.toNumber()):e.isPositive()?"NaturalNumber":"Integer":e.isPositive()?["Interval",["Open",0],1/0]:"RealNumber":"SignedInfinity";if(e instanceof f.exports.Complex){const i=e;return 0===i.im?Ti(i.re):0===i.re&&0!==i.im?"ImaginaryNumber":"ComplexNumber"}if("Complex"===de(e)){const t=null!==(i=se(Ne(e,1)))&&void 0!==i?i:NaN,r=null!==(n=se(Ne(e,2)))&&void 0!==n?n:NaN;return 0===r?Ti(t):0===t&&0!==r?"ImaginaryNumber":"ComplexNumber"}let[r,o]=me(e);if(null!==r&&null!==o){const e=C(r,o);if(r/=e,o/=e,!Number.isNaN(r)&&!Number.isNaN(o))return 0===r?"NumberZero":1!==o&&-1!==o?"RationalNumber":Ti(r)}const s=ve(e);if(null!==s){if("NaN"===s)return"Number";if("+Infinity"===s||"-Infinity"===s)return"SignedInfinity";if(s===X)return"ComplexInfinity";if(s===ee)return"ImaginaryNumber";if(["Quarter","Third","Half","TwoThird","ThreeQuarter"].includes(s))return"RationalNumber";if(["MinusDoublePi","MinusPi","QuarterPi","ThirdPi","HalfPi","TwoThirdPi","ThreeQuarterPi","Pi","DoublePi","ExponentialE"].includes(s))return"TranscendentalNumber";if(["MachineEpsilon","CatalanConstant","GoldenRatio","EulerGamma"].includes(s))return"RealNumber"}if(de(e)===G&&de(Ne(e,2))===j&&1===Ne(Ne(e,2),1)&&2===Ne(Ne(e,2),2)){const i=se(Ne(e,1));if(null!==i&&A.has(i))return"IrrationalNumber"}return"RealNumber"}function Oi(e="all"){if("all"===e)return Oi(["domains","core","collections","algebra","arithmetic","calculus","complex","combinatorics","dimensions","inequalities","intervals","linear-algebra","logic","numeric","other","physics","polynomials","relations","statistics","transcendentals","trigonometry","rounding","units"]);const i=[];for(const n of e)zi[n]&&i.push(zi[n]);return i}const zi={arithmetic:_e,algebra:{},calculus:{},combinatorics:{},complex:{},core:{Apply:{domain:"Function",range:"Anything"},About:{domain:"Function",range:"Dictionary"},BaseForm:{domain:"Function",range:"Integer"},Block:{domain:"Function",range:"Anything"},Domain:{domain:"ParametricDomain",range:"Domain"},Evaluate:{domain:"Function",range:"Anything"},Parentheses:{domain:"Function",threadable:!0,pure:!1,range:"Anything"},Head:{domain:"Function",range:"Anything"},Lambda:{domain:"Function",wikidata:"Q567612",hold:"all",range:"Anything"},Latex:{domain:"Function",range:"String"},String:{domain:"Function",threadable:!0,range:"String"},Symbol:{domain:"Function",threadable:!0,range:"Symbol"},Tail:{domain:"Function",range:"List"}},collections:{EmptySet:{domain:"EmptySet",constant:!0,wikidata:"Q226183"},CartesianProduct:{domain:"Function",wikidata:"Q173740",range:"Set",evaluate:function(e,i,n){return"EmptySet"}},Intersection:{domain:"Function",wikidata:"Q185837",threadable:!0,associative:!0,commutative:!0,idempotent:!0,involution:!0,range:"Set",evaluate:function(e,...i){return"EmptySet"}},Complement:{domain:"Function",wikidata:"Q242767",range:"Set"},Union:{domain:"Function",wikidata:"Q185359",threadable:!0,associative:!0,commutative:!0,idempotent:!0,involution:!0,range:"Set",evaluate:function(e,...i){return"EmptySet"}},SymmetricDifference:{domain:"Function",wikidata:"Q1147242",range:"Set"},Subset:{domain:"Predicate",range:"MaybeBoolean",evaluate:function(e,i,n){return"False"}},SubsetEqual:{domain:"Predicate",range:"MaybeBoolean",evaluate:function(e,i,n){return"False"}},SetMinus:{domain:"Function",wikidata:"Q18192442",range:"MaybeBoolean",evaluate:function(e,i,n){return"EmptySet"}}},domains:function(){var e;const i={Nothing:{countable:!0,supersets:[],domain:"Domain"}};for(const n of Object.keys(fi)){const t=Array.isArray(fi[n])?fi[n]:[fi[n]];i[n]=null!==(e=di[n])&&void 0!==e?e:{},i[n]={domain:di[n]?"ParametricDomain":"Domain",wikidata:hi[n],supersets:t,value:pi,countable:void 0!==gi[n],size:()=>gi[n],...i[n]};for(const e of t)if("Anything"!==e&&!fi[e])throw new Error(`Unknown parent of domain "${n}": "${e}"`)}const n=new Set;for(const e of Object.keys(i))n.add(e);for(const e of Object.keys(i))for(const t of i[e].supersets)n.delete(t);n.delete("Nothing"),i.Nothing.supersets=[...n.values()];for(const e of Object.keys(i)){let n=!1,t=0,r=[e];for(;t<512&&!n;){const e=r.pop();n="Anything"===e,n||(r=[...e,...i[e].supersets]),t++}if(!n)throw new Error(`The "${e}" domain cannot reach "Anything"`)}return i}(),dimensions:{},logic:{True:{domain:"Boolean",constant:!0},False:{domain:"Boolean",constant:!0},Maybe:{domain:"MaybeBoolean",constant:!0},And:{domain:"LogicalFunction",threadable:!0,associative:!0,commutative:!0,idempotent:!0,range:"MaybeBoolean"},Or:{domain:"LogicalFunction",threadable:!0,associative:!0,commutative:!0,idempotent:!0,range:"MaybeBoolean"},Not:{domain:"LogicalFunction",involution:!0,range:"MaybeBoolean"},Equivalent:{domain:"LogicalFunction",range:"MaybeBoolean"},Implies:{domain:"LogicalFunction",range:"MaybeBoolean"},Exists:{domain:"LogicalFunction",range:"MaybeBoolean"},Equal:{domain:"LogicalFunction",range:"MaybeBoolean"},NotEqual:{domain:"Function",wikidata:"Q28113351",commutative:!0,range:"MaybeBoolean"}},inequalities:{},intervals:{},"linear-algebra":{},numeric:{},other:{},polynomials:{},physics:{"Mu-0":{constant:!0,wikidata:"Q1515261",domain:"RealNumber",value:125663706212e-17,unit:[B,"H",[G,"m",-1]]}},relations:{},rounding:{},statistics:{},transcendentals:{},trigonometry:Ci,units:{}};function Li(e,i){const n=new Map;for(const t of Object.keys(e)){const[r,o]=_i(e[t],i);o&&i.signal({severity:r?"warning":"error",message:["invalid-dictionary-entry",o],head:t}),r&&n.set(t,r)}return i.context={parentScope:i.context,dictionary:n,assumptions:new wi},function(e,i){const n=new Set;for(const[t,r]of i){if(/[A-Za-z][A-Za-z0-9-]*/.test(t)||1===t.length||e.signal({severity:"error",message:"invalid-name",head:t}),r.wikidata&&(n.has(r.wikidata)&&e.signal({severity:"warning",message:["duplicate-wikidata",r.wikidata],head:t}),n.add(r.wikidata)),Fi(r)&&("function"==typeof r.domain||e.isSubsetOf(r.domain,"Anything")||e.signal({severity:"warning",message:["unknown-domain",r.domain],head:t}),!1!==r.hold||r.value||e.signal({severity:"warning",message:["invalid-dictionary-entry","symbol has hold = false, but no value"],head:t})),Ii(r)){const i=r.range;"function"==typeof i||e.isSubsetOf(i,"Anything")||e.signal({severity:"warning",message:["unknown-domain",i],head:t})}if(qi(r)){0===r.supersets.length&&"Anything"!==t&&e.signal({severity:"warning",message:"expected-supersets",head:t});for(const n of r.supersets)e.isSubsetOf(n,"Anything")||e.signal({severity:"warning",message:["expected-supersets",n],head:t}),e.isSubsetOf(n,t)&&(e.signal({severity:"warning",message:["cyclic-definition",Ri(e,t)],head:t}),i.delete(t))}}}(i,n),i.context=i.context.parentScope,n}function _i(e,i){if("number"==typeof e)return[{domain:Ti(e),constant:!1,value:e}];let n=e.domain;if(Fi(e)){let i;return n||(i="no domain provided.",n="Anything"),!1!==(e={domain:n,constant:!1,...e}).hold||e.value||(e.hold=!0),[e,i]}if(ki(e)||"function"!=typeof n&&i.isSubsetOf(n,"Collection"))return[{domain:"Collection",iterable:void 0!==e.iterator,indexable:void 0!==e.at,countable:void 0!==e.size,...e},void 0];if(Ii(e)||"function"!=typeof n&&i.isSubsetOf(n,"Function")){let i,t={...e};return t={wikidata:"",scope:null,threadable:!1,associative:!1,commutative:!1,additive:!1,multiplicative:!1,outtative:!1,idempotent:!1,involution:!1,numeric:!1,pure:!0,hold:"none",sequenceHold:!1,signatures:[],...e},t.range?"LogicalFunction"===n||"Predicate"===n?"Boolean"!==t.range&&"MaybeBoolean"!==t.range&&(i='A "LogicalFunction" or a "Predicate" should have a range of "Boolean" or "MaybeBoolean"'):"Boolean"!==t.range&&"MaybeBoolean"!==t.range||(i='looks like a "LogicalFunction" or a "Predicate"?'):i="no function range provided.",[t,i]}if(qi(e)||"function"!=typeof n&&i.isSubsetOf(n,"Function"))return[e];if(e){const t=e;if(n&&"function"!=typeof n&&i.isSubsetOf(n,"Number")){if(void 0===t.value)return[null,'expected "value" property in definition'];const r=Ti("function"==typeof t.value?t.value(i):t.value);return[{domain:r,constant:!1,...e},r!==n?'inferred domain "${inferredDomain}"':""]}if(n&&"function"!=typeof n&&i.isSubsetOf(n,"Function"))return[{range:"Anything",...e},'a "Function" should have a "range" property in its definition'];if(n&&"function"!=typeof n&&i.isSubsetOf(n,"Set"))return[e,'a "Set" should have a "supersets" property in its definition']}return[e,"could not be validate"]}function Ri(e,i,n){var t;const r=[`${i}`],o="string"==typeof i?i:de(i);if(n){if(n.includes(o))return`${o} ↩︎ `;n.push(o)}else n=[o];const s=e.getSetDefinition(o);if(!s)return`${o}?!`;if(!s.supersets.length||0===s.supersets.length)return"";for(const i of null==s?void 0:s.supersets)"string"==typeof i&&r.push(Ri(e,i,[...n]));return r.length<=1?null!==(t=r[0])&&void 0!==t?t:"":"["+r.join(" ➔ ")+"]"}const Zi={"simplify-arithmetic":[["x - x",0],[["Subtract","_x",0],"x"],[["Subtract",0,"_x"],"-x"],[["Add","_x",["Negate","_x"]],0],["x \\times x ","x^2"],[["Divide","_x",1],{sym:"_x"}],[["Divide","_x","_x"],1,(e,i)=>{var n;return null!==(n=ke(e,i.x))&&void 0!==n&&n}],[["Divide","_x",0],1/0,(e,i)=>{var n;return null!==(n=Te(e,i.x))&&void 0!==n&&n}],[["Divide","_x",0],-1/0,(e,i)=>{var n;return null!==(n=Oe(e,i.x))&&void 0!==n&&n}],[["Divide",0,0],NaN],[["Power","_x","Half"],["\\sqrt{x}"]],[["Power","_x",["Divide",1,2]],["\\sqrt{x}"]],[["Power","_x",2],["Square","_x"]],[["Divide",["Complex","_re","_im"],"_x"],["Add",["Divide",["Complex",0,"_im"],"_x"],["Divide","_re","_x"]],(e,i)=>{var n,t,r;return null!==(n=e.isNotZero(i.re))&&void 0!==n&&n&&null!==(t=e.isInteger(i.re))&&void 0!==t&&t&&null!==(r=e.isInteger(i.im))&&void 0!==r&&r}],[["Abs","_x"],{sym:"_x"},(e,i)=>{var n,t;return null!==(n=Ie(e,i.x))&&void 0!==n&&n||null!==(t=Te(e,i.x))&&void 0!==t&&t}],[["Abs","_x"],["Negate","_x"],(e,i)=>{var n;return null!==(n=Oe(e,i.x))&&void 0!==n&&n}]]};function Qi(e,i,n){var t,r,o,s,a;if(null===i)return null;if(1===(n=null!=n?n:["simplify-all"]).length&&"simplify-all"===n[0]&&(n=["simplify-arithmetic"]),i=e.replace(e.getRules(n),i),i=null!==(t=function(e,i){var n;const t=e.getSymbolDefinition(null!==(n=ve(i))&&void 0!==n?n:"");if(t&&!1===t.hold&&t.value)return"function"==typeof t.value?Qi(e,t.value(e)):Qi(e,t.value);const[r,o]=function([e,i]){if(null===e||null===i)return[null,null];const n=C(e,i);return i<0?[-e/n,-i/n]:[e/n,i/n]}(me(i));if(null!==r&&null!==o)return 1===o?r:0===r&&isFinite(o)?0:Object.is(o,-0)&&isFinite(r)?-1/0:0===o&&isFinite(r)?1/0:["Divide",r,o];const s=ae(i);if(null!==s)return 0===s.im?s.re:["Complex",s.re,s.im];if("Complex"===de(i)){const e=Ne(i,1),n=Ne(i,2),t=se(n);if(0===t)return e;const r=se(e);return 0===r?["Multiply",n,"ImaginaryUnit"]:["Add",null!=r?r:e,["Multiply",null!=t?t:n,"ImaginaryUnit"]]}return i}(e,i))&&void 0!==t?t:i,!0===e.is(i))return"True";if(ge(i))return i;if(null!==Se(i))return ye(i,(i=>{var t;return null!==(t=e.simplify(i,{simplifications:n}))&&void 0!==t?t:i}));const l=Qi(e,null!==(r=pe(i))&&void 0!==r?r:L,n);if("string"==typeof l){const t=e.getFunctionDefinition(l);if(t){const r=[],u=xe(i);for(let i=0;i<u.length;i++){const l=de(u[i]);"Evaluate"===l?r.push(null!==(o=e.simplify(u[i],{simplifications:n}))&&void 0!==o?o:u[i]):"Hold"===l?r.push(null!==(s=Ne(u[i],1))&&void 0!==s?s:L):0===i&&"first"===t.hold||i>0&&"rest"===t.hold||"all"===t.hold?r.push(u[i]):r.push(null!==(a=e.simplify(u[i],{simplifications:n}))&&void 0!==a?a:u[i])}return"function"==typeof t.simplify?t.simplify(e,...r):[l,...r]}}return null!==l?[l,...xe(i)]:i}function Hi(e,i){var n,t;const r=Bi(e),o=Bi(i);if(r<o)return-1;if(r>o)return 1;let s=Gi(e);isNaN(s)&&(s=Number(1/0));let a=Gi(i);if(isNaN(a)&&(a=Number(1/0)),s<a)return-1;if(s>a)return 1;const l=Ui(e),u=Ui(i);if(l===u&&l>0)for(let r=1;r<=l;r++){const o=Hi(null!==(n=Ne(e,r))&&void 0!==n?n:L,null!==(t=Ne(i,r))&&void 0!==t?t:L);if(0!==o)return o}return u-l}function ji(e,i){var n,t;if(0===e)return-1/0;const r=de(e);if(r===G){const i=null!==(n=se(Ne(e,2)))&&void 0!==n?n:NaN;return isFinite(i)?i:0}if(r===B){let n=0;return xe(e).forEach((e=>{n+=ji(e,i)})),n}return i.includes(null!==(t=ve(e))&&void 0!==t?t:L)?1:0}function $i(e,i){var n,t;const r=de(e);if(r===G){if(ve(null!==(n=Ne(e,1))&&void 0!==n?n:L)===i){const i=null!==(t=se(Ne(e,2)))&&void 0!==t?t:NaN;if(isFinite(i))return i}return 0}if(r===B){let n=0;for(const t of xe(e))n+=$i(t,i);return n}return ve(e)===i?1:0}function Bi(e){return"string"==typeof e?e:ne(e)?e.sym:pe(e)?xe(e).map(Bi).join(" "):""}function Ui(e){if(pe(e)){const i=xe(e);return i.map(Ui).reduce(((e,i)=>e+i),i.length)}return 0}function Gi(e){var i;return pe(e)?NaN:"number"==typeof e?e:ie(e)?null!==(i=se(e))&&void 0!==i?i:NaN:0}function Wi(e,i,n){var t,r;let o=xe(n);if(0===o.length)return n;o=o.map((n=>Wi(e,i,n)));const s=de(n);if(s===Q)o.sort(((e,n)=>function(e,i,n){const t=ji(e,n),r=ji(i,n);if(t<r)return 1;if(t>r)return-1;for(const t of n){const n=$i(e,t),r=$i(i,t);if(n!==r)return r-n}const o=Bi(e),s=Bi(i);return o>s?-1:o<s?1:Hi(e,i)}(e,n,i)));else{const i=e.getFunctionDefinition(s);null!==(t=null==i?void 0:i.commutative)&&void 0!==t&&t&&o.sort(Hi)}return[null!==(r=pe(n))&&void 0!==r?r:L,...o]}function Vi(e){if(ge(e=Ze(e)))return[j,1,e];const i=pe(e);return i===G&&2===we(e)?[G,Ne(e,1),Re(Ne(e,2))]:i===j&&2===we(e)?[j,Ne(e,2),Ne(e,1)]:[j,1,e]}function Yi(e,i){if(ge(e))return e;if(de(e)!==i)return ye(e,(e=>Yi(e,i)));const n=xe(e);let t=[i];for(let e=0;e<n.length;e++)de(n[e])===i?t=t.concat(xe(Yi(n[e],i))):t.push(Yi(n[e],i));return t}function Ji(e,i){if(ge(e))return e;const n=de(e),t=i.getFunctionDefinition(n);if(null==t?void 0:t.involution){const i=xe(e);if(1===i.length&&de(i[0])===n)return Yi(i[0],n)}return ye(e,(e=>Ji(e,i)))}function Xi(e,i){if(ge(e))return e;const n=de(e),t=i.getFunctionDefinition(n);return(null==t?void 0:t.idempotent)?Yi(e,n):ye(e,(e=>Xi(e,i)))}function Ki(e,i){if(ge(e))return e;const n=de(e),t=i.getFunctionDefinition(n);return(null==t?void 0:t.associative)?Yi(e,n):ye(e,(e=>Ki(e,i)))}function en(e,i){if(ge(e))return e;if(pe(e)!==Q)return ye(e,(e=>en(e)));let n=xe(e=Yi(Ze(e),Q));n=n.map((e=>en(e))).filter((e=>0!==se(e)));const t=n.length;return 0===t?0:1===t?n[0]:[Q,...n]}function nn(e,i){if(ge(e))return e;if(pe(e)!==j)return ye(e,(e=>nn(e)));if(2!==we(e))return e;const n=nn(Ne(e,1)),t=nn(Ne(e,2));return 1===se(t)?n:1===se(n)?Vi(t):-1===se(n)?[U,Vi(t)]:[j,n,t]}function tn(e,i){return ge(e)?e:de(e)===G&&ve(Ne(e,1))===K?["Exp",tn(Ne(e,2))]:ye(e,(e=>tn(e)))}function rn(e,i){var n;if(ge(e))return e;const t=de(e);if(t!==z&&t!==R&&t!==Z)return ye(e,(e=>rn(e,i)));const r=xe(e);let o=[pe(e)];if(t===z){for(let e of r)if(e=rn(e,i),de(e)===T){const i=Ne(e,1);null!==i&&o.push(i)}else o.push(e);return o}const s=i.getFunctionDefinition(t),a=null!==(n=null==s?void 0:s.sequenceHold)&&void 0!==n&&n;for(let e of r){e=rn(e,i);const n=de(e);if(n===T){const i=Ne(e,1);null!==i&&o.push(i)}else if(n!==t||a)o.push(e);else for(let n of xe(e))n=rn(n,i),de(n)===t?o=o.concat(xe(n)):o.push(n)}return o}function on(e){var i,n;const t=de(e);if(t===Y)return 2;if(t===V)return null!==(i=se(Ne(e,2)))&&void 0!==i?i:2;if(t!==G)return 1;const r=Ne(e,2);if(null===r)return 1;if(de(r)===G&&-1===se(Ne(r,2))){const e=null!==(n=se(Ne(r,1)))&&void 0!==n?n:NaN;if(isFinite(e))return e}return 1}function sn(e,i){var n;if(ge(e))return e;if(pe(e)!==B)return ye(e,(e=>sn(e)));e=Yi(Ze(e),B);const[t,r]=function(e){var i;const n=xe(e),t=[],r=[];for(const e of n)2===on(e)?t.push(null!==(i=Ne(e,1))&&void 0!==i?i:L):r.push(e);return[t,r]}(e);let o;o=0===t.length?r:1===t.length?[...r,[Y,t[0]]]:[...r,[Y,[B,...t]]];let s=!1,a=!1;if(o=o.map((e=>{var i,n;if(de(e)===U)return a=!0,s=!s,null!==(i=Ne(e,1))&&void 0!==i?i:L;const t=null!==(n=se(e))&&void 0!==n?n:NaN;return t<0?(a=!0,s=!s,-t):e})),s){const e=null!==(n=se(o[0]))&&void 0!==n?n:NaN;o=isFinite(e)?xe(Yi([B,-e,...o.slice(1)],B)):xe(Yi([B,-1,...o],B))}else o=xe(Yi([B,...o],B));return o=o.filter((e=>1!==se(e))),0===o.length?1:1===o.length?o[0]:[B,...o]}function an(e,i){return ge(e)?e:de(e=ye(e,(e=>an(e,i))))===G?Qe(i,e):e}function ln(e,i){var n;return ge(e)?e:pe(e)!==U?ye(e,(e=>ln(e))):Re(null!==(n=Ne(Ze(e),1))&&void 0!==n?n:L)}function un(e,i){return e}function cn(e,i){return He(e)}function mn(e,i){if(!ge(e))return ye(e,(e=>cn(e)));const[n,t]=me(e);return null===n||null===t?e:1===t?n:-1===t?-n:t<0?["Divide",Re(n),Re(t)]:["Divide",n,t]}function fn(e,i){if("number"==typeof e){if(isNaN(e))return{num:"NaN"};if(!isFinite(e)&&e>0)return{num:"+Infinity"};if(!isFinite(e)&&e<0)return{num:"-Infinity"}}else{if(e instanceof m.exports.Decimal)return{num:e.toString()+"d"};if(ie(e))return/([+-]Infinity|NaN)/.test(e.num)||/[+-]?\d*\.?\d*([eE][+-]?\d+)?[dn]?/.test(e.num)?e:{num:"NaN"}}if("ImaginaryUnit"===e)return e;const n=ae(e);if(null!==n){if(0===i.chop(n.im)&&0===i.chop(n.re))return 0;if(0===i.chop(n.im))return n.re;let e=null;return e=0===i.chop(n.im+1)?["Negate","ImaginaryUnit"]:0===i.chop(n.im-1)?"ImaginaryUnit":["Multiply",n.im,"ImaginaryUnit"],0===i.chop(n.re)?e:["Add",n.re,e]}return ge(e)?e:ye(e,(e=>fn(e,i)))}function hn(e,i){if(ge(e))return e;if(pe(e)!==J)return ye(e,(e=>hn(e)));if(2!==we(e))return e;const n=hn(Ne(e,1)),t=se(n),r=hn(Ne(e,2)),o=se(r);return 0===t?0===o?0:Re(r):[Q,n,Re(r)]}function pn(e,i){if(ge(e))return e;const n=pe(e);if(we(e)<2&&n!==V&&n!==G)return ye(e,(e=>pn(e)));const t=pn(Ne(e,2)),r=pn(Ne(e,1));if(n===V)return 2===se(t)?[Y,r]:[V,r,t];if(n===G){const[e,i]=me(t);if(-1===e)return 2===i?[Y,r]:[V,r,i];if(1===i)return[G,r,e];if(null!==e&&null!==i)return[G,r,[j,e,i]]}return e}function gn(e){if("string"==typeof e){const i=Number(e);if("+"===e[0]&&(e=e.slice(1)),i.toString()===e)return isNaN(i)||!isFinite(i)?i.toString():i}return e}function dn(e,i){if(null===e)return null;if(Array.isArray(e))return e.map(((e,i)=>{var n;return 0===i?e:null!==(n=dn(e))&&void 0!==n?n:_}));if("object"==typeof e)if(1===Object.keys(e).length){if(ie(e)){const i=gn(e.num);return"number"==typeof i?i:{num:i}}if(re(e))return e.fn.map((e=>{var i;return null!==(i=dn(e))&&void 0!==i?i:_}));if(ne(e))return e.sym}else re(e)&&(e.fn=e.fn.map((e=>{var i;return null!==(i=dn(e))&&void 0!==i?i:_})));return e}function vn(e,i){if(null===e)return null;if("number"==typeof e||"string"==typeof e)return e;if(Array.isArray(e))return e.map((e=>{var i;return null!==(i=vn(e))&&void 0!==i?i:_}));if("object"==typeof e){if("num"in e){const i=gn(e.num);return"number"==typeof i?i:{num:i}}if("fn"in e)return e.fn.map((e=>{var i;return null!==(i=vn(e))&&void 0!==i?i:_}));if("dict"in e)return{dict:Object.fromEntries(Object.entries(e.dict).map((e=>{var i;return[e[0],null!==(i=vn(e[1]))&&void 0!==i?i:_]})))}}return null}function xn(e,i){return"number"==typeof e?{num:e.toString()}:"string"==typeof e?{sym:e}:Array.isArray(e)&&e.length>0?{fn:e.map((e=>xn(e)))}:"object"==typeof e&&"fn"in e?{...e,fn:e.fn.map((e=>xn(e)))}:e}function yn(e,i){const n=i.getVars(e);return Wi(i,Array.from(n).sort(),e)}function bn(e,i){return i.format(e,["canonical-boolean","canonical-number","canonical-exp","canonical-root","canonical-subtract","canonical-divide","canonical-power","canonical-multiply","canonical-negate","canonical-add","flatten","canonical-list","canonical-domain","canonical-rational","canonical-constants","sorted","json"])}function Nn(e,i){return Ki(Xi(Ji(e,i),i),i)}function wn(e,i){return function(e,i){return i}(0,e)}function Sn(e,i){var n,t;const r=null!==(t=null!==(n=ae(i))&&void 0!==n?n:ue(i))&&void 0!==t?t:se(i);if(null!==r)return r;const o=ve(i);if(null!==o){const n=e.getSymbolDefinition(o);return n&&n.value?"function"==typeof n.value?Sn(e,n.value(e)):Sn(e,n.value):i}return null!==Se(i)?ye(i,(i=>{var n;return null!==(n=Sn(e,i))&&void 0!==n?n:i})):null!==pe(i)?function(e,i){var n,t,r,o,s;const a=pe(i);if("string"==typeof a){const l=e.getFunctionDefinition(a);if(l&&l.numeric){const t=[];let r=0,o=0,s=0;for(let a of xe(i))if("Evaluate"===de(a)&&(a=null!==(n=Ne(a,1))&&void 0!==n?n:L),"Hold"===de(a))t.push(a);else{const i=Sn(e,a);i instanceof m.exports.Decimal?(o+=1,t.push(i)):i instanceof f.exports.Complex?(s+=1,t.push(i)):"number"==typeof i?(r+=1,t.push(i)):t.push(null!=i?i:a)}let u=e.numericFormat;"auto"===u&&(u=s>0?"complex":o>0?"decimal":"machine"),("decimal"===u&&"function"!=typeof l.evalDecimal||"complex"===u&&"function"!=typeof l.evalComplex)&&(u="machine");const c=r+o+s;if(c===t.length){if("decimal"==u&&0===s)return l.evalDecimal(e,...t);if("complex"==u&&0===o)return l.evalComplex(e,...t);if("function"==typeof l.evalNumber&&r===c)return l.evalNumber(e,...t)}return"function"==typeof l.evaluate?l.evaluate(e,...t):[a,...t]}if(l){const n=[],u=xe(i);for(let i=0;i<u.length;i++){const a=de(u[i]);if("Hold"===a)n.push(null!==(t=Ne(u[i],1))&&void 0!==t?t:L);else if("Evaluate"===a){const t=null!==(r=Ne(u[i],1))&&void 0!==r?r:L;n.push(null!==(o=Sn(e,t))&&void 0!==o?o:t)}else 0===i&&"first"===l.hold||i>0&&"rest"===l.hold||"all"===l.hold?n.push(u[i]):n.push(null!==(s=Sn(e,u[i]))&&void 0!==s?s:u[i])}return"function"==typeof l.evaluate?l.evaluate(e,...n):[a,...n]}}const l={__:["Sequence",xe(i)]};let u=1;for(const e of xe(i))1===u&&(l._=e),l[`_${u}`]=e,u+=1;return Sn(e,bi(a,l))}(e,i):i}function Mn(e,i){var n,t,r,o,s,a;if(null===i)return null;const l=null!==(t=null!==(n=ue(i))&&void 0!==n?n:se(i))&&void 0!==t?t:ae(i);if(null!==l)return l;const u=ve(i);if(null!==u){const n=e.getSymbolDefinition(u);return n&&n.value?"function"==typeof n.value?n.value(e):n.value:i}if(null!==Se(i))return ye(i,(i=>{var n;return null!==(n=Mn(e,i))&&void 0!==n?n:i}));const c=pe(i);if(null!==c){if("string"==typeof c){const n=e.getFunctionDefinition(c);if(null===n)return i;const t=[],l=xe(i);for(let i=0;i<l.length;i++){const u=de(l[i]);if("Hold"===u)t.push(null!==(r=Ne(l[i],1))&&void 0!==r?r:L);else if("Evaluate"===u){const n=null!==(o=Ne(l[i],1))&&void 0!==o?o:L;t.push(null!==(s=Sn(e,n))&&void 0!==s?s:n)}else 0===i&&"first"===n.hold||i>0&&"rest"===n.hold||"all"===n.hold?t.push(l[i]):t.push(null!==(a=Mn(e,l[i]))&&void 0!==a?a:l[i])}return"function"==typeof n.evaluate?n.evaluate(e,...t):[c,...t]}const n={__:["Sequence",xe(i)]};let t=1;for(const e of xe(i))1===t&&(n._=e),n[`_${t}`]=e,t+=1;return Mn(e,bi(c,n))}return i}const En={x:"_x",y:"_y",z:"_z",a:"_a",b:"_b",c:"_c",m:"_m",n:"_n",i:"_i",j:"_j"};function Dn(e,i){const n=new Set;for(const[t,r,o]of i){const i="string"==typeof t?e.canonical(An(e.parse(t),En)):An(t,En),s="string"==typeof r?e.canonical(An(e.parse(r),En)):An(r,En);if("function"==typeof o||void 0===o)n.add([i,s,o]);else if("string"==typeof o){const t=e.parse(o);n.add([i,s,(e,i)=>{var n;return null!==(n=e.is(bi(t,i)))&&void 0!==n&&n}])}}return n}function An(e,i){for(const[n,t]of Object.entries(i))e=Cn(e,n,t);return e}function Cn(e,i,n){return ve(e)===i?n:de(e)===i?[n,xe(e)]:ge(e)?e:ye(e,(e=>Cn(e,i,n)))}function qn(e,[i,n,t],r){const o=yi(i,r);return null===o?null:"function"!=typeof t||t(e,o)?bi(n,o):null}class Fn{constructor(e){var i;const n=null!==(i=null==e?void 0:e.dictionaries)&&void 0!==i?i:Fn.getDictionaries();this.numericFormat="auto",this.tolerance=D;for(const e of n)this.context?this.pushScope(e):this.pushScope(e,{warn:e=>{for(const i of e)i.message},timeLimit:2,memoryLimit:1,recursionLimit:1024});this.pushScope({})}static getDictionaries(e="all"){return Oi(e)}get precision(){return this._precision}set precision(e){"machine"===e&&(e=Math.min(E,Math.floor(E))),e<=E&&(this._numericFormat="machine"),m.exports.Decimal.set({precision:e}),this._precision=e}get numericFormat(){return this._numericFormat}set numericFormat(e){"machine"===e||"complex"===e||"auto"===e?this._precision=Math.floor(E):"decimal"===e&&(this._precision=m.exports.Decimal.precision),this._numericFormat=e}get tolerance(){return this._tolerance}set tolerance(e){this._tolerance=Math.max(e,0)}*getRules(e){if(!this._rules){this._rules={};for(const e of Object.keys(Zi))this._rules[e]=Dn(this,Zi[e])}"string"==typeof e&&(e=[e]);for(const i of e)if(this._rules[i])for(const e of this._rules[i])yield e}get latexSyntax(){return this._latexSyntax||(this._latexSyntax=new si),this._latexSyntax}pushScope(e,i){this.context={...i,parentScope:this.context,dictionary:Li(e,this),assumptions:this.context?new wi(this.context.assumptions):new wi}}popScope(){var e;const i=null===(e=this.context)||void 0===e?void 0:e.parentScope;if(this.context.warnings){const e=[...this.context.warnings];this.context.warnings=[],this.context.warn&&this.context.warn(e)}i&&this.context.warnings&&this.context.warnings.length>0&&(i.warnings?i.warnings=[...i.warnings,...this.context.warnings]:i.warnings=[...this.context.warnings]),this.context=i}get assumptions(){return this.context.assumptions||(this.context.assumptions=new wi),this.context.assumptions}signal(e){}get timeLimit(){let e=this.context;for(;e;){if(void 0!==e.timeLimit)return e.timeLimit;e=e.parentScope}}get recursionLimit(){let e=this.context;for(;e;){if(void 0!==e.recursionLimit)return e.recursionLimit;e=e.parentScope}}get iterationLimit(){let e=this.context;for(;e;){if(void 0!==e.iterationLimit)return e.iterationLimit;e=e.parentScope}}shouldContinueExecution(){return void 0===this.deadline||this.deadline>=Date.now()}checkContinueExecution(){if(!this.shouldContinueExecution())throw new ai({message:"timeout"})}getFunctionDefinition(e){var i,n;let t,r=this.context;for(;r&&!t;)t=null===(i=r.dictionary)||void 0===i?void 0:i.get(e),void 0===t||Ii(t)||(t=void 0),void 0===t&&(r=r.parentScope);return t&&(t.scope=r),null!==(n=t)&&void 0!==n?n:null}getSymbolDefinition(e){var i;let n,t=this.context;for(;t&&!n;)n=null===(i=t.dictionary)||void 0===i?void 0:i.get(e),void 0===n||Fi(n)||(n=void 0),void 0===n&&(t=t.parentScope);return n?(n.scope=t,n):null}getSetDefinition(e){var i;let n,t=this.context;for(;t&&!n;)n=null===(i=t.dictionary)||void 0===i?void 0:i.get(e),void 0===n||qi(n)||(n=void 0),void 0===n&&(t=t.parentScope);return n?(n.scope=t,n):null}getCollectionDefinition(e){var i;let n,t=this.context;for(;t&&!n;)n=null===(i=t.dictionary)||void 0===i?void 0:i.get(e),void 0===n||ki(n)||(n=void 0),void 0===n&&(t=t.parentScope);return n?(n.scope=t,n):null}getDefinition(e){var i;let n,t=this.context;for(;t&&!n;)n=null===(i=t.dictionary)||void 0===i?void 0:i.get(e),void 0===n&&(t=t.parentScope);return n?(n.scope=t,n):null}canonical(e){return this.format(e)}format(e,i){return function(e,i,n){let t=i;for(const i of n){const n={canonical:bn,"canonical-add":en,"canonical-boolean":un,"canonical-constants":cn,"canonical-divide":nn,"canonical-domain":wn,"canonical-exp":tn,"canonical-list":rn,"canonical-multiply":sn,"canonical-power":an,"canonical-negate":ln,"canonical-number":fn,"canonical-rational":mn,"canonical-root":pn,"canonical-subtract":hn,json:dn,flatten:Nn,sorted:yn,"stripped-metadata":vn,"object-literal":xn}[i];if(!n)return null;t=n(t,e)}return t}(this,e,Array.isArray(i)?i:[null!=i?i:"canonical"])}evaluate(e,i){return async function(e,i,n){var t,r,o,s;const a=null!==(r=null!==(t=null==n?void 0:n.timeLimit)&&void 0!==t?t:e.timeLimit)&&void 0!==r?r:2;a&&isFinite(a)&&(e.deadline=Date.now()+1e3*a);const l=null!==(s=null!==(o=null==n?void 0:n.iterationLimit)&&void 0!==o?o:e.iterationLimit)&&void 0!==s?s:1024;let u=0,c=i,m=JSON.stringify(c);for(;u<l&&e.shouldContinueExecution();){if(c=Mn(e,c),null===c)return null;const i=JSON.stringify(c);if(m===i)return c;m=i,u+=1}return e.canonical(c)}(this,e,i)}simplify(e,i){return Qi(this,e,null==i?void 0:i.simplifications)}N(e,i){const n=this.precision,t=this.numericFormat;(null==i?void 0:i.precision)&&(this.precision=i.precision);let r=this.canonical(Qi(this,e));return null!==r&&(r=Sn(this,r)),null!==r&&(r=this.canonical(r)),this.precision=n,this.numericFormat=t,null!=r?r:e}is(e,i){let n=e;return i&&(n=["Element",e,i]),function(e,i){let n=!0;[i,n]=ci(i);const t=e.assumptions.get(i);if(void 0!==t)return t===n}(this,n)}ask(e){const i=[];for(const n in this.assumptions){const t=yi(e,n,{numericalTolerance:this._tolerance});null!==t&&i.push(t)}return i}assume(e,i){let n=e;return i&&(n=["Element",e,i]),mi(this,n)}replace(e,i){return function(e,i,n){let t=!1;for(;!t;){t=!0;for(const r of i){const i=qn(e,r,n);null!==i&&(t=!1,n=i)}}return n}(this,e,i)}domain(e){return Pi(this,e)}getVars(e){return ui(this,e)}chop(e){return"number"==typeof e?Math.abs(e)<=this._tolerance?0:e:e instanceof f.exports.Complex?Math.abs(e.re)<=this._tolerance&&Math.abs(e.im)<=this._tolerance?0:e:e instanceof m.exports.Decimal&&e.abs().lte(this._tolerance)?h:e}parse(e){return this.latexSyntax.parse(e)}serialize(e){return this.latexSyntax.serialize(e)}isZero(e){return Ie(this,e)}isNotZero(e){return ke(this,e)}isNumeric(e){return!1}isInfinity(e){return Pe(this,e)}isFinite(e){}isNonNegative(e){return function(e,i){const n=e.isZero(i);if(void 0!==n)return!0===n||e.isPositive(i)}(this,e)}isPositive(e){return Te(this,e)}isNegative(e){return Oe(this,e)}isNonPositive(e){return function(e,i){const n=Te(e,i);if(void 0!==n)return!n}(this,e)}isInteger(e){return function(e,i){const n=se(i);return null!==n&&Number.isInteger(n)}(0,e)}isRational(e){}isAlgebraic(e){}isReal(e){return ze(0,e)}isExtendedReal(e){}isComplex(e){}isOne(e){}isNegativeOne(e){}isElement(e,i){}isSubsetOf(e,i){return Le(this,e,i)}isEqual(e,i){}isLess(e,i){}isLessEqual(e,i){}isGreater(e,i){}isGreaterEqual(e,i){}}class In{constructor(e){this.internal=new Fn(e)}static getDictionaries(e="all"){return Fn.getDictionaries(e)}get precision(){return this.internal.precision}set precision(e){this.internal.precision=e}get numericFormat(){return this.internal.numericFormat}set numericFormat(e){this.internal.numericFormat=e}get tolerance(){return this.internal.tolerance}set tolerance(e){this.internal.tolerance=e}get context(){return this.internal.context}pushScope(e,i){this.internal.pushScope(e,i)}popScope(){this.internal.popScope()}get assumptions(){return this.internal.assumptions}shouldContinueExecution(){return this.internal.shouldContinueExecution()}checkContinueExecution(){this.internal.checkContinueExecution()}signal(e){this.internal.signal(e)}getFunctionDefinition(e){return this.internal.getFunctionDefinition(e)}getSymbolDefinition(e){return this.internal.getSymbolDefinition(e)}getSetDefinition(e){return this.internal.getSetDefinition(e)}getCollectionDefinition(e){return this.internal.getCollectionDefinition(e)}getDefinition(e){return this.internal.getDefinition(e)}getRules(e){return this.internal.getRules(e)}format(e,i){return this.internal.format(e,i)}canonical(e){return this.internal.format(e,["canonical"])}N(e){return this.internal.N(e)}simplify(e,i){var n,t,r,o;const s=null!==(t=null!==(n=null==i?void 0:i.timeLimit)&&void 0!==n?n:this.internal.timeLimit)&&void 0!==t?t:2;s&&isFinite(s)&&(this.internal.deadline=Date.now()+1e3*s);const a=null!==(o=null!==(r=null==i?void 0:i.iterationLimit)&&void 0!==r?r:this.internal.iterationLimit)&&void 0!==o?o:1024;let l=0,u=this.canonical(e),c=u;for(;l<a&&this.shouldContinueExecution();){if(u=this.internal.simplify(u,{simplifications:null==i?void 0:i.simplifications}),null===u)return c;if(Me(c,u))return this.canonical(u);c=u,l+=1}return null===u?null:this.canonical(u)}async evaluate(e,i){const n=this.internal.evaluate(e,i);return null===n?null:this.canonical(await n)}parse(e){return this.internal.parse(e)}serialize(e){return this.serialize(e)}domain(e){return this.internal.domain(e)}is(e,i){return this.internal.is(e,i)}ask(e){return this.internal.ask(e)}assume(e,i){return this.internal.assume(e,i)}replace(e,i){return this.internal.replace(e,i)}getVars(e){return this.internal.getVars(e)}chop(e){return this.internal.chop(e)}isZero(e){return this.internal.isZero(e)}isNotZero(e){return this.internal.isNotZero(e)}isNumeric(e){return this.internal.isNumeric(e)}isInfinity(e){return this.internal.isInfinity(e)}isFinite(e){return this.internal.isFinite(e)}isNonNegative(e){return this.internal.isNonNegative(e)}isPositive(e){return this.internal.isPositive(e)}isNegative(e){return this.internal.isNegative(e)}isNonPositive(e){return this.internal.isNonPositive(e)}isInteger(e){return this.internal.isInteger(e)}isRational(e){return this.internal.isRational(e)}isAlgebraic(e){return this.internal.isAlgebraic(e)}isReal(e){return this.internal.isReal(e)}isExtendedReal(e){return this.internal.isExtendedReal(e)}isComplex(e){return this.internal.isComplex(e)}isOne(e){return this.internal.isOne(e)}isNegativeOne(e){return this.internal.isNegativeOne(e)}isElement(e,i){return this.internal.isElement(e,i)}isSubsetOf(e,i){return this.internal.isSubsetOf(e,i)}isEqual(e,i){return this.internal.isEqual(e,i)}isLess(e,i){return this.internal.isLess(e,i)}isLessEqual(e,i){return this.internal.isLessEqual(e,i)}isGreater(e,i){return this.internal.isGreater(e,i)}isGreaterEqual(e,i){return this.internal.isGreaterEqual(e,i)}}let kn=null;e.ComputeEngine=In,e.LatexSyntax=si,e.evaluate=function(e){return null===kn&&(kn=new In),kn.evaluate(e)},e.format=function(e,i){return null===kn&&(kn=new In),kn.format(e,i)},e.match=yi,e.parse=function(e,i){return new si(i).parse(e)},e.serialize=function(e,i){return new si(i).serialize(e)},e.substitute=bi,e.version="0.4.2",Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
/** CortexJS Compute Engine 0.5.0 */
|
|
2
|
+
!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((e="undefined"!=typeof globalThis?globalThis:e||self).ComputeEngine={})}(this,(function(e){function i(e){return!("kind"in e)||"symbol"===e.kind}function t(e){return"kind"in e&&"matchfix"===e.kind}function n(e){return"kind"in e&&"infix"===e.kind}function r(e){return"kind"in e&&"prefix"===e.kind}function s(e){return"kind"in e&&"postfix"===e.kind}function a(e){return"kind"in e&&"environment"===e.kind}var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},l={exports:{}};!function(e){!function(i){var t,n,r,s,a=9e15,o=1e9,l="0123456789abcdef",u="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",c="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",m={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-a,maxE:a,crypto:!1},h=!0,d="[DecimalError] ",f=d+"Invalid argument: ",g=d+"Precision limit exceeded",p=d+"crypto unavailable",v="[object Decimal]",b=Math.floor,y=Math.pow,x=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,N=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,_=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,w=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,S=1e7,E=u.length-1,I=c.length-1,k={toStringTag:v};function M(e){var i,t,n,r=e.length-1,s="",a=e[0];if(r>0){for(s+=a,i=1;i<r;i++)(t=7-(n=e[i]+"").length)&&(s+=z(t)),s+=n;(t=7-(n=(a=e[i])+"").length)&&(s+=z(t))}else if(0===a)return"0";for(;a%10==0;)a/=10;return s+a}function A(e,i,t){if(e!==~~e||e<i||e>t)throw Error(f+e)}function O(e,i,t,n){var r,s,a,o;for(s=e[0];s>=10;s/=10)--i;return--i<0?(i+=7,r=0):(r=Math.ceil((i+1)/7),i%=7),s=y(10,7-i),o=e[r]%s|0,null==n?i<3?(0==i?o=o/100|0:1==i&&(o=o/10|0),a=t<4&&99999==o||t>3&&49999==o||5e4==o||0==o):a=(t<4&&o+1==s||t>3&&o+1==s/2)&&(e[r+1]/s/100|0)==y(10,i-2)-1||(o==s/2||0==o)&&0==(e[r+1]/s/100|0):i<4?(0==i?o=o/1e3|0:1==i?o=o/100|0:2==i&&(o=o/10|0),a=(n||t<4)&&9999==o||!n&&t>3&&4999==o):a=((n||t<4)&&o+1==s||!n&&t>3&&o+1==s/2)&&(e[r+1]/s/1e3|0)==y(10,i-3)-1,a}function D(e,i,t){for(var n,r,s=[0],a=0,o=e.length;a<o;){for(r=s.length;r--;)s[r]*=i;for(s[0]+=l.indexOf(e.charAt(a++)),n=0;n<s.length;n++)s[n]>t-1&&(void 0===s[n+1]&&(s[n+1]=0),s[n+1]+=s[n]/t|0,s[n]%=t)}return s.reverse()}k.absoluteValue=k.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),q(e)},k.ceil=function(){return q(new this.constructor(this),this.e+1,2)},k.clampedTo=k.clamp=function(e,i){var t=this,n=t.constructor;if(e=new n(e),i=new n(i),!e.s||!i.s)return new n(NaN);if(e.gt(i))throw Error(f+i);return t.cmp(e)<0?e:t.cmp(i)>0?i:new n(t)},k.comparedTo=k.cmp=function(e){var i,t,n,r,s=this,a=s.d,o=(e=new s.constructor(e)).d,l=s.s,u=e.s;if(!a||!o)return l&&u?l!==u?l:a===o?0:!a^l<0?1:-1:NaN;if(!a[0]||!o[0])return a[0]?l:o[0]?-u:0;if(l!==u)return l;if(s.e!==e.e)return s.e>e.e^l<0?1:-1;for(i=0,t=(n=a.length)<(r=o.length)?n:r;i<t;++i)if(a[i]!==o[i])return a[i]>o[i]^l<0?1:-1;return n===r?0:n>r^l<0?1:-1},k.cosine=k.cos=function(){var e,i,t=this,n=t.constructor;return t.d?t.d[0]?(e=n.precision,i=n.rounding,n.precision=e+Math.max(t.e,t.sd())+7,n.rounding=1,t=function(e,i){var t,n,r;if(i.isZero())return i;(n=i.d.length)<32?r=""+1/U(4,t=Math.ceil(n/3)):(t=16,r="2.3283064365386962890625e-10"),e.precision+=t,i=Q(e,1,i.times(r),new e(1));for(var s=t;s--;){var a=i.times(i);i=a.times(a).minus(a).times(8).plus(1)}return e.precision-=t,i}(n,Y(n,t)),n.precision=e,n.rounding=i,q(2==s||3==s?t.neg():t,e,i,!0)):new n(1):new n(NaN)},k.cubeRoot=k.cbrt=function(){var e,i,t,n,r,s,a,o,l,u,c=this,m=c.constructor;if(!c.isFinite()||c.isZero())return new m(c);for(h=!1,(s=c.s*y(c.s*c,1/3))&&Math.abs(s)!=1/0?n=new m(s.toString()):(t=M(c.d),(s=((e=c.e)-t.length+1)%3)&&(t+=1==s||-2==s?"0":"00"),s=y(t,1/3),e=b((e+1)/3)-(e%3==(e<0?-1:2)),(n=new m(t=s==1/0?"5e"+e:(t=s.toExponential()).slice(0,t.indexOf("e")+1)+e)).s=c.s),a=(e=m.precision)+3;;)if(u=(l=(o=n).times(o).times(o)).plus(c),n=C(u.plus(c).times(o),u.plus(l),a+2,1),M(o.d).slice(0,a)===(t=M(n.d)).slice(0,a)){if("9999"!=(t=t.slice(a-3,a+1))&&(r||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(q(n,e+1,1),i=!n.times(n).times(n).eq(c));break}if(!r&&(q(o,e+1,0),o.times(o).times(o).eq(c))){n=o;break}a+=4,r=1}return h=!0,q(n,e,m.rounding,i)},k.decimalPlaces=k.dp=function(){var e,i=this.d,t=NaN;if(i){if(t=7*((e=i.length-1)-b(this.e/7)),e=i[e])for(;e%10==0;e/=10)t--;t<0&&(t=0)}return t},k.dividedBy=k.div=function(e){return C(this,new this.constructor(e))},k.dividedToIntegerBy=k.divToInt=function(e){var i=this.constructor;return q(C(this,new i(e),0,1,1),i.precision,i.rounding)},k.equals=k.eq=function(e){return 0===this.cmp(e)},k.floor=function(){return q(new this.constructor(this),this.e+1,3)},k.greaterThan=k.gt=function(e){return this.cmp(e)>0},k.greaterThanOrEqualTo=k.gte=function(e){var i=this.cmp(e);return 1==i||0===i},k.hyperbolicCosine=k.cosh=function(){var e,i,t,n,r,s=this,a=s.constructor,o=new a(1);if(!s.isFinite())return new a(s.s?1/0:NaN);if(s.isZero())return o;t=a.precision,n=a.rounding,a.precision=t+Math.max(s.e,s.sd())+4,a.rounding=1,(r=s.d.length)<32?i=""+1/U(4,e=Math.ceil(r/3)):(e=16,i="2.3283064365386962890625e-10"),s=Q(a,1,s.times(i),new a(1),!0);for(var l,u=e,c=new a(8);u--;)l=s.times(s),s=o.minus(l.times(c.minus(l.times(c))));return q(s,a.precision=t,a.rounding=n,!0)},k.hyperbolicSine=k.sinh=function(){var e,i,t,n,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(i=s.precision,t=s.rounding,s.precision=i+Math.max(r.e,r.sd())+4,s.rounding=1,(n=r.d.length)<3)r=Q(s,2,r,r,!0);else{e=(e=1.4*Math.sqrt(n))>16?16:0|e,r=Q(s,2,r=r.times(1/U(5,e)),r,!0);for(var a,o=new s(5),l=new s(16),u=new s(20);e--;)a=r.times(r),r=r.times(o.plus(a.times(l.times(a).plus(u))))}return s.precision=i,s.rounding=t,q(r,i,t,!0)},k.hyperbolicTangent=k.tanh=function(){var e,i,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(e=n.precision,i=n.rounding,n.precision=e+7,n.rounding=1,C(t.sinh(),t.cosh(),n.precision=e,n.rounding=i)):new n(t.s)},k.inverseCosine=k.acos=function(){var e,i=this,t=i.constructor,n=i.abs().cmp(1),r=t.precision,s=t.rounding;return-1!==n?0===n?i.isNeg()?L(t,r,s):new t(0):new t(NaN):i.isZero()?L(t,r+4,s).times(.5):(t.precision=r+6,t.rounding=1,i=i.asin(),e=L(t,r+4,s).times(.5),t.precision=r,t.rounding=s,e.minus(i))},k.inverseHyperbolicCosine=k.acosh=function(){var e,i,t=this,n=t.constructor;return t.lte(1)?new n(t.eq(1)?0:NaN):t.isFinite()?(e=n.precision,i=n.rounding,n.precision=e+Math.max(Math.abs(t.e),t.sd())+4,n.rounding=1,h=!1,t=t.times(t).minus(1).sqrt().plus(t),h=!0,n.precision=e,n.rounding=i,t.ln()):new n(t)},k.inverseHyperbolicSine=k.asinh=function(){var e,i,t=this,n=t.constructor;return!t.isFinite()||t.isZero()?new n(t):(e=n.precision,i=n.rounding,n.precision=e+2*Math.max(Math.abs(t.e),t.sd())+6,n.rounding=1,h=!1,t=t.times(t).plus(1).sqrt().plus(t),h=!0,n.precision=e,n.rounding=i,t.ln())},k.inverseHyperbolicTangent=k.atanh=function(){var e,i,t,n,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=s.precision,i=s.rounding,n=r.sd(),Math.max(n,e)<2*-r.e-1?q(new s(r),e,i,!0):(s.precision=t=n-r.e,r=C(r.plus(1),new s(1).minus(r),t+e,1),s.precision=e+4,s.rounding=1,r=r.ln(),s.precision=e,s.rounding=i,r.times(.5))):new s(NaN)},k.inverseSine=k.asin=function(){var e,i,t,n,r=this,s=r.constructor;return r.isZero()?new s(r):(i=r.abs().cmp(1),t=s.precision,n=s.rounding,-1!==i?0===i?((e=L(s,t+4,n).times(.5)).s=r.s,e):new s(NaN):(s.precision=t+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=t,s.rounding=n,r.times(2)))},k.inverseTangent=k.atan=function(){var e,i,t,n,r,s,a,o,l,u=this,c=u.constructor,m=c.precision,d=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&m+4<=I)return(a=L(c,m+4,d).times(.25)).s=u.s,a}else{if(!u.s)return new c(NaN);if(m+4<=I)return(a=L(c,m+4,d).times(.5)).s=u.s,a}for(c.precision=o=m+10,c.rounding=1,e=t=Math.min(28,o/7+2|0);e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(h=!1,i=Math.ceil(o/7),n=1,l=u.times(u),a=new c(u),r=u;-1!==e;)if(r=r.times(l),s=a.minus(r.div(n+=2)),r=r.times(l),void 0!==(a=s.plus(r.div(n+=2))).d[i])for(e=i;a.d[e]===s.d[e]&&e--;);return t&&(a=a.times(2<<t-1)),h=!0,q(a,c.precision=m,c.rounding=d,!0)},k.isFinite=function(){return!!this.d},k.isInteger=k.isInt=function(){return!!this.d&&b(this.e/7)>this.d.length-2},k.isNaN=function(){return!this.s},k.isNegative=k.isNeg=function(){return this.s<0},k.isPositive=k.isPos=function(){return this.s>0},k.isZero=function(){return!!this.d&&0===this.d[0]},k.lessThan=k.lt=function(e){return this.cmp(e)<0},k.lessThanOrEqualTo=k.lte=function(e){return this.cmp(e)<1},k.logarithm=k.log=function(e){var i,t,n,r,s,a,o,l,u=this,c=u.constructor,m=c.precision,d=c.rounding;if(null==e)e=new c(10),i=!0;else{if(t=(e=new c(e)).d,e.s<0||!t||!t[0]||e.eq(1))return new c(NaN);i=e.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new c(t&&!t[0]?-1/0:1!=u.s?NaN:t?0:1/0);if(i)if(t.length>1)s=!0;else{for(r=t[0];r%10==0;)r/=10;s=1!==r}if(h=!1,a=B(u,o=m+5),n=i?F(c,o+10):B(e,o),O((l=C(a,n,o,1)).d,r=m,d))do{if(a=B(u,o+=10),n=i?F(c,o+10):B(e,o),l=C(a,n,o,1),!s){+M(l.d).slice(r+1,r+15)+1==1e14&&(l=q(l,m+1,0));break}}while(O(l.d,r+=10,d));return h=!0,q(l,m,d)},k.minus=k.sub=function(e){var i,t,n,r,s,a,o,l,u,c,m,d,f=this,g=f.constructor;if(e=new g(e),!f.d||!e.d)return f.s&&e.s?f.d?e.s=-e.s:e=new g(e.d||f.s!==e.s?f:NaN):e=new g(NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(u=f.d,d=e.d,o=g.precision,l=g.rounding,!u[0]||!d[0]){if(d[0])e.s=-e.s;else{if(!u[0])return new g(3===l?-0:0);e=new g(f)}return h?q(e,o,l):e}if(t=b(e.e/7),c=b(f.e/7),u=u.slice(),s=c-t){for((m=s<0)?(i=u,s=-s,a=d.length):(i=d,t=c,a=u.length),s>(n=Math.max(Math.ceil(o/7),a)+2)&&(s=n,i.length=1),i.reverse(),n=s;n--;)i.push(0);i.reverse()}else{for((m=(n=u.length)<(a=d.length))&&(a=n),n=0;n<a;n++)if(u[n]!=d[n]){m=u[n]<d[n];break}s=0}for(m&&(i=u,u=d,d=i,e.s=-e.s),a=u.length,n=d.length-a;n>0;--n)u[a++]=0;for(n=d.length;n>s;){if(u[--n]<d[n]){for(r=n;r&&0===u[--r];)u[r]=S-1;--u[r],u[n]+=S}u[n]-=d[n]}for(;0===u[--a];)u.pop();for(;0===u[0];u.shift())--t;return u[0]?(e.d=u,e.e=P(u,t),h?q(e,o,l):e):new g(3===l?-0:0)},k.modulo=k.mod=function(e){var i,t=this,n=t.constructor;return e=new n(e),!t.d||!e.s||e.d&&!e.d[0]?new n(NaN):!e.d||t.d&&!t.d[0]?q(new n(t),n.precision,n.rounding):(h=!1,9==n.modulo?(i=C(t,e.abs(),0,3,1)).s*=e.s:i=C(t,e,0,n.modulo,1),i=i.times(e),h=!0,t.minus(i))},k.naturalExponential=k.exp=function(){return Z(this)},k.naturalLogarithm=k.ln=function(){return B(this)},k.negated=k.neg=function(){var e=new this.constructor(this);return e.s=-e.s,q(e)},k.plus=k.add=function(e){var i,t,n,r,s,a,o,l,u,c,m=this,d=m.constructor;if(e=new d(e),!m.d||!e.d)return m.s&&e.s?m.d||(e=new d(e.d||m.s===e.s?m:NaN)):e=new d(NaN),e;if(m.s!=e.s)return e.s=-e.s,m.minus(e);if(u=m.d,c=e.d,o=d.precision,l=d.rounding,!u[0]||!c[0])return c[0]||(e=new d(m)),h?q(e,o,l):e;if(s=b(m.e/7),n=b(e.e/7),u=u.slice(),r=s-n){for(r<0?(t=u,r=-r,a=c.length):(t=c,n=s,a=u.length),r>(a=(s=Math.ceil(o/7))>a?s+1:a+1)&&(r=a,t.length=1),t.reverse();r--;)t.push(0);t.reverse()}for((a=u.length)-(r=c.length)<0&&(r=a,t=c,c=u,u=t),i=0;r;)i=(u[--r]=u[r]+c[r]+i)/S|0,u[r]%=S;for(i&&(u.unshift(i),++n),a=u.length;0==u[--a];)u.pop();return e.d=u,e.e=P(u,n),h?q(e,o,l):e},k.precision=k.sd=function(e){var i,t=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(f+e);return t.d?(i=T(t.d),e&&t.e+1>i&&(i=t.e+1)):i=NaN,i},k.round=function(){var e=this,i=e.constructor;return q(new i(e),e.e+1,i.rounding)},k.sine=k.sin=function(){var e,i,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(e=n.precision,i=n.rounding,n.precision=e+Math.max(t.e,t.sd())+7,n.rounding=1,t=function(e,i){var t,n=i.d.length;if(n<3)return i.isZero()?i:Q(e,2,i,i);t=(t=1.4*Math.sqrt(n))>16?16:0|t,i=Q(e,2,i=i.times(1/U(5,t)),i);for(var r,s=new e(5),a=new e(16),o=new e(20);t--;)r=i.times(i),i=i.times(s.plus(r.times(a.times(r).minus(o))));return i}(n,Y(n,t)),n.precision=e,n.rounding=i,q(s>2?t.neg():t,e,i,!0)):new n(NaN)},k.squareRoot=k.sqrt=function(){var e,i,t,n,r,s,a=this,o=a.d,l=a.e,u=a.s,c=a.constructor;if(1!==u||!o||!o[0])return new c(!u||u<0&&(!o||o[0])?NaN:o?a:1/0);for(h=!1,0==(u=Math.sqrt(+a))||u==1/0?(((i=M(o)).length+l)%2==0&&(i+="0"),u=Math.sqrt(i),l=b((l+1)/2)-(l<0||l%2),n=new c(i=u==1/0?"5e"+l:(i=u.toExponential()).slice(0,i.indexOf("e")+1)+l)):n=new c(u.toString()),t=(l=c.precision)+3;;)if(n=(s=n).plus(C(a,s,t+2,1)).times(.5),M(s.d).slice(0,t)===(i=M(n.d)).slice(0,t)){if("9999"!=(i=i.slice(t-3,t+1))&&(r||"4999"!=i)){+i&&(+i.slice(1)||"5"!=i.charAt(0))||(q(n,l+1,1),e=!n.times(n).eq(a));break}if(!r&&(q(s,l+1,0),s.times(s).eq(a))){n=s;break}t+=4,r=1}return h=!0,q(n,l,c.rounding,e)},k.tangent=k.tan=function(){var e,i,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(e=n.precision,i=n.rounding,n.precision=e+10,n.rounding=1,(t=t.sin()).s=1,t=C(t,new n(1).minus(t.times(t)).sqrt(),e+10,0),n.precision=e,n.rounding=i,q(2==s||4==s?t.neg():t,e,i,!0)):new n(NaN)},k.times=k.mul=function(e){var i,t,n,r,s,a,o,l,u,c=this,m=c.constructor,d=c.d,f=(e=new m(e)).d;if(e.s*=c.s,!(d&&d[0]&&f&&f[0]))return new m(!e.s||d&&!d[0]&&!f||f&&!f[0]&&!d?NaN:d&&f?0*e.s:e.s/0);for(t=b(c.e/7)+b(e.e/7),(l=d.length)<(u=f.length)&&(s=d,d=f,f=s,a=l,l=u,u=a),s=[],n=a=l+u;n--;)s.push(0);for(n=u;--n>=0;){for(i=0,r=l+n;r>n;)o=s[r]+f[n]*d[r-n-1]+i,s[r--]=o%S|0,i=o/S|0;s[r]=(s[r]+i)%S|0}for(;!s[--a];)s.pop();return i?++t:s.shift(),e.d=s,e.e=P(s,t),h?q(e,m.precision,m.rounding):e},k.toBinary=function(e,i){return K(this,2,e,i)},k.toDecimalPlaces=k.toDP=function(e,i){var t=this,n=t.constructor;return t=new n(t),void 0===e?t:(A(e,0,o),void 0===i?i=n.rounding:A(i,0,8),q(t,e+t.e+1,i))},k.toExponential=function(e,i){var t,n=this,r=n.constructor;return void 0===e?t=V(n,!0):(A(e,0,o),void 0===i?i=r.rounding:A(i,0,8),t=V(n=q(new r(n),e+1,i),!0,e+1)),n.isNeg()&&!n.isZero()?"-"+t:t},k.toFixed=function(e,i){var t,n,r=this,s=r.constructor;return void 0===e?t=V(r):(A(e,0,o),void 0===i?i=s.rounding:A(i,0,8),t=V(n=q(new s(r),e+r.e+1,i),!1,e+n.e+1)),r.isNeg()&&!r.isZero()?"-"+t:t},k.toFraction=function(e){var i,t,n,r,s,a,o,l,u,c,m,d,g=this,p=g.d,v=g.constructor;if(!p)return new v(g);if(u=t=new v(1),n=l=new v(0),a=(s=(i=new v(n)).e=T(p)-g.e-1)%7,i.d[0]=y(10,a<0?7+a:a),null==e)e=s>0?i:u;else{if(!(o=new v(e)).isInt()||o.lt(u))throw Error(f+o);e=o.gt(i)?s>0?i:u:o}for(h=!1,o=new v(M(p)),c=v.precision,v.precision=s=7*p.length*2;m=C(o,i,0,1,1),1!=(r=t.plus(m.times(n))).cmp(e);)t=n,n=r,r=u,u=l.plus(m.times(r)),l=r,r=i,i=o.minus(m.times(r)),o=r;return r=C(e.minus(t),n,0,1,1),l=l.plus(r.times(u)),t=t.plus(r.times(n)),l.s=u.s=g.s,d=C(u,n,s,1).minus(g).abs().cmp(C(l,t,s,1).minus(g).abs())<1?[u,n]:[l,t],v.precision=c,h=!0,d},k.toHexadecimal=k.toHex=function(e,i){return K(this,16,e,i)},k.toNearest=function(e,i){var t=this,n=t.constructor;if(t=new n(t),null==e){if(!t.d)return t;e=new n(1),i=n.rounding}else{if(e=new n(e),void 0===i?i=n.rounding:A(i,0,8),!t.d)return e.s?t:e;if(!e.d)return e.s&&(e.s=t.s),e}return e.d[0]?(h=!1,t=C(t,e,0,i,1).times(e),h=!0,q(t)):(e.s=t.s,t=e),t},k.toNumber=function(){return+this},k.toOctal=function(e,i){return K(this,8,e,i)},k.toPower=k.pow=function(e){var i,t,n,r,s,a,o=this,l=o.constructor,u=+(e=new l(e));if(!(o.d&&e.d&&o.d[0]&&e.d[0]))return new l(y(+o,u));if((o=new l(o)).eq(1))return o;if(n=l.precision,s=l.rounding,e.eq(1))return q(o,n,s);if((i=b(e.e/7))>=e.d.length-1&&(t=u<0?-u:u)<=9007199254740991)return r=R(l,o,t,n),e.s<0?new l(1).div(r):q(r,n,s);if((a=o.s)<0){if(i<e.d.length-1)return new l(NaN);if(0==(1&e.d[i])&&(a=1),0==o.e&&1==o.d[0]&&1==o.d.length)return o.s=a,o}return(i=0!=(t=y(+o,u))&&isFinite(t)?new l(t+"").e:b(u*(Math.log("0."+M(o.d))/Math.LN10+o.e+1)))>l.maxE+1||i<l.minE-1?new l(i>0?a/0:0):(h=!1,l.rounding=o.s=1,t=Math.min(12,(i+"").length),(r=Z(e.times(B(o,n+t)),n)).d&&O((r=q(r,n+5,1)).d,n,s)&&(i=n+10,+M((r=q(Z(e.times(B(o,i+t)),i),i+5,1)).d).slice(n+1,n+15)+1==1e14&&(r=q(r,n+1,0))),r.s=a,h=!0,l.rounding=s,q(r,n,s))},k.toPrecision=function(e,i){var t,n=this,r=n.constructor;return void 0===e?t=V(n,n.e<=r.toExpNeg||n.e>=r.toExpPos):(A(e,1,o),void 0===i?i=r.rounding:A(i,0,8),t=V(n=q(new r(n),e,i),e<=n.e||n.e<=r.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+t:t},k.toSignificantDigits=k.toSD=function(e,i){var t=this.constructor;return void 0===e?(e=t.precision,i=t.rounding):(A(e,1,o),void 0===i?i=t.rounding:A(i,0,8)),q(new t(this),e,i)},k.toString=function(){var e=this,i=e.constructor,t=V(e,e.e<=i.toExpNeg||e.e>=i.toExpPos);return e.isNeg()&&!e.isZero()?"-"+t:t},k.truncated=k.trunc=function(){return q(new this.constructor(this),this.e+1,1)},k.valueOf=k.toJSON=function(){var e=this,i=e.constructor,t=V(e,e.e<=i.toExpNeg||e.e>=i.toExpPos);return e.isNeg()?"-"+t:t};var C=function(){function e(e,i,t){var n,r=0,s=e.length;for(e=e.slice();s--;)n=e[s]*i+r,e[s]=n%t|0,r=n/t|0;return r&&e.unshift(r),e}function i(e,i,t,n){var r,s;if(t!=n)s=t>n?1:-1;else for(r=s=0;r<t;r++)if(e[r]!=i[r]){s=e[r]>i[r]?1:-1;break}return s}function t(e,i,t,n){for(var r=0;t--;)e[t]-=r,r=e[t]<i[t]?1:0,e[t]=r*n+e[t]-i[t];for(;!e[0]&&e.length>1;)e.shift()}return function(r,s,a,o,l,u){var c,m,h,d,f,g,p,v,y,x,N,_,w,E,I,k,M,A,O,D,C=r.constructor,V=r.s==s.s?1:-1,P=r.d,F=s.d;if(!(P&&P[0]&&F&&F[0]))return new C(r.s&&s.s&&(P?!F||P[0]!=F[0]:F)?P&&0==P[0]||!F?0*V:V/0:NaN);for(u?(f=1,m=r.e-s.e):(u=S,f=7,m=b(r.e/f)-b(s.e/f)),O=F.length,M=P.length,x=(y=new C(V)).d=[],h=0;F[h]==(P[h]||0);h++);if(F[h]>(P[h]||0)&&m--,null==a?(E=a=C.precision,o=C.rounding):E=l?a+(r.e-s.e)+1:a,E<0)x.push(1),g=!0;else{if(E=E/f+2|0,h=0,1==O){for(d=0,F=F[0],E++;(h<M||d)&&E--;h++)I=d*u+(P[h]||0),x[h]=I/F|0,d=I%F|0;g=d||h<M}else{for((d=u/(F[0]+1)|0)>1&&(F=e(F,d,u),P=e(P,d,u),O=F.length,M=P.length),k=O,_=(N=P.slice(0,O)).length;_<O;)N[_++]=0;(D=F.slice()).unshift(0),A=F[0],F[1]>=u/2&&++A;do{d=0,(c=i(F,N,O,_))<0?(w=N[0],O!=_&&(w=w*u+(N[1]||0)),(d=w/A|0)>1?(d>=u&&(d=u-1),1==(c=i(p=e(F,d,u),N,v=p.length,_=N.length))&&(d--,t(p,O<v?D:F,v,u))):(0==d&&(c=d=1),p=F.slice()),(v=p.length)<_&&p.unshift(0),t(N,p,_,u),-1==c&&(c=i(F,N,O,_=N.length))<1&&(d++,t(N,O<_?D:F,_,u)),_=N.length):0===c&&(d++,N=[0]),x[h++]=d,c&&N[0]?N[_++]=P[k]||0:(N=[P[k]],_=1)}while((k++<M||void 0!==N[0])&&E--);g=void 0!==N[0]}x[0]||x.shift()}if(1==f)y.e=m,n=g;else{for(h=1,d=x[0];d>=10;d/=10)h++;y.e=h+m*f-1,q(y,l?a+y.e+1:a,o,g)}return y}}();function q(e,i,t,n){var r,s,a,o,l,u,c,m,d,f=e.constructor;e:if(null!=i){if(!(m=e.d))return e;for(r=1,o=m[0];o>=10;o/=10)r++;if((s=i-r)<0)s+=7,a=i,l=(c=m[d=0])/y(10,r-a-1)%10|0;else if((d=Math.ceil((s+1)/7))>=(o=m.length)){if(!n)break e;for(;o++<=d;)m.push(0);c=l=0,r=1,a=(s%=7)-7+1}else{for(c=o=m[d],r=1;o>=10;o/=10)r++;l=(a=(s%=7)-7+r)<0?0:c/y(10,r-a-1)%10|0}if(n=n||i<0||void 0!==m[d+1]||(a<0?c:c%y(10,r-a-1)),u=t<4?(l||n)&&(0==t||t==(e.s<0?3:2)):l>5||5==l&&(4==t||n||6==t&&(s>0?a>0?c/y(10,r-a):0:m[d-1])%10&1||t==(e.s<0?8:7)),i<1||!m[0])return m.length=0,u?(i-=e.e+1,m[0]=y(10,(7-i%7)%7),e.e=-i||0):m[0]=e.e=0,e;if(0==s?(m.length=d,o=1,d--):(m.length=d+1,o=y(10,7-s),m[d]=a>0?(c/y(10,r-a)%y(10,a)|0)*o:0),u)for(;;){if(0==d){for(s=1,a=m[0];a>=10;a/=10)s++;for(a=m[0]+=o,o=1;a>=10;a/=10)o++;s!=o&&(e.e++,m[0]==S&&(m[0]=1));break}if(m[d]+=o,m[d]!=S)break;m[d--]=0,o=1}for(s=m.length;0===m[--s];)m.pop()}return h&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e<f.minE&&(e.e=0,e.d=[0])),e}function V(e,i,t){if(!e.isFinite())return G(e);var n,r=e.e,s=M(e.d),a=s.length;return i?(t&&(n=t-a)>0?s=s.charAt(0)+"."+s.slice(1)+z(n):a>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):r<0?(s="0."+z(-r-1)+s,t&&(n=t-a)>0&&(s+=z(n))):r>=a?(s+=z(r+1-a),t&&(n=t-r-1)>0&&(s=s+"."+z(n))):((n=r+1)<a&&(s=s.slice(0,n)+"."+s.slice(n)),t&&(n=t-a)>0&&(r+1===a&&(s+="."),s+=z(n))),s}function P(e,i){var t=e[0];for(i*=7;t>=10;t/=10)i++;return i}function F(e,i,t){if(i>E)throw h=!0,t&&(e.precision=t),Error(g);return q(new e(u),i,1,!0)}function L(e,i,t){if(i>I)throw Error(g);return q(new e(c),i,t,!0)}function T(e){var i=e.length-1,t=7*i+1;if(i=e[i]){for(;i%10==0;i/=10)t--;for(i=e[0];i>=10;i/=10)t++}return t}function z(e){for(var i="";e--;)i+="0";return i}function R(e,i,t,n){var r,s=new e(1),a=Math.ceil(n/7+4);for(h=!1;;){if(t%2&&J((s=s.times(i)).d,a)&&(r=!0),0===(t=b(t/2))){t=s.d.length-1,r&&0===s.d[t]&&++s.d[t];break}J((i=i.times(i)).d,a)}return h=!0,s}function $(e){return 1&e.d[e.d.length-1]}function j(e,i,t){for(var n,r=new e(i[0]),s=0;++s<i.length;){if(!(n=new e(i[s])).s){r=n;break}r[t](n)&&(r=n)}return r}function Z(e,i){var t,n,r,s,a,o,l,u=0,c=0,m=0,d=e.constructor,f=d.rounding,g=d.precision;if(!e.d||!e.d[0]||e.e>17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==i?(h=!1,l=g):l=i,o=new d(.03125);e.e>-2;)e=e.times(o),m+=5;for(l+=n=Math.log(y(2,m))/Math.LN10*2+5|0,t=s=a=new d(1),d.precision=l;;){if(s=q(s.times(e),l,1),t=t.times(++c),M((o=a.plus(C(s,t,l,1))).d).slice(0,l)===M(a.d).slice(0,l)){for(r=m;r--;)a=q(a.times(a),l,1);if(null!=i)return d.precision=g,a;if(!(u<3&&O(a.d,l-n,f,u)))return q(a,d.precision=g,f,h=!0);d.precision=l+=10,t=s=o=new d(1),c=0,u++}a=o}}function B(e,i){var t,n,r,s,a,o,l,u,c,m,d,f=1,g=e,p=g.d,v=g.constructor,b=v.rounding,y=v.precision;if(g.s<0||!p||!p[0]||!g.e&&1==p[0]&&1==p.length)return new v(p&&!p[0]?-1/0:1!=g.s?NaN:p?0:g);if(null==i?(h=!1,c=y):c=i,v.precision=c+=10,n=(t=M(p)).charAt(0),!(Math.abs(s=g.e)<15e14))return u=F(v,c+2,y).times(s+""),g=B(new v(n+"."+t.slice(1)),c-10).plus(u),v.precision=y,null==i?q(g,y,b,h=!0):g;for(;n<7&&1!=n||1==n&&t.charAt(1)>3;)n=(t=M((g=g.times(e)).d)).charAt(0),f++;for(s=g.e,n>1?(g=new v("0."+t),s++):g=new v(n+"."+t.slice(1)),m=g,l=a=g=C(g.minus(1),g.plus(1),c,1),d=q(g.times(g),c,1),r=3;;){if(a=q(a.times(d),c,1),M((u=l.plus(C(a,new v(r),c,1))).d).slice(0,c)===M(l.d).slice(0,c)){if(l=l.times(2),0!==s&&(l=l.plus(F(v,c+2,y).times(s+""))),l=C(l,new v(f),c,1),null!=i)return v.precision=y,l;if(!O(l.d,c-10,b,o))return q(l,v.precision=y,b,h=!0);v.precision=c+=10,u=a=g=C(m.minus(1),m.plus(1),c,1),d=q(g.times(g),c,1),r=o=1}l=u,r+=2}}function G(e){return e.s*e.s/0+""}function W(e,i){var t,n,r;for((t=i.indexOf("."))>-1&&(i=i.replace(".","")),(n=i.search(/e/i))>0?(t<0&&(t=n),t+=+i.slice(n+1),i=i.substring(0,n)):t<0&&(t=i.length),n=0;48===i.charCodeAt(n);n++);for(r=i.length;48===i.charCodeAt(r-1);--r);if(i=i.slice(n,r)){if(r-=n,e.e=t=t-n-1,e.d=[],n=(t+1)%7,t<0&&(n+=7),n<r){for(n&&e.d.push(+i.slice(0,n)),r-=7;n<r;)e.d.push(+i.slice(n,n+=7));n=7-(i=i.slice(n)).length}else n-=r;for(;n--;)i+="0";e.d.push(+i),h&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function H(e,i){var n,r,s,a,o,l,u,c,m;if(i.indexOf("_")>-1){if(i=i.replace(/(\d)_(?=\d)/g,"$1"),w.test(i))return W(e,i)}else if("Infinity"===i||"NaN"===i)return+i||(e.s=NaN),e.e=NaN,e.d=null,e;if(N.test(i))n=16,i=i.toLowerCase();else if(x.test(i))n=2;else{if(!_.test(i))throw Error(f+i);n=8}for((a=i.search(/p/i))>0?(u=+i.slice(a+1),i=i.substring(2,a)):i=i.slice(2),o=(a=i.indexOf("."))>=0,r=e.constructor,o&&(a=(l=(i=i.replace(".","")).length)-a,s=R(r,new r(n),a,2*a)),a=m=(c=D(i,n,S)).length-1;0===c[a];--a)c.pop();return a<0?new r(0*e.s):(e.e=P(c,m),e.d=c,h=!1,o&&(e=C(e,s,4*l)),u&&(e=e.times(Math.abs(u)<54?y(2,u):t.pow(2,u))),h=!0,e)}function Q(e,i,t,n,r){var s,a,o,l,u=e.precision,c=Math.ceil(u/7);for(h=!1,l=t.times(t),o=new e(n);;){if(a=C(o.times(l),new e(i++*i++),u,1),o=r?n.plus(a):n.minus(a),n=C(a.times(l),new e(i++*i++),u,1),void 0!==(a=o.plus(n)).d[c]){for(s=c;a.d[s]===o.d[s]&&s--;);if(-1==s)break}s=o,o=n,n=a,a=s}return h=!0,a.d.length=c+1,a}function U(e,i){for(var t=e;--i;)t*=e;return t}function Y(e,i){var t,n=i.s<0,r=L(e,e.precision,1),a=r.times(.5);if((i=i.abs()).lte(a))return s=n?4:1,i;if((t=i.divToInt(r)).isZero())s=n?3:2;else{if((i=i.minus(t.times(r))).lte(a))return s=$(t)?n?2:3:n?4:1,i;s=$(t)?n?1:4:n?3:2}return i.minus(r).abs()}function K(e,i,t,r){var s,a,u,c,m,h,d,f,g,p=e.constructor,v=void 0!==t;if(v?(A(t,1,o),void 0===r?r=p.rounding:A(r,0,8)):(t=p.precision,r=p.rounding),e.isFinite()){for(v?(s=2,16==i?t=4*t-3:8==i&&(t=3*t-2)):s=i,(u=(d=V(e)).indexOf("."))>=0&&(d=d.replace(".",""),(g=new p(1)).e=d.length-u,g.d=D(V(g),10,s),g.e=g.d.length),a=m=(f=D(d,10,s)).length;0==f[--m];)f.pop();if(f[0]){if(u<0?a--:((e=new p(e)).d=f,e.e=a,f=(e=C(e,g,t,r,0,s)).d,a=e.e,h=n),u=f[t],c=s/2,h=h||void 0!==f[t+1],h=r<4?(void 0!==u||h)&&(0===r||r===(e.s<0?3:2)):u>c||u===c&&(4===r||h||6===r&&1&f[t-1]||r===(e.s<0?8:7)),f.length=t,h)for(;++f[--t]>s-1;)f[t]=0,t||(++a,f.unshift(1));for(m=f.length;!f[m-1];--m);for(u=0,d="";u<m;u++)d+=l.charAt(f[u]);if(v){if(m>1)if(16==i||8==i){for(u=16==i?4:3,--m;m%u;m++)d+="0";for(m=(f=D(d,s,i)).length;!f[m-1];--m);for(u=1,d="1.";u<m;u++)d+=l.charAt(f[u])}else d=d.charAt(0)+"."+d.slice(1);d=d+(a<0?"p":"p+")+a}else if(a<0){for(;++a;)d="0"+d;d="0."+d}else if(++a>m)for(a-=m;a--;)d+="0";else a<m&&(d=d.slice(0,a)+"."+d.slice(a))}else d=v?"0p+0":"0";d=(16==i?"0x":2==i?"0b":8==i?"0o":"")+d}else d=G(e);return e.s<0?"-"+d:d}function J(e,i){if(e.length>i)return e.length=i,!0}function X(e){return new this(e).abs()}function ee(e){return new this(e).acos()}function ie(e){return new this(e).acosh()}function te(e,i){return new this(e).plus(i)}function ne(e){return new this(e).asin()}function re(e){return new this(e).asinh()}function se(e){return new this(e).atan()}function ae(e){return new this(e).atanh()}function oe(e,i){e=new this(e),i=new this(i);var t,n=this.precision,r=this.rounding,s=n+4;return e.s&&i.s?e.d||i.d?!i.d||e.isZero()?(t=i.s<0?L(this,n,r):new this(0)).s=e.s:!e.d||i.isZero()?(t=L(this,s,1).times(.5)).s=e.s:i.s<0?(this.precision=s,this.rounding=1,t=this.atan(C(e,i,s,1)),i=L(this,s,1),this.precision=n,this.rounding=r,t=e.s<0?t.minus(i):t.plus(i)):t=this.atan(C(e,i,s,1)):(t=L(this,s,1).times(i.s>0?.25:.75)).s=e.s:t=new this(NaN),t}function le(e){return new this(e).cbrt()}function ue(e){return q(e=new this(e),e.e+1,2)}function ce(e,i,t){return new this(e).clamp(i,t)}function me(e){if(!e||"object"!=typeof e)throw Error(d+"Object expected");var i,t,n,r=!0===e.defaults,s=["precision",1,o,"rounding",0,8,"toExpNeg",-a,0,"toExpPos",0,a,"maxE",0,a,"minE",-a,0,"modulo",0,9];for(i=0;i<s.length;i+=3)if(t=s[i],r&&(this[t]=m[t]),void 0!==(n=e[t])){if(!(b(n)===n&&n>=s[i+1]&&n<=s[i+2]))throw Error(f+t+": "+n);this[t]=n}if(t="crypto",r&&(this[t]=m[t]),void 0!==(n=e[t])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(f+t+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(p);this[t]=!0}else this[t]=!1}return this}function he(e){return new this(e).cos()}function de(e){return new this(e).cosh()}function fe(e,i){return new this(e).div(i)}function ge(e){return new this(e).exp()}function pe(e){return q(e=new this(e),e.e+1,3)}function ve(){var e,i,t=new this(0);for(h=!1,e=0;e<arguments.length;)if((i=new this(arguments[e++])).d)t.d&&(t=t.plus(i.times(i)));else{if(i.s)return h=!0,new this(1/0);t=i}return h=!0,t.sqrt()}function be(e){return e instanceof t||e&&e.toStringTag===v||!1}function ye(e){return new this(e).ln()}function xe(e,i){return new this(e).log(i)}function Ne(e){return new this(e).log(2)}function _e(e){return new this(e).log(10)}function we(){return j(this,arguments,"lt")}function Se(){return j(this,arguments,"gt")}function Ee(e,i){return new this(e).mod(i)}function Ie(e,i){return new this(e).mul(i)}function ke(e,i){return new this(e).pow(i)}function Me(e){var i,t,n,r,s=0,a=new this(1),l=[];if(void 0===e?e=this.precision:A(e,1,o),n=Math.ceil(e/7),this.crypto)if(crypto.getRandomValues)for(i=crypto.getRandomValues(new Uint32Array(n));s<n;)(r=i[s])>=429e7?i[s]=crypto.getRandomValues(new Uint32Array(1))[0]:l[s++]=r%1e7;else{if(!crypto.randomBytes)throw Error(p);for(i=crypto.randomBytes(n*=4);s<n;)(r=i[s]+(i[s+1]<<8)+(i[s+2]<<16)+((127&i[s+3])<<24))>=214e7?crypto.randomBytes(4).copy(i,s):(l.push(r%1e7),s+=4);s=n/4}else for(;s<n;)l[s++]=1e7*Math.random()|0;for(e%=7,(n=l[--s])&&e&&(r=y(10,7-e),l[s]=(n/r|0)*r);0===l[s];s--)l.pop();if(s<0)t=0,l=[0];else{for(t=-1;0===l[0];t-=7)l.shift();for(n=1,r=l[0];r>=10;r/=10)n++;n<7&&(t-=7-n)}return a.e=t,a.d=l,a}function Ae(e){return q(e=new this(e),e.e+1,this.rounding)}function Oe(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function De(e){return new this(e).sin()}function Ce(e){return new this(e).sinh()}function qe(e){return new this(e).sqrt()}function Ve(e,i){return new this(e).sub(i)}function Pe(){var e=0,i=arguments,t=new this(i[e]);for(h=!1;t.s&&++e<i.length;)t=t.plus(i[e]);return h=!0,q(t,this.precision,this.rounding)}function Fe(e){return new this(e).tan()}function Le(e){return new this(e).tanh()}function Te(e){return q(e=new this(e),e.e+1,1)}(t=function e(i){var t,n,r;function s(e){var i,t,n,r=this;if(!(r instanceof s))return new s(e);if(r.constructor=s,be(e))return r.s=e.s,void(h?!e.d||e.e>s.maxE?(r.e=NaN,r.d=null):e.e<s.minE?(r.e=0,r.d=[0]):(r.e=e.e,r.d=e.d.slice()):(r.e=e.e,r.d=e.d?e.d.slice():e.d));if("number"==(n=typeof e)){if(0===e)return r.s=1/e<0?-1:1,r.e=0,void(r.d=[0]);if(e<0?(e=-e,r.s=-1):r.s=1,e===~~e&&e<1e7){for(i=0,t=e;t>=10;t/=10)i++;return void(h?i>s.maxE?(r.e=NaN,r.d=null):i<s.minE?(r.e=0,r.d=[0]):(r.e=i,r.d=[e]):(r.e=i,r.d=[e]))}return 0*e!=0?(e||(r.s=NaN),r.e=NaN,void(r.d=null)):W(r,e.toString())}if("string"!==n)throw Error(f+e);return 45===(t=e.charCodeAt(0))?(e=e.slice(1),r.s=-1):(43===t&&(e=e.slice(1)),r.s=1),w.test(e)?W(r,e):H(r,e)}if(s.prototype=k,s.ROUND_UP=0,s.ROUND_DOWN=1,s.ROUND_CEIL=2,s.ROUND_FLOOR=3,s.ROUND_HALF_UP=4,s.ROUND_HALF_DOWN=5,s.ROUND_HALF_EVEN=6,s.ROUND_HALF_CEIL=7,s.ROUND_HALF_FLOOR=8,s.EUCLID=9,s.config=s.set=me,s.clone=e,s.isDecimal=be,s.abs=X,s.acos=ee,s.acosh=ie,s.add=te,s.asin=ne,s.asinh=re,s.atan=se,s.atanh=ae,s.atan2=oe,s.cbrt=le,s.ceil=ue,s.clamp=ce,s.cos=he,s.cosh=de,s.div=fe,s.exp=ge,s.floor=pe,s.hypot=ve,s.ln=ye,s.log=xe,s.log10=_e,s.log2=Ne,s.max=we,s.min=Se,s.mod=Ee,s.mul=Ie,s.pow=ke,s.random=Me,s.round=Ae,s.sign=Oe,s.sin=De,s.sinh=Ce,s.sqrt=qe,s.sub=Ve,s.sum=Pe,s.tan=Fe,s.tanh=Le,s.trunc=Te,void 0===i&&(i={}),i&&!0!==i.defaults)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)i.hasOwnProperty(n=r[t++])||(i[n]=this[n]);return s.config(i),s}(m)).prototype.constructor=t,t.default=t.Decimal=t,u=new t(u),c=new t(c),e.exports?("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator&&(k[Symbol.for("nodejs.util.inspect.custom")]=k.toString,k[Symbol.toStringTag]="Decimal"),e.exports=t):(i||(i="undefined"!=typeof self&&self&&self.self==self?self:window),r=i.Decimal,t.noConflict=function(){return i.Decimal=r,t},i.Decimal=t)}(o)}(l);var u=l.exports,c={exports:{}};!function(e,i){!function(i){var t=function(e){return.5*(Math.exp(e)+Math.exp(-e))},n=function(e){return.5*(Math.exp(e)-Math.exp(-e))},r=function(){throw SyntaxError("Invalid Param")};function s(e,i){var t=Math.abs(e),n=Math.abs(i);return 0===e?Math.log(n):0===i?Math.log(t):t<3e3&&n<3e3?.5*Math.log(e*e+i*i):.5*Math.log((e/=2)*e+(i/=2)*i)+Math.LN2}function a(e,i){if(!(this instanceof a))return new a(e,i);var t=function(e,i){var t={re:0,im:0};if(null==e)t.re=t.im=0;else if(void 0!==i)t.re=e,t.im=i;else switch(typeof e){case"object":if("im"in e&&"re"in e)t.re=e.re,t.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return a.INFINITY;t.re=e.abs*Math.cos(e.arg),t.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return a.INFINITY;t.re=e.r*Math.cos(e.phi),t.im=e.r*Math.sin(e.phi)}else 2===e.length?(t.re=e[0],t.im=e[1]):r();break;case"string":t.im=t.re=0;var n=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),s=1,o=0;null===n&&r();for(var l=0;l<n.length;l++){var u=n[l];" "===u||"\t"===u||"\n"===u||("+"===u?s++:"-"===u?o++:"i"===u||"I"===u?(s+o===0&&r()," "===n[l+1]||isNaN(n[l+1])?t.im+=parseFloat((o%2?"-":"")+"1"):(t.im+=parseFloat((o%2?"-":"")+n[l+1]),l++),s=o=0):((s+o===0||isNaN(u))&&r(),"i"===n[l+1]||"I"===n[l+1]?(t.im+=parseFloat((o%2?"-":"")+u),l++):t.re+=parseFloat((o%2?"-":"")+u),s=o=0))}s+o>0&&r();break;case"number":t.im=0,t.re=e;break;default:r()}return isNaN(t.re)||t.im,t}(e,i);this.re=t.re,this.im=t.im}a.prototype={re:0,im:0,sign:function(){var e=this.abs();return new a(this.re/e,this.im/e)},add:function(e,i){var t=new a(e,i);return this.isInfinite()&&t.isInfinite()?a.NAN:this.isInfinite()||t.isInfinite()?a.INFINITY:new a(this.re+t.re,this.im+t.im)},sub:function(e,i){var t=new a(e,i);return this.isInfinite()&&t.isInfinite()?a.NAN:this.isInfinite()||t.isInfinite()?a.INFINITY:new a(this.re-t.re,this.im-t.im)},mul:function(e,i){var t=new a(e,i);return this.isInfinite()&&t.isZero()||this.isZero()&&t.isInfinite()?a.NAN:this.isInfinite()||t.isInfinite()?a.INFINITY:0===t.im&&0===this.im?new a(this.re*t.re,0):new a(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)},div:function(e,i){var t=new a(e,i);if(this.isZero()&&t.isZero()||this.isInfinite()&&t.isInfinite())return a.NAN;if(this.isInfinite()||t.isZero())return a.INFINITY;if(this.isZero()||t.isInfinite())return a.ZERO;e=this.re,i=this.im;var n,r,s=t.re,o=t.im;return 0===o?new a(e/s,i/s):Math.abs(s)<Math.abs(o)?new a((e*(r=s/o)+i)/(n=s*r+o),(i*r-e)/n):new a((e+i*(r=o/s))/(n=o*r+s),(i-e*r)/n)},pow:function(e,i){var t=new a(e,i);if(e=this.re,i=this.im,t.isZero())return a.ONE;if(0===t.im){if(0===i&&e>0)return new a(Math.pow(e,t.re),0);if(0===e)switch((t.re%4+4)%4){case 0:return new a(Math.pow(i,t.re),0);case 1:return new a(0,Math.pow(i,t.re));case 2:return new a(-Math.pow(i,t.re),0);case 3:return new a(0,-Math.pow(i,t.re))}}if(0===e&&0===i&&t.re>0&&t.im>=0)return a.ZERO;var n=Math.atan2(i,e),r=s(e,i);return e=Math.exp(t.re*r-t.im*n),i=t.im*r+t.re*n,new a(e*Math.cos(i),e*Math.sin(i))},sqrt:function(){var e,i,t=this.re,n=this.im,r=this.abs();if(t>=0){if(0===n)return new a(Math.sqrt(t),0);e=.5*Math.sqrt(2*(r+t))}else e=Math.abs(n)/Math.sqrt(2*(r-t));return i=t<=0?.5*Math.sqrt(2*(r-t)):Math.abs(n)/Math.sqrt(2*(r+t)),new a(e,n<0?-i:i)},exp:function(){var e=Math.exp(this.re);return this.im,new a(e*Math.cos(this.im),e*Math.sin(this.im))},expm1:function(){var e=this.re,i=this.im;return new a(Math.expm1(e)*Math.cos(i)+function(e){var i=Math.PI/4;if(-i>e||e>i)return Math.cos(e)-1;var t=e*e;return t*(t*(t*(t*(t*(t*(t*(t/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(i),Math.exp(e)*Math.sin(i))},log:function(){var e=this.re,i=this.im;return new a(s(e,i),Math.atan2(i,e))},abs:function(){return e=this.re,i=this.im,t=Math.abs(e),n=Math.abs(i),t<3e3&&n<3e3?Math.sqrt(t*t+n*n):(t<n?(t=n,n=e/i):n=i/e,t*Math.sqrt(1+n*n));var e,i,t,n},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){var e=this.re,i=this.im;return new a(Math.sin(e)*t(i),Math.cos(e)*n(i))},cos:function(){var e=this.re,i=this.im;return new a(Math.cos(e)*t(i),-Math.sin(e)*n(i))},tan:function(){var e=2*this.re,i=2*this.im,r=Math.cos(e)+t(i);return new a(Math.sin(e)/r,n(i)/r)},cot:function(){var e=2*this.re,i=2*this.im,r=Math.cos(e)-t(i);return new a(-Math.sin(e)/r,n(i)/r)},sec:function(){var e=this.re,i=this.im,r=.5*t(2*i)+.5*Math.cos(2*e);return new a(Math.cos(e)*t(i)/r,Math.sin(e)*n(i)/r)},csc:function(){var e=this.re,i=this.im,r=.5*t(2*i)-.5*Math.cos(2*e);return new a(Math.sin(e)*t(i)/r,-Math.cos(e)*n(i)/r)},asin:function(){var e=this.re,i=this.im,t=new a(i*i-e*e+1,-2*e*i).sqrt(),n=new a(t.re-i,t.im+e).log();return new a(n.im,-n.re)},acos:function(){var e=this.re,i=this.im,t=new a(i*i-e*e+1,-2*e*i).sqrt(),n=new a(t.re-i,t.im+e).log();return new a(Math.PI/2-n.im,n.re)},atan:function(){var e=this.re,i=this.im;if(0===e){if(1===i)return new a(0,1/0);if(-1===i)return new a(0,-1/0)}var t=e*e+(1-i)*(1-i),n=new a((1-i*i-e*e)/t,-2*e/t).log();return new a(-.5*n.im,.5*n.re)},acot:function(){var e=this.re,i=this.im;if(0===i)return new a(Math.atan2(1,e),0);var t=e*e+i*i;return 0!==t?new a(e/t,-i/t).atan():new a(0!==e?e/0:0,0!==i?-i/0:0).atan()},asec:function(){var e=this.re,i=this.im;if(0===e&&0===i)return new a(0,1/0);var t=e*e+i*i;return 0!==t?new a(e/t,-i/t).acos():new a(0!==e?e/0:0,0!==i?-i/0:0).acos()},acsc:function(){var e=this.re,i=this.im;if(0===e&&0===i)return new a(Math.PI/2,1/0);var t=e*e+i*i;return 0!==t?new a(e/t,-i/t).asin():new a(0!==e?e/0:0,0!==i?-i/0:0).asin()},sinh:function(){var e=this.re,i=this.im;return new a(n(e)*Math.cos(i),t(e)*Math.sin(i))},cosh:function(){var e=this.re,i=this.im;return new a(t(e)*Math.cos(i),n(e)*Math.sin(i))},tanh:function(){var e=2*this.re,i=2*this.im,r=t(e)+Math.cos(i);return new a(n(e)/r,Math.sin(i)/r)},coth:function(){var e=2*this.re,i=2*this.im,r=t(e)-Math.cos(i);return new a(n(e)/r,-Math.sin(i)/r)},csch:function(){var e=this.re,i=this.im,r=Math.cos(2*i)-t(2*e);return new a(-2*n(e)*Math.cos(i)/r,2*t(e)*Math.sin(i)/r)},sech:function(){var e=this.re,i=this.im,r=Math.cos(2*i)+t(2*e);return new a(2*t(e)*Math.cos(i)/r,-2*n(e)*Math.sin(i)/r)},asinh:function(){var e=this.im;this.im=-this.re,this.re=e;var i=this.asin();return this.re=-this.im,this.im=e,e=i.re,i.re=-i.im,i.im=e,i},acosh:function(){var e=this.acos();if(e.im<=0){var i=e.re;e.re=-e.im,e.im=i}else i=e.im,e.im=-e.re,e.re=i;return e},atanh:function(){var e=this.re,i=this.im,t=e>1&&0===i,n=1-e,r=1+e,o=n*n+i*i,l=0!==o?new a((r*n-i*i)/o,(i*n+r*i)/o):new a(-1!==e?e/0:0,0!==i?i/0:0),u=l.re;return l.re=s(l.re,l.im)/2,l.im=Math.atan2(l.im,u)/2,t&&(l.im=-l.im),l},acoth:function(){var e=this.re,i=this.im;if(0===e&&0===i)return new a(0,Math.PI/2);var t=e*e+i*i;return 0!==t?new a(e/t,-i/t).atanh():new a(0!==e?e/0:0,0!==i?-i/0:0).atanh()},acsch:function(){var e=this.re,i=this.im;if(0===i)return new a(0!==e?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var t=e*e+i*i;return 0!==t?new a(e/t,-i/t).asinh():new a(0!==e?e/0:0,0!==i?-i/0:0).asinh()},asech:function(){var e=this.re,i=this.im;if(this.isZero())return a.INFINITY;var t=e*e+i*i;return 0!==t?new a(e/t,-i/t).acosh():new a(0!==e?e/0:0,0!==i?-i/0:0).acosh()},inverse:function(){if(this.isZero())return a.INFINITY;if(this.isInfinite())return a.ZERO;var e=this.re,i=this.im,t=e*e+i*i;return new a(e/t,-i/t)},conjugate:function(){return new a(this.re,-this.im)},neg:function(){return new a(-this.re,-this.im)},ceil:function(e){return e=Math.pow(10,e||0),new a(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)},floor:function(e){return e=Math.pow(10,e||0),new a(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)},round:function(e){return e=Math.pow(10,e||0),new a(Math.round(this.re*e)/e,Math.round(this.im*e)/e)},equals:function(e,i){var t=new a(e,i);return Math.abs(t.re-this.re)<=a.EPSILON&&Math.abs(t.im-this.im)<=a.EPSILON},clone:function(){return new a(this.re,this.im)},toString:function(){var e=this.re,i=this.im,t="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(e)<a.EPSILON&&(e=0),Math.abs(i)<a.EPSILON&&(i=0),0===i?t+e:(0!==e?(t+=e,t+=" ",i<0?(i=-i,t+="-"):t+="+",t+=" "):i<0&&(i=-i,t+="-"),1!==i&&(t+=i),t+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return 0===this.im?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return 0===this.im&&0===this.re},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},a.ZERO=new a(0,0),a.ONE=new a(1,0),a.I=new a(0,1),a.PI=new a(Math.PI,0),a.E=new a(Math.E,0),a.INFINITY=new a(1/0,1/0),a.NAN=new a(NaN,NaN),a.EPSILON=1e-15,Object.defineProperty(a,"__esModule",{value:!0}),a.default=a,a.Complex=a,e.exports=a}()}(c);const m=8205;function h(e){return e===m||65038===e||65039===e||e>=127995&&e<=128e3||e>=129456&&e<=129460||e>=917536&&e<=917632}function d(e){return e>=127462&&e<=127487}class f{constructor(e){this.obeyspaces=!1,this.s=function(e){if(/^[\u0020-\u00FF]*$/.test(e))return e;const i=[],t=function(e){const i=[];for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n>=55296&&n<=56319){const i=e.charCodeAt(t+1);i>=56320&&i<=57343&&(n=65536+1024*(n-55296)+(i-56320),t++)}i.push(n)}return i}(e);let n=0;for(;n<t.length;){const e=t[n++],r=t[n];if(r===m){const e=n-1;for(n+=2;t[n]===m;)n+=2;i.push(String.fromCodePoint(...t.slice(e,2*n-e+1)))}else if(h(r)){const e=n-1;for(;h(t[n]);)n+=t[n]===m?2:1;i.push(String.fromCodePoint(...t.slice(e,2*n-e-1)))}else d(e)?(n+=1,i.push(String.fromCodePoint(...t.slice(n-2,2)))):i.push(String.fromCodePoint(e))}return i}(e),this.pos=0}end(){return this.pos>=this.s.length}get(){return this.pos<this.s.length?this.s[this.pos++]:""}peek(){return this.s[this.pos]}match(e){let i;return i="string"==typeof this.s?e.exec(this.s.slice(this.pos)):e.exec(this.s.slice(this.pos).join("")),(null==i?void 0:i[0])?(this.pos+=i[0].length,i[0]):null}next(){if(this.end())return null;if(!this.obeyspaces&&this.match(/^[ \f\n\r\t\v\xA0\u2028\u2029]+/))return"<space>";if(this.obeyspaces&&this.match(/^[ \f\n\r\t\v\xA0\u2028\u2029]/))return"<space>";const e=this.get();if("\\"===e){if(!this.end()){let e=this.match(/^[a-zA-Z*]+/);if(e)this.match(/^[ \f\n\r\t\v\xA0\u2028\u2029]*/);else if(e=this.get()," "===e)return"<space>";return"\\"+e}}else{if("{"===e)return"<{>";if("}"===e)return"<}>";if("^"===e){if("^"===this.peek()){this.get();const e=this.match(/^(\^(\^(\^(\^[0-9a-f])?[0-9a-f])?[0-9a-f])?[0-9a-f])?[0-9a-f][0-9a-f]/);if(e)return String.fromCodePoint(parseInt(e.slice(e.lastIndexOf("^")+1),16))}return e}if("#"===e){if(!this.end()){let e=!1;if(/[0-9?]/.test(this.peek())&&(e=!0,this.pos+1<this.s.length)){const i=this.s[this.pos+1];e=/[^0-9A-Za-z]/.test(i)}return e?"#"+this.get():"#"}}else if("$"===e)return"$"===this.peek()?(this.get(),"<$$>"):"<$>"}return e}}function g(e,i){var t,n,r,s;let a=[],o=e.next();if(o)if("\\relax"===o);else if("\\noexpand"===o)o=e.next(),o&&a.push(o);else if("\\obeyspaces"===o)e.obeyspaces=!0;else if("\\space"===o||"~"===o)a.push("<space>");else if("\\bgroup"===o)a.push("<{>");else if("\\egroup"===o)a.push("<}>");else if("\\string"===o)o=e.next(),o&&("\\"===o[0]?Array.from(o).forEach((e=>a.push("\\"===e?"\\backslash":e))):"<{>"===o?a.push("\\{"):"<space>"===o?a.push("~"):"<}>"===o&&a.push("\\}"));else if("\\csname"===o){for(;"<space>"===e.peek();)e.next();let r="",s=!1,l=[];do{if(0===l.length)if(/^#[0-9?]$/.test(e.peek())){const r=e.get().slice(1);l=p(null!==(n=null!==(t=null==i?void 0:i[r])&&void 0!==t?t:null==i?void 0:i["?"])&&void 0!==n?n:"\\placeholder{}",i),o=l[0]}else o=e.next(),l=o?[o]:[];s=0===l.length,s||"\\endcsname"!==o||(s=!0,l.shift()),s||(s="<$>"===o||"<$$>"===o||"<{>"===o||"<}>"===o||!!o&&o.length>1&&"\\"===o[0]),s||(r+=l.shift())}while(!s);r&&a.push("\\"+r),a=a.concat(l)}else if("\\endcsname"===o);else if(o.length>1&&"#"===o[0]){const e=o.slice(1);a=a.concat(p(null!==(s=null!==(r=null==i?void 0:i[e])&&void 0!==r?r:null==i?void 0:i["?"])&&void 0!==s?s:"\\placeholder{}",i))}else a.push(o);return a}function p(e,i){const t=e.toString().split(/\r?\n/);let n="",r="";for(const e of t){n+=r,r=" ";const i=e.match(/((?:\\%)|[^%])*/);null!==i&&(n+=i[0])}const s=new f(n),a=[];do{a.push(...g(s,i))}while(!s.end());return a}function v(e){let i="",t="";for(const n of e)n&&(/[a-zA-Z*]/.test(n[0])&&(t+=i),i=/\\[a-zA-Z]+\*?$/.test(n)?" ":"",t+=n);return t}function b(e){let i=[];if(Array.isArray(e))for(const t of e)Array.isArray(t)?i=[...i,...t]:i.push(t);else i=[e];return v(i.map((e=>{var i;return null!==(i={"<space>":" ","<$$>":"$$","<$>":"$","<{>":"{","<}>":"}"}[e])&&void 0!==i?i:e})))}const y="List",x="Divide",N="Multiply",_="Negate",w="Power",S="Prime",E="Root",I="Sqrt",k="Subtract",M="ComplexInfinity",A="ExponentialE",O="ImaginaryUnit";function D(e){return null!==e&&"object"==typeof e&&"num"in e}function C(e){return null!==e&&"object"==typeof e&&"sym"in e}function q(e){return null!==e&&"object"==typeof e&&"fn"in e}function V(e){return null===e?null:"object"==typeof e&&"str"in e?e.str:"string"!=typeof e||e.length<2||"'"!==e[0]||"'"!==e[e.length-1]?null:e.substring(1,e.length-1)}function P(e){return null===e?null:Array.isArray(e)?e[0]:q(e)?e.fn[0]:null}function F(e){const i=P(e);return"string"==typeof i?i:""}function L(e,i){var t,n;return null===e?null:Array.isArray(e)?null!==(t=e[i])&&void 0!==t?t:null:q(e)&&null!==(n=e.fn[i])&&void 0!==n?n:null}function T(e){return Array.isArray(e)?Math.max(0,e.length-1):q(e)?Math.max(0,e.fn.length-1):0}function z(e){return null===e?null:"string"==typeof e?e.length>=2&&"'"===e[0]&&"'"===e[e.length-1]?null:e:C(e)?e.sym:null}function R(e){if(null===e)return null;if("number"==typeof e)return e;if(D(e))return parseFloat(e.num);const i=z(e);return"NaN"===i?NaN:"+Infinity"===i?1/0:"-Infinity"===i?-1/0:null}function $(e){var i,t,n,r,s,a,o,l,u,c,m;if(function(e){return null===e||!Array.isArray(e)&&("object"!=typeof e||!("fn"in e||"dic"in e))}(e))return[null,null];const h=P(e);if(!h)return[null,null];let d=null,f=null;if("Negate"===h&&([d,f]=$(null!==(i=L(e,1))&&void 0!==i?i:"Missing"),null!==d&&null!==f))return[-d,f];if("Rational"===h)return[null!==(n=R(null!==(t=L(e,1))&&void 0!==t?t:NaN))&&void 0!==n?n:NaN,null!==(s=R(null!==(r=L(e,2))&&void 0!==r?r:NaN))&&void 0!==s?s:NaN];if("Power"===h){const i=R(L(e,2));1===i?(d=null!==(a=R(L(e,1)))&&void 0!==a?a:null,f=1):-1===i&&(d=1,f=null!==(o=R(L(e,1)))&&void 0!==o?o:null)}return"Divide"===h&&(d=null!==(l=R(L(e,1)))&&void 0!==l?l:null,f=null!==(u=R(L(e,2)))&&void 0!==u?u:null),"Multiply"===h&&P(L(e,2))===w&&-1===R(L(L(e,2),2))&&(d=null!==(c=R(L(e,1)))&&void 0!==c?c:null,f=null!==(m=R(L(L(e,2),1)))&&void 0!==m?m:null),null===d||null===f?[null,null]:Number.isInteger(d)&&Number.isInteger(f)?[d,f]:[null,null]}function j(e){return Array.isArray(e)?e.slice(1):q(e)?e.fn.slice(1):[]}function Z(e,i){let t=null;if(Array.isArray(e)&&(t=e),q(e)&&(t=e.fn),null===t)return[];let n=1;const r=[];for(;n<t.length;)r.push(i(t[n])),n+=1;return r}function B(e,i,t,n="both"){var r,s,a,o,l,u;if("non"===n)return[e,i,t];const c=P(i),m=P(t);return"left"===n?c===e?[e,...null!==(r=j(i))&&void 0!==r?r:[],t]:[e,i,t]:"right"===n?m===e?[e,i,...null!==(s=j(t))&&void 0!==s?s:[]]:[e,i,t]:c===e&&m===e?[e,...null!==(a=j(i))&&void 0!==a?a:[],...null!==(o=j(t))&&void 0!==o?o:[]]:c===e?[e,...null!==(l=j(i))&&void 0!==l?l:[],t]:m===e?[e,i,...null!==(u=j(t))&&void 0!==u?u:[]]:[e,i,t]}function G(e){var i,t;const n=P(e);return null===e?null:("Delimiter"===n&&(e=null!==(i=L(e,1))&&void 0!==i?i:null),null===e?null:"Sequence"===n?null!==(t=j(e))&&void 0!==t?t:[]:null)}function W(e,i){return i>2?"solidus":"radical"}function H(e,i){return i>3?"inline-solidus":"quotient"}function Q(e,i,t,n){return null===t?"\\sqrt{}":(n=null!=n?n:2,"solidus"===i?e.wrapShort(t)+"^{1\\/"+e.serialize(n)+"}":"quotient"===i?e.wrapShort(t)+"^{\\frac{1}{"+e.serialize(n)+"}}":2===R(n)?"\\sqrt{"+e.serialize(t)+"}":"\\sqrt["+e.serialize(n)+"]{"+e.serialize(t)+"}")}function U(e,i){var t,n;if(null===i)return"";const r=null!==(t=L(i,1))&&void 0!==t?t:"Missing",s=null!==(n=L(i,2))&&void 0!==n?n:"Missing";if(1===T(i))return e.serialize(r);const a=H(0,e.level);if("inline-solidus"===a||"nice-solidus"===a){const i=e.wrapShort(r),t=e.wrapShort(s);return"inline-solidus"===a?`${i}\\/${t}`:`^{${i}}\\!\\!/\\!_{${t}}`}return"reciprocal"===a?e.wrap(r)+e.wrap(s)+"^{-1}":"factor"===a?"\\frac{1}{"+e.serialize(s)+"}"+e.wrap(r):`\\frac{${e.serialize(r)}}{${e.serialize(s)}}`}function Y(e,i){var t,n,r;const s=P(i),a=null!==(t=L(i,1))&&void 0!==t?t:"Missing",o=null!==(n=L(i,2))&&void 0!==n?n:"Missing";if("Sqrt"===s)return Q(e,W(0,e.level),a,2);if("Root"===s)return Q(e,W(0,e.level),a,o);const l=null!==(r=R(o))&&void 0!==r?r:1;if(-1===l)return e.serialize([x,"1",a]);if(l<0)return e.serialize([x,"1",[w,a,-l]]);if("Divide"===P(o)||"Rational"===P(o)){if(1===R(L(o,1)))return Q(e,W(0,e.level),a,L(o,2))}else if(P(o)===w&&-1===R(L(o,2)))return Q(e,W(0,e.level),a,L(o,1));return e.wrapShort(a)+"^{"+e.serialize(o)+"}"}const K=[{name:"CatalanConstant",serialize:"G"},{name:"GoldenRatio",serialize:"\\varphi"},{name:"EulerGamma",serialize:"\\gamma"},{name:"Degrees",serialize:"\\frac{\\pi}{180}"},{trigger:["\\infty"],parse:{num:"+Infinity"}},{name:M,trigger:["\\tilde","\\infty"],serialize:"\\tilde\\infty"},{trigger:["\\tilde","<{>","\\infty","<}>"],parse:M},{name:"Pi",trigger:["\\pi"]},{trigger:["\u03c0"],parse:"Pi"},{name:A,trigger:["e"],serialize:"e"},{trigger:["\\mathrm","<{>","e","<}>"],parse:A},{trigger:["\\exponentialE"],parse:A},{name:O,trigger:["\\imaginaryI"]},{trigger:["i"],parse:O},{trigger:["\\mathrm","<{>","i","<}>"],parse:O},{name:"Add",trigger:["+"],kind:"infix",associativity:"both",precedence:275,parse:(e,i,t)=>{if(275<i.minPrec)return null;const n=e.matchExpression(Object.assign(Object.assign({},i),{minPrec:275}));return null===n?null:B("Add",t,n)},serialize:function(e,i){var t,n;e.level-=1;const r=P(i);let s="",a=L(i,1),o=!Number.isNaN(null!==(t=R(a))&&void 0!==t?t:NaN);if(r===_)s="-"+e.wrap(a,276);else if("Add"===r){s=e.serialize(a);const t=T(i)+1;for(let r=2;r<t;r++){a=L(i,r);const t=null!==(n=R(a))&&void 0!==n?n:NaN,l=!Number.isNaN(t);let u=!1;if(null!==a&&o){const[i,t]=$(a);null!==i&&null!==t&&isFinite(i)&&isFinite(t)&&1!==t&&(s+=e.options.invisiblePlus+e.serialize(a),u=!0)}if(!u)if(t<0)s+=e.serialize(a);else if("Negate"===P(a))s+=e.wrap(a,275);else{const i=e.wrap(a,275);"-"===i[0]||"+"===i[0]?s+=i:s=s+"+"+i}o=l}}else if(r===k){const t=L(i,2);s=null!==t?e.wrap(a,275)+"-"+e.wrap(t,275):e.wrap(a,275)}return e.level+=1,s}},{kind:"prefix",trigger:["+"],precedence:275,parse:(e,i)=>275<i.minPrec?null:e.matchExpression(Object.assign(Object.assign({},i),{minPrec:400}))},{name:"Complex",precedence:274,serialize:(e,i)=>{const t=R(L(i,1)),n=R(L(i,2));if(0===n)return e.serialize(L(i,1));const r=1===n?"\\imaginaryI":-1===n?"-\\imaginaryI":v([e.serialize(L(i,2)),"\\imaginaryI"]);return 0===t?r:v(null!==n&&n<0?[e.serialize(L(i,1)),r]:[e.serialize(L(i,1)),"+",r])}},{name:"Divide",trigger:["\\frac"],requiredLatexArg:2,precedence:660,parse:function(e){var i,t,n,r;const s=null!==(i=e.matchRequiredLatexArgument())&&void 0!==i?i:"Missing",a=null!==(t=e.matchRequiredLatexArgument())&&void 0!==t?t:"Missing";if("PartialDerivative"===P(s)&&("PartialDerivative"===P(a)||"Multiply"===P(a)&&"PartialDerivative"===P(L(a,1)))){const i=null!==(n=L(s,3))&&void 0!==n?n:"Missing";let t=L(s,1);null!==t&&"Missing"!==t||(t=null!==(r=e.matchExpression())&&void 0!==r?r:"Missing");let o=[];if("Multiply"===P(a)){for(const e of j(a))if("PartialDerivative"===P(e)){const i=L(e,2);i&&o.push(i)}}else{const e=L(a,2);e&&o.push(e)}return o.length>1&&(o=[y,...o]),["PartialDerivative",t,...o,"Missing"===i?1:i]}return[x,s,a]},serialize:U},{trigger:["\\/"],kind:"infix",associativity:"non",precedence:660,parse:"Divide"},{trigger:["/"],kind:"infix",associativity:"non",precedence:660,parse:"Divide"},{trigger:["\\div"],kind:"infix",associativity:"non",precedence:660,parse:"Divide"},{name:"Exp",serialize:(e,i)=>{var t;return v(["\\exponentialE^{",e.serialize(null!==(t=L(i,1))&&void 0!==t?t:"Missing"),"}"])}},{name:"Factorial",trigger:["!"],kind:"postfix",precedence:810},{name:"Factorial2",trigger:["!","!"],kind:"postfix",precedence:810},{trigger:"\\operatorname{floor}",parse:e=>{const i=e.matchArguments("group");return null===i?null:["Floor",...i]}},{name:"Gcd",trigger:"\\operatorname{gcd}",parse:e=>{const i=e.matchArguments("group");return null===i?null:["Gcd",...i]},serialize:(e,i)=>v(["\\operatorname{gcd}","\\left(",e.serialize(i),"\\right)"])},{name:"Half",serialize:"\\frac12"},{name:"Lcm",trigger:"\\operatorname{lcm}"},{name:"MinusPlus",trigger:["\\mp"],kind:"infix",associativity:"both",precedence:270},{name:N,trigger:["\\times"],kind:"infix",associativity:"both",precedence:390,serialize:function e(i,t){var n,r;if(null===t)return"";i.level-=1;let s="";const[a,o]=function(e){var i,t,n,r,s;if("Multiply"!==P(e))return[[],[]];const a=[],o=[],l=j(e);for(const e of l)if("Power"===P(e))if("Negate"===P(L(e,2))){const n=null!==(i=L(e,1))&&void 0!==i?i:"Missing",r=null!==(t=L(L(e,2),1))&&void 0!==t?t:"Missing";o.push([w,n,r])}else{const i=null!==(n=R(L(e,2)))&&void 0!==n?n:NaN;-1===i?o.push(null!==(r=L(e,1))&&void 0!==r?r:"Missing"):i<0?o.push([w,null!==(s=L(e,1))&&void 0!==s?s:"Missing",-i]):a.push(e)}else a.push(e);return[a,o]}(t);if(o.length>0&&(s=1===o.length&&1===o[0]?0===a.length?"1":1===a.length?i.serialize(a[0]):e(i,[N,...a]):i.serialize([x,1===a.length?a[0]:[N,...a],1===o.length?o[0]:[N,...o]])),s)return i.level+=1,s;let l=!1,u=null;const c=T(t)+1;let m=!1;for(let e=1;e<c;e++){if(u=L(t,e),null===u)continue;let a;if("number"==typeof u||D(u))a=i.serialize(u),"-1"!==a||s?("-"===a[0]&&(a=a.slice(1),l=!l),s=s?v([s,i.options.multiply,a]):a):s="-",m=!0;else{if("Power"===P(u)){const[e,t]=$(null!==(n=L(u,2))&&void 0!==n?n:NaN);if(1===e&&null!==t){s+=Q(i,W(0,i.level),L(u,1),t),m=!1;continue}}if("Power"!==P(u)||isNaN(null!==(r=R(L(u,1)))&&void 0!==r?r:NaN)){if("Negate"===P(u)&&(u=L(u,1),l=!l),a=i.wrap(u,390),s){const e=P(u);s=!m||"Divide"!==e&&"Rational"!==e?i.options.invisibleMultiply?v([s,i.options.invisibleMultiply,a]):v([s,a]):v([s,i.options.multiply,a])}else s=a;m=!1}else a=i.serialize(u),s=s?v([s,i.options.multiply,a]):a,m=!0}}return i.level+=1,l?"-"+s:s}},{trigger:["\\cdot"],kind:"infix",associativity:"both",precedence:390,parse:(e,i,t)=>{if(391<i.minPrec)return null;const n=e.matchExpression(Object.assign(Object.assign({},i),{minPrec:392}));return null===n?null:B("Multiply",t,n)}},{trigger:["*"],kind:"infix",associativity:"both",precedence:390,parse:(e,i,t)=>{if(391<i.minPrec)return null;const n=e.matchExpression(Object.assign(Object.assign({},i),{minPrec:392}));return null===n?null:["Multiply",t,n]}},{name:_,trigger:["-"],kind:"prefix",parse:(e,i)=>{if(276<i.minPrec)return null;const t=e.matchExpression(Object.assign(Object.assign({},i),{minPrec:400}));return null===t?null:[_,t]},precedence:275},{name:"PlusMinus",trigger:["\\pm"],kind:"infix",associativity:"both",precedence:270},{name:w,trigger:["^"],kind:"infix",serialize:Y},{name:"Rational",precedence:660,serialize:U},{name:E,serialize:Y},{name:"Round",trigger:"\\operatorname{round}"},{name:"Square",precedence:720,serialize:(e,i)=>e.wrapShort(L(i,1))+"^2"},{name:"Sign",trigger:"\\operatorname{sgn}"},{name:I,trigger:["\\sqrt"],optionalLatexArg:1,requiredLatexArg:1,parse:function(e){const i=e.matchOptionalLatexArgument(),t=e.matchRequiredLatexArgument();return null===t?null!==i?[E,"Missing",i]:[I,"Missing"]:null!==i?[E,t,i]:[I,t]},serialize:Y},{name:k,trigger:["-"],kind:"infix",associativity:"both",precedence:275,parse:(e,i,t)=>{if(276<i.minPrec)return null;const n=e.matchExpression(Object.assign(Object.assign({},i),{minPrec:277}));return null===n?null:[k,t,n]}}];function J(e=""){return(i,t)=>j(t).map((e=>i.serialize(e))).join(e)}function X(e,i){if(null===i)return"";const t=P(i);if("LatexString"===t)return ne(e,i);if("LatexTokens"===t)return te(e,i);const n=V(i);if(null!==n)return`\\text{${n}}`;const r=R(i);return null!==r?r.toString():`\\text{${JSON.stringify(i)}}`}const ee=[{name:"Missing",trigger:["\\placeholder"],requiredLatexArg:1,serialize:e=>{var i;return null!==(i=e.options.missingSymbol)&&void 0!==i?i:"\\placeholder{}"}},{name:"BaseForm",serialize:(e,i)=>{var t,n;const r=null!==(t=R(L(i,2)))&&void 0!==t?t:NaN;if(isFinite(r)&&r>=2&&r<=36){const e=null!==(n=R(L(i,1)))&&void 0!==n?n:NaN;if(isFinite(e)){let i=Number(e).toString(r),t=0;if(2===r||10===r?t=4:16===r?t=2:r>16&&(t=4),t>0){const e=i;i="";for(let n=0;n<e.length;n++)n>0&&n%t==0&&(i="\\, "+i),i=e[e.length-n-1]+i}return`(\\text{${i}}_{${r}}`}}return"\\operatorname{BaseForm}("+e.serialize(L(i,1))+", "+e.serialize(L(i,2))+")"}},{name:"Delimiter",serialize:(e,i)=>{var t,n,r,s,a,o;const l=T(i);if(0===l)return"";if(1===l)return`\\left( ${e.serialize(L(i,1))} \\right)`;let u="",c="\\left(",m="\\left)";2===l?u=null!==(t=X(e,L(i,2)))&&void 0!==t?t:"":3===l?(c=null!==(n=X(e,L(i,2)))&&void 0!==n?n:"",m=null!==(r=X(e,L(i,3)))&&void 0!==r?r:""):(c=null!==(s=X(e,L(i,2)))&&void 0!==s?s:"",u=null!==(a=X(e,L(i,3)))&&void 0!==a?a:"",m=null!==(o=X(e,L(i,4)))&&void 0!==o?o:"");const h=L(i,1);return u&&"Sequence"===P(h)?`${c} ${J(u)(e,h)} ${m}`:`${c} ${e.serialize(h)} ${m}`}},{name:"Error",serialize:(e,i)=>{const t=L(i,1),n="Nothing"===z(t)?"":e.serialize(t);if(T(i)>=3){const e=L(i,3);if(e&&"LatexForm"===P(e)){const i=re(V(L(e,1)));if(i)return`${null!=n?n:""}\\texttt{\\textcolor{red}{${i}}}`}}return null!=n?n:""}},{name:"FromLatex",serialize:(e,i)=>`\\texttt{${re(V(L(i,1)))}}`},{name:"LatexForm",serialize:ne},{name:"LatexTokens",serialize:te},{kind:"matchfix",openDelimiter:"(",closeDelimiter:")",parse:(e,i)=>null===i?null:"Sequence"===P(i)?0===T(i)?["Delimiter","Nothing"]:["Delimiter",...j(i)]:["Delimiter",i]},{name:"Sequence",trigger:[","],kind:"infix",precedence:20,parse:(e,i,t)=>{if(i.minPrec>=20)return null;"Missing"===t&&(t="Nothing");const n=["Sequence",t];let r=!1;for(;!r;){for(r=!0,e.skipSpace();e.match(",");)n.push("Nothing"),e.skipSpace();if(e.atTerminator(i))n.push("Nothing");else{const t=e.matchExpression(Object.assign(Object.assign({},i),{minPrec:20}));n.push(null!=t?t:"Nothing"),r=null===t}r||(e.skipSpace(),r=!e.match(","))}return n},serialize:J()},{trigger:[";"],kind:"infix",precedence:19,parse:(e,i,t)=>{var n,r;if(i.minPrec>=19)return null;"Missing"===t&&(t="Nothing");const s=["Sequence",...null!==(n=G(t))&&void 0!==n?n:["Sequence",t]];for(;;){for(e.skipSpace();e.match(",");)s.push("Nothing"),e.skipSpace();if(e.atEnd){s.push("Nothing");break}const t=e.matchExpression(Object.assign(Object.assign({},i),{minPrec:19}));if(null===t){s.push("Nothing");break}if(s.push(...null!==(r=G(t))&&void 0!==r?r:["Sequence",t]),e.skipSpace(),!e.match(","))break}return s}},{name:"String",trigger:["\\text"],parse:e=>ie(e),serialize:(e,i)=>{const t=j(i);return null===t||0===t.length?"\\text{}":"\\text{"+t.map((i=>e.serialize(i))).join("")+"}"}},{name:"Subscript",trigger:["_"],kind:"infix",serialize:(e,i)=>2===T(i)?e.serialize(L(i,1))+"_{"+e.serialize(L(i,2))+"}":"_{"+e.serialize(L(i,1))+"}"},{name:"Superplus",trigger:["^","+"],kind:"postfix"},{name:"Subplus",trigger:["_","+"],kind:"postfix"},{name:"Superminus",trigger:["^","-"],kind:"postfix"},{name:"Subminus",trigger:["_","-"],kind:"postfix"},{trigger:["^","*"],kind:"postfix",parse:(e,i)=>["Superstar",i]},{name:"Superstar",trigger:["^","\\star"],kind:"postfix"},{trigger:["_","*"],kind:"postfix",parse:(e,i)=>["Substar",i]},{name:"Substar",trigger:["_","\\star"],kind:"postfix"},{name:"Superdagger",trigger:["^","\\dagger"],kind:"postfix"},{trigger:["^","\\dag"],kind:"postfix",parse:(e,i)=>["Superdagger",i]},{name:S,trigger:["^","\\prime"],kind:"postfix"},{trigger:["^","\\doubleprime"],kind:"postfix",parse:(e,i)=>[S,null!=i?i:"Nothing",2]},{name:"Derivative",serialize:(e,i)=>{var t;const n=null!==(t=R(L(i,1)))&&void 0!==t?t:NaN;if(!isFinite(n))return"";const r=e.serialize(L(i,2));return 1===n?r+"^{\\prime}":2===n?r+"^{\\doubleprime}":r+"^{("+Number(n).toString()+")}"}},{name:"Piecewise",trigger:"cases",kind:"environment",parse:e=>{var i;return["Piecewise",null!==(i=e.matchTabular("cases"))&&void 0!==i?i:"Nothing"]},serialize:(e,i)=>{if(P(L(i,1))!==y)return"";const t=j(L(i,1));let n="",r="";for(const i of t){n+=r;const t=L(i,1);if(null!==t){n+=e.serialize(t);const r=L(i,2);null!==r&&(n+="&"+e.serialize(r))}r="\\\\"}return"\\begin{cases}"+n+"\\end{cases}"}}];function ie(e,i){var t,n,r;if(!e.match("<{>"))return"Nothing";const s=[];let a="",o=null;for(;!e.atEnd&&!e.match("<}>");)if("<{>"===e.peek)s.push(ie(e));else if(e.match("\\textbf")&&e.match("<{>"))s.push(ie(e,{"font-weight":"bold"}));else if(e.match("\\color")&&e.match("<{>")){const i=e.matchColor();i&&e.match("<}>")&&(null!==o&&a?s.push(["Style",a,{dict:o}]):a&&s.push(["String",a]),a="",o={color:i})}else if(e.match("<space>"))a+=" ";else if(e.match("<$>")){const i=e.index,n=null!==(t=e.matchExpression())&&void 0!==t?t:"Nothing";e.skipSpace(),e.match("<$>")?s.push(n):(a+="$",e.index=i)}else if(e.match("<$$>")){const i=e.index,t=null!==(n=e.matchExpression())&&void 0!==n?n:"Nothing";e.skipSpace(),e.match("<$$>")?s.push(t):(a+="$$",e.index=i)}else a+=null!==(r=e.matchChar())&&void 0!==r?r:"";return null!==o&&a?s.push(["Style",a,{dict:o}]):a&&s.push(["String",a]),i?["Style",["String",...s],{dict:i}]:["String",...s]}function te(e,i){return null===i?"":v(Z(i,(i=>{const t=V(i);return null===t?e.serialize(i):"<{>"===t?"{":"<}>"===t?"}":"<$>"===t?"$":"<$$>"===t?"$$":"<space>"===t?" ":t})))}function ne(e,i){return null===i?"":v(Z(i,(i=>{var t;return null!==(t=V(i))&&void 0!==t?t:e.serialize(i)})))}function re(e){return null===e?"":e.replace(/[{}\[\]\\:\-\$%]/g,(e=>{var i;return null!==(i={"{":"\\lbrace ","}":"\\rbrace ","[":"\\lbrack ","]":"\\rbrack ",":":"\\colon ","\\":"\\backslash "}[e])&&void 0!==i?i:"\\"+e}))}const se=[{name:"Overscript",trigger:["\\overset"],kind:"infix",precedence:700},{name:"Underscript",trigger:["\\underset"],kind:"infix",precedence:700},{name:"Increment",trigger:["+","+"],kind:"postfix",precedence:880},{name:"Decrement",trigger:["-","-"],kind:"postfix",precedence:880},{name:"PreIncrement",trigger:["+","+"],kind:"prefix",precedence:880},{name:"PreDecrement",trigger:["-","-"],kind:"prefix",precedence:880},{name:"Ring",trigger:["\\circ"],kind:"infix",precedence:265},{name:"Transpose",trigger:["^","T"],kind:"infix"},{name:"ConjugateTranspose",trigger:["^","H"],kind:"infix"},{name:"StringJoin",trigger:["\\lt","\\gt"],kind:"infix",precedence:780},{name:"Starstar",trigger:["\\star","\\star"],kind:"infix",precedence:780},{name:"PartialDerivative",trigger:["\\partial"],kind:"prefix",parse:e=>{var i,t;let n=!1,r="Nothing",s="Nothing";for(;!n;)e.skipSpace(),e.match("_")?s=e.matchRequiredLatexArgument():e.match("^")?r=e.matchRequiredLatexArgument():n=!0;const a=G(s);if(a&&(s=[y,...a]),!s||!r)return null;let o=null!==(i=e.matchRequiredLatexArgument())&&void 0!==i?i:"Nothing";return"Nothing"!==o&&(o=[o,...null!==(t=e.matchArguments("group"))&&void 0!==t?t:"Nothing"]),["PartialDerivative",o,s,r]},serialize:(e,i)=>{let t="\\partial";const n=L(i,1),r=L(i,2),s=L(i,3);return null!==r&&"Nothing"!==r&&(P(r)===y?t+="_{"+e.serialize(["Sequence",...j(r)])+"}":t+="_{"+e.serialize(r)+"}"),null!==s&&"Nothing"!==s&&(t+="^{"+e.serialize(s)+"}"),null!==n&&"Nothing"!==n&&(t+=e.serialize(n)),t},precedence:740},{name:"OverBar",trigger:["\\overline"],requiredLatexArg:1},{name:"UnderBar",trigger:["\\underline"],requiredLatexArg:1},{name:"OverVector",trigger:["\\vec"],requiredLatexArg:1},{name:"OverTilde",trigger:["\\tilde"],requiredLatexArg:1},{name:"OverHat",trigger:["\\hat"],requiredLatexArg:1},{name:"OverRightArrow",trigger:["\\overrightarrow"],requiredLatexArg:1},{name:"OverLeftArrow",trigger:["\\overleftarrow"],requiredLatexArg:1},{name:"OverRightDoubleArrow",trigger:["\\Overrightarrow"],requiredLatexArg:1},{name:"OverLeftHarpoon",trigger:["\\overleftharpoon"],requiredLatexArg:1},{name:"OverRightHarpoon",trigger:["\\overrightharpoon"],requiredLatexArg:1},{name:"OverLeftRightArrow",trigger:["\\overleftrightarrow"],requiredLatexArg:1},{name:"OverBrace",trigger:["\\overbrace"],requiredLatexArg:1},{name:"OverLineSegment",trigger:["\\overlinesegment"],requiredLatexArg:1},{name:"OverGroup",trigger:["\\overgroup"],requiredLatexArg:1}];function ae(e){return i=>{var t,n;let r=!1,s=0;if(i.skipSpace(),i.match("^")){if(i.skipSpace(),i.match("<{>")){i.skipSpace(),i.match("-")&&i.match("1")&&(r=!0);do{i.match("\\doubleprime")&&(s+=2),i.match("\\prime")&&(s+=1),i.match("'")&&(s+=1)}while(!i.match("<}>")&&!i.atEnd)}let e=!1;for(;!e;)i.skipSpace(),i.match("\\doubleprime")?s+=2:i.match("\\prime")||i.match("'")?s+=1:e=!0}let a=null!==(n=null!==(t={"\\arcsin":"Arcsin","\\arccos":"Arccos","\\arctan":"Arctan","\\arctg":"Arctan","\\arcctg":"Arctan","\\arcsec":"Arcsec","\\arccsc":" Arccsc","\\arsinh":"Arsinh","\\arcosh":"Arcosh","\\artanh":"Artanh","\\arcsech":"Arcsech","\\arccsch":"Arcsch","\\ch":"Cosh","\\cos":"Cos","\\cosec":"Csc","\\cosh":"Csch","\\cot":"Cot","\\cotg":"Cot","\\coth":"Coth","\\csc":"Csc","\\ctg":"Cot","\\cth":"Coth","\\sec":"Sec","\\sin":"Sin","\\sinh":"Sinh","\\sh":"Sinh","\\tan":"Tan","\\tanh":"Tanh","\\tg":"Tan","\\th":"Tanh"}[null!=e?e:""])&&void 0!==t?t:e)&&void 0!==n?n:"";r&&(a=["InverseFunction",a]),s>=1&&(a=["Derivative",s,a]);const o=i.matchArguments("implicit");return null===o?[a,"Nothing"]:[a,...o]}}const oe=[{name:"Arcsin",trigger:["\\arcsin"],arguments:"implicit",parse:ae("Arcsin")},{name:"Arccos",trigger:["\\arccos"],arguments:"implicit",parse:ae("Arccos")},{name:"Arctan",trigger:["\\arctan"],arguments:"implicit",parse:ae("Arctan")},{trigger:["\\arctg"],arguments:"implicit",parse:ae("Arctan")},{name:"Arccot",trigger:["\\arcctg"],arguments:"implicit",parse:ae("Arccot")},{name:"Arcsec",trigger:["\\arcsec"],arguments:"implicit",parse:ae("Arcsec")},{name:"Arccsc",trigger:["\\arccsc"],arguments:"implicit",parse:ae("Arccsc")},{name:"Arsinh",trigger:["\\arsinh"],arguments:"implicit",parse:ae("Arsinh")},{name:"Arcosh",trigger:["\\arcosh"],arguments:"implicit",parse:ae("Arcosh")},{name:"Artanh",trigger:["\\artanh"],arguments:"implicit",parse:ae("Artanh")},{name:"Arsech",trigger:["\\arsech"],arguments:"implicit",parse:ae("Arsech")},{name:"Arcsch",trigger:["\\arcsch"],arguments:"implicit",parse:ae("Arcsch")},{trigger:["\\ch"],arguments:"implicit",parse:ae("Cosh")},{name:"Cosec",trigger:["\\cosec"],arguments:"implicit",parse:ae("Cosec")},{name:"Cosh",trigger:["\\cosh"],arguments:"implicit",parse:ae("Cosh")},{name:"Cot",trigger:["\\cot"],arguments:"implicit",parse:ae("Cot")},{trigger:["\\cotg"],arguments:"implicit",parse:ae("Cot")},{name:"Coth",trigger:["\\coth"],arguments:"implicit",parse:ae("Coth")},{name:"Csc",trigger:["\\csc"],arguments:"implicit",parse:ae("Csc")},{trigger:["\\ctg"],arguments:"implicit",parse:ae("Cot")},{trigger:["\\cth"],arguments:"implicit",parse:ae("Cotanh")},{name:"Sec",trigger:["\\sec"],arguments:"implicit",parse:ae("Sec")},{name:"Sinh",trigger:["\\sinh"],arguments:"implicit",parse:ae("Sinh")},{trigger:["\\sh"],arguments:"implicit",parse:ae("Sinh")},{name:"Tan",trigger:["\\tan"],arguments:"implicit",parse:ae("Tan")},{trigger:["\\tg"],arguments:"implicit",parse:ae("Tan")},{name:"Tanh",trigger:["\\tanh"],arguments:"implicit",parse:ae("Tanh")},{trigger:["\\th"],arguments:"implicit",parse:ae("Tanh")},{name:"Cos",trigger:["\\cos"],arguments:"implicit",parse:ae("Cos")},{name:"Sin",trigger:["\\sin"],arguments:"implicit",parse:ae("Sin")}],le=[{name:"AlgebraicNumber",trigger:"\\bar\\Q"},{name:"ComplexNumber",trigger:["\\C"]},{trigger:"\\mathbb{C}",parse:"ComplexNumber"},{name:"ImaginaryNumber",trigger:["\\imaginaryI\\R"]},{name:"ExtendedComplexNumber",trigger:["\\bar\\C"]},{name:"EmptySet",trigger:["\\emptyset"]},{trigger:["\\varnothing"],parse:"EmptySet"},{name:"Integer",trigger:["\\Z"]},{trigger:"\\mathbb{Z}",parse:"Integer"},{name:"RationalNumber",trigger:["\\Q"]},{name:"RealNumber",trigger:["\\R"]},{name:"ExtendedRealNumber",trigger:["\\bar\\R"]},{name:"TranscendentalNumber",trigger:"\\R-\\bar\\Q"},{trigger:"\\R\\backslash\\bar\\Q",parse:"TranscendentalNumber"},{name:"NegativeNumber",trigger:"\\R^-"},{trigger:"\\R^{-}",parse:"NegativeNumber"},{trigger:"\\R_-",parse:"NegativeNumber"},{trigger:"\\R_{-}",parse:"NegativeNumber"},{trigger:"\\R^{\\lt}",parse:"NegativeNumber"},{name:"PositiveNumber",trigger:"\\R^+"},{trigger:"\\R^{+}",parse:"PositiveNumber"},{trigger:"\\R_+",parse:"PositiveNumber"},{trigger:"\\R_{+}",parse:"PositiveNumber"},{trigger:"\\R^{\\gt}",parse:"PositiveNumber"},{name:"NonPositiveNumber",trigger:"\\R^{0-}"},{trigger:"\\R^{-0}",parse:"NonPositiveNumber"},{trigger:"\\R^{\\leq}",parse:"NonPositiveNumber"},{name:"NegativeInteger",trigger:"\\Z^-"},{trigger:"\\Z^-",parse:"NegativeInteger"},{trigger:"\\Z^{-}",parse:"NegativeInteger"},{trigger:"\\Z_-",parse:"NegativeInteger"},{trigger:"\\Z_{-}",parse:"NegativeInteger"},{trigger:"\\Z^{\\lt}",parse:"NegativeInteger"},{name:"PositiveInteger",trigger:"\\Z^+"},{trigger:"\\Z^{+}",parse:"PositiveInteger"},{trigger:"\\Z_+",parse:"PositiveInteger"},{trigger:"\\Z_{+}",parse:"PositiveInteger"},{trigger:"\\Z^{\\gt}",parse:"PositiveInteger"},{trigger:"\\Z^{\\gt0}",parse:"PositiveInteger"},{trigger:"\\N^+",parse:"PositiveInteger"},{trigger:"\\N^{+}",parse:"PositiveInteger"},{trigger:"\\N^*",parse:"PositiveInteger"},{trigger:"\\N^{*}",parse:"PositiveInteger"},{trigger:"\\N^\\star",parse:"PositiveInteger"},{trigger:"\\N^{\\star}",parse:"PositiveInteger"},{trigger:"\\N_1",parse:"PositiveInteger"},{trigger:"\\N_{1}",parse:"PositiveInteger"},{name:"NonNegativeInteger",trigger:["\\N"]},{trigger:"\\Z^{+0}",parse:"NonNegativeInteger"},{trigger:"\\Z^{\\geq}",parse:"NonNegativeInteger"},{trigger:"\\Z^{\\geq0}",parse:"NonNegativeInteger"},{trigger:"\\Z^{0+}",parse:"NonNegativeInteger"},{trigger:"\\mathbb{N}",parse:"NonNegativeInteger"},{trigger:"\\N_0",parse:"NonNegativeInteger"},{trigger:"\\N_{0}",parse:"NonNegativeInteger"},{name:"CartesianProduct",trigger:["\\times"],kind:"infix",associativity:"right",precedence:390,parse:(e,i,t)=>{if(390<i.minPrec)return null;const n=e.computeEngine;if(!n||!n.box(t).domain.isSubsetOf("Set"))return null;const r=e.index,s=e.matchExpression(Object.assign(Object.assign({},i),{minPrec:390}));return null===s||!0!==n.box(t).domain.isSubsetOf("Set")?(e.index=r,null):["CartesianProduct",t,s]}},{name:"Complement",trigger:["^","\\complement"],kind:"infix"},{name:"Intersection",trigger:["\\cap"],kind:"infix",precedence:350},{name:"Interval",serialize:ue},{name:"Multiple",serialize:ue},{name:"Union",trigger:["\\cup"],kind:"infix",precedence:350},{name:"Range",serialize:ue},{name:"SetMinus",trigger:["\\setminus"],kind:"infix",precedence:650},{name:"SymmetricDifference",trigger:["\\triangle"],kind:"infix",precedence:260},{trigger:["\\ni"],kind:"infix",associativity:"right",precedence:160,parse:(e,i,t)=>{const n=e.matchExpression(i);return null===n?null:["Element",n,t]}},{name:"Element",trigger:["\\in"],kind:"infix",precedence:240},{name:"NotElement",trigger:["\\notin"],kind:"infix",precedence:240},{name:"NotSubset",trigger:["\\nsubset"],kind:"infix",associativity:"right",precedence:240},{name:"NotSuperset",trigger:["\\nsupset"],kind:"infix",associativity:"right",precedence:240},{name:"NotSubsetNotEqual",trigger:["\\nsubseteq"],kind:"infix",associativity:"right",precedence:240},{name:"NotSupersetNotEqual",trigger:["\\nsupseteq"],kind:"infix",associativity:"right",precedence:240},{name:"SquareSubset",trigger:["\\sqsubset"],kind:"infix",associativity:"right",precedence:265},{name:"SquareSubsetEqual",trigger:["\\sqsubseteq"],kind:"infix",associativity:"right",precedence:265},{name:"SquareSuperset",trigger:["\\sqsupset"],kind:"infix",associativity:"right",precedence:265},{name:"SquareSupersetEqual",trigger:["\\sqsupseteq"],kind:"infix",associativity:"right",precedence:265},{name:"Subset",trigger:["\\subset"],kind:"infix",associativity:"right",precedence:240},{trigger:["\\subsetneq"],kind:"infix",associativity:"right",precedence:240,parse:"Subset"},{trigger:["\\varsubsetneqq"],kind:"infix",associativity:"right",precedence:240,parse:"Subset"},{name:"SubsetEqual",trigger:["\\subseteq"],kind:"infix",precedence:240},{name:"Superset",trigger:["\\supset"],kind:"infix",associativity:"right",precedence:240},{trigger:["\\supsetneq"],kind:"infix",associativity:"right",precedence:240,parse:"Superset"},{trigger:["\\varsupsetneq"],kind:"infix",associativity:"right",precedence:240,parse:"Superset"},{name:"SupersetEqual",trigger:["\\supseteq"],kind:"infix",associativity:"right",precedence:240}];function ue(e,i){if(null===i)return"";const t=P(i);return null===t?"":"Set"===t?0===T(i)?"\\emptyset":2===T(i)&&"Condition"===P(L(i,2))?v(["\\left\\lbrace",e.serialize(L(i,1)),"\\middle\\mid",e.serialize(L(i,2)),"\\right\\rbrace"]):v(["\\left\\lbrace",...j(i).map((i=>e.serialize(i)+" ,")),"\\right\\rbrace"]):(e.numericSetStyle(i,e.level),"")}const ce=[["Alpha","\\alpha",945],["Beta","\\beta",946],["Delta","\\delta",948],["Epsilon","\\epsilon",949],["EpsilonSymbol","\\varepsilon",1013],["Zeta","\\zeta",950],["Eta","\\eta",951],["Theta","\\theta",952],["ThetaSymbol","\\vartheta",977],["Iota","\\iota",953],["Kappa","\\kappa",954],["KappaSymbol","\\varkappa",1008],["Lambda","\\lambda",955],["Mu","\\mu",956],["Nu","\\nu",957],["Xi","\\xi",958],["Omicron","\\omicron",959],["PiSymbol","\\varpi",982],["Rho","\\rho",961],["RhoSymbol","\\varrho",1009],["Sigma","\\sigma",963],["FinalSigma","\\varsigma",962],["Tau","\\tau",964],["Phi","\\phi",981],["PhiLetter","\\varphi",966],["Upsilon","\\upsilon",965],["Chi","\\chi",967],["Psi","\\psi",968],["Omega","\\omega",969],["CapitalAlpha","\\Alpha",913],["CapitalBeta","\\Beta",914],["CapitalGamma","\\Gamma",915],["CapitalDelta","\\Delta",916],["CapitalEpsilon","\\Epsilon",917],["CapitalZeta","\\Zeta",918],["CapitalEta","\\Eta",919],["CapitalTheta","\\Theta",920],["CapitaIota","\\Iota",921],["CapitalKappa","\\Kappa",922],["CapitalLambda","\\Lambda",923],["CapitalMu","\\Mu",924],["CapitalNu","\\Nu",925],["CapitalXi","\\Xi",926],["CapitalOmicron","\\Omicron",927],["CapitalPi","\\Pi",928],["CapitalRho","\\Rho",929],["CapitalSigma","\\Sigma",931],["CapitalTau","\\Tau",932],["CapitalPhi","\\Phi",934],["CapitalUpsilon","\\Upsilon",933],["CapitalChi","\\Chi",935],["CapitalPsi","\\Psi",936],["CapitalOmega","\\Omega",937],["Digamma","\\digamma",989],["Alef","\\aleph",8501],["Bet","\\beth",8502],["Gimel","\\gimel",8503],["Dalet","\\daleth",8504],["TurnedCapitalF","\\Finv",8498],["TurnedCapitalG","\\Game",8513],["Weierstrass","\\wp",8472],["Eth","\\eth",240],["InvertedOhm","\\mho",8487],["BlackClubSuit","\\clubsuit",9827],["WhiteHeartSuit","\\heartsuit",9825],["BlackSpadeSuit","\\spadesuit",9824],["WhiteDiamondSuit","\\diamondsuit",9826],["Sharp","\\sharp",9839],["Flat","\\flat",9837],["Natural","\\natural",9838]],me=[...ce.map((([e,i,t])=>({name:e,trigger:[i],parse:e}))),...ce.map((([e,i,t])=>({trigger:[String.fromCodePoint(t)],parse:e})))],he={"(":"(",")":")","[":"\\lbrack","]":"\\rbrack","{":"\\lbrace","}":"\\rbrace","<":"\\langle",">":"\\rangle","|":"\\vert","||":"\\Vert","\\lceil":"\\lceil","\\lfloor":"\\lfloor","\\rceil":"\\rceil","\\rfloor":"\\rfloor"};function de(e){return Array.isArray(e)?e.length:1}function fe(e,o){var l,u,c,m,h,d,f,g,y,x;if(!function(e,a){var o,l;const u=null!==(l=null!==(o=e.name)&&void 0!==o?o:e.trigger)&&void 0!==l?l:e.openDelimiter;if(void 0!==e.serialize&&!e.name)return a({severity:"warning",message:["invalid-dictionary-entry",u,"Unexpected serialize property without a name property"]}),!1;if(t(e)){if(e.trigger)return a({severity:"warning",message:["invalid-dictionary-entry",u,`Unexpected 'trigger' "${e.trigger}". 'matchfix' operators use a 'openDelimiter' and 'closeDelimiter' instead of a trigger. `]}),!1;if(!e.openDelimiter||!e.closeDelimiter)return a({severity:"warning",message:["invalid-dictionary-entry",u,"Expected `openDelimiter` and a `closeDelimiter` for matchfix operator"]}),!1;if(typeof e.openDelimiter!=typeof e.closeDelimiter)return a({severity:"warning",message:["invalid-dictionary-entry",u,"Expected `openDelimiter` and `closeDelimiter` to both be strings or array of LatexToken"]}),!1}if(n(e)||s(e)||r(e)){if(Array.isArray(e.trigger)&&("_"===e.trigger[0]||"^"===e.trigger[0])||"string"==typeof e.trigger&&(e.trigger.startsWith("^")||e.trigger.startsWith("_"))){if(void 0!==e.precedence||void 0!==e.associativity)return a({severity:"warning",message:["invalid-dictionary-entry",u,'Unexpected "precedence" or "associativity" for superscript/subscript operator']}),!1}else if(void 0===e.precedence)return a({severity:"warning",message:["invalid-dictionary-entry",u,`Expected a "precedence" for ${e.kind} operator`]}),!1}else if(void 0!==e.associativity)return a({severity:"warning",message:["invalid-dictionary-entry",u,'Unexpected "associativity" operator']}),!1;return i(e)||void 0===e.optionalLatexArg&&void 0===e.requiredLatexArg?t(e)||e.trigger||e.name?void 0!==e.parse||void 0!==e.name||(a({severity:"warning",message:["invalid-dictionary-entry",u,"Expected a 'parse' or 'name'"]}),!1):(a({severity:"warning",message:["invalid-dictionary-entry",u,"Expected at least a 'trigger' or a 'name'"]}),!1):(a({severity:"warning",message:["invalid-dictionary-entry",u,'Unexpected "optionalLatexArg" or "requiredLatexArg" for non-symbol']}),!1)}(e,o))return[null,null];const N={name:e.name,kind:"kind"in e?e.kind:"symbol"};if("matchfix"===N.kind&&t(e)){if(N.openDelimiter=e.openDelimiter,N.closeDelimiter=e.closeDelimiter,"function"==typeof e.serialize)N.serialize=e.serialize;else{const e="string"==typeof N.openDelimiter?he[N.openDelimiter]:b(N.openDelimiter),i="string"==typeof N.closeDelimiter?he[N.closeDelimiter]:b(N.closeDelimiter);N.serialize=(t,n)=>v([e,t.serialize(n),i])}if("function"==typeof e.parse)N.parse=e.parse;else{const i=null!==(l=e.parse)&&void 0!==l?l:e.name;N.parse=(e,t)=>[i,t]}return[null,N]}if("environment"===N.kind&&a(e)){const i=e.trigger;return N.serialize=(e,t)=>`\\begin{${i}${e.serialize(L(t,1))}\\end{${i}`,N.parse=null!==(u=e.parse)&&void 0!==u?u:()=>null,[i,N]}const _="string"==typeof e.trigger?p(e.trigger,[]):e.trigger,w=_?b(_):"";if(e.trigger,"symbol"===N.kind&&i(e)&&(N.arguments=null!==(c=e.arguments)&&void 0!==c?c:"",N.precedence=null!==(m=e.precedence)&&void 0!==m?m:0,N.optionalLatexArg=null!==(h=e.optionalLatexArg)&&void 0!==h?h:0,N.requiredLatexArg=null!==(d=e.requiredLatexArg)&&void 0!==d?d:0),"infix"!==N.kind&&"prefix"!==N.kind&&"postfix"!==N.kind||!(n(e)||r(e)||s(e))||(!_||"^"!==_[0]&&"_"!==_[0]?N.precedence=null!==(f=e.precedence)&&void 0!==f?f:0:N.precedence=720),"infix"===N.kind&&n(e))if(N.associativity=null!==(g=e.associativity)&&void 0!==g?g:"non","function"==typeof e.parse)N.parse=e.parse;else if(!_||"^"!==_[0]&&"_"!==_[0]){const i=null!==(x=e.parse)&&void 0!==x?x:e.name,t=N.precedence,n=N.associativity;N.parse=(e,r,s)=>{if(t<r.minPrec)return null;const a=e.matchExpression(Object.assign(Object.assign({},r),{minPrec:t}));return"string"!=typeof i?[i,s,null!=a?a:"Missing"]:B(i,s,null!=a?a:"Missing",n)}}else{const i=null!==(y=e.parse)&&void 0!==y?y:e.name;N.parse=(e,t,n)=>{var r,s;return[i,null!==(r=L(n,1))&&void 0!==r?r:"Missing",null!==(s=L(n,2))&&void 0!==s?s:"Missing"]}}else if("function"==typeof e.parse)N.parse=e.parse;else if(void 0!==e.parse)N.parse=()=>e.parse;else if(void 0===e.parse&&void 0!==e.name)if("postfix"===N.kind)N.parse=(i,t)=>t?[e.name,t]:null;else if("prefix"===N.kind){const i=N.precedence,t=e.name;N.parse=(e,n)=>{if(i<n.minPrec)return null;const r=e.matchExpression(Object.assign(Object.assign({},n),{minPrec:i}));return null===r?null:[t,r]}}else N.parse=()=>e.name;return"function"==typeof e.serialize||"string"==typeof e.serialize?N.serialize=e.serialize:_&&("postfix"===N.kind?N.serialize="#1"+w:"prefix"===N.kind?N.serialize=w+"#1":"infix"===N.kind?N.serialize="#1"+w+"#2":"symbol"===N.kind?N.serialize=w:N.serialize=""),[null!=_?_:null,N]}const ge={algebra:[{name:"To",trigger:["\\to"],kind:"infix",precedence:270}],arithmetic:K,calculus:[{name:"Integral",trigger:["\\int"],parse:function(e){let i="Nothing",t="Nothing",n=!1;for(;!n;)e.skipSpace(),e.match("_")?t=e.matchRequiredLatexArgument():e.match("^")?i=e.matchRequiredLatexArgument():n=!0;const r=e.matchExpression({tokens:["d"]});return["Integral",null!=r?r:"",null!=i?i:"Nothing",null!=t?t:"Nothing"]},serialize:function(e,i){return""}}],core:ee,logic:[{name:"True",trigger:["\\mathrm","<{>","T","r","u","e","<}>"],serialize:"\\mathrm{True}"},{name:"False",trigger:["\\mathrm","<{>","F","a","l","s","e","<}>"],serialize:"\\mathrm{False}"},{name:"Maybe",trigger:["\\mathrm","<{>","M","a","y","b","e","<}>"],serialize:"\\mathrm{Maybe}"}],relop:[{trigger:["!","<"],kind:"infix",associativity:"right",precedence:246,parse:"NotLess"},{name:"NotLess",trigger:["\\nless"],kind:"infix",associativity:"right",precedence:246},{trigger:["<"],kind:"infix",associativity:"right",precedence:245,parse:"Less"},{name:"Less",trigger:["\\lt"],kind:"infix",associativity:"right",precedence:245},{trigger:["<","="],kind:"infix",associativity:"right",precedence:241,parse:"LessEqual"},{name:"LessEqual",trigger:["\\le"],kind:"infix",associativity:"right",precedence:241},{trigger:["\\leq"],kind:"infix",associativity:"right",precedence:241,parse:"Equal"},{trigger:["\\leqslant"],kind:"infix",associativity:"right",precedence:265,parse:"LessEqual"},{name:"LessNotEqual",trigger:["\\lneqq"],kind:"infix",associativity:"right",precedence:260},{name:"NotLessNotEqual",trigger:["\\nleqq"],kind:"infix",associativity:"right",precedence:260},{name:"LessOverEqual",trigger:["\\leqq"],kind:"infix",associativity:"right",precedence:265},{name:"GreaterOverEqual",trigger:["\\geqq"],kind:"infix",associativity:"right",precedence:265,parse:"GreaterEqual"},{name:"Equal",trigger:["="],kind:"infix",associativity:"right",precedence:260},{trigger:["*","="],kind:"infix",associativity:"right",precedence:260,parse:"StarEqual"},{name:"StarEqual",trigger:["\\star","="],kind:"infix",associativity:"right",precedence:260},{name:"PlusEqual",trigger:["+","="],kind:"infix",associativity:"right",precedence:260},{name:"MinusEqual",trigger:["-","="],kind:"infix",associativity:"right",precedence:260},{name:"SlashEqual",trigger:["/","="],kind:"infix",associativity:"right",precedence:260},{name:"EqualEqual",trigger:["=","="],kind:"infix",associativity:"right",precedence:260},{name:"EqualEqualEqual",trigger:["=","=","="],kind:"infix",associativity:"right",precedence:265},{name:"TildeFullEqual",trigger:["\\cong"],kind:"infix",associativity:"right",precedence:260},{name:"NotTildeFullEqual",trigger:["\\ncong"],kind:"infix",associativity:"right",precedence:260},{trigger:[":","="],kind:"infix",associativity:"right",precedence:260,parse:"Assign"},{name:"Assign",trigger:["\\coloneq"],kind:"infix",associativity:"right",precedence:260},{name:"Approx",trigger:["\\approx"],kind:"infix",associativity:"right",precedence:247},{name:"NotApprox",trigger:["\\approx"],kind:"infix",associativity:"right",precedence:247},{name:"ApproxEqual",trigger:["\\approxeq"],kind:"infix",associativity:"right",precedence:260},{name:"NotApproxEqual",trigger:["!","\\approxeq"],kind:"infix",associativity:"right",precedence:250},{name:"NotEqual",trigger:["\\ne"],kind:"infix",associativity:"right",precedence:255},{name:"Unequal",trigger:["!","="],kind:"infix",associativity:"right",precedence:260},{name:"GreaterEqual",trigger:["\\ge"],kind:"infix",associativity:"right",precedence:242},{trigger:["\\geq"],kind:"infix",associativity:"right",precedence:242,parse:"GreaterEqual"},{trigger:[">","="],kind:"infix",associativity:"right",precedence:243,parse:"GreaterEqual"},{trigger:["\\geqslant"],kind:"infix",associativity:"right",precedence:265,parse:"GreaterEqual"},{name:"GreaterNotEqual",trigger:["\\gneqq"],kind:"infix",associativity:"right",precedence:260},{name:"NotGreaterNotEqual",trigger:["\\ngeqq"],kind:"infix",associativity:"right",precedence:260},{trigger:[">"],kind:"infix",associativity:"right",precedence:245,parse:"Greater"},{name:"Greater",trigger:["\\gt"],kind:"infix",associativity:"right",precedence:245},{name:"NotGreater",trigger:["\\ngtr"],kind:"infix",associativity:"right",precedence:244},{trigger:["!",">"],kind:"infix",associativity:"right",precedence:244,parse:"NotGreater"},{name:"RingEqual",trigger:["\\circeq"],kind:"infix",associativity:"right",precedence:260},{name:"TriangleEqual",trigger:["\\triangleq"],kind:"infix",associativity:"right",precedence:260},{name:"DotEqual",trigger:["\\doteq"],kind:"infix",associativity:"right",precedence:265},{name:"DotEqualDot",trigger:["\\doteqdot"],kind:"infix",associativity:"right",precedence:265},{name:"FallingDotEqual",trigger:["\\fallingdotseq"],kind:"infix",associativity:"right",precedence:265},{name:"RisingDotEqual",trigger:["\\fallingdotseq"],kind:"infix",associativity:"right",precedence:265},{name:"QuestionEqual",trigger:["\\questeq"],kind:"infix",associativity:"right",precedence:260},{name:"Equivalent",trigger:["\\equiv"],kind:"infix",associativity:"right",precedence:260},{name:"MuchLess",trigger:["\\ll"],kind:"infix",associativity:"right",precedence:260},{name:"MuchGreater",trigger:["\\gg"],kind:"infix",associativity:"right",precedence:260},{name:"Precedes",trigger:["\\prec"],kind:"infix",associativity:"right",precedence:260},{name:"Succeeds",trigger:["\\succ"],kind:"infix",associativity:"right",precedence:260},{name:"PrecedesEqual",trigger:["\\preccurlyeq"],kind:"infix",associativity:"right",precedence:260},{name:"SucceedsEqual",trigger:["\\curlyeqprec"],kind:"infix",associativity:"right",precedence:260},{name:"NotPrecedes",trigger:["\\nprec"],kind:"infix",associativity:"right",precedence:260},{name:"NotSucceeds",trigger:["\\nsucc"],kind:"infix",associativity:"right",precedence:260},{name:"Between",trigger:["\\between"],kind:"infix",associativity:"right",precedence:265}],other:se,physics:[{name:"mu-0",trigger:"\\mu_0"}],sets:le,symbols:me,trigonometry:oe},pe={"(":["\\lparen","("],")":["\\rparen",")"],"[":["\\lbrack"],"]":["\\rbrack"],"<":["<","\\langle"],">":[">","\\rangle"],"{":["\\{","\\lbrace"],"}":["\\}","\\rbrace"],":":[":","\\colon"],"|":["|","\\|","\\lvert","\\rvert"],"||":["||","\\Vert","\\lVert","\\rVert"],"\\lfloor":["\\lfloor"],"\\rfloor":["\\rfloor"],"\\lceil":["\\lceil"],"\\rceil":["\\rceil"],"\\ulcorner":["\\ulcorner"],"\\urcorner":["\\urcorner"],"\\llcorner":["\\llcorner"],"\\lrcorner":["\\lrcorner"],"\\lgroup":["\\lgroup"],"\\rgroup":["\\rgroup"],"\\lmoustache":["\\lmoustache"],"\\rmoustache":["\\rmoustache"]},ve={":":[":","\\colon"],"|":["|","\\|","\\mid","\\mvert"]},be={"\\left":"\\right","\\bigl":"\\bigr","\\Bigl":"\\Bigr","\\biggl":"\\biggr","\\Biggl":"\\Biggr","\\big":"\\big","\\Big":"\\Big","\\bigg":"\\bigg","\\Bigg":"\\Bigg"},ye=["\\middle","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],xe={"(":")","[":"]","\\{":"\\}","\\lbrace":"\\rbrace","\\lparen":"\\rparen","\\langle":"\\rangle","\\lfloor":"\\rfloor","\\lceil":"\\rceil","\\vert":"\\vert","\\lvert":"\\rvert","\\Vert":"\\Vert","\\lVert":"\\rVert","\\lbrack":"\\rbrack","\\ulcorner":"\\urcorner","\\llcorner":"\\lrcorner","\\lgroup":"\\rgroup","\\lmoustache":"\\rmoustache"},Ne={precision:6,positiveInfinity:"\\infty",negativeInfinity:"-\\infty",notANumber:"\\operatorname{NaN}",decimalMarker:".",groupSeparator:"\\,",exponentProduct:"\\cdot",beginExponentMarker:"10^{",endExponentMarker:"}",notation:"auto",truncationMarker:"\\ldots",beginRepeatingDigits:"\\overline{",endRepeatingDigits:"}",imaginaryNumber:"\\imaginaryI",avoidExponentsInRange:[-7,20]},_e={applyInvisibleOperator:"auto",skipSpace:!0,parseArgumentsOfUnknownLatexCommands:!0,parseNumbers:!0,parseUnknownToken:e=>["\\displaystyle","\\!","\\:","\\enskip","\\quad","\\,","\\;","\\enspace","\\qquad","\\selectfont","\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"].includes(e)?"skip":/^[fg]$/.test(e)?"function":/^[a-zA-Z]$/.test(e)?"symbol":"error",preserveLatex:!0};class we{constructor(e,i,t,n,r){this.index=0,this._lastPeek="",this._peekCounter=0,this.options=Object.assign(Object.assign(Object.assign({},Ne),_e),i),this.engine=n,this._tokens=e,this.onError=r,this._dictionary=t}updateOptions(e){for(const[i,t]of Object.entries(e))this.options[i]=t}clone(e,i){return new we(this._tokens.slice(e,i),this.options,this._dictionary,this.engine,this.onError)}get atEnd(){return this.index>=this._tokens.length}get peek(){if(this._tokens[this.index]===this._lastPeek?this._peekCounter+=1:this._peekCounter=0,this._peekCounter>=1024)throw Error(`Infinite loop detected while parsing "${this.latex(0)}" at ${this._lastPeek} (index ${this.index})`);return this._lastPeek=this._tokens[this.index],this._tokens[this.index]}atTerminator(e){const i=this.index;return!!this.atEnd||!!e&&(!(!e.condition||!e.condition(this))||!!(e.tokens&&e.tokens.length>0&&this.matchAll(e.tokens))&&(this.index=i,!0))}latex(e,i){return b(this._tokens.slice(e,i))}latexAhead(e){return b(this._tokens.slice(this.index,this.index+e))}latexBefore(){return this.latex(0,this.index)}latexAfter(){return this.latex(this.index)}lookAhead(){let e=Math.min(this._dictionary.lookahead,this._tokens.length-this.index);const i=[];for(;e>0;)i[e]=this.latexAhead(e--);return i}peekDefinitions(e){let i;i="operator"===e?this.lookAhead().map(((e,i)=>{var t,n,r,s,a;return null!==(s=null!==(n=null===(t=this._dictionary.infix[i])||void 0===t?void 0:t.get(e))&&void 0!==n?n:null===(r=this._dictionary.postfix[i])||void 0===r?void 0:r.get(e))&&void 0!==s?s:null===(a=this._dictionary.prefix[i])||void 0===a?void 0:a.get(e)})):this.lookAhead().map(((i,t)=>{var n;return null===(n=this._dictionary[e][t])||void 0===n?void 0:n.get(i)}));const t=[];for(let e=i.length;e>0;e--)if(void 0!==i[e])for(const n of i[e])t.push([n,e]);return 0===t.length?null:t}next(){return this._tokens[this.index++]}skipSpace(){var e,i;if(!this.atEnd&&"<{>"===this.peek&&"<}>"===this._tokens[this.index+1])return this.index+=2,this.skipSpace(),!0;let t=!1;for(;!this.atEnd&&"skip"===(null===(i=(e=this.options).parseUnknownToken)||void 0===i?void 0:i.call(e,this.peek,this));)this.index+=1,this.skipSpace(),t=!0;if(!this.options.skipSpace)return!1;for(;this.match("<space>");)t=!0;return t&&this.skipSpace(),t}matchChar(){var e;const i=this.index;let t=0;for(;this.match("^");)t+=1;if(t>=2){let e="",i=0;for(;i!=t;){const t=this.matchAny(["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]);if(!t)break;e+=t,i+=1}if(e.length===t)return String.fromCodePoint(Number.parseInt(e,16))}else{if(this.match("\\char")){let i=Math.floor(null!==(e=this.matchLatexNumber())&&void 0!==e?e:NaN);return(!Number.isFinite(i)||i<0||i>1114111)&&(i=10067),String.fromCodePoint(i)}if(this.match("\\unicode"))if("<{>"===this.peek){const e=this.matchLatexNumber();if(this.match("<}>")&&null!==e&&e>=0&&e<=1114111)return String.fromCodePoint(e)}else{const e=this.matchLatexNumber();if(null!==e&&e>=0&&e<=1114111)return String.fromCodePoint(e)}}return this.index=i,this.next()}matchColor(e=!1){let i="";for(;!this.atEnd&&"}"!==this.peek;)i+=this.next();return i}matchLatexDimension(){return null}match(e){return this._tokens[this.index]===e&&(this.index++,!0)}matchAll(e){"string"==typeof e&&(e=[e]);let i=!0,t=0;do{i=this._tokens[this.index+t]===e[t++]}while(i&&t<e.length);return i&&(this.index+=t),i}matchAny(e){return e.includes(this._tokens[this.index])?this._tokens[this.index++]:""}matchWhile(e){const i=[];for(;e.includes(this._tokens[this.index]);)i.push(this._tokens[this.index++]);return i}matchSign(){let e=!1,i=!1;for(;!i;)this.skipSpace()?i=!1:this.matchAny(["-","\u2212"])?(e=!e,i=!1):i=!this.matchAny(["+","\ufe62"]);return e?"-":"+"}matchDecimalDigits(){let e="",i=!1;for(;!i;)if(e+=this.matchWhile(["0","1","2","3","4","5","6","7","8","9"]).join(""),i=!0,this.options.groupSeparator){const e=this.index;this.skipSpace(),this.match(this.options.groupSeparator)&&(this.skipSpace(),/[0-9]/.test(this.peek)?i=!1:this.index=e)}return e}matchSignedInteger(){const e=this.index,i=this.matchSign(),t=this.matchDecimalDigits();return t?("-"===i?"-":"")+t:(this.index=e,"")}matchExponent(){const e=this.index;let i="";if(this.matchAny(["e","E"])){const e=this.matchSignedInteger();e&&(i="e"+e)}if(i)return i;if(this.match("\\times")&&(this.skipSpace(),this.match("1")&&this.match("0")&&this.match("^"))){if(/[0-9]/.test(this.peek))return"e"+this.next();if(this.match("<{>")){this.skipSpace();const e=this.matchSignedInteger();if(this.skipSpace(),this.match("<}>")&&e)return"e"+e}}return this.index=e,""}matchNumber(){var e,i;if(!this.options.parseNumbers)return"";const t=this.index;this.skipSpace(),this.match("+");let n=!1;if(this.match(this.options.decimalMarker)){const e=this.index;if(!this.matchAny(["0","1","2","3","4","5","6","7","8","9"]))return this.index=t,"";this.index=e,n=!0}let r=this.matchDecimalDigits();return r?(!n&&this.match(null!==(e=this.options.decimalMarker)&&void 0!==e?e:"")&&(r+="."+(null!==(i=this.matchDecimalDigits())&&void 0!==i?i:"0")),(n?"0.":"")+r+this.matchExponent()):(this.index=t,"")}matchLatexNumber(e=!0){var i,t;let n=!1,r=this.peek;for(;"<space>"===r||"+"===r||"-"===r;)"-"===r&&(n=!n),this.next(),r=this.peek;let s=10,a=["0","1","2","3","4","5","6","7","8","9"];if(this.match("'"))s=8,a=["0","1","2","3","4","5","6","7"],e=!0;else if(this.match('"')||this.match("x"))s=16,a=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"],e=!0;else if(this.match("`"))return r=this.next(),r?r.startsWith("\\")&&2===r.length?(n?-1:1)*(null!==(i=r.codePointAt(1))&&void 0!==i?i:0):(n?-1:1)*(null!==(t=r.codePointAt(0))&&void 0!==t?t:0):null;let o="";for(;a.includes(this.peek);)o+=this.next();if(!e&&this.match("."))for(o+=".";a.includes(this.peek);)o+=this.next();const l=e?Number.parseInt(o,s):Number.parseFloat(o);return Number.isNaN(l)?null:n?-l:l}matchPrefixOperator(e){e||(e={minPrec:0}),e.minPrec||(e=Object.assign(Object.assign({},e),{minPrec:0}));const i=this.peekDefinitions("prefix");if(null===i)return null;const t=this.index;for(const[n,r]of i){this.index=t+r;const i=n.parse(this,e);if(i)return i}return this.index=t,null}matchInfixOperator(e,i){i||(i={minPrec:0}),i.minPrec||(i=Object.assign(Object.assign({},i),{minPrec:0}));const t=this.peekDefinitions("infix");if(null===t)return null;const n=this.index;for(const[r,s]of t)if(r.precedence>=i.minPrec){this.index=n+s;const t=r.parse(this,i,e);if(t)return t}return this.index=n,null}matchArguments(e){if(!e)return null;const i=this.index;let t=null;const n=this.matchEnclosure();if("group"===e&&"Delimiter"===P(n))t=j(n);else if("implicit"===e)if("Delimiter"===P(n))t=j(n);else if(null!==n)t=[n];else{const e=this.matchPrimary();null!==e&&(t=[e])}else this.index=i;return t}matchOpenDelimiter(e,i){var t;const n=this.index,r=be[this.peek];r&&this.next();const s=null!==(t=pe[e])&&void 0!==t?t:[e],a=r?[r]:[];return s.includes("||")&&this.matchAll(["|","|"])?(a.push("|"),a.push("|"),a):s.includes(this.peek)?(xe[e]===i?a.push(xe[this.peek]):a.push(i),this.next(),a):(this.index=n,null)}matchMiddleDelimiter(e){var i;const t=null!==(i=ve[e])&&void 0!==i?i:[e];if(ye.includes(this.peek)){const e=this.index;return this.next(),t.includes(this.peek)?(this.next(),!0):(this.index=e,!1)}return!!t.include(this.peek)&&(this.next(),!0)}matchEnclosure(){const e=this._dictionary.matchfix;if(0===e.length)return null;const i=this.index;for(const t of e){if(this.index=i,Array.isArray(t.openDelimiter)){if(!this.matchAll(t.openDelimiter))continue;const e=this.matchExpression({tokens:t.closeDelimiter,minPrec:0});if(this.skipSpace(),!this.matchAll(t.closeDelimiter))continue;if("function"==typeof t.parse){const i=t.parse(this,null!=e?e:"Nothing");if(null===i)continue;return i}return[t.name,null!=e?e:"Nothing"]}const e=this.matchOpenDelimiter(t.openDelimiter,t.closeDelimiter);if(null===e)continue;const n=this.matchExpression({minPrec:0,tokens:e});if(n&&this.matchAll(e)){if("function"==typeof t.parse){const e=t.parse(this,null!=n?n:"Nothing");if(null===e)continue;return e}return[t.name,n]}}return this.index=i,null}matchSymbol(){var e,i;const t=this.index,n=this.peekDefinitions("symbol");if(n)for(const[e,i]of n){let n=null;if(this.index=t+i,"function"!=typeof e.parse)return e.name;if(n=e.parse(this),n)return n}this.index=t;const r=null===(i=(e=this.options).parseUnknownToken)||void 0===i?void 0:i.call(e,this.peek,this);if("function"===r){const e=this.next(),i=this.matchEnclosure();return null===i?e:"Delimiter"!==P(i)?null:[e,...j(i)]}return"symbol"===r?this.next():this.matchUnknownLatexCommand()}matchOptionalLatexArgument(){const e=this.index;if(this.skipSpace(),this.match("[")){const e=this.matchExpression();if(this.skipSpace(),this.match("]"))return e}return this.index=e,null}matchRequiredLatexArgument(){const e=this.index;if(this.skipSpace(),this.match("<{>")){const i=this.matchExpression({tokens:["<}>"]});return this.skipSpace(),this.match("<}>")?i:(this.index=e,null)}return/^[0-9]$/.test(this.peek)?parseInt(this.next()):/^[^\\#]$/.test(this.peek)?this.next():this.matchSymbol()||(this.index=e,null)}matchSupsub(e){var i,t,n;if(null===e)return null;const r=this.index;this.skipSpace();const s=[],a=[];for(;"_"===this.peek||"^"===this.peek;){if(this.match("_")){let e=this.matchRequiredLatexArgument();!e&&this.match("<{>")&&(e=this.matchString({tokens:["<}>"]}),e&&this.match("<}>")),a.push(null!=e?e:"Missing")}else this.match("^")&&s.push(null!==(i=this.matchRequiredLatexArgument())&&void 0!==i?i:"Missing");this.skipSpace()}if(0===s.length&&0===a.length)return this.index=r,e;let o=e;if(a.length>0){const e=null===(t=this._dictionary.infix[1])||void 0===t?void 0:t.get("_");if(e){const i=["Subscript",o,1===a.length?a[0]:["Sequence",...a]];for(const t of e)if(o="function"==typeof t.parse?t.parse(this,{minPrec:0},i):i,o)break}}if(s.length>0){const e=null===(n=this._dictionary.infix[1])||void 0===n?void 0:n.get("^");if(e){const i=["Superscript",o,1===s.length?s[0]:["Sequence",...s]];for(const t of e)if(o="function"==typeof t.parse?t.parse(this,{minPrec:0},i):i,o)break}}return null===o&&(this.index=r),o}matchPostfix(e){if(null===e)return null;const i=this.peekDefinitions("postfix");if(null===i)return null;const t=this.index;for(const[n,r]of i){this.index=t+r;const i=n.parse(this,e);if(null!==i)return i}return this.index=t,null}matchString(e){e.minPrec||(e=Object.assign(Object.assign({},e),{minPrec:0}));let i="",t=this.atEnd;for(;!t;){const n=this.peek;"<space>"===n?i+=" ":"\\"===n[0]?(this.onError([{severity:"warning",message:"unexpected-command"}]),i+=this.next()):/^<(\$|\$\$)>$/.test(n)?t=!0:i+=this.next(),t=t||this.atTerminator(e)}return i}matchEnvironmentName(e,i){if(!this.match(e))return!1;const t=this.index;if(this.match("<{>")){const e=this.matchString({tokens:["<}>"]});if(this.match("<}>")&&e===i)return!0}return this.index=t,!1}matchTabular(e){const i=["List"],t={minPrec:0,tokens:["\\end","<{>",...e.split(""),"<}>"]};let n=["List"],r=null;for(;!this.atTerminator(t);)this.skipSpace(),this.match("&")?(n.push(null!=r?r:"Nothing"),r=null):this.match("\\\\")||this.match("\\cr")?(this.skipSpace(),this.matchOptionalLatexArgument(),null!==r&&n.push(r),i.push(n),n=["List"],r=null):r=this.matchExpression(Object.assign(Object.assign({},t),{condition:e=>"&"===e.peek||"\\\\"===e.peek||"\\cr"===e.peek}));return n.length>1&&i.push(n),i}matchEnvironment(){if(!this.match("\\begin"))return null;const e=this.index;if(this.match("<{>")){const e=this.matchString({tokens:["<}>"]});if(this.match("<}>")){const i=this._dictionary.environment.get(e);if(i)return i.parse(this,[],[]);const t=this.matchTabular(e);if(null!==t)return t}}return this.index=e,null}applyInvisibleOperator(e,i){if(null===i||this.atTerminator(e))return null;if(null===this.options.applyInvisibleOperator)return null;const t=this.index,n=this.matchExpression(Object.assign(Object.assign({},e),{minPrec:390}));if(null===n)return this.index=t,null;if("function"==typeof this.options.applyInvisibleOperator)return this.options.applyInvisibleOperator(this,i,n);const r=this.engine.box(n),s=z(i);if(s&&this.engine&&this.engine.getFunctionDefinition(s)){let e=[];return e="Delimiter"===r.head?"Sequence"===r.op1.head?[...r.op1.ops]:[r.op1]:[r],[s,...e.map((e=>e.json))]}const a=this.engine.box(i);if(a.isLiteral&&a.isInteger&&r.isLiteral){const[e,t]=r.rationalValue;if(null!==e&&null!==t)return["Add",i,n]}return a.isNumber&&r.isNumber?B("Multiply",i,n):(this.index=t,null)}matchUnknownLatexCommand(){const e=this.peek;if(!e||"\\"!==e[0])return null;this.next();const i=[];if("\\operatorname"===e){if(this.match("<{>")){for(;!this.atEnd&&"<}>"!==this.peek;)i.push(this.next());this.match("<}>")}else i.push(this.next());return 0===i.length?["Error","Missing",{str:"syntax-error"},["LatexForm",{str:e}]]:["Error","Missing",{str:"unknown-command"},["LatexForm",{str:`${e}{${b(i)}}`}]]}for(;this.match("[");){i.push("[");let e=0;for(;!this.atEnd&&0===e&&"]"!==this.peek;)"["===this.peek&&(e+=1),"]"===this.peek&&(e-=1),i.push(this.next());this.match("]")&&i.push("]")}for(;this.match("<{>");){i.push("<{>");let e=0;for(;!this.atEnd&&0===e&&"<}>"!==this.peek;)"<{>"===this.peek&&(e+=1),"<}>"===this.peek&&(e-=1),i.push(this.next());this.match("<}>")&&i.push("<}>")}return["Error","Missing",{str:"unknown-command"},["LatexForm",{str:`${e}${b(i)}`}]]}matchPrimary(){let e=null;const i=this.index;if(this.match("<{>")?(e=this.matchExpression({tokens:["<}>"]}),this.match("<}>")):this.match("<}>"),null===e){const i=this.matchNumber();i&&(e={num:i})}if(null===e&&(e=this.matchEnclosure()),null===e&&(e=this.matchEnvironment()),null===e&&(e=this.matchSymbol()),null!==e){e=this.decorate(e,i);let t=null,n=this.index;do{if(t=this.matchPostfix(e),e=null!=t?t:e,this.index===n&&null!==t)break;n=this.index}while(null!==t)}return null!==e&&(e=this.matchSupsub(e)),this.decorate(e,i)}matchExpression(e){const i=this.index;e||(e={minPrec:0}),void 0===e.minPrec&&(e.minPrec=0),this.skipSpace();let t=this.matchPrefixOperator(Object.assign(Object.assign({},e),{minPrec:0}));if(null===t&&(t=this.matchPrimary()),t){let i=!1;for(;!this.atTerminator(e)&&!i;){this.skipSpace();let n=this.matchInfixOperator(t,e);null===n&&null===this.peekDefinitions("operator")&&(n=this.applyInvisibleOperator(e,t)),null!==n?t=n:i=!0}}return this.decorate(t,i)}decorate(e,i){if(null===e)return null;if(!this.options.preserveLatex)return e;const t=this.latex(i,this.index);return Array.isArray(e)?e={latex:t,fn:e}:"number"==typeof e?e={latex:t,num:Number(e).toString()}:"string"==typeof e?e={latex:t,sym:e}:"object"==typeof e&&null!==e&&(e.latex=t),e}}function Se(e,i){const t=e.length,n=e;e=e.slice(0,-1);for(let t=0;t<e.length-16;t++){const n=e.substring(0,t);for(let r=0;r<17;r++){const s=e.substring(t,t+r+1),a=Math.floor((e.length-n.length)/s.length);if(a>1&&(n+s.repeat(a+1)).startsWith(e))return"0"===s?n.replace(/(\d{3})/g,"$1"+i.groupSeparator):n.replace(/(\d{3})/g,"$1"+i.groupSeparator)+i.beginRepeatingDigits+s+i.endRepeatingDigits}}const r=t>i.precision-1;return e=n,r&&(e=e.substring(0,i.precision-1)),i.groupSeparator&&(e=e.replace(/(\d{3})/g,"$1"+i.groupSeparator)).endsWith(i.groupSeparator)&&(e=e.slice(0,-i.groupSeparator.length)),r?e+i.truncationMarker:e}function Ee(e,i){var t;return e?i.beginExponentMarker?i.beginExponentMarker+e+(null!==(t=i.endExponentMarker)&&void 0!==t?t:""):"10^{"+e+"}":""}class Ie{constructor(e,i,t){this.level=-1,this.options=e,e.invisibleMultiply&&(/#1/.test(e.invisibleMultiply)&&/#2/.test(e.invisibleMultiply)||t([{severity:"warning",message:["expected-argument","invisibleMultiply"]}])),this.onError=t,this.dictionary=i}updateOptions(e){for(const i of Object.keys(this.options))i in e&&(this.options[i]=e[i])}wrap(e,i){if(null===e)return"";if(void 0===i)return"("+this.serialize(e)+")";if("number"==typeof e||D(e)||"string"==typeof e||C(e))return this.serialize(e);const t=P(e);if("string"==typeof t&&"Delimiter"!==t){const n=this.dictionary.name.get(t);if(n&&("symbol"===n.kind||"prefix"===n.kind||"infix"===n.kind||"postfix"===n.kind)&&n.precedence<i)return this.wrapString(this.serialize(e),this.options.applyFunctionStyle(e,this.level))}return this.serialize(e)}wrapShort(e){if(null===e)return"";const i=this.serialize(e);return"Delimiter"===P(e)||"number"==typeof e||D(e)||/(^(.|\\[a-zA-Z*]+))$/.test(i)?i:this.wrapString(i,this.options.groupStyle(e,this.level+1))}wrapString(e,i){return"none"===i?e:"("+e+")"}serializeSymbol(e,i){var t;const n=P(e);if(!n)return"string"==typeof(null==i?void 0:i.serialize)?i.serialize:"function"==typeof(null==i?void 0:i.serialize)?i.serialize(this,e):null!==(t=Ae(z(e),"upright."))&&void 0!==t?t:"";const r=j(e);if(!i){if("string"==typeof n&&n.length>0&&"\\"===n[0]){let e=n;for(const i of r)e+="{"+this.serialize(i)+"}";return e}return"string"==typeof n?`${Ae(n,"upright.")}(${r.map((e=>this.serialize(e))).join(", ")})`:`\\operatorname{Apply}(${this.serialize(n)}, ${this.serialize(["List",...r])})`}if(i.requiredLatexArg>0){let e="",t="",n=0;for(;n<i.requiredLatexArg;)t+="{"+this.serialize(r[n++])+"}";for(;n<Math.min(r.length,i.optionalLatexArg+i.requiredLatexArg);){const i=this.serialize(r[1+n++]);i&&(e+="["+i+"]")}return i.serialize+(e+t)}return"function"==typeof i.serialize?i.serialize(this,e):"none"===this.options.applyFunctionStyle(e,this.level)?i.serialize+v(r.map((e=>this.serialize(e)))):i.serialize+this.serialize(["Delimiter",...r])}serializeDictionary(e){return`\\left[\\begin{array}{lll}${Object.keys(e).map((i=>`\\textbf{${i}} & \\rightarrow & ${this.serialize(e[i])}`)).join("\\\\")}\\end{array}\\right]`}serialize(e){if(null==e)return"";this.level+=1;try{const i=(()=>{const i=function(e,i){var t,n,r;if(null===e)return"";let s;if("number"==typeof e)s=e;else{if("object"!=typeof e||!("num"in e))return"";s=e.num}if(s===1/0||"Infinity"===s||"+Infinity"===s)return i.positiveInfinity;if(s===-1/0||"-Infinity"===s)return i.negativeInfinity;if("NaN"===s||"number"==typeof s&&Number.isNaN(s))return i.notANumber;if("number"==typeof s)return"engineering"===i.notation?function(e,i){if(0===e)return"0";const t=Math.abs(e);let n=Math.round(Math.log10(t));n-=n%3,t>Math.pow(10,i.avoidExponentsInRange[0])&&t<Math.pow(10,i.avoidExponentsInRange[1])&&(n=0);const r=t/Math.pow(10,n);let s="";const a=r.toString().match(/^(.*)\.(.*)$/);(null==a?void 0:a[1])&&a[2]&&(s=a[1]+i.decimalMarker+a[2]),i.groupSeparator&&(s=Se(r.toExponential(),i));let o="";return 0!==n&&(o=Ee(n.toString(),i)),(e<0?"-":"")+s+o}(s,i):function(e,i){var t;let n,r=e.match(/^(.*)[e|E]([-+]?[0-9]+)$/i);(null==r?void 0:r[1])&&r[2]&&(n=Ee(r[2],i));let s=null!==(t=null==r?void 0:r[1])&&void 0!==t?t:e,a="";return r=(n?r[1]:e).match(/^(.*)\.(.*)$/),(null==r?void 0:r[1])&&r[2]&&(s=r[1],a=r[2]),i.groupSeparator&&(s=s.replace(/\B(?=(\d{3})+(?!\d))/g,i.groupSeparator),a=Se(a,i)),a&&(a=i.decimalMarker+a),n?"1"!==s||a?s+a+i.exponentProduct+n:n:s+a}(s.toString(),i);if(/[0-9][nd]$/.test(s)&&(s=s.slice(0,-1)),s=s.replace(/[\u0009-\u000d\u0020\u00a0]/g,""),/\([0-9]+\)$/.test(s)){const[e,n,r]=null!==(t=s.match(/(.+)\(([0-9]+)\)$/))&&void 0!==t?t:[];s=n+r.repeat(Math.ceil(i.precision/r.length))}let a="";for("-"===s[0]?(a="-",s=s.substring(1)):"+"===s[0]&&(s=s.substring(1));"0"===s[0];)s=s.substring(1);if(0===s.length)return a+"0";"."===s[0]&&(s="0"+s);let o="";if(s.indexOf(".")>=0){const e=s.match(/(\d*)\.(\d*)([e|E]([-+]?[0-9]*))?/);if(!e)return"";const t=e[1],r=e[2];if(o=null!==(n=e[4])&&void 0!==n?n:"","0"===t){let e=0;for(;"0"===r[e]&&e<r.length;)e+=1;let t="";if(e<=4)t="0"+i.decimalMarker,t+=r.substring(0,e),t+=Se(s.substring(t.length),i);else if(e+1>=i.precision)t="0",a="";else{t=s[e];const n=Se(s.substring(e+1),i);n&&(t+=i.decimalMarker+n)}"0"!==t&&(!(s.length-1>i.precision)||i.endRepeatingDigits&&t.endsWith(i.endRepeatingDigits)||!i.truncationMarker||t.endsWith(i.truncationMarker)||(t+=i.truncationMarker),e>4&&(t+=i.exponentProduct+Ee(""+(1-e),i))),s=t}else{s=t.replace(/\B(?=(\d{3})+(?!\d))/g,i.groupSeparator);const e=Se(r,i);e&&(s+=i.decimalMarker+e)}}else if(s.length>i.precision){const e=s.length;if(e>i.avoidExponentsInRange[1]){let t=s[0];const n=Se(s.substring(1),i);n&&(t+=i.decimalMarker+n,i.truncationMarker&&!t.endsWith(i.truncationMarker)&&i.endRepeatingDigits&&!t.endsWith(i.endRepeatingDigits)&&(t+=i.truncationMarker)),"1"!==t?t+=i.exponentProduct:t="",s=t+Ee(""+(e-1),i)}}else{const e=s.match(/([0-9]*)\.?([0-9]*)([e|E]([-+]?[0-9]+))?/);e&&(s=e[1],e[2]&&(s+=i.decimalMarker+e[2]),o=null!==(r=e[4])&&void 0!==r?r:""),s=s.replace(/\B(?=(\d{3})+(?!\d))/g,i.groupSeparator)}const l=Ee(o,i);return"1"===s&&l?a+l:(l&&(s=s+i.exponentProduct+l),a+s)}(e,this.options);if(i)return i;const t=V(e);if(null!==t)return`\\text{${t}}`;const n=z(e);if(null!==n){const i=this.dictionary.name.get(n);if("symbol"===(null==i?void 0:i.kind))return this.serializeSymbol(e,i)}const r=function(e){return"object"==typeof e&&"dict"in e?e.dict:null}(e);if(null!==r)return this.serializeDictionary(r);const s=F(e);if(s){if("\\"===s[0]){const i=j(e);return 0===i.length?s:s+"{"+i.map((e=>this.serialize(e))).filter((e=>!!e)).join("}{")+"}"}const i=this.dictionary.name.get(s);if(i){let t="";return"function"==typeof i.serialize&&(t=i.serialize(this,e)),t||"infix"!==i.kind&&"postfix"!==i.kind&&"prefix"!==i.kind||(t=function(e,i,t){let n="";const r=T(i),s=F(i);if("postfix"===t.kind)return 1!==r&&e.onError([{severity:"warning",message:["postfix-operator-requires-one-operand",e.serializeSymbol(s)]}]),ke(t.serialize,[e.wrap(L(i,1),t.precedence)]);if("prefix"===t.kind)return 1!==r&&e.onError([{severity:"warning",message:["prefix-operator-requires-one-operand",e.serializeSymbol(s)]}]),ke(t.serialize,[e.wrap(L(i,1),t.precedence+1)]);if("infix"===t.kind){n=e.wrap(L(i,1),t.precedence);for(let s=2;s<r+1;s++){const r=L(i,s);null!==r&&(n=ke(t.serialize,[n,e.wrap(r,t.precedence)]))}}return n}(this,e,i)),t||"matchfix"!==i.kind||(t=function(e,i,t){var n;return ke(t.serialize,[e.serialize(null!==(n=L(i,1))&&void 0!==n?n:"Nothing")])}(this,e,i)),t||"symbol"!==i.kind||(t=this.serializeSymbol(e,i)),t}}if(Array.isArray(e)||q(e)||null!==z(e))return this.serializeSymbol(e);this.onError([{severity:"warning",message:["syntax-error",e?JSON.stringify(e):"undefined"]}])})();return this.level-=1,null!=i?i:""}catch(e){}return this.level-=1,""}applyFunctionStyle(e,i){return this.options.applyFunctionStyle(e,i)}groupStyle(e,i){return this.options.groupStyle(e,i)}rootStyle(e,i){return this.options.rootStyle(e,i)}fractionStyle(e,i){return this.options.fractionStyle(e,i)}logicStyle(e,i){return this.options.logicStyle(e,i)}powerStyle(e,i){return this.options.powerStyle(e,i)}numericSetStyle(e,i){return this.options.numericSetStyle(e,i)}}function ke(e,i){var t;let n=e;for(let e=0;e<i.length;e++){let r=null!==(t=i[e])&&void 0!==t?t:"";if(/[a-zA-Z*]/.test(r[0])){const i=n.match(RegExp("(.*)#"+Number(e+1).toString()));i&&/\\[a-zA-Z*]+/.test(i[1])&&(r=" "+r)}n=n.replace("#"+Number(e+1).toString(),r)}return n}const Me=["alpha","beta","gamma","Gamma","delta","Delta","epsilon","zeta","eta","theta","Theta","iota","kappa","lambda","Lambda","mu","nu","xi","Xi","pi","Pi","rho","sigma","Sigma","tau","upsilon","phi","Phi","varphi","chi","psi","Psi","omega","Omega","aleph","ast","blacksquare","bot","bullet","circ","diamond","times","top","square","star"];function Ae(e,i="italic."){var t;if(null===e)return null;const n=e.match(/^(_+)(.*)/);if(n)return`\\text{${"\\_".repeat(n[1].length)+Oe(n[2])}}`;let r;[r,e]=function(e){const i=e.match(/^([a-zA-Z-]+\.)(.*)/);return i?[i[1],i[2]]:["",e]}(e);const s=Oe(e);return 1!==s.length||r?(r||(r=i),(null!==(t={"upright.":"\\mathrm{_}","italic.":"\\mathit{_}","bold-italic.":"\\mathbf{\\mathit{_}}","script.":"\\mathscr{_}","calligraphic.":"\\mathcal{_}","bold-script.":"\\mathbf{\\mathscr{_}}","bold-calligraphic.":"\\mathbf{\\mathcal{_}}","fraktur.":"\\mathfrak{_}","gothic.":"\\mathfrak{_}","bold-gothic.":"\\mathbf{\\mathfrak{_}}","bold-fraktur.":"\\mathbf{\\mathfrak{_}}","sans-serif.":"\\mathsf{_}","bold-sans-serif.":"\\mathbf{\\mathsf{_}}","italic-sans-serif.":"\\mathit{\\mathsf{_}}","monospace.":"\\mathtt{_}","blackboard.":"\\mathbb{_}","double-struck.":"\\mathbb{_}"}[r])&&void 0!==t?t:"\\mathit{_}").replace("_",s)):s}function Oe(e){const i=e.indexOf("_");if(i>0){const t=e.substring(0,i),n=e.substring(i+1);return n?n.startsWith('"')&&n.endsWith('"')?`${Oe(t)}_\\mathrm{${Oe(n.substring(1,-1))}}`:`${Oe(t)}_{${Oe(n)}}`:Ae(t)+"\\_"}const t=e.match(/([^0-9]+?)([0-9]+)$/);return t?0===t[1].length?e:`${Oe(t[1])}_{${t[2]}}`:Me.includes(e)?"\\"+e:e=e.replace(/[{}\[\]\\:\-\$%]/g,(e=>{var i;return null!==(i={"{":"\\lbrace ","}":"\\rbrace ","[":"\\lbrack ","]":"\\rbrack ",":":"\\colon ","\\":"\\backslash ","-":'\\unicode{"2013}'}[e])&&void 0!==i?i:"\\"+e}))}const De={invisibleMultiply:"",invisiblePlus:"",multiply:"\\times",missingSymbol:"\\placeholder{}",applyFunctionStyle:function(e,i){return"paren"},groupStyle:function(e,i){return"paren"},rootStyle:W,fractionStyle:H,logicStyle:function(e,i){return"boolean"},powerStyle:function(e,i){return"solidus"},numericSetStyle:function(e,i){return"compact"}};class Ce{constructor(e){var i,t;this.onError=null!==(i=e.onError)&&void 0!==i?i:e=>{if("undefined"!=typeof window)for(const i of e);},this.computeEngine=e.computeEngine;const n=Object.assign({},e);delete n.dictionary,delete n.onError,this.options=Object.assign(Object.assign(Object.assign(Object.assign({},Ne),De),_e),n),this.dictionary=function(e,i){var t,n;const r={lookahead:1,name:new Map,symbol:[],infix:[],prefix:[],postfix:[],environment:new Map,matchfix:[]};for(const s of e){const[e,a]=fe(s,i);if(null!==a)if(void 0!==a.name&&(r.name.has(a.name)&&i({severity:"warning",message:["invalid-dictionary-entry",a.name,"Duplicate definition"]}),r.name.set(a.name,a)),"matchfix"===a.kind)r.matchfix.push(a);else if("environment"===a.kind){const e=b(null!==(t=s.trigger)&&void 0!==t?t:"");r.environment.has(e)&&i({severity:"warning",message:["invalid-dictionary-entry",e,"Duplicate environment definition"]}),r.environment.set(e,a)}else if(e){const i=b(null!==(n=s.trigger)&&void 0!==n?n:""),t=de(e);if(r.lookahead=Math.max(r.lookahead,t),"symbol"===a.kind){void 0===r.symbol[t]&&(r.symbol[t]=new Map);const e=r.symbol[t];e.has(i)?e.get(i).push(a):e.set(i,[a])}else if("prefix"===a.kind){void 0===r.prefix[t]&&(r.prefix[t]=new Map);const e=r.prefix[t];e.has(i)?e.get(i).push(a):e.set(i,[a])}else if("infix"===a.kind){void 0===r.infix[t]&&(r.infix[t]=new Map);const e=r.infix[t];e.has(i)?e.get(i).push(a):e.set(i,[a])}else if("postfix"===a.kind){void 0===r.postfix[t]&&(r.postfix[t]=new Map);const e=r.postfix[t];e.has(i)?e.get(i).push(a):e.set(i,[a])}}}return r}(null!==(t=e.dictionary)&&void 0!==t?t:Ce.getDictionary(),(e=>this.onError([e])))}updateOptions(e){for(const i of Object.keys(this.options))i in e&&(this.options[i]=e[i]);this.serializer.updateOptions(e)}static getDictionary(e="all"){if("all"===e){let e=[];for(const i of Object.keys(ge))ge[i]&&(e=[...e,...ge[i]]);return e}return ge[e]?[...ge[e]]:[]}parse(e){const i=new we(p(e,[]),this.options,this.dictionary,this.computeEngine,this.onError);let t=i.matchExpression();if(!i.atEnd){const e=[];for(;!i.atEnd;)e.push(i.next());t=["Error",null!=t?t:"Nothing",{str:"syntax-error"},["LatexForm",{str:b(e)}]]}return t||(t="Nothing"),this.options.preserveLatex&&(Array.isArray(t)?t={latex:e,fn:t}:"number"==typeof t?t={latex:e,num:Number(t).toString()}:"string"==typeof t?t={latex:e,sym:t}:"object"==typeof t&&null!==t&&(t.latex=e)),null!=t?t:"Nothing"}serialize(e){return this.serializer.serialize(e)}get serializer(){return this._serializer||(this._serializer=new Ie(this.options,this.dictionary,this.onError)),this._serializer}}const qe=Math.log10(Math.pow(2,53)),Ve=1e-10,Pe=1e6,Fe=new Set([2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919]);function Le(e,i){const t=function(e){if(e<=3)return{[e]:1};const i={};let t=!1;for(;!t;){if(e%2==0){i[2]?i[2]+=1:i[2]=1,e/=2;continue}if(e%3==0){i[3]?i[3]+=1:i[3]=1,e/=3;continue}if(1===e)return i;const n=Math.sqrt(e);t=!0;for(let r=6;r<=n+6;r+=6){if(e%(r-1)==0){i[r-1]?i[r-1]+=1:i[r-1]=1,e/=r-1,t=!1;break}if(e%(r+1)==0){i[r+1]?i[r+1]+=1:i[r+1]=1,e/=r+1,t=!1;break}}}return i[e]=1,i}(e);let n=1,r=1;for(const e of Object.keys(t)){const s=parseFloat(e);n*=Math.pow(s,Math.floor(t[e]/i)),r*=Math.pow(s,t[e]%i)}return[n,r]}function Te(e,i){if(0===e)return i;if(0===i)return e;if(e===i)return e;if(!Number.isInteger(e)||!Number.isInteger(i))return NaN;for(;0!==i;)[e,i]=[i,e%i];return e<0?-e:e}function ze([e,i]){if(1===e||1===i)return[e,i];i<0&&([e,i]=[-e,-i]);const t=Te(e,i);return t<=1?[e,i]:[e/t,i/t]}const Re=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],$e=[.999999999999997,57.15623566586292,-59.59796035547549,14.13609797474174,-.4919138160976202,3399464998481188e-20,4652362892704857e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.0002174396181152126,-.0001643181065367639,8441822398385274e-20,-261908384015814e-19,3689918265953162e-21];function je(e){if(e<0)return NaN;let i=$e[0];for(let t=14;t>0;--t)i+=$e[t]/(e+t);const t=e+4.7421875+.5;return.9189385332046727+(e+.5)*Math.log(t)-t+Math.log(i)-Math.log(e)}function Ze(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*Ze(1-e));if(e>100)return Math.exp(je(e));e-=1;let i=Re[0];for(let t=1;t<9;t++)i+=Re[t]/(e+t);const t=e+7+.5;return 2.5066282746310002*Math.pow(t,e+.5)*Math.exp(-t)*i}function Be(e,i=10){let t=0;for(let n=0;n<e.length;n++){const r={" ":-1,"\xa0":-1,"\u2000":-1,"\u2001":-1,"\u2002":-1,"\u2003":-1,"\u2004":-1,"\u2005":-1,"\u2006":-1,"\u2007":-1,"\u2008":-1,"\u2009":-1,"\u200a":-1,"\u200b":-1,"\u202f":-1,"\u205f":-1,_:-1,",":-1,0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,b:11,c:12,d:13,e:14,f:15,g:16,h:17,i:18,j:19,k:20,l:21,m:22,n:23,o:24,p:25,q:26,r:27,s:28,t:29,u:30,v:31,w:32,x:33,y:34,z:35}[e[n]];if(-1!==r){if(void 0===r)return[t,e.substring(n)];if(r>=i)return[t,e.substring(n)];t=t*i+r}}return[t,""]}class Ge{constructor(e,i){this.engine=e,(null==i?void 0:i.latex)&&(this._latex=i.latex),(null==i?void 0:i.wikidata)&&(this._wikidata=i.wikidata)}toJSON(){return JSON.stringify(this.json)}toString(){return this.latex}valueOf(){var e,i,t;const[n,r]=this.rationalValue;return null!==n&&null!==r?[n,r]:null!==(t=null!==(i=null!==(e=this.asFloat)&&void 0!==e?e:this.string)&&void 0!==i?i:this.symbol)&&void 0!==t?t:this.toString()}is(e){return this.isSame(this.engine.box(e))}has(e){return!1}get description(){return[]}get url(){return""}_purge(){}get isPure(){return!1}get isLiteral(){return!1}get latex(){var e;return null!==(e=this._latex)&&void 0!==e?e:this.engine.serialize(this)}set latex(e){this._latex=e}get wikidata(){var e;return null!==(e=this._wikidata)&&void 0!==e?e:""}set wikidata(e){this._wikidata=e}get complexity(){return 1}get ops(){return null}get nops(){return 0}get op1(){return this.engine.symbol("Missing")}get op2(){return this.engine.symbol("Missing")}get op3(){return this.engine.symbol("Missing")}get symbolDefinition(){}get functionDefinition(){}_repairDefinition(){}get keys(){return null}get keysCount(){return 0}getKey(e){}hasKey(e){return!1}get machineValue(){var e,i;return null!==(i=null===(e=this.numericValue)||void 0===e?void 0:e.machineValue)&&void 0!==i?i:null}get rationalValue(){var e,i;return null!==(i=null===(e=this.numericValue)||void 0===e?void 0:e.rationalValue)&&void 0!==i?i:[null,null]}get decimalValue(){var e,i;return null!==(i=null===(e=this.numericValue)||void 0===e?void 0:e.decimalValue)&&void 0!==i?i:null}get complexValue(){var e,i;return null!==(i=null===(e=this.numericValue)||void 0===e?void 0:e.complexValue)&&void 0!==i?i:null}get asFloat(){var e,i;return null!==(i=null===(e=this.numericValue)||void 0===e?void 0:e.asFloat)&&void 0!==i?i:null}get asSmallInteger(){var e,i;return null!==(i=null===(e=this.numericValue)||void 0===e?void 0:e.asSmallInteger)&&void 0!==i?i:null}get asRational(){var e,i;return null!==(i=null===(e=this.numericValue)||void 0===e?void 0:e.asRational)&&void 0!==i?i:[null,null]}get sgn(){var e,i;return null!==(i=null===(e=this.numericValue)||void 0===e?void 0:e.sgn)&&void 0!==i?i:null}get symbol(){return null}get isMissing(){return!1}get value(){return this}set value(e){throw Error(`Can't change the value of \\(${this.latex}\\)`)}get numericValue(){}isSubsetOf(e){}get domain(){return this.engine.domain("Nothing")}set domain(e){throw Error(`Can't change the domain of \\(${this.latex}\\)`)}get string(){return null}isLess(e){}isLessEqual(e){}isGreater(e){}isGreaterEqual(e){}get isZero(){}get isNotZero(){}get isPositive(){}get isNonNegative(){}get isNegative(){}get isNonPositive(){}get isInfinity(){}get isNaN(){}get isFinite(){}get isNumber(){}get isInteger(){}get isRational(){}get isAlgebraic(){return!1}get isReal(){}get isExtendedReal(){}get isComplex(){}get isImaginary(){}get isExtendedComplex(){}get isOne(){}get isNegativeOne(){}get isEven(){}get isOdd(){}get isPrime(){}get isComposite(){}get canonical(){return this}apply(e,i){return this}evaluate(e){return this.simplify(e)}simplify(e){return this}N(e){return this}replace(e){return null}subs(e){return this}solve(e){return null}}function We(e,i){if(!i.isInteger()||i.isNegative())return e.DECIMAL_NAN;if(i.lessThan(10))return e.decimal([1,1,2,6,24,120,720,5040,40320,362880,3628800][i.toNumber()]);if(i.gt(Number.MAX_SAFE_INTEGER)){let t=e.DECIMAL_ONE,n=e.DECIMAL_TWO;for(;n.lessThan(i);)t=t.mul(n),n=n.add(1);return t}if(i.modulo(2).eq(1))return i.times(We(e,i.minus(1)));let t=i.toNumber(),n=i,r=i;for(;t>2;)t-=2,n=n.add(t),r=r.mul(n);return r}function He(e,i){if(i.isNegative())return e.DECIMAL_NAN;const t=e.cache("gamma-p-ln",(()=>["0.99999999999999709182","57.156235665862923517","-59.597960355475491248","14.136097974741747174","-0.49191381609762019978","0.33994649984811888699e-4","0.46523628927048575665e-4","-0.98374475304879564677e-4","0.15808870322491248884e-3","-0.21026444172410488319e-3","0.2174396181152126432e-3","-0.16431810653676389022e-3","0.84418223983852743293e-4","-0.2619083840158140867e-4","0.36899182659531622704e-5"].map((i=>e.decimal(i)))));let n=t[0];for(let e=t.length-1;e>0;--e)n=n.add(t[e].div(i.add(e)));const r=e.cache("gamma-g-ln",(()=>e.decimal(607).div(128))),s=i.add(r).add(e.DECIMAL_HALF);return e.DECIMAL_NEGATIVE_ONE.acos().mul(e.DECIMAL_TWO).log().mul(e.DECIMAL_HALF).add(s.log().mul(i.add(e.DECIMAL_HALF)).minus(s).add(n.log()).minus(i.log()))}function Qe(e,i){if(i.lessThan(e.DECIMAL_HALF)){const t=e.DECIMAL_NEGATIVE_ONE.acos();return t.div(t.mul(i).sin().mul(Qe(e,e.DECIMAL_ONE.sub(i))))}if(i.greaterThan(100))return He(e,i).exp();i=i.sub(1);const t=e.cache("lanczos-7-c",(()=>["0.99999999999980993227684700473478","676.520368121885098567009190444019","-1259.13921672240287047156078755283","771.3234287776530788486528258894","-176.61502916214059906584551354","12.507343278686904814458936853","-0.13857109526572011689554707","9.984369578019570859563e-6","1.50563273514931155834e-7"].map(e.decimal)));let n=t[0];for(let e=1;e<9;e++)n=n.add(t[e].div(i.add(e)));const r=i.add(7).add(e.DECIMAL_HALF);return e.DECIMAL_NEGATIVE_ONE.acos().times(e.DECIMAL_TWO).sqrt().mul(n.mul(r.neg().exp()).mul(r.pow(i.add(e.DECIMAL_HALF))))}function Ue(e){return e.e<308&&e.e>-306}function Ye(e,i){var t;const n=[];for(const r of e)r.ops&&r.head===i?n.push(...null!==(t=Ye(r.ops,i))&&void 0!==t?t:r.ops):n.push(r);return n.length===e.length?null:n}function Ke(e){if("Power"===e.head&&e.op2.isLiteral){const i=e.op2.asSmallInteger;return null!==i&&i>0?i:1}if("Multiply"===e.head){let i=1;for(const t of e.ops){const e=Ke(t);e>1&&(i+=e)}return i}return 1}function Je(e){if("Power"===e.head&&e.op2.isLiteral){const i=e.op2.asSmallInteger;return null!==i&&i>0?i:1}if("Multiply"===e.head){let i=1;for(const t of e.ops)i=Math.max(i,Ke(t));return i}return 1}function Xe(e){return e.symbol?e.symbol:e.ops?e.ops.map((e=>Xe(e))).filter((e=>e.length>0)).join('"'):""}function ei(e){return"string"==typeof e&&e.startsWith("$")&&e.endsWith("$")}function ii(e){return"string"==typeof e&&e.startsWith("$")&&e.endsWith("$")?e.slice(1,-1):null}function ti(e){var i;if("ImaginaryUnit"===e.symbol)return 1;const t=e.complexValue;if(t&&0===t.re)return t.im;if("Negate"===e.head)return-ti(e.op1);let n=0;if("Multiply"===e.head&&2===e.nops){let t;"ImaginaryUnit"===e.op1.symbol?t=e.op2:"ImaginaryUnit"===e.op2.symbol&&(t=e.op1),t&&t.isLiteral&&(n=null!==(i=t.asFloat)&&void 0!==i?i:0)}return n}function ni(e){if(e.symbol){const i=e.symbolDefinition;return(null==i?void 0:i.constant)?[]:[e.symbol]}if(!e.ops&&!e.keys)return[];const i=[];if(e.ops)for(const t of e.ops)i.push(...ni(t));if(e.keys)for(const t of e.keys)i.push(...ni(e.getKey(t)));return i}function ri(e){return"decimal"===e.numericMode||"auto"===e.numericMode&&e.precision>Math.floor(qe)}function si(e){return"auto"===e.numericMode||"complex"===e.numericMode}function ai(e){let i=0;for(let t=0;t<e.length;t++)i=Math.imul(31,i)+e.charCodeAt(t)|0;return Math.abs(i)}const oi=1e5;function li(e,i){var t,n,r,s;if(e.isLiteral&&null!==e.asFloat)return i.isLiteral&&null!==i.asFloat?e.asFloat-i.asFloat:-1;if(e.isLiteral&&e.complexValue)return i.isLiteral&&i.complexValue?e.complexValue.re===i.complexValue.re?Math.abs(e.complexValue.im)===Math.abs(i.complexValue.im)?e.complexValue.im-i.complexValue.im:Math.abs(e.complexValue.im)-Math.abs(i.complexValue.im):e.complexValue.re-i.complexValue.re:i.isLiteral&&i.isNumber?1:-1;if(e.symbol)return i.symbol?e.symbol===i.symbol?0:e.symbol>i.symbol?1:-1:i.isLiteral&&i.isNumber?1:-1;if(e.ops){if(i.ops){const a=null!==(n=null===(t=e.functionDefinition)||void 0===t?void 0:t.complexity)&&void 0!==n?n:oi,o=null!==(s=null===(r=i.functionDefinition)||void 0===r?void 0:r.complexity)&&void 0!==s?s:oi;return a===o?"string"==typeof e.head&&"string"==typeof i.head?e.head===i.head?ui(e)-ui(i):e.head<i.head?1:-1:ui(e)-ui(i):a-o}return i.isLiteral&&i.isNumber||i.symbol?1:-1}if(e.string)return i.string?e.string.length!==i.string.length?i.string.length-e.string.length:i.string<e.string?-1:e.string>i.string?1:0:i.keys?-1:1;if(e.keys&&i.keys){if(e.keysCount!==i.keysCount)return i.keysCount-e.keysCount;let t=0,n=0;for(const e of i.keys)t+=i.getKey(e).complexity;for(const i of e.keys)n+=e.getKey(i).complexity;return n-t}return e.complexity-i.complexity}function ui(e){return null!==e.keys?1+e.keysCount:e.ops?("string"==typeof e.head?1:ui(e.head))+[...e.ops].reduce(((e,i)=>e+ui(i)),0):1}function ci(e){var i;const t=e.engine;let n=1,r=1;if("Multiply"===e.head){const i=[];for(const t of e.ops)if(t.isLiteral){const[e,s]=t.asRational;null!==e&&null!==s?(n*=e,r*=s):i.push(t)}else i.push(t);return[n,r]=ze([n,r]),n===r?[[1,1],e]:0===i.length?[[n,r],t.ONE]:1===i.length?[[n,r],i[0]]:[[n,r],t.mul(i)]}if("Divide"===e.head){let[[i,n],r]=ci(e.op1);const[[s,a],o]=ci(e.op2),[l,u]=ze([i*a,s*n]);return r.isOne&&o.isOne?[[l,u],t.ONE]:o.isOne?[[l,u],r]:[[l,u],t.fn("Divide",[r,o]).canonical]}if("Power"===e.head){if(!e.op2.isLiteral)return[[1,1],e];let[[i,n],r]=ci(e.op1);if(1===i&&1===n)return[[1,1],e];const s=e.op2,a=s.asSmallInteger;if(null!==a){if(-1===a)return[[n,i],t.inverse(r)];if(Math.log10(Math.abs(i))*Math.abs(a)<15&&Math.log10(Math.abs(n))*Math.abs(a)<15)return a>0?[[Math.pow(i,a),Math.pow(n,a)],t.power(r,s)]:[[Math.pow(n,-a),Math.pow(i,-a)],t.power(r,s)]}const[o,l]=s.rationalValue;if(null!==o&&null!==l&&i>0&&1===Math.abs(o)){const[a,u]=Le(i,l),[c,m]=Le(n,l);return 1===a&&1===c?[[1,1],e]:[1===o?[a,c]:[c,a],t.power(t.mul([t.number([u,m]),r]),s)]}return[[1,1],e]}if("Negate"===e.head){const[i,t]=ci(e.op1);return[[-i[0],i[1]],t]}if(e.isLiteral){if(e.decimalValue){if(e.decimalValue.isInteger()&&Ue(e.decimalValue))return[[e.decimalValue.toNumber(),1],t.ONE];if(null===(i=e.decimalValue)||void 0===i?void 0:i.isNegative())return[[-1,1],t.number(e.decimalValue.neg())]}if(null!==e.machineValue){if(Number.isInteger(e.machineValue))return[[e.machineValue,1],t.ONE];if(e.machineValue<0)return[[-1,1],t.number(-e.machineValue)]}const[n,r]=e.rationalValue;if(null!==n&&null!==r)return[[n,r],t.ONE];if(null!==e.complexValue){const i=e.complexValue;if(i.re<0)return[[-1,1],t.number(t.complex(-i.re,-i.im))]}}return[[1,1],e]}function mi(e){var i;if("Negate"===e.head)return[-1,e.op1];const t=e.engine;if(null!==e.machineValue&&e.machineValue<0)return[-1,t.number(-e.machineValue)];if(null===(i=e.decimalValue)||void 0===i?void 0:i.isNegative())return[-1,t.number(e.decimalValue.neg())];if(null!==e.complexValue){const i=e.complexValue;if(i.re<0)return[-1,t.number(t.complex(-i.re,-i.im))]}const[n,r]=e.rationalValue;return null!==n&&null!==r&&n<0?[-1,t.number([-n,r])]:[1,e]}class hi{constructor(e,i){if(this._terms=[],this._literal=[1,1],this._hasInfinity=!1,this._hasZero=!1,this.engine=e,i)for(const e of i)this.addTerm(e)}get isEmpty(){return!1===this._hasInfinity&&!1===this._hasZero&&this._literal[0]===this._literal[1]&&0===this._terms.length}addTerm(e){if("Nothing"===e.symbol)return;if(e.isLiteral){if(e.isOne)return;if(e.isZero)return void(this._hasZero=!0);if(e.isNegativeOne)return void(this._literal[0]*=-1);if(e.isInfinity)return this._hasInfinity=!0,void(e.isNegative&&(this._literal[0]*=-1))}let[i,t]=ci(e);if(this._literal=[this._literal[0]*i[0],this._literal[1]*i[1]],t.isLiteral&&t.isOne)return;let n=[1,1];if("Power"===t.head&&t.op2.isLiteral){const[e,i]=t.op2.asRational;null!==e&&null!==i&&(n=[e,i],t=t.op1)}let r=!1;if(1===n[1]||t.isNonNegative)for(const e of this._terms)if(e.term.isSame(t)){const[i,t]=e.exponent,[s,a]=n;e.exponent=[i*a+t*s,t*a],r=!0;break}r||this._terms.push({exponent:n,term:t})}groupedByDegrees(e){const i=this.engine,t=[],n=[];this._hasInfinity&&n.push(i.POSITIVE_INFINITY),this._literal=ze(this._literal),1===this._literal[0]&&1===this._literal[1]||((null==e?void 0:e.splitRational)?(1!==this._literal[0]&&n.push(i.number(this._literal[0])),1!==this._literal[1]&&t.push({exponent:[-1,1],terms:[i.number(this._literal[1])]})):n.push(i.number(this._literal))),n.length>0&&t.push({exponent:[1,1],terms:n});for(const e of this._terms){if(0===e.exponent[0])continue;let i=!1;for(const n of t)if(e.exponent[0]===n.exponent[0]&&e.exponent[1]===n.exponent[1]){n.terms.push(e.term),i=!0;break}i||t.push({exponent:ze(e.exponent),terms:[e.term]})}return t}terms(){return gi(this.engine,this.groupedByDegrees())}asNumeratorDenominator(){var e,i;const t=this.groupedByDegrees(),n=[],r=[];for(const e of t)e.exponent[0]>=0?n.push(e):r.push({exponent:[-e.exponent[0],e.exponent[1]],terms:e.terms});const s=this.engine;let a=gi(s,n);a=null!==(e=Ye(a,"Multiply"))&&void 0!==e?e:a;let o=s.ONE;1===a.length?o=a[0]:a.length>0&&(o=s._fn("Multiply",a));let l=gi(s,r);l=null!==(i=Ye(l,"Multiply"))&&void 0!==i?i:l;let u=s.ONE;return 1===l.length?u=l[0]:l.length>0&&(u=s._fn("Multiply",l)),[o,u]}asExpression(){var e;const i=this.engine;if(this._hasInfinity){if(this._hasZero)return i.NAN;if(0===this._terms.length)return this._literal[0]>0?i.POSITIVE_INFINITY:i.NEGATIVE_INFINITY}if(this._hasZero)return i.ZERO;if(0===this._terms.length)return i.number(this._literal);let t=gi(i,this.groupedByDegrees({splitRational:!1}));return this._hasInfinity&&t.push(i.POSITIVE_INFINITY),t=null!==(e=Ye(t,"Multiply"))&&void 0!==e?e:t,0===t.length?i.ONE:1===t.length?t[0]:this.engine._fn("Multiply",t)}asRationalExpression(){const[e,i]=this.asNumeratorDenominator();return i.isOne?e:i.isNegativeOne?this.engine.negate(e):this.engine._fn("Divide",[e,i])}}function di(e){const[i,t]=e;return i===t?0:i>0&&Number.isInteger(i/t)?1:i>0?2:Number.isInteger(i/t)?3:4}function fi(e,i){const t=di(e.exponent),n=di(i.exponent);return t!==n?t-n:e.exponent[0]/e.exponent[1]-i.exponent[0]/i.exponent[1]}function gi(e,i){var t;const n=(i=i.sort(fi)).map((i=>{var t;const n=null!==(t=Ye(i.terms,"Multiply"))&&void 0!==t?t:i.terms,r=n.length<=1?n[0]:e._fn("Multiply",n.sort(li));return i.exponent[0]===i.exponent[1]?r:e.power(r,i.exponent)}));return null!==(t=Ye(n,"Multiply"))&&void 0!==t?t:n}function pi(e,i,t,n){var r,s,a,o,l,u,c;const m=e.jsonSerializationOptions.exclude;if(("Rational"===i||"Divide"===i)&&(null===(r=t[0])||void 0===r?void 0:r.isLiteral)&&(null===(s=t[1])||void 0===s?void 0:s.isLiteral)&&1===(null===(a=t[0])||void 0===a?void 0:a.asSmallInteger)&&2===(null===(o=t[1])||void 0===o?void 0:o.asSmallInteger)&&!m.includes("Half"))return vi(e,"Half",Object.assign(Object.assign({},n),{wikidata:"Q39373172"}));if("Negate"===i&&t[0].isLiteral){if(null!==t[0].machineValue)return bi(e,-t[0].machineValue);if(null!==t[0].decimalValue)return bi(e,t[0].decimalValue.neg());if(null!==t[0].complexValue)return bi(e,t[0].complexValue.neg());const[i,n]=t[0].rationalValue;if(null!==i&&null!==n)return bi(e,[-i,n])}if("Rational"===i&&m.includes(i)&&t.length>1)return pi(e,"Divide",t,n);if("Complex"===i&&m.includes(i))return pi(e,"Add",[t[0],e._fn("Multiply",[t[1],e.symbol("ImaginaryUnit")])],n);if("Sqrt"===i&&m.includes(i))return pi(e,"Power",[t[0],m.includes("Half")?e.number([1,2]):e.HALF],n);if("Root"===i&&m.includes(i)&&t[1].isLiteral){const i=t[1].asSmallInteger;if(2===i)return pi(e,"Sqrt",[t[0]]);if(null!==i)return i<0?pi(e,"Divide",[e.ONE,e._fn("Power",[t[0],e.number([1,-i])])],n):pi(e,"Power",[t[0],e.number([1,-i])],n)}if("Square"===i&&m.includes(i))return pi(e,"Power",[t[0],e.TWO],n);if("Exp"===i&&m.includes(i))return pi(e,"Power",[e.symbol("ExponentialE"),t[0]],n);if("Subtract"===i&&m.includes(i))return pi(e,"Add",[t[0],e._fn("Negate",[t[1]])],n);if("Add"===i&&2===t.length&&!m.includes("Subtract")){if(t[1].isLiteral){const i=t[1].asSmallInteger;if(null!==i&&i<0)return pi(e,"Subtract",[t[0],e.number(-i)],n)}if("Negate"===t[1].head)return pi(e,"Subtract",[t[0],t[1].op1],n)}if("Tuple"===i){if(1===t.length&&!m.includes("Single"))return pi(e,"Single",t,n);if(2===t.length&&!m.includes("Pair"))return pi(e,"Pair",t,n);if(3===t.length&&!m.includes("Triple"))return pi(e,"Triple",t,n)}const h=["string"==typeof i?i:i.json,...t.map((e=>e.json))],d=Object.assign({},null!=n?n:{});return e.jsonSerializationOptions.metadata.includes("latex")?d.latex=null!==(l=d.latex)&&void 0!==l?l:e.serialize({fn:h}):d.latex="",e.jsonSerializationOptions.metadata.includes("wikidata")?(null==n?void 0:n.wikidata)||"string"!=typeof i||(d.wikidata=null!==(c=null===(u=e.getFunctionDefinition(i))||void 0===u?void 0:u.wikidata)&&void 0!==c?c:""):d.wikidata="",d.latex||d.wikidata||!e.jsonSerializationOptions.shorthands.includes("function")?d.latex&&d.wikidata?{fn:h,latex:d.latex,wikidata:d.wikidata}:d.latex?{fn:h,latex:d.latex}:d.wikidata?{fn:h,wikidata:d.wikidata}:{fn:h}:h}function vi(e,i,t){var n,r,s;return"Half"===i&&e.jsonSerializationOptions.exclude.includes("Half")?bi(e,[1,2],t):(t=Object.assign({},t),e.jsonSerializationOptions.metadata.includes("latex")?(t.latex=null!==(n=t.latex)&&void 0!==n?n:e.serialize({sym:i}),t.latex===i&&(t.latex=""),t.latex=t.latex):t.latex="",e.jsonSerializationOptions.metadata.includes("wikidata")?t.wikidata||(t.wikidata=null!==(s=null===(r=e.getSymbolDefinition(i))||void 0===r?void 0:r.wikidata)&&void 0!==s?s:""):t.wikidata="",i=i,t.latex||t.wikidata||!e.jsonSerializationOptions.shorthands.includes("symbol")?t.latex&&t.wikidata?{sym:i,latex:t.latex,wikidata:t.wikidata}:t.latex?{sym:i,latex:t.latex}:t.wikidata?{sym:i,wikidata:t.wikidata}:{sym:i}:i)}function bi(e,i,t){var n,r,s;t=Object.assign({},t),e.jsonSerializationOptions.metadata.includes("latex")||(t.latex="");const a=!t.latex&&!e.jsonSerializationOptions.metadata.includes("latex")&&e.jsonSerializationOptions.shorthands.includes("number");let o="";if(i instanceof u){if(i.isNaN()?o="NaN":i.isFinite()||(o=i.isPositive()?"+Infinity":"-Infinity"),!o){if(a&&Ue(i)&&i.precision()<15)return i.toNumber();o=i.isInteger()&&i.e<i.precision()+4?i.toFixed(0):yi(e,i.toJSON())}return e.jsonSerializationOptions.metadata.includes("latex")&&(t.latex=null!==(n=t.latex)&&void 0!==n?n:e.serialize({num:o})),t.latex?{num:o,latex:t.latex}:{num:o}}if(i instanceof c.exports.Complex)return i.isInfinite()?vi(e,"ComplexInfinity",t):i.isNaN()?(o="NaN",e.jsonSerializationOptions.metadata.includes("latex")&&(t.latex=null!==(r=t.latex)&&void 0!==r?r:e.serialize({num:o})),t.latex?{num:o,latex:t.latex}:{num:o}):pi(e,"Complex",[e.number(i.re),e.number(i.im)],Object.assign(Object.assign({},t),{wikidata:"Q11567"}));if(Array.isArray(i))return t.latex||t.wikidata||e.jsonSerializationOptions.metadata.includes("latex")||!e.jsonSerializationOptions.shorthands.includes("function")||!e.jsonSerializationOptions.shorthands.includes("number")?pi(e,"Rational",[e.number(i[0]),e.number(i[1])],t):["Rational",i[0],i[1]];if(Number.isNaN(i)&&(o="NaN"),!Number.isFinite(i)&&i>0&&(o="+Infinity"),!Number.isFinite(i)&&i<0&&(o="-Infinity"),!o){if(a)return i;o=yi(e,i.toString())}return e.jsonSerializationOptions.metadata.includes("latex")&&(t.latex=null!==(s=t.latex)&&void 0!==s?s:e.serialize({num:o})),t.latex?{num:o,latex:t.latex}:{num:o}}function yi(e,i){var t;if(!e.jsonSerializationOptions.repeatingDecimal)return i;let[n,r,s,a]=null!==(t=i.match(/^(.*)\.([0-9]+)([e|E][-+]?[0-9]+)?$/))&&void 0!==t?t:[];if(!s)return i;const o=s[s.length-1];s=s.slice(0,-1);let l="";for(let e=0;e<s.length-16;e++){l=s.substring(0,e);for(let t=0;t<=16;t++){const n=s.substring(e,e+t+1),u=Math.floor((s.length-l.length)/n.length);if(u>1&&(l+n.repeat(u+1)).startsWith(s))return"0"===n?"0"===o?r+"."+l+(null!=a?a:""):i:r+"."+l+"("+n+")"+(null!=a?a:"")}}return i}class xi extends Ge{constructor(e,i,t){super(e,t),this._value=new Map,this._isCanonical=!1;for(const t of Object.keys(i))this._value.set(t,e.box(i[t]));e._register(this)}_purge(){for(const[e,i]of this._value)i._purge()}get hash(){let e=ai("Dictionary");for(const[i,t]of this._value)e^=ai(i)^t.hash;return e}get complexity(){return 97}get head(){return"Dictionary"}get isPure(){return!1}getKey(e){return this._value.get(e)}hasKey(e){return this._value.has(e)}get keys(){return this._value.keys()}get keysCount(){return this._value.size}has(e){for(const[i,t]of this._value)if(t.has(e))return!0;return!1}get domain(){return this.engine.domain("Collection")}get json(){if(this.engine.jsonSerializationOptions.shorthands.includes("dictionary")){const e={};for(const i of this._value.keys())e[i]=this._value.get(i).json;return{dict:e}}const e=[];for(const i of this._value.keys())e.push(this.engine._fn("KeyValuePair",[this.engine.string(i),this._value.get(i)]));return pi(this.engine,"Dictionary",e,{latex:this._latex})}isSame(e){if(this===e)return!0;if(!(e instanceof xi))return!1;if(this._value.size!==e._value.size)return!1;for(const[i,t]of this._value){const n=e.getKey(i);if(!n||!t.isSame(n))return!1}return!0}match(e,i){if(!(e instanceof xi))return null;if(this._value.size!==e._value.size)return null;let t={};for(const[i,n]of this._value){const r=e.getKey(i);if(!r)return null;const s=n.match(r);if(null===s)return null;t=Object.assign(Object.assign({},t),s)}return t}isEqual(e){if(this===e)return!0;if(!(e instanceof xi))return!1;if(!e.keys||this._value.size!==e._value.size)return!1;for(const[i,t]of this._value){const n=e.getKey(i);if(!n||!t.isEqual(n))return!1}return!0}apply(e,i){const t={};for(const i of this.keys)t[i]=this.engine.box(e(this.getKey(i)));return i?this.engine.fn(i,[{dict:t}]):new xi(this.engine,t)}evaluate(e){return this.apply((i=>{var t;return null!==(t=i.evaluate(e))&&void 0!==t?t:i}))}get isCanonical(){return this._isCanonical}set isCanonical(e){this._isCanonical=e}get canonical(){if(this.isCanonical)return this;const e=this.apply((e=>e.canonical));return e.isCanonical=!0,e}simplify(e){var i;return null===(i=null==e?void 0:e.recursive)||void 0===i||i?this.apply((i=>{var t;return null!==(t=i.simplify(e))&&void 0!==t?t:i})):this}N(e){return this.apply((i=>i.N(e)))}replace(e,i){let t=0;const n={};for(const r of this.keys){const s=this.getKey(r),a=s.replace(e,i);null!==a&&(t+=1),n[r]=null!=a?a:s}return 0===t?null:new xi(this.engine,n)}subs(e){const i={};for(const t of this.keys)i[t]=this.getKey(t).subs(e);return new xi(this.engine,i)}}function Ni(e,i){var t;const n=new Set;for(const[r,s,a]of i){let i=e.pattern(r);const o={};for(const t of ni(i))o[t]=e.symbol("_"+t);let l;i=i.subs(o);const u=ii(null==a?void 0:a.condition);if(u){const i=e.parse(u).subs(o);l=e=>{var t;return"True"===(null===(t=i.subs(e).value)||void 0===t?void 0:t.symbol)}}else l=null==a?void 0:a.condition;const c=ei(s)?e.parse(s):e.box(s);c&&n.add([i,c.subs(o),null!==(t=null==a?void 0:a.priority)&&void 0!==t?t:0,l])}return n}function _i([e,i,t,n],r,s){const a=e.match(r,s);return null===a?null:"function"!=typeof n||n(a)?i.subs(a):null}function wi(e,i,t){var n,r;const s=null!==(n=null==t?void 0:t.iterationLimit)&&void 0!==n?n:1;let a=0;const o=null!==(r=null==t?void 0:t.once)&&void 0!==r&&r;let l=!1,u=!1;try{for(;!l&&a<s;){l=!0;for(const n of i){const i=_i(n,e,t);if(null!==i&&i!==e){if(o)return i;l=!1,u=!0,e=i}}a+=1}}catch(e){}return u?e:null}const Si=[];function Ei(e,i){if(null==i)return e;if(e===i)return e;const t=e.engine,n=t.box(i);return t.costFunction(n)<=1.7*t.costFunction(e)?n:e}class Ii extends Ge{constructor(e,i,t,n){var r;super(e,n),this._head="string"==typeof i?i:null!==(r=i.symbol)&&void 0!==r?r:i,this._ops=t,"string"==typeof this._head&&(this._def=e.getFunctionDefinition(this._head,null==n?void 0:n.wikidata)),this._isCanonical=!1,e._register(this)}get hash(){if(void 0!==this._hash)return this._hash;let e=0;for(const i of this._ops)e=e<<1^i.hash|0;return e="string"==typeof this._head?e^ai(this._head)|0:e^this._head.hash|0,this._hash=e,e}_purge(){"string"!=typeof this._head&&this._head._purge();for(const e of this._ops)e._purge();this._value&&this._value._purge(),this._numericValue&&this._numericValue._purge()}get wikidata(){var e,i,t;return null!==(t=null!==(e=this._wikidata)&&void 0!==e?e:null===(i=this._def)||void 0===i?void 0:i.wikidata)&&void 0!==t?t:""}get description(){return this._def&&this._def.description?"string"==typeof this._def.description?[this._def.description]:this._def.description:[]}get url(){var e,i;return null!==(i=null===(e=this._def)||void 0===e?void 0:e.url)&&void 0!==i?i:""}get complexity(){var e,i;return null!==(i=null===(e=this._def)||void 0===e?void 0:e.complexity)&&void 0!==i?i:oi}get head(){return this._head}get value(){if(this.isPure)return this._value||(this._value=this.evaluate()),this._value}get numericValue(){if(!this.isPure)return;if(this._numericValue)return this._numericValue;const e=this.N();return this._numericValue=e.isLiteral?e:void 0,this._numericValue}get isPure(){var e;if(void 0!==this._isPure)return this._isPure;let i;return void 0!==(null===(e=this._def)||void 0===e?void 0:e.pure)&&(i=this._def.pure),!1!==i&&(i=this._ops.every((e=>e.isPure))),this._isPure=i,i}get isLiteral(){return!1}get ops(){return this._ops}get nops(){return this._ops.length}get op1(){var e;return null!==(e=this._ops[0])&&void 0!==e?e:this.engine.symbol("Missing")}get op2(){var e;return null!==(e=this._ops[1])&&void 0!==e?e:this.engine.symbol("Missing")}get op3(){var e;return null!==(e=this._ops[2])&&void 0!==e?e:this.engine.symbol("Missing")}get functionDefinition(){return this._def}_repairDefinition(){if("string"==typeof this._head){if("_"===this._head[0])return;this._def=this.engine.getFunctionDefinition(this._head,this._wikidata),this._def&&(this._head=this._def.name)}}get domain(){var e;const i=this._def;if(!i)return this.engine.domain("Anything");if("function"==typeof i.evalDomain){const e=i.evalDomain(this.engine,this._ops);return"string"==typeof e?this.engine.domain(e):null!=e?e:this.engine.domain("Nothing")}return null!==(e=i.domain)&&void 0!==e?e:i.numeric?this.engine.domain("Number"):this.engine.domain("Nothing")}isLess(e){if(e.isZero){const e=this.sgn;if(null===e)return!1;if(void 0!==e)return e<0}}isLessEqual(e){if(e.isZero){const e=this.sgn;if(null===e)return!1;if(void 0!==e)return e<=0}}isGreater(e){if(e.isZero){const e=this.sgn;if(null===e)return!1;if(void 0!==e)return e>0}}isGreaterEqual(e){if(e.isZero){const e=this.sgn;if(null===e)return!1;if(void 0!==e)return e>=0}}get isZero(){const e=this.sgn;return null!==e&&("number"==typeof e?0===e:void 0)}get isNotZero(){const e=this.sgn;return null!==e&&("number"==typeof e?0!==e:void 0)}get isOne(){}get isNegativeOne(){}get isPositive(){const e=this.sgn;return null!==e&&("number"==typeof e?0!==e:void 0)}get isNonPositive(){const e=this.sgn;return null!==e&&("number"==typeof e?e<=0:void 0)}get isNegative(){const e=this.sgn;return null!==e&&("number"==typeof e?e<0:void 0)}get isNonNegative(){const e=this.sgn;return null!==e&&("number"==typeof e?e>=0:void 0)}get isNumber(){return this.domain.isSubsetOf("Number")}get isInteger(){return this.domain.isSubsetOf("Integer")}get isRational(){return this.domain.isSubsetOf("RationalNumber")}get isAlgebraic(){return this.domain.isSubsetOf("AlgebraicNumber")}get isReal(){return this.domain.isSubsetOf("RealNumber")}get isExtendedReal(){return this.domain.isSubsetOf("ExtendedRealNumber")}get isComplex(){return this.domain.isSubsetOf("ComplexNumber")}get isImaginary(){return this.domain.isSubsetOf("ImaginaryNumber")}get json(){return this._isCanonical?function(e,i,t,n){var r,s;const a=e.jsonSerializationOptions.exclude;if("Add"===i&&2===t.length&&!a.includes("Subtract")){const i=t[0].asSmallInteger;if(null!==i&&i<0)return pi(e,"Subtract",[t[1],e.number(-i)],n);if("Negate"===t[0].head)return pi(e,"Subtract",[t[1],t[0].op1],n)}if("Divide"===i&&e.jsonSerializationOptions.exclude.includes("Divide"))return pi(e,"Multiply",[t[0],e._fn("Power",[t[1],e.NEGATIVE_ONE])],n);if("Multiply"===i&&!e.jsonSerializationOptions.exclude.includes("Divide")){const i=new hi(e,t).asRationalExpression();if("Divide"===i.head)return pi(e,i.head,i.ops,n)}if("Power"===i){if(!a.includes("Exp")&&"ExponentialE"===(null===(r=t[0])||void 0===r?void 0:r.symbol))return pi(e,"Exp",[t[1]],n);if(null===(s=t[1])||void 0===s?void 0:s.isLiteral){const i=t[1].asSmallInteger;if(!a.includes("Square")&&2===i)return pi(e,"Square",[t[0]],n);if(!e.jsonSerializationOptions.exclude.includes("Divide")){if(-1===i)return pi(e,"Divide",[e.ONE,t[0]],n);if(null!==i&&i<0)return pi(e,"Divide",[e.ONE,e.power(t[0],-i)],n)}const[r,s]=t[1].rationalValue;if(1===r){if(!a.includes("Sqrt")&&2===s)return pi(e,"Sqrt",[t[0]],n);if(!a.includes("Root"))return pi(e,"Root",[t[0],e.number(s)],n)}if(-1===r){if(!a.includes("Sqrt")&&2===s)return pi(e,"Divide",[e.ONE,e._fn("Sqrt",[t[0]])],n);if(!a.includes("Root"))return pi(e,"Divide",[e.ONE,e._fn("Root",[t[0],e.number(s)])],n)}}}return pi(e,i,t,n)}(this.engine,this._head,this._ops,{latex:this._latex,wikidata:this._wikidata}):pi(this.engine,this._head,this._ops,{latex:this._latex,wikidata:this._wikidata})}has(e){if("string"==typeof this._head)if("string"==typeof e){if(this._head===e)return!0}else if(e.includes(this._head))return!0;for(const i of this._ops)if(i.has(e))return!0;return!1}isSame(e){if(this===e)return!0;if(!(e instanceof Ii))return!1;if(this.nops!==e.nops)return!1;if("string"==typeof this.head){if(this.head!==e.head)return!1}else{if("string"==typeof e.head)return!1;if(!e.head||!this.head.isSame(e.head))return!1}const i=this._ops,t=e._ops;for(let e=0;e<i.length;e++)if(!i[e].isSame(t[e]))return!1;return!0}match(e,i){if(!(e instanceof Ii))return null;let t={};if("string"==typeof this.head){if(this.head!==e.head)return null}else{if("string"==typeof e.head)return null;{if(!e.head)return null;const n=this.head.match(e.head,i);if(null===n)return null;t=Object.assign(Object.assign({},t),n)}}const n=this._ops,r=e._ops;for(let e=0;e<n.length;e++){const s=n[e].match(r[e],i);if(null===s)return null;t=Object.assign(Object.assign({},t),s)}return t}isEqual(e){var i,t;if(!this.isCanonical)return this.canonical.isEqual(e);if((e=e.canonical).isNumber&&this.isNumber){const i=this.engine,t=i.add([this,i.negate(e)]).N();return!!t.isZero||null!==t.asFloat&&0===i.chop(t.asFloat)||this.evaluate().isSame(e.evaluate())}return(null===(i=this._def)||void 0===i?void 0:i.relationalOperator)&&(null===(t=e.functionDefinition)||void 0===t?void 0:t.relationalOperator)?this.evaluate().isSame(e.evaluate()):this.isSame(e)}get sgn(){var e,i,t,n,r,s,a,o;const l=this.head;if("Negate"===l){const i=null===(e=this._ops[0])||void 0===e?void 0:e.sgn;if(void 0===i)return;return null===i?null:0===i?0:i>0?-1:1}if("Multiply"===l){const e=this._ops.reduce(((e,i)=>{var t;return e*(null!==(t=i.sgn)&&void 0!==t?t:NaN)}),1);return isNaN(e)?null:e>0?1:e<0?-1:0}if("Add"===l){let e=0,i=0,t=0;const n=this._ops.length;for(const n of this._ops){const r=n.sgn;if(null==r)break;0===r&&(t+=1),r>0&&(e+=1),r<0&&(i+=1)}return t===n?0:e===n?1:i===n?-1:null}if("Divide"===l){const e=null===(i=this._ops[0])||void 0===i?void 0:i.sgn,n=null===(t=this._ops[1])||void 0===t?void 0:t.sgn;return null===e||null===n||void 0===e||void 0===n?null:0===e?0:e>0&&n>0||e<0&&n<0?1:-1}return"Square"===l?(null===(n=this._ops[0])||void 0===n?void 0:n.isImaginary)?-1:(null===(r=this._ops[0])||void 0===r?void 0:r.isZero)?0:1:"Abs"===l?(null===(s=this._ops[0])||void 0===s?void 0:s.isZero)?0:1:"Sqrt"===l?(null===(a=this._ops[0])||void 0===a?void 0:a.isZero)?0:(null===(o=this._ops[0])||void 0===o?void 0:o.isImaginary)?null:1:null}*map(e){let i=0;for(;i<this._ops.length;)yield e(this._ops[i++])}get isCanonical(){return this._isCanonical}set isCanonical(e){this._isCanonical=e}get canonical(){var e,i,t,n,r,s,a;if(this.isCanonical)return this;let o=(null===(e=this._def)||void 0===e?void 0:e.associative)&&null!==(i=Ye(this._ops,this._def.name))&&void 0!==i?i:this._ops;if(o=Mi(o,null!==(n=null===(t=this._def)||void 0===t?void 0:t.hold)&&void 0!==n?n:"none",(e=>e.canonical)),(null===(r=this._def)||void 0===r?void 0:r.associative)&&(o=null!==(s=Ye(o,this._def.name))&&void 0!==s?s:o),null===(a=this._def)||void 0===a?void 0:a.canonical)return this._def.canonical(this.engine,o);if(!this._def)return this.engine._fn(this._head,o);if(1===o.length&&o[0].head===this._head)if(this._def.idempotent)o=o[0].ops;else if(this._def.involution)return o[0].op1;return o.length>1&&!0===this._def.commutative&&(o=o.sort(li)),this.engine._fn(this._head,o)}apply(e,i){const t=null!=i?i:this.head;let n=!1;const r=[];for(const i of this._ops){const t=e(i);i!==t&&(n=!0),r.push(this.engine.box(t))}return n||this.head!==t?this.engine.fn(t,r):this}simplify(e){var i,t,n,r;if(!this.isCanonical)return this.canonical.simplify(e);const s=this._def;let a,o=this._ops;if(s?(s.associative&&(o=null!==(i=Ye(o,s.name))&&void 0!==i?i:o),o=Mi(o,s.hold,(i=>i.simplify(e))),s.associative&&(o=null!==(t=Ye(o,s.name))&&void 0!==t?t:o)):o=Mi(this._ops,"none",(i=>i.simplify(e))),"string"!=typeof this._head)return ki(this._head,o).simplify(e);s&&(a=null===(n=s.simplify)||void 0===n?void 0:n.call(s,this.engine,o)),a||(a=this.engine.fn(this._head,o).canonical);const l=null!==(r=null==e?void 0:e.rules)&&void 0!==r?r:this.engine.cache("standard-simplification-rules",(()=>Ni(this.engine,Si)),(e=>{for(const[i,t,n,r]of e)i._purge(),t._purge();return e}));let u=0,c=!1;do{const e=a.replace(l);null!==e?(a=Ei(e,a),a===e&&(c=!0)):c=!0,u+=1}while(!c&&u<this.engine.iterationLimit);return a}evaluate(e){var i,t,n;if(!this.isCanonical)return this.canonical.evaluate(e);const r=this._def;let s;return r?(s=Mi(r.associative&&null!==(i=Ye(this._ops,r.name))&&void 0!==i?i:this._ops,r.hold,(i=>i.evaluate(e))),r.associative&&(s=null!==(t=Ye(s,r.name))&&void 0!==t?t:s)):s=Mi(this._ops,"none",(i=>i.evaluate(e))),"string"!=typeof this._head?ki(this._head,s).evaluate(e):r?void 0===r.evaluate?this.engine.fn(this._head,s).canonical:"function"!=typeof r.evaluate?ki(r.evaluate,s).canonical:null!==(n=r.evaluate(this.engine,s))&&void 0!==n?n:this.engine.fn(this._head,s).canonical:this.engine.fn(this._head,s).canonical}N(e){var i,t,n,r;if(!this.isCanonical)return this.canonical.N(e);const s=this._def;let a;if(s?(a=Mi(s.associative&&null!==(i=Ye(this._ops,s.name))&&void 0!==i?i:this._ops,s.hold,(i=>i.N(e))),s.associative&&(a=null!==(t=Ye(a,s.name))&&void 0!==t?t:a)):a=Mi(this._ops,"none",(i=>i.N(e))),"string"!=typeof this._head)return ki(this._head,a).N(e);if(!s)return this.engine.fn(this._head,a).canonical;const o=null!==(r=null===(n=s.N)||void 0===n?void 0:n.call(s,this.engine,a))&&void 0!==r?r:this.engine.fn(this._head,a).evaluate();if(o.isLiteral){if(!si(this.engine)&&o.complexValue)return this.engine.NAN;if(!ri(this.engine)&&o.decimalValue)return this.engine.number(o.decimalValue.toNumber())}return o}solve(e){return null}replace(e,i){return wi(this,e,i)}subs(e){return this.engine.fn(this._head,this._ops.map((i=>i.subs(e)))).canonical}}function ki(e,i){const t={__:e.engine.tuple(i),"_#":e.engine.number(i.length)};let n=1;for(const e of i)t["_"+n++]=e;return t._=t._1,e.subs(t)}function Mi(e,i,t){if(0===e.length)return[];const n=[];for(let r=0;r<e.length;r++)if("Nothing"!==e[r].symbol)if("Hold"===e[r].head)n.push(e[r].op1);else if("ReleaseHold"===e[r].head){const i=t(e[r].op1);null!==i&&"Nothing"!==i.symbol&&n.push(i)}else if(Ai(e,i,r)){const i=t(e[r]);null!==i&&"Nothing"!==i.symbol&&n.push(i)}else n.push(e[r]);return n}function Ai(e,i,t){return"all"!==i&&("none"===i||("first"===i?0!==t:"rest"===i?0===t:"last"===i?t!==e.length-1:"most"===i&&t===e.length-1))}function Oi(e){if("number"==typeof e&&!isNaN(e))return isFinite(e)?0===e?"NonNegativeInteger":Number.isInteger(e)?e>0?"PositiveInteger":e<0?"NegativeInteger":"Integer":e>0?"PositiveNumber":e<0?"NegativeNumber":"RealNumber":"ExtendedRealNumber";if(e instanceof l.exports.Decimal)return e.isNaN()?"Number":e.isFinite()?e.isZero()?"NonNegativeInteger":e.isInteger()?e.gt(0)?"PositiveInteger":e.lt(0)?"NegativeInteger":"Integer":e.gt(0)?"PositiveNumber":e.lt(0)?"NegativeNumber":"RealNumber":"ExtendedRealNumber";if(e instanceof c.exports.Complex){const i=e;return 0===i.im?Oi(i.re):0===i.re&&0!==i.im?"ImaginaryNumber":"ComplexNumber"}if(Array.isArray(e)){const[i,t]=ze(e);if(!Number.isNaN(i)&&!Number.isNaN(t))return 1!==t?"RationalNumber":Oi(i)}return"Number"}function Di(e){if(!Number.isInteger(e)||!Number.isFinite(e)||Number.isNaN(e)||e<=1)return!1;if(e<=7919)return Fe.has(e);for(const i of Fe)if(e%i==0)return!1;return e>=0x3ffffffffffe5?!!function(e,i){let t=0,n=e-1;for(;n%2==0;)n/=2,++t;e:do{let i=Math.pow(2+Math.floor(Math.random()*(e-3)),n)%e;if(1!==i&&i!==e-1){for(let n=t-1;n--;){if(i=i*i%e,1===i)return!1;if(i===e-1)continue e}return!1}}while(--i);return!0}(e,30)&&void 0:e===function(e){if(1===e)return 1;if(e%2==0)return 2;if(e%3==0)return 3;if(e%5==0)return 5;const i=Math.floor(Math.sqrt(e));let t=7;for(;t<=i;){if(e%t==0)return t;if(e%(t+4)==0)return t+4;if(e%(t+6)==0)return t+6;if(e%(t+10)==0)return t+10;if(e%(t+12)==0)return t+12;if(e%(t+16)==0)return t+16;if(e%(t+22)==0)return t+22;if(e%(t+24)==0)return t+24;t+=30}return e}(e)}class Ci extends Ge{constructor(e,i,t){if(super(e,t),this._isCanonical=!0,i instanceof c.exports.Complex)Number.isNaN(i.re)||Number.isNaN(i.im)?this._value=NaN:0===e.chop(i.im)?this._value=i.re:this._value=si(e)?i:NaN;else if(Array.isArray(i)){let[e,t]=i;t<0&&([e,t]=[-e,-t]),1===t?this._value=e:0===e?this._value=0===t?NaN:e:(this._value=[e,t],this._isCanonical=1===Te(e,t))}else i instanceof l.exports.Decimal?this._value=ri(e)?i:i.toNumber():"number"==typeof i?this._value=i:ri(e)?this._value=e.decimal(i):"string"==typeof i&&(this._value=Number.parseFloat(i));"number"==typeof this._value?Number.isInteger(this._value)?this._head="Integer":this._head="Number":this._value instanceof c.exports.Complex?this._head="ComplexNumber":Array.isArray(this._value)?this._head="RationalNumber":this._value instanceof l.exports.Decimal?this._value.isInteger()?this._head="Integer":this._head="RealNumber":this._head="Number",e._register(this)}get hash(){if(void 0!==this._hash)return this._hash;let e=0;return e="number"==typeof this._value?ai(this._value.toString()):this._value instanceof c.exports.Complex?ai(this._value.re.toString()+" +i "+this._value.im.toString()):this._value instanceof l.exports.Decimal?ai(this._value.toString()):ai(this._value[0].toString()+" / "+this._value[1].toString()),this._hash=e,e}get head(){return this._head}get isPure(){return!0}get isLiteral(){return!0}get isCanonical(){return this._isCanonical}set isCanonical(e){this._isCanonical=e}get numericValue(){if(!Array.isArray(this._value))return this;const[e,i]=this._value,t=this.engine;return ri(t)?new Ci(t,t.decimal(e).div(i)):new Ci(t,e/i)}get machineValue(){return"number"==typeof this._value?this._value:null}get decimalValue(){return this._value instanceof l.exports.Decimal?this._value:null}get complexValue(){return this._value instanceof c.exports.Complex?this._value:null}get rationalValue(){return Array.isArray(this._value)?this._value:[null,null]}get asFloat(){if("number"==typeof this._value)return this._value;if(this._value instanceof l.exports.Decimal){if(this._value.isNaN())return NaN;if(!this._value.isFinite())return this._value.isPositive()?1/0:-1/0;if(Ue(this._value))return this._value.toNumber()}return Array.isArray(this._value)?this._value[0]/this._value[1]:null}get asSmallInteger(){if("number"==typeof this._value)return Number.isInteger(this._value)&&this._value>=-1e6&&this._value<=Pe?this._value:null;if(this._value instanceof l.exports.Decimal)return this._value.isInteger()&&this._value.gte(-1e6)&&this._value.lte(Pe)?this._value.toNumber():null;if(Array.isArray(this._value)){const e=this._value[0]/this._value[1];return Number.isInteger(e)&&e>=-1e6&&e<=Pe?e:null}return 0===this.engine.chop(this._value.im)&&Number.isInteger(this._value.re)&&this._value.re>=-1e6&&this._value.re<=Pe?this._value.re:null}get asRational(){const[e,i]=this.rationalValue;if(null!==e&&null!==i)return[e,i];const t=this.asSmallInteger;return null!==t?[t,1]:[null,null]}get domain(){return void 0===this._domain&&(this._domain=this.engine.domain(Oi(this._value))),this._domain}get json(){return bi(this.engine,this._value,{latex:this._latex})}get sgn(){if(this.isZero)return 0;if(this._value instanceof c.exports.Complex)return null;if("number"==typeof this._value)return this._value<0?-1:this._value>0?1:null;if(this._value instanceof l.exports.Decimal)return this._value.isNegative()?-1:this._value.isPositive()?1:null;if(Array.isArray(this._value)){const[e,i]=this._value;return 0===e&&0!==i?0:e<0?-1:e>0?1:null}return null}isSame(e){if(this===e)return!0;if(!(e instanceof Ci))return!1;if(Array.isArray(this._value)){if(!Array.isArray(e._value))return!1;const[i,t]=e._value;return this._value[0]===i&&this._value[1]===t}return this._value instanceof l.exports.Decimal?e._value instanceof l.exports.Decimal&&this._value.eq(e._value):this._value instanceof c.exports.Complex?e._value instanceof c.exports.Complex&&this._value.equals(e._value):"number"==typeof this._value&&"number"==typeof e._value&&this._value===e._value}isEqual(e){var i,t;if(this===e)return!0;const n=e.numericValue;if(void 0===n)return!1;if(!(n instanceof Ci))return!1;if(Array.isArray(this._value)){const e=n.asFloat;return null!==e&&0===this.engine.chop(this._value[0]/this._value[1]-e)}if(this._value instanceof l.exports.Decimal)return 0===this.engine.chop(this._value.sub(null!==(t=null!==(i=n.decimalValue)&&void 0!==i?i:n.asFloat)&&void 0!==t?t:NaN));if(this._value instanceof c.exports.Complex){if(n instanceof c.exports.Complex)return 0===this.engine.chop(n.re-this._value.re)&&0===this.engine.chop(n.im-this._value.im);if(0!==this._value.im)return!1}const r=this.asFloat,s=n.asFloat;return null!==r&&null!==s&&0===this.engine.chop(s-r)}match(e,i){var t;return this.isEqualWithTolerance(e,null!==(t=null==i?void 0:i.numericTolerance)&&void 0!==t?t:0)?{}:null}isEqualWithTolerance(e,i){var t,n;if(this===e)return!0;if(!(e instanceof Ci))return!1;if(Array.isArray(this._value)){const t=e.asFloat;return null!==t&&Math.abs(this._value[0]/this._value[1]-t)<=i}if(this._value instanceof l.exports.Decimal)return this._value.sub(null!==(n=null!==(t=e.decimalValue)&&void 0!==t?t:e.asFloat)&&void 0!==n?n:NaN).abs().lte(i);if(this._value instanceof c.exports.Complex){if(e._value instanceof c.exports.Complex)return Math.abs(e._value.re-this._value.re)<=i&&Math.abs(e._value.im-this._value.im)<=i;if(0!==this._value.im)return!1}const r=this.asFloat,s=e.asFloat;return null!==r&&null!==s&&Math.abs(s-r)<=i}isLess(e){if(e=e.N(),!this.isImaginary&&!e.isImaginary){if("number"==typeof this._value){const i=e.machineValue;if(null!==i)return this._value<i;const t=e.decimalValue;if(null!==t)return t.greaterThanOrEqualTo(this._value);const[n,r]=e.rationalValue;return null!==n&&null!==r&&this._value*r<n}if(this._value instanceof l.exports.Decimal){const i=e.machineValue;if(null!==i)return this._value.lt(i);const t=e.decimalValue;if(null!==t)return this._value.lt(t);const[n,r]=e.rationalValue;return null!==n&&null!==r&&this._value.mul(r).lt(n)}if(Array.isArray(this._value)){const[i,t]=this._value;if("number"==typeof e)return i<e*t;const[n,r]=e.rationalValue;if(null!==n&&null!==r)return i*r<n*t;const s=e.decimalValue;return null!==s&&s.mul(i).lt(t)}this._value,c.exports.Complex}}isLessEqual(e){e=e.N();const i=this.isLess(e);if(void 0===i)return;const t=this.isEqual(e);return void 0!==t?i||t:void 0}isGreater(e){const i=this.isLess(e);if(void 0!==i)return!i}isGreaterEqual(e){e=e.N();const i=this.isLess(e);if(void 0===i)return;const t=this.isEqual(e);return void 0!==t?!i||t:void 0}get isPositive(){const e=this.sgn;if(null!=e)return e>0}get isNonNegative(){const e=this.sgn;if(null!=e)return e>=0}get isNegative(){const e=this.sgn;if(null!=e)return e<0}get isNonPositive(){const e=this.sgn;if(null!=e)return e<=0}get isZero(){return!Array.isArray(this._value)&&0===this.engine.chop(this._value)}get isNotZero(){return!!Array.isArray(this._value)||0!==this.engine.chop(this._value)}get isOne(){if("number"==typeof this._value)return 1===this._value;if(this._value instanceof l.exports.Decimal)return this._value.equals(this.engine.DECIMAL_ONE);if(Array.isArray(this._value)){const[e,i]=this._value;return 0!==i&&e===i}return this._value.equals(1)}get isNegativeOne(){if("number"==typeof this._value)return-1===this._value;if(this._value instanceof l.exports.Decimal)return this._value.equals(this.engine.DECIMAL_NEGATIVE_ONE);if(Array.isArray(this._value)){const[e,i]=this._value;return e<0&&0!==i&&-e===i}return this._value.equals(-1)}get isOdd(){return!(!this.isOne&&!this.isNegativeOne)||!this.isZero&&!!this.isInteger&&("number"==typeof this._value?this._value%2!=0:this._value instanceof l.exports.Decimal?!this._value.mod(2).isZero():void 0)}get isEven(){return!this.isOne&&!this.isNegativeOne&&(!!this.isZero||!!this.isInteger&&("number"==typeof this._value?this._value%2==0:this._value instanceof l.exports.Decimal?this._value.mod(2).isZero():void 0))}get isPrime(){return!(!this.isInteger||!this.isFinite||this.isNonPositive||this.isOne||this.isZero)&&("number"==typeof this._value?Di(this._value):void 0)}get isComposite(){return!(!this.isInteger||!this.isFinite||this.isNonPositive||this.isOne||this.isZero)&&("number"==typeof this._value?!Di(this._value):void 0)}get isInfinity(){return"number"==typeof this._value?!Number.isFinite(this._value)&&!Number.isNaN(this._value):(this._value instanceof l.exports.Decimal||this._value instanceof c.exports.Complex)&&!this._value.isFinite()&&!this._value.isNaN()}get isNaN(){return"number"==typeof this._value?Number.isNaN(this._value):(this._value instanceof l.exports.Decimal&&this._value.isNaN(),this._value instanceof c.exports.Complex&&this._value.isNaN(),!1)}get isFinite(){return!this.isInfinity&&!isNaN}get isNumber(){return!0}get isInteger(){return"number"==typeof this._value?Number.isInteger(this._value):this._value instanceof l.exports.Decimal&&this._value.isInteger()}get isRational(){return!!Array.isArray(this._value)||this.isInteger}get isAlgebraic(){if(this.isRational)return!0}get isReal(){return!(!this.isFinite||this._value instanceof c.exports.Complex&&0!==this.engine.chop(this._value.im))}get isExtendedReal(){return this.isInfinity||this.isReal}get isComplex(){return!this.isNaN}get isImaginary(){return this._value instanceof c.exports.Complex&&0!==this._value.im}get isExtendedComplex(){return this.isInfinity||!this.isNaN}get canonical(){if(this._isCanonical)return this;if(Array.isArray(this._value)){const[e,i]=ze(this._value);return Number.isNaN(e)||Number.isNaN(i)?this.engine.NAN:1===i?this.engine.number(e):0===i?0!==e&&Number.isFinite(e)?e<0?this.engine.NEGATIVE_INFINITY:this.engine.POSITIVE_INFINITY:this.engine.NAN:0===e?this.engine.ZERO:this.engine.number([e,i])}return this}simplify(e){return this.canonical}N(e){if(Array.isArray(this._value)){const e=this.engine,[i,t]=this._value;return ri(e)?e.number(e.decimal(i).div(t)):e.number(i/t)}return this}}class qi extends Ge{constructor(e,i,t){super(e,t),this._string=i.normalize(),e._register(this)}get hash(){return ai("String"+this._string)}get json(){return e=this.engine,i=i=this._string,e.jsonSerializationOptions.shorthands.includes("string")?`'${i}'`:{str:i};var e,i}get head(){return"String"}get isPure(){return!0}get isLiteral(){return!0}get isCanonical(){return!0}set isCanonical(e){}get domain(){return this.engine.domain("String")}get complexity(){return 19}get string(){return this._string}isEqual(e){return e.string===this._string}isSame(e){return e.string===this._string}match(e,i){return e instanceof qi&&this._string===e._string?{}:null}}function Vi(e){return Object.fromEntries(Object.entries(e).filter((([e,i])=>void 0!==i)))}function Pi(e){const i=Object.assign({},e);return e.zero||e.one||e.negativeOne?(i.number=!0,i.integer=!0,i.rational=!0,i.algebraic=!0,i.real=!0,i.extendedReal=!0,i.complex=!0,i.extendedComplex=!0,i.imaginary=!1,i.positive=!1,i.nonPositive=!0,i.negative=!1,i.nonNegative=!0,i.zero=e.zero,i.notZero=!e.zero,i.one=e.one,i.negativeOne=e.negativeOne,i.negativeOne=!1,i.infinity=!1,i.NaN=!1,i.finite=!0,i.even=e.one,i.odd=!e.one,i.prime=!1,i.composite=!1,i):(!0===i.notZero&&(i.imaginary||(i.real=!0),i.zero=!1),(i.positive||i.nonNegative)&&(i.negativeOne=!1),i.positive?(i.nonPositive=!1,i.negative=!1,i.nonNegative=!0):i.nonPositive?(i.positive=!1,i.negative=i.notZero,i.nonNegative=!i.zero):i.negative?(i.positive=!1,i.nonPositive=i.notZero,i.nonNegative=!1):i.nonNegative&&(i.positive=i.notZero,i.nonPositive=!i.zero,i.negative=!1),(i.positive||i.negative||i.nonPositive||i.nonNegative)&&(i.number=!0,i.finite?i.real=!0:i.finite||(i.complex=!0),i.imaginary=!1),i.infinity&&(i.finite=!1,i.NaN=!1),i.finite&&(i.number=!0,i.complex=!0,i.infinity=!1,i.NaN=!1),e.even&&(i.odd=!1),e.odd&&(i.even=!1),i.integer&&(i.rational=!0),i.rational&&(i.algebraic=!0),i.algebraic&&(i.real=!0),i.extendedReal&&(i.real=!0),i.real&&(i.complex=!0),i.imaginary&&(i.complex=!0),i.extendedComplex&&(i.complex=!0),i.complex&&(i.number=!0),i.real&&i.infinity&&(i.extendedReal=!0),i.complex&&i.infinity&&(i.extendedComplex=!0),(i.even||i.infinity||i.NaN||i.negative||i.imaginary||!1===i.integer)&&(i.prime=!1),i.number&&i.prime&&(i.composite=!1),i)}function Fi(e){if(!e)return{};const i=e.symbol,t={};return e.isSubsetOf("Number")?(t.number=!0,"Integer"===i&&(t.integer=!0),"RationalNumber"===i&&(t.rational=!0),"AlgebraicNumber"===i&&(t.algebraic=!0),"TranscendentalNumber"===i&&(t.algebraic=!1,t.real=!0),"ExtendedRealNumber"===i&&(t.extendedReal=!0),"RealNumber"===i&&(t.real=!0),"ImaginaryNumber"===i&&(t.imaginary=!0),"ExtendedComplexNumber"===i&&(t.extendedComplex=!0),"ComplexNumber"===i&&(t.complex=!0)):(t.number=!1,t.integer=!1,t.rational=!1,t.algebraic=!1,t.real=!1,t.extendedReal=!1,t.complex=!1,t.extendedComplex=!1,t.imaginary=!1,t.positive=!1,t.nonPositive=!1,t.negative=!1,t.nonNegative=!1,t.zero=!1,t.notZero=!1,t.one=!1,t.negativeOne=!1,t.infinity=!1,t.NaN=!1,t.odd=!1,t.even=!1,t.prime=!1,t.composite=!1),Vi(Pi(t))}function Li(e){return Vi({number:(e=e.canonical).isNumber,integer:e.isInteger,rational:e.isRational,algebraic:e.isAlgebraic,real:e.isReal,extendedReal:e.isExtendedReal,complex:e.isComplex,extendedComplex:e.isExtendedComplex,imaginary:e.isImaginary,positive:e.isPositive,nonPositive:e.isNonPositive,negative:e.isNegative,nonNegative:e.isNonNegative,zero:e.isZero,notZero:e.isNotZero,one:e.isOne,negativeOne:e.isNegativeOne,infinity:e.isInfinity,NaN:e.isNaN,finite:e.isFinite,even:e.isEven,odd:e.isOdd,prime:e.isPrime,composite:e.isComposite})}class Ti{constructor(e,i){var t,n;this._engine=e,this._def=i,this.scope=e.context,this.name=i.name,this.constant=null!==(t=i.constant)&&void 0!==t&&t,this.hold=null===(n=i.hold)||void 0===n||n,this._purge()}_purge(){var e,i,t,n;this._value=null===(e=this._value)||void 0===e?void 0:e._purge();const r=this._def,s=Vi({description:r.description,wikidata:r.wikidata,number:r.number,integer:r.integer,rational:r.rational,algebraic:r.algebraic,real:r.real,extendedReal:r.extendedReal,complex:r.complex,zero:r.zero,notZero:r.notZero,one:r.one,negativeOne:r.negativeOne,infinity:r.infinity,NaN:r.NaN,finite:r.finite,even:r.even,odd:r.odd,prime:r.prime,composite:r.composite});if("value"in r&&"number"==typeof r.value){const e=this._engine.number(r.value);let i;const t=r.domain?this._engine.domain(r.domain):void 0;return i=t&&e.domain.isSubsetOf(t)?t:e.domain,this._value=e,this._domain=i,this.setProps(Li(e)),this.setProps(Fi(i)),void this.setProps(s)}let a,o;if(ei(r.value)?a=this._engine.parse(r.value):"function"==typeof r.value?a=this._engine.box(null!==(i=r.value(this._engine))&&void 0!==i?i:"Undefined"):r.value&&(a=this._engine.box(r.value)),!a&&!1===r.hold)throw Error(`Symbol definition "${r.name}": Expected a value "hold=false" `);a=null==a?void 0:a.canonical;const l=r.domain?this._engine.domain(r.domain):void 0;if(o=!l||a&&!a.domain.isSubsetOf(l)?null!==(n=null!==(t=null==a?void 0:a.domain)&&void 0!==t?t:this._engine.defaultDomain)&&void 0!==n?n:this._engine.domain("Anything"):l,!a)return this._value=void 0,this._domain=o,this.setProps(Fi(o)),void this.setProps(s);this._value=a,this._domain=o,this.setProps(Li(a)),this.setProps(Fi(o)),this.setProps(s)}get value(){return this._value}set value(e){if(this.constant)throw Error(`The value of the constant "${this.name}" cannot be changed`);"number"==typeof e&&(e=this._engine.box(e)),this._value=e,e&&this.setProps(Li(e))}get domain(){return this._domain}set domain(e){var i;if(!e)return void(this._domain=void 0);e=this._engine.domain(e);const t=null===(i=this.value)||void 0===i?void 0:i.domain;t&&!t.isSubsetOf(e)&&(e=t),this._domain=e,this.setProps(Fi(e))}updateFlags(e){this.setProps(Pi(e))}setProps(e){e.wikidata&&(this.wikidata=e.wikidata),e.description&&(this.description=e.description),void 0!==e.number&&(this._number=e.number),void 0!==e.integer&&(this._integer=e.integer),void 0!==e.rational&&(this._rational=e.rational),void 0!==e.algebraic&&(this._algebraic=e.algebraic),void 0!==e.real&&(this._real=e.real),void 0!==e.extendedReal&&(this._extendedReal=e.extendedReal),void 0!==e.complex&&(this._complex=e.complex),void 0!==e.extendedComplex&&(this._extendedComplex=e.extendedComplex),void 0!==e.imaginary&&(this._imaginary=e.imaginary),void 0!==e.positive&&(this._positive=e.positive),void 0!==e.nonPositive&&(this._nonPositive=e.nonPositive),void 0!==e.negative&&(this._negative=e.negative),void 0!==e.nonNegative&&(this._nonNegative=e.nonNegative),void 0!==e.zero&&(this._zero=e.zero),void 0!==e.notZero&&(this._notZero=e.notZero),void 0!==e.one&&(this._one=e.one),void 0!==e.negativeOne&&(this._negativeOne=e.negativeOne),void 0!==e.infinity&&(this._infinity=e.infinity),void 0!==e.finite&&(this._finite=e.finite),void 0!==e.NaN&&(this._NaN=e.NaN),void 0!==e.even&&(this._even=e.even),void 0!==e.odd&&(this._odd=e.odd),void 0!==e.prime&&(this._prime=e.prime),void 0!==e.composite&&(this._composite=e.composite)}get number(){return this._number}set number(e){this.updateFlags({number:e})}get integer(){return this._integer}set integer(e){this.updateFlags({integer:e})}get rational(){return this._rational}set rational(e){this.updateFlags({rational:e})}get algebraic(){return this._algebraic}set algebraic(e){this.updateFlags({algebraic:e})}get real(){return this._real}set real(e){this.updateFlags({real:e})}get extendedReal(){return this._extendedReal}set extendedReal(e){this.updateFlags({extendedReal:e})}get complex(){return this._complex}set complex(e){this.updateFlags({complex:e})}get extendedComplex(){return this._extendedComplex}set extendedComplex(e){this.updateFlags({extendedComplex:e})}get imaginary(){return this._imaginary}set imaginary(e){this.updateFlags({imaginary:e})}get positive(){return this._positive}set positive(e){this.updateFlags({positive:e})}get nonPositive(){return this._nonPositive}set nonPositive(e){this.updateFlags({nonPositive:e})}get negative(){return this._negative}set negative(e){this.updateFlags({negative:e})}get nonNegative(){return this._nonNegative}set nonNegative(e){this.updateFlags({nonNegative:e})}get zero(){return this._zero}set zero(e){this.updateFlags({zero:e})}get notZero(){return this._notZero}set notZero(e){this.updateFlags({notZero:e})}get one(){return this._one}set one(e){this.updateFlags({one:e})}get negativeOne(){return this._negativeOne}set negativeOne(e){this.updateFlags({negativeOne:e})}get infinity(){return this._infinity}set infinity(e){this.updateFlags({infinity:e})}get finite(){return this._finite}set finite(e){this.updateFlags({finite:e})}get NaN(){return this._NaN}set NaN(e){this.updateFlags({NaN:e})}get even(){return this._even}set even(e){this.updateFlags({even:e})}get odd(){return this._odd}set odd(e){this.updateFlags({odd:e})}get prime(){var e;if(void 0===this._prime&&(null===(e=this._value)||void 0===e?void 0:e.isNumber))if(!this._value.isInteger||this._value.isNonPositive)this._prime=!1,this._composite=!1;else{const e=this._value.asFloat;null!==e?(this._prime=Di(e),this._composite=!this._prime):(this._prime=void 0,this._composite=void 0)}return this._prime}set prime(e){this.updateFlags({prime:e})}get composite(){if(void 0===this._composite){const e=this.prime;this._composite=void 0===e?void 0:!e}return this._composite}set composite(e){this.updateFlags({composite:e})}}class zi extends Ge{constructor(e,i,t){if(super(e,t),this._name=i.normalize(),n=this._name,/[\u0000-\u0020\u0022\u0060\ufffe\uffff]/.test(n)||/^[\u0021\u0022\u0024-\u002e\u003a\u003f\u0040\u005b\u005d\u005e\u007b\u007d\u007e]$/.test(n[0]))throw Error(`The name "${this._name}" cannot be used as a symbol name`);var n;this._repairDefinition(),e._register(this)}get hash(){return void 0===this._hash&&(this._hash=ai(this._name)),this._hash}_purge(){var e;return null===(e=this._def)||void 0===e?void 0:e._purge()}get isPure(){var e,i,t;return null!==(t=(null===(e=this._def)||void 0===e?void 0:e.constant)&&(null===(i=this._def.value)||void 0===i?void 0:i.isPure))&&void 0!==t&&t}get isCanonical(){return!0}set isCanonical(e){}get wikidata(){var e,i,t;return null!==(t=null!==(e=this._wikidata)&&void 0!==e?e:null===(i=this._def)||void 0===i?void 0:i.wikidata)&&void 0!==t?t:""}get description(){return this._def&&this._def.description?"string"==typeof this._def.description?[this._def.description]:this._def.description:[]}get url(){var e,i;return null!==(i=null===(e=this._def)||void 0===e?void 0:e.url)&&void 0!==i?i:""}get complexity(){return 7}get head(){return"Symbol"}get symbol(){return this._name}get isMissing(){return"Missing"===this._name}get isLiteral(){return!1}get symbolDefinition(){return this._def}_repairDefinition(){if("_"===this._name[0])return;let e;this._wikidata&&(e=this.engine.getSymbolDefinition("",this._wikidata)),e||(e=this.engine.getSymbolDefinition(this._name),e&&e.wikidata&&this._wikidata&&e.wikidata!==this._wikidata&&(e=void 0)),e?(this._name=e.name,this._def=e):null!==this.engine.defaultDomain?(this._def=this.engine.defineSymbol(Object.assign({name:this._name,wikidata:this._wikidata,domain:this.engine.defaultDomain},Fi(this.engine.defaultDomain))),this._name=this._def.name):this._def=void 0}get value(){var e;return null===(e=this._def)||void 0===e?void 0:e.value}set value(e){var i,t;if("_"===this._name[0])throw Error(`The value of the wildcard "${this._name}" cannot be changed`);let n;if(this.engine.forget(this._name),void 0!==e){const t=this.engine.box(e);n=null!==(i=t.value)&&void 0!==i?i:t.evaluate()}this._def?this._def.value=n:this._def=this.engine.defineSymbol({name:this._name,value:n,domain:null!==(t=this.engine.defaultDomain)&&void 0!==t?t:this.engine.domain("Anything")})}get numericValue(){var e,i;return null===(i=null===(e=this._def)||void 0===e?void 0:e.value)||void 0===i?void 0:i.numericValue}get domain(){var e,i;return null!==(i=null===(e=this._def)||void 0===e?void 0:e.domain)&&void 0!==i?i:this.engine.domain("Anything")}set domain(e){if("_"===this._name[0])throw Error(`The domain of the wildcard "${this._name}" cannot be changed`);this._def?this._def.domain=e:this._def=this.engine.defineSymbol(Object.assign({name:this._name,domain:e},Fi(e)))}get json(){return vi(this.engine,this._name,{wikidata:this._wikidata})}get sgn(){var e,i,t,n;const r=null===(e=this.value)||void 0===e?void 0:e.sgn;return void 0!==r?r:!0===(null===(i=this._def)||void 0===i?void 0:i.zero)?0:!0===(null===(t=this._def)||void 0===t?void 0:t.positive)?1:!0===(null===(n=this._def)||void 0===n?void 0:n.negative)?-1:void 0}has(e){return"string"==typeof e?this._name===e:e.includes(this._name)}isSame(e){return e instanceof zi&&this._name===e._name}match(e,i){return e instanceof zi&&this._name===e._name?{}:null}isEqual(e){var i;if(this===e)return!0;if(null!==e.symbol)return e.symbol===this._name;const t=null===(i=this._def)||void 0===i?void 0:i.value;if(t)return t.isEqual(e);if(e.isZero){if(this.isZero)return!0;if(this.isNotZero)return!1}return this.isZero&&e.isNotZero||this.engine.ask(["NotEqual",this,e]).length,!1}isLess(e){if(null!==e.symbol&&e.symbol===this._name)return!1;if(e.isZero){const e=this.sgn;if(null===e)return!1;if(void 0!==e)return e<0}}isLessEqual(e){if(null!==e.symbol&&e.symbol===this._name)return!0;if(e.isZero){const e=this.sgn;if(null===e)return!1;if(void 0!==e)return e<=0}return this.isLess(e)||this.isEqual(e)}isGreater(e){if(null!==e.symbol&&e.symbol===this._name)return!1;if(e.isZero){const e=this.sgn;if(null===e)return!1;if(void 0!==e)return e>0}}isGreaterEqual(e){if(null!==e.symbol&&e.symbol===this._name)return!0;if(e.isZero){const e=this.sgn;if(null===e)return!1;if(void 0!==e)return e>=0}return this.isGreater(e)||this.isEqual(e)}get isZero(){var e,i,t,n;return null!==(i=null===(e=this._def)||void 0===e?void 0:e.zero)&&void 0!==i?i:null===(n=null===(t=this._def)||void 0===t?void 0:t.value)||void 0===n?void 0:n.isZero}get isNotZero(){var e;const i=null===(e=this._def)||void 0===e?void 0:e.notZero;if("boolean"==typeof i)return i;const t=this.sgn;return"number"==typeof t?0!==t:void 0}get isOne(){var e;return null===(e=this._def)||void 0===e?void 0:e.one}get isNegativeOne(){var e;return null===(e=this._def)||void 0===e?void 0:e.negativeOne}get isOdd(){var e;return null===(e=this._def)||void 0===e?void 0:e.odd}get isEven(){var e;return null===(e=this._def)||void 0===e?void 0:e.even}get isPrime(){var e;return null===(e=this._def)||void 0===e?void 0:e.prime}get isComposite(){var e;return null===(e=this._def)||void 0===e?void 0:e.composite}get isInfinity(){var e;return null===(e=this._def)||void 0===e?void 0:e.infinity}get isNaN(){var e;return null===(e=this._def)||void 0===e?void 0:e.NaN}get isPositive(){var e;return null===(e=this._def)||void 0===e?void 0:e.positive}get isNonPositive(){var e;return null===(e=this._def)||void 0===e?void 0:e.nonPositive}get isNegative(){var e;return null===(e=this._def)||void 0===e?void 0:e.negative}get isNonNegative(){var e;return null===(e=this._def)||void 0===e?void 0:e.nonNegative}get isNumber(){var e;return null===(e=this._def)||void 0===e?void 0:e.number}get isInteger(){var e;return null===(e=this._def)||void 0===e?void 0:e.integer}get isRational(){var e;return null===(e=this._def)||void 0===e?void 0:e.rational}get isAlgebraic(){var e;return null===(e=this._def)||void 0===e?void 0:e.rational}get isReal(){var e;return null===(e=this._def)||void 0===e?void 0:e.real}get isExtendedReal(){var e;return null===(e=this._def)||void 0===e?void 0:e.extendedReal}get isComplex(){var e;return null===(e=this._def)||void 0===e?void 0:e.complex}get isImaginary(){var e;return null===(e=this._def)||void 0===e?void 0:e.imaginary}get canonical(){var e,i,t,n,r,s;return!1===(null===(e=this._def)||void 0===e?void 0:e.hold)&&null!==(s=null!==(n=null===(t=null===(i=this._def)||void 0===i?void 0:i.value)||void 0===t?void 0:t.value)&&void 0!==n?n:null===(r=this._def)||void 0===r?void 0:r.value)&&void 0!==s?s:this}simplify(e){var i,t;const n=(null==e?void 0:e.rules)&&null!==(i=this.replace(e.rules))&&void 0!==i?i:this;if(!1===(null===(t=n.symbolDefinition)||void 0===t?void 0:t.hold)){const i=n.value;if(i)return i.simplify(e)}return n}evaluate(e){var i,t,n,r;return!0===(null===(i=this.symbolDefinition)||void 0===i?void 0:i.hold)?this:null!==(r=null===(n=null===(t=this._def)||void 0===t?void 0:t.value)||void 0===n?void 0:n.evaluate(e))&&void 0!==r?r:this}N(e){var i,t,n,r;const s=null===(i=this._def)||void 0===i?void 0:i.value;return null!==(r=null!==(n=null!==(t=null==s?void 0:s.N(e))&&void 0!==t?t:null==s?void 0:s.evaluate(e))&&void 0!==n?n:s)&&void 0!==r?r:this}replace(e,i){return wi(this,e,i)}subs(e){var i;return null!==(i=e[this._name])&&void 0!==i?i:this}}class Ri extends zi{constructor(e,i,t){super(e,i,t)}get head(){return"Domain"}get domain(){return this.engine.domain("Domain")}isSubsetOf(e){var i,t;return null!==(t=function(e,i){var t,n;return null!==(n=null===(t={Number:["Number","ExtendedComplexNumber","ExtendedRealNumber","ComplexNumber","ImaginaryNumber","RealNumber","TranscendentalNumber","AlgebraicNumber","RationalNumber","Integer","NegativeInteger","NegativeNumber","NonNegativeNumber","NonNegativeInteger","NonPositiveNumber","NonPositiveInteger","PositiveInteger","PositiveNumber"],ExtendedComplexNumber:["Number","ExtendedRealNumber","ComplexNumber","ImaginaryNumber","RealNumber","TranscendentalNumber","AlgebraicNumber","RationalNumber","Integer","NegativeInteger","NegativeNumber","NonNegativeNumber","NonNegativeInteger","NonPositiveNumber","NonPositiveInteger","PositiveInteger","PositiveNumber"],ExtendedRealNumber:["ExtendedRealNumber","RealNumber","TranscendentalNumber","AlgebraicNumber","RationalNumber","Integer","NegativeInteger","NegativeNumber","NonNegativeNumber","NonNegativeInteger","NonPositiveNumber","NonPositiveInteger","PositiveInteger","PositiveNumber"],ComplexNumber:["ComplexNumber","ImaginaryNumber"],ImaginaryNumber:["ImaginaryNumber"],RealNumber:["RealNumber","TranscendentalNumber","AlgebraicNumber","RationalNumber","Integer","NegativeInteger","NegativeNumber","NonNegativeNumber","NonNegativeInteger","NonPositiveNumber","NonPositiveInteger","PositiveInteger","PositiveNumber"],TranscendentalNumber:["TranscendentalNumber"],AlgebraicNumber:["AlgebraicNumber","RationalNumber","Integer","NegativeInteger","NonNegativeInteger","NonPositiveInteger","PositiveInteger"],RationalNumber:["RationalNumber","Integer","NegativeInteger","NonNegativeInteger","NonPositiveInteger","PositiveInteger"],Integer:["Integer","NegativeInteger","NonNegativeInteger","NonPositiveInteger","PositiveInteger"],NegativeNumber:["NegativeNumber","NegativeInteger"],NonNegativeNumber:["NonNegativeNumber","PositiveNumber","NonNegativeInteger","PositiveInteger"],NonPositiveNumber:["NonPositiveNumber","NegativeNumber","NegativeInteger"],PositiveNumber:["PositiveNumber","PositiveInteger"],NegativeInteger:["NegativeInteger"],PositiveInteger:["PositiveInteger"],NonNegativeInteger:["NonNegativeInteger","PositiveInteger"],NonPositiveInteger:["NegativeInteger"]}[i])||void 0===t?void 0:t.includes(e))&&void 0!==n?n:void 0}(this._name,"string"==typeof e?e:null!==(i=e.symbol)&&void 0!==i?i:""))&&void 0!==t&&t}}function $i(e,i){if(null==i)return e.symbol("Nothing");if(i instanceof Ge)return i;if(Array.isArray(i)){if("number"!=typeof i[0])return new Ii(e,"string"==typeof i[0]?i[0]:$i(e,i[0]),i.slice(1).map((i=>$i(e,i))));const[t,n]=i;return"number"==typeof n&&Number.isInteger(t)&&Number.isInteger(n)?e.number(i):e.fn("Divide",i)}if("number"==typeof i||i instanceof c.exports.Complex||i instanceof l.exports.Decimal)return e.number(i);if("string"==typeof i)return i.startsWith("'")&&i.endsWith("'")?new qi(e,i.slice(1,-1)):e.symbol(i);if("object"==typeof i){const t={latex:i.latex,wikidata:i.wikidata};if("dict"in i)return new xi(e,i.dict,t);if("fn"in i)return"string"==typeof i.fn[0]?function(e,i,t,n){var r,s,a;if("Hold"===i)return new Ii(e,"Hold",[Bi(e,null!==(r=t[0])&&void 0!==r?r:"Missing")],n);if("String"===i)return 0===t.length?new qi(e,"",n):new qi(e,t.map((e=>{var i;return null!==(i=Gi(e))&&void 0!==i?i:""})).join(""),n);if("Symbol"===i&&t.length>0)return e.symbol(t.map((e=>{var i;return null!==(i=Gi(e))&&void 0!==i?i:""})).join(""),n);if(("Divide"===i||"Rational"===i)&&2===t.length){const i=R(t[0]),n=R(t[1]);if(null!==i&&null!==n&&Number.isInteger(i)&&Number.isInteger(n))return e.number([i,n])}if("Number"===i&&1===t.length)return $i(e,t[0]);if("Complex"===i){if(1===t.length){const i=$i(e,t[0]),r=i.asFloat;return null!==r&&0!==r?new Ci(e,e.complex(0,r),n):e.mul([i,e.I])}if(2===t.length){const i=$i(e,t[0]),r=$i(e,t[1]),s=i.asFloat,a=r.asFloat;return null!==a&&null!==s?0===a&&0===s?e.ZERO:null!==a&&0!==a?new Ci(e,e.complex(s,a),n):i:e.add([i,e.mul([r,e.I])],n)}}if("Negate"===i&&t.length>0&&"number"==typeof t[0])return e.number(-t[0],n);if("Single"===i||"Pair"===i||"Triple"===i)return e.fn("Tuple",t,n);if("Dictionary"===i){const i={};for(const n of t){const t=e.box(n),r=t.head;if("KeyValuePair"===r||"Pair"===r||"Tuple"===r){const e=t.op1;if(!e.isMissing){const n=t.op2;let r=null!==(s=e.symbol)&&void 0!==s?s:e.string;if(!r&&e.isLiteral){const i=null!==(a=e.machineValue)&&void 0!==a?a:e.asSmallInteger;i&&Number.isFinite(i)&&Number.isInteger(i)&&(r=i.toString())}r&&(i[r]=n)}}}return new xi(e,i,n)}return new Ii(e,i,t.map((i=>$i(e,i))),n)}(e,i.fn[0],i.fn.slice(1),t):e.fn($i(e,i.fn[0]),i.fn.slice(1).map((i=>$i(e,i))),t);if("str"in i)return new qi(e,i.str,t);if("sym"in i)return e.symbol(i.sym,t);if("num"in i)return e.number(i,t)}return e.symbol("Undefined")}function ji(e,i,t){var n;if(i instanceof Ci)return i;if(Array.isArray(i)){if(2!==i.length)throw Error("Array argument to boxNumber() should be two integers");const[n,r]=ze(i);if("number"!=typeof n||"number"!=typeof r)throw Error("Array argument to boxNumber() should be two integers");if(!Number.isInteger(n)||!Number.isInteger(r))throw Error("Array argument to boxNumber() should be two integers");if(r===n)return 0===r?e.NAN:e.ONE;if(1===r)i=n;else{if(-1!==r)return 1===n&&2===r?e.HALF:new Ci(e,[n,r],t);i=-n}}if(i instanceof c.exports.Complex){if(i.isNaN())return e.NAN;if(i.isZero())return e.ZERO;if(i.isInfinite())return e.COMPLEX_INFINITY;if(0!==i.im)return si(e)?new Ci(e,i,t):e.NAN;i=i.re}if(i instanceof l.exports.Decimal)return i.isNaN()?e.NAN:i.equals(e.DECIMAL_NEGATIVE_ONE)?e.NEGATIVE_ONE:i.isZero()?e.ZERO:i.equals(e.DECIMAL_ONE)?e.ONE:i.equals(e.DECIMAL_TWO)?e.TWO:!i.isFinite()&&i.isPositive()?e.POSITIVE_INFINITY:!i.isFinite()&&i.isNegative()?e.NEGATIVE_INFINITY:new Ci(e,ri(e)?i:i.toNumber(),t);if("object"==typeof i&&"num"in i)if("number"==typeof i.num)i=i.num;else if("string"==typeof i.num){let r=i.num.toLowerCase();if(/[0-9][nd]$/.test(r)&&(r=r.slice(0,-1)),r=r.replace(/[\u0009-\u000d\u0020\u00a0]/g,""),/\([0-9]+\)$/.test(r)){const[i,t,s]=null!==(n=r.match(/(.+)\(([0-9]+)\)$/))&&void 0!==n?n:[];r=t+s.repeat(Math.ceil(e.precision/s.length))}return"nan"===r?e.NAN:"infinity"===r||"+infinity"===r?e.POSITIVE_INFINITY:"-infinity"===r?e.NEGATIVE_INFINITY:"0"===r?e.ZERO:"1"===r?e.ONE:"-1"===r?e.NEGATIVE_ONE:"2"===r?e.TWO:new Ci(e,r,t)}if("number"==typeof i){if(Number.isNaN(i))return e.NAN;if(!Number.isFinite(i)&&i>0&&e.POSITIVE_INFINITY,!Number.isFinite(i)&&i<0&&e.NEGATIVE_INFINITY,-1===i)return e.NEGATIVE_ONE;if(0===i)return e.ZERO;if(1===i)return e.ONE;if(2===i)return e.TWO}return"number"==typeof i?new Ci(e,i,t):null}function Zi(e,i,t){if("string"==typeof i)return new Ri(e,i,t);if(i instanceof Ri)return i;if(!i.symbol)throw Error("Unexpected domain expression"+i.json);return new Ri(e,i.symbol,t)}function Bi(e,i){if("object"==typeof i&&i instanceof Ge)return i;if("string"==typeof i)return $i(e,i);if(Array.isArray(i)){const t=i.map((i=>Bi(e,i)));return new Ii(e,t[0],t.slice(1))}if("object"==typeof i){if("dict"in i)return new xi(e,i.dict);if("fn"in i)return Bi(e,i.fn);if("str"in i)return new qi(e,i.str);if("sym"in i)return $i(e,i.sym);if("num"in i)return $i(e,i.num)}return $i(e,i)}function Gi(e){var i,t;if("string"==typeof e)return e;if(e instanceof Ge)return null!==(t=null!==(i=e.string)&&void 0!==i?i:e.symbol)&&void 0!==t?t:e.toString();if("object"==typeof e){if("str"in e)return e.str;if("fn"in e&&"String"===e.fn[0]&&"string"==typeof e.fn[1])return e.fn[1]}return Array.isArray(e)&&"String"===e[0]&&"string"==typeof e[1]?e[1]:null}function Wi(e,i){if(!e.isLiteral)return null;let t;null!==e.machineValue&&(t=-e.machineValue),e.decimalValue&&(t=e.decimalValue.neg()),e.complexValue&&(t=e.complexValue.neg());const[n,r]=e.rationalValue;return null!==n&&null!==r&&(t=[-n,r]),void 0!==t?e.engine.number(t,i):null}function Hi(e,i){var t;if("Negate"===e.head)return e.op1;if(e.isLiteral)return Wi(e,i);if("Add"===e.head){let n=e.ops.map((e=>Hi(e)));return n=null!==(t=Ye(n,"Add"))&&void 0!==t?t:n,e.engine.add(n,i)}return e.engine._fn("Negate",[e],i)}function Qi(e){var i;if("Negate"===e.head)return e.op1;if(e.isLiteral)return Wi(e);const t=e.engine;if("Add"===e.head){let n=e.ops.map((e=>Qi(e)));return n=null!==(i=Ye(n,"Add"))&&void 0!==i?i:n,t.add(n)}return"Multiply"===e.head?function(e,i){let t=[],n=!1;for(const e of i)n||"Negate"!==e.head?t.push(e):(n=!0,t.push(e.op1));if(n)return e.mul(t);t=[];for(const e of i)!n&&e.isLiteral&&e.isInteger?(n=!0,t.push(Qi(e))):t.push(e);if(n)return e.mul(t);t=[];for(const e of i)!n&&e.isLiteral&&e.isNumber?(n=!0,t.push(Qi(e))):t.push(e);return n?e.mul(t):e._fn("Negate",[e._fn("Multiply",i)])}(t,e.ops):"Divide"===e.head?t.divide(Qi(e.op1),e.op2):t._fn("Negate",[e])}function Ui(e,i,t="simplify"){return Qi(i)}class Yi{constructor(e,i){if(this._literal=[0,1],this._imaginary=0,this._posInfinityCount=0,this._negInfinityCount=0,this._terms=[],this.engine=e,i)for(const e of i)this.addTerm(e)}get isEmpty(){return 0===this._terms.length&&0===this._literal[0]&&0===this._imaginary&&0===this._negInfinityCount&&0===this._posInfinityCount}addTerm(e,i){if("Nothing"===e.symbol)return;if(void 0===i&&(i=[1,1]),e.isLiteral){if(e.isInfinity)return void(e.isPositive?this._posInfinityCount+=1:this._negInfinityCount+=1);const[t,n]=e.asRational;if(null!==t&&null!==n)return void(this._literal=[i[0]*(this._literal[0]*n+t*this._literal[1]),i[1]*n*this._literal[1]]);if(e.complexValue){let t=e.complexValue.re,n=e.complexValue.im;if(Number.isInteger(t)&&Math.abs(t)<=Pe&&(this._literal[0]+=this._literal[1]*t*i[0]/i[1],t=0),Number.isInteger(n)&&Math.abs(n)<=Pe&&(this._imaginary+=n*i[0]/i[1],n=0),0===t&&0===n)return;e=this.engine.number(this.engine.complex(t,n))}}let t;if([t,e]=ci(e),0===t[0])return;if(t=[t[0]*i[0],t[1]*i[1]],"Add"===e.head){for(const i of e.ops)this.addTerm(i,t);return}let n=!1;if(!e.isLiteral)if(this._terms.length>500){const i=e.hash;for(let r=0;r<this._terms.length;r++)if(!this._terms[r].term.isLiteral&&i===this._terms[r].term.hash&&e.isSame(this._terms[r].term)){const[e,i]=this._terms[r].coef,[s,a]=t;this._terms[r].coef=[e*a+i*s,i*a],n=!0;break}}else for(let i=0;i<this._terms.length;i++)if(!this._terms[i].term.isLiteral&&e.isSame(this._terms[i].term)){const[e,r]=this._terms[i].coef,[s,a]=t;this._terms[i].coef=[e*a+r*s,r*a],n=!0;break}n||this._terms.push({term:e,coef:t})}terms(){var e;const i=this.engine;if(this._posInfinityCount>0&&this._negInfinityCount>0)return[i.NAN];if(this._posInfinityCount>0)return[i.POSITIVE_INFINITY];if(this._negInfinityCount>0)return[i.NEGATIVE_INFINITY];if(0===this._terms.length)return 0===this._literal[0]&&0===this._imaginary?[]:0===this._imaginary?[i.number(this._literal)]:0===this._literal[0]?[i.number(i.complex(0,this._imaginary))]:[i.number(this._literal),i.number(i.complex(0,this._imaginary))];const t=[];for(const{coef:[e,n],term:r}of this._terms)0!==e&&(e===n?t.push(r):e===-n?t.push(i.negate(r)):1===n?t.push(i.mul([i.number(e),r])):1===e?t.push(i.divide(r,i.number(n))):0!==e&&t.push(i.mul([i.number([e,n]),r])));return 0!==this._literal[0]&&t.push(i.number(this._literal)),0!==this._imaginary&&t.push(i.number(i.complex(0,this._imaginary))),null!==(e=Ye(t,"Add"))&&void 0!==e?e:t}asExpression(){const e=this.engine,i=this.terms();return 0===i.length?e.ZERO:1===i.length?i[0]:e._fn("Add",i.sort(((e,i)=>{const t=Xe(e),n=Xe(i);if(t<n)return-1;if(t>n)return 1;const r=Ke(e),s=Ke(i);if(r!==s)return s-r;const a=Je(e),o=Je(i);return a!==o?a-o:li(e,i)})))}}function Ki(e,i){var t,n,r,s;if((i=null!==(t=Ye(i,"Add"))&&void 0!==t?t:i).length<=1)return null!==(n=i[0])&&void 0!==n?n:e.symbol("Nothing");if(2===i.length){let t=0,n=0;if(i[0].isLiteral&&(n=i[0].machineValue,n=null===n&&i[0].decimalValue&&null!==(r=i[0].asFloat)&&void 0!==r?r:0),0!==n?t=ti(i[1]):(t=ti(i[0]),0!==t&&(n=i[1].machineValue,n=null===n&&i[1].decimalValue&&null!==(s=i[1].asFloat)&&void 0!==s?s:0)),0!==t)return e.number(e.complex(n,t));if(i[0].isLiteral&&i[1].isLiteral){if(i[0].isZero)return i[1];if(i[1].isZero)return i[0];const[t,n]=i[0].asRational,[r,s]=i[1].asRational;if(null!==t&&null!==n&&null!==r&&null!==s)return e.number([t*s+r*n,n*s])}}return new Yi(e,i).asExpression()}function Ji(e,i,t){const n=new Yi(e);for(const t of i){if(t.isImaginary&&t.isInfinity)return e.symbol("ComplexInfinity");if(t.isNaN||t.isMissing||"Undefined"===t.symbol)return e.NAN;n.addTerm(t)}return n.asExpression()}function Xi(e,i,t,n){if("ComplexInfinity"===t.symbol)return e.NAN;if(t.isLiteral){if(t.isZero)return e.ONE;if(i.isLiteral){if(i.isOne)return e.ONE;if(i.isZero){if(t.isPositive)return e.ZERO;if(t.isNegative)return e.COMPLEX_INFINITY}if(t.isOne)return i;if(t.isNegativeOne){if(i.isOne)return e.ONE;if(i.isNegativeOne)return e.NEGATIVE_ONE;if(i.isInfinity)return e.ZERO;const[t,r]=i.rationalValue;if(null!==t&&null!==r)return e.number([r,t],n);const s=i.asFloat;return null!==s&&Number.isInteger(s)?e.number([1,s],n):e._fn("Power",[i,e.NEGATIVE_ONE],n)}const r=t.asFloat;if(.5===r||-.5===r){const t=i.asSmallInteger;if(null!==t&&t>0){const[i,n]=Le(t,2);if(1===n&&1===i)return e.ONE;if(1!==i)return 1===n?e.number(r>=0?i:[1,i]):e.mul([e.number(i),e.power(e.number(n),e.HALF)])}return r>0?e._fn("Power",[i,e.HALF],n):e._fn("Power",[i,e.number([-1,2])],n)}if(i.isInfinity){if(t.complexValue){const i=t.complexValue.re;if(0===i)return e.NAN;if(i<0)return e.ZERO;if(i>0)return e.COMPLEX_INFINITY}if(i.isNegative){if(t.isInfinity)return e.NAN}else if(i.isPositive){if(t.isNegativeOne)return e.ZERO;if(t.isInfinity)return t.isNegative?e.ZERO:e.POSITIVE_INFINITY}}if(t.isInfinity&&(i.isOne||i.isNegativeOne))return e.NAN;const[s,a]=i.asRational;if(null!==s&&null!==a){const i=t.asSmallInteger;if(null!==i)return-1===i?e.number([a,s]):i>0?e.number([Math.pow(s,i),Math.pow(a,i)]):e.number([Math.pow(a,-i),Math.pow(s,-i)])}}}if("Power"===i.head&&i.op1.isReal){const n=t.asSmallInteger;if(null!==n){const t=i.op2.asSmallInteger;if(null!==t)return e._fn("Power",[i.op1,e.number(n*t)])}if(i.op1.isNonNegative){const[n,r]=t.asRational;if(null!==n&&null!==r){const[t,s]=i.op2.asRational;if(null!==t&&null!==s)return e._fn("Power",[i.op1,e.number([n*t,r*s])])}}}return"Multiply"===i.head&&null!==t.asSmallInteger?e._fn("Multiply",i.ops.map((i=>e.power(i,t)))):null}function et(e,i){if(i.machineValue)return e.number(Math.pow(i.machineValue,2));if(i.decimalValue)return e.number(i.decimalValue.pow(2));if(i.complexValue)return e.number(i.complexValue.pow(2));const[t,n]=i.rationalValue;if(null!==t&&null!==n)return e.number([Math.pow(n,2),Math.pow(t,2)]);if("Multiply"===i.head)return e._fn("Multiply",i.ops.map((i=>et(e,i))));if("Power"===i.head){const t=i.op2.asSmallInteger;return null!==t?e._fn("Power",[i.op1,e.number(2*t)]):e._fn("Power",[i.op1,e.mul([e.TWO,i.op2])])}return e._fn("Power",[i,e.TWO])}function it(e,i,t,n){var r,s,a,o,l,u;if("N"===n&&i.isLiteral&&t.isLiteral)return i.complexValue?e.number(i.complexValue.pow(null!==(s=null!==(r=t.complexValue)&&void 0!==r?r:t.asFloat)&&void 0!==s?s:NaN)):t.complexValue&&i.asFloat?e.number(e.complex(i.asFloat).pow(t.complexValue)):i.decimalValue?e.number(i.decimalValue.pow(null!==(a=t.decimalValue)&&void 0!==a?a:t.asFloat)):i.asFloat&&(t.decimalValue||ri(e))?e.number(e.decimal(i.asFloat).pow(null!==(o=t.decimalValue)&&void 0!==o?o:t.asFloat)):e.number(Math.pow(null!==(l=i.asFloat)&&void 0!==l?l:NaN,null!==(u=t.asFloat)&&void 0!==u?u:NaN));if(null!==i.asSmallInteger){const[n,r]=t.rationalValue;if(!(1!==n&&-1!==n||2!==r&&3!==r)){const[s,a]=Le(i.asSmallInteger,r);if(1===a&&1===s)return e.ONE;if(1===s)return;return 1===a?e.number(n>=0?s:[1,s]):e.mul([e.number(s),e.power(e.number(a),t)])}}}function tt(e,i){var t;return 0===(i=null!==(t=Ye(i,"Multiply"))&&void 0!==t?t:i).length?e.symbol("Nothing"):1===i.length?i[0]:2===i.length?rt(i[0],i[1]):new hi(e,i).asExpression()}function nt(e,i,t){const n=new hi(e);for(const t of i){if(t.isNaN||t.isMissing||"Undefined"===t.symbol)return e.NAN;n.addTerm(t)}return n.asExpression()}function rt(e,i,t){const n=e.engine;if(e.isLiteral&&i.isLiteral&&e.isInteger&&i.isInteger){if(e.decimalValue&&i.decimalValue)return n.number(e.decimalValue.mul(i.decimalValue));if(e.machineValue&&i.machineValue)return n.number(e.machineValue*i.machineValue)}if("Nothing"===e.symbol)return i;if("Nothing"===i.symbol)return e;if(e.isLiteral&&e.isOne)return i;if(i.isLiteral&&i.isOne)return e;if(e.isLiteral&&e.isNegativeOne)return Hi(i);if(i.isLiteral&&i.isNegativeOne)return Hi(e);if(e.isMissing||i.isMissing)return n._fn("Multiply",[e,i]);let r=1,s=e,a=i;s.isLiteral&&null!==s.asRational||(a=i,s=e),"Negate"===a.head&&(a=a.op1,r=-r);const[o,l]=s.asRational;if(s.isLiteral&&null!==o&&null!==l){if(o===l)return a;if(0===o)return n.ZERO;if("Add"===a.head)return r<0&&(s=Hi(s)),n.add(a.ops.map((e=>rt(s,e))),t);if(a.isLiteral){const[e,i]=a.asRational;if(null!==e&&null!==i)return n.number(ze([r*o*e,i*l]),t)}return r<0?n._fn("Multiply",[Hi(s),a],t):n._fn("Multiply",[s,a],t)}if(s.hash===a.hash&&s.isSame(a))return et(n,s);const u=new hi(n,[s,a]);return r>0?u.asExpression():Hi(u.asExpression(),t)}function st(e,i,t){if(i.isLiteral&&t.isLiteral){if(i.isOne)return e.inverse(t);if(i.isNegativeOne)return Hi(e.inverse(t));if(t.isOne)return i;if(t.isNegativeOne)return Hi(i);const[n,r]=[i.asSmallInteger,t.asSmallInteger];if(null!==n&&null!==r&&0!==r)return e.number(ze([n,r]))}if("Divide"===i.head&&"Divide"===t.head)return e.divide(e.mul([i.op1,t.op2]),e.mul([i.op2,t.op1]));if("Divide"===i.head)return e.divide(e.mul([i.op1,t]),i.op2);if("Divide"===t.head)return e.divide(e.mul([i,t.op2]),t.op1);let[n,r]=mi(i),[s,a]=mi(t);return r=r.canonical,a=a.canonical,a.isLiteral&&a.isOne?n*s<0?Hi(r):r:(a=e.inverse(a),r.isOne?a:r.isNegativeOne?Hi(a):n*s>0?e.mul([r,a]):e.negate(e.mul([r,a])))}const at=[{functions:[{name:"Abs",domain:"Number",range:[0,1/0],wikidata:"Q3317982",threadable:!0,idempotent:!0,numeric:!0,complexity:1200,simplify:(e,i)=>ot(e,i[0],"simplify"),evaluate:(e,i)=>ot(e,i[0],"evaluate"),N:(e,i)=>ot(e,i[0],"N")},{name:"Add",wikidata:"Q32043",associative:!0,commutative:!0,threadable:!0,idempotent:!0,evalDomain:function(e,i){let t="Nothing";for(const e of i){const i=e.domain;if(!i.isSubsetOf("Number"))return"Nothing";i.isSubsetOf(t)||(t=i)}return t},numeric:!0,complexity:1300,canonical:(e,i)=>Ki(e,i),simplify:(e,i)=>Ji(e,i),evaluate:(e,i)=>Ji(e,i),N:(e,i)=>function(e,i){for(const t of i){if(t.isImaginary&&t.isInfinity)return e.symbol("ComplexInfinity");if(t.isNaN||t.isMissing||"Undefined"===t.symbol)return e.NAN}let[t,n]=[0,1],r=0,s=e.DECIMAL_ZERO,a=c.exports.Complex.ZERO;const o=new Yi(e);for(const l of i)if("Nothing"!==l.symbol&&!l.isZero){const[i,u]=l.rationalValue;null!==i&&null!==u?[t,n]=[t*u+n*i,n*u]:null!==l.decimalValue?s=s.add(l.decimalValue):null!==l.machineValue?ri(e)?s=s.add(l.machineValue):r+=l.machineValue:null!==l.complexValue?a=a.add(l.complexValue):o.addTerm(l)}if(!si(e)&&0!==a.im)return e.NAN;if(ri(e)||0!==e.chop(s)){let i=s;if(0!==t&&(i=i.mul(n).add(t).div(n)),0!==r&&(i=i.add(r)),0!==a.re&&(i=i.add(a.re)),0!==a.im)if(Ue(i)){const t=e.number(e.complex(i.toNumber(),a.im));if(o.isEmpty)return t;o.addTerm(t)}else o.addTerm(e.number(e.complex(0,a.im))),o.addTerm(e.number(i));else{if(o.isEmpty)return e.number(i);o.addTerm(e.number(i))}}else{const i=r+a.re+t/n,s=e.number(0===a.im?i:e.complex(i,a.im));if(o.isEmpty)return s;o.addTerm(s)}return o.asExpression()}(e,i)},{name:"Ceil",description:"Rounds a number up to the next largest integer",numeric:!0,complexity:1250,evalDomain:(e,i)=>i[0].isNumber?e.symbol("Integer"):e.symbol("Nothing"),evaluate:(e,i)=>{const t=i[0];return t.decimalValue?e.number(t.decimalValue.ceil()):t.complexValue?e.number(t.complexValue.ceil(0)):null!==t.asFloat?e.number(Math.ceil(t.asFloat)):void 0}},{name:"Chop",associative:!0,threadable:!0,idempotent:!0,numeric:!0,complexity:1200,evalDomain:(e,i)=>i[0].isNumber?i[0].domain:e.symbol("Nothing"),N:(e,i)=>{const t=i[0];return t.decimalValue?e.number(e.chop(t.decimalValue)):t.complexValue?e.number(e.chop(t.complexValue)):null!==t.asFloat?e.number(e.chop(t.asFloat)):void 0}},{name:"Complex",wikidata:"Q11567",domain:"ComplexNumber",complexity:500},{name:"Divide",wikidata:"Q1226939",domain:"Number",numeric:!0,complexity:2500,canonical:(e,i)=>st(e,i[0],i[1])},{name:"Exp",domain:"Number",wikidata:"Q168698",threadable:!0,numeric:!0,complexity:3500,canonical:(e,i)=>e.power(e.symbol("ExponentialE"),i[0])},{name:"Erf",description:"Complementary Error Function",domain:"Number",numeric:!0,complexity:7500},{name:"Erfc",description:"Complementary Error Function",domain:"Number",numeric:!0,complexity:7500},{name:"Factorial",description:"The factorial function",wikidata:"Q120976",numeric:!0,complexity:9e3,evalDomain:(e,i)=>i[0].isInteger&&i[0].isPositive?e.symbol("Integer"):e.symbol("ComplexNumber"),evaluate:(e,i)=>{const t=i[0].asSmallInteger;return null!==t&&t>=0?ri(e)?e.number(We(e,e.decimal(t))):e.number(function(e){if(!Number.isInteger(e)||e<0)return NaN;let i=1;for(let t=2;t<=e;t++)i*=t;return i}(t)):i[0].complexValue?e.number(i[0].complexValue.add(1)):null!==i[0].asFloat?e.number(Ze(1+i[0].asFloat)):void 0}},{name:"Floor",domain:"Number",wikidata:"Q56860783",numeric:!0,complexity:1250,evaluate:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.floor()):i[0].complexValue?e.number(i[0].complexValue.floor(0)):null!==i[0].asFloat?e.number(Math.floor(i[0].asFloat)):void 0},{name:"Gamma",domain:"Number",wikidata:"Q190573",numeric:!0,complexity:8e3,N:(e,i)=>i[0].decimalValue?e.number(Qe(e,i[0].decimalValue)):i[0].complexValue?e.number(i[0].complexValue):null!==i[0].asFloat?e.number(Ze(i[0].asFloat)):void 0},{name:"LogGamma",domain:"Number",numeric:!0,complexity:8e3,N:(e,i)=>i[0].decimalValue?e.number(He(e,i[0].decimalValue)):i[0].complexValue?e.number(i[0].complexValue):null!==i[0].asFloat?e.number(je(i[0].asFloat)):void 0},{name:"Ln",description:"Natural Logarithm",domain:"Number",wikidata:"Q204037",numeric:!0,complexity:4e3,N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.log()):i[0].complexValue?e.number(i[0].complexValue.log()):null!==i[0].asFloat?e.number(Math.log(i[0].asFloat)):void 0},{name:"Log",description:"Log(b, z) = Logarithm of base b",domain:"Number",wikidata:"Q11197",numeric:!0,complexity:4100,N:(e,i)=>{var t,n,r,s,a;const o=i[0],l=i[1];return o.decimalValue?e.number(o.decimalValue.log().div(null!==(n=null!==(t=l.decimalValue)&&void 0!==t?t:l.asFloat)&&void 0!==n?n:NaN)):o.complexValue?e.number(o.complexValue.log().div(null!==(s=null!==(r=l.complexValue)&&void 0!==r?r:l.asFloat)&&void 0!==s?s:NaN)):null!==o.asFloat?e.number(Math.log(o.asFloat)/Math.log(null!==(a=l.asFloat)&&void 0!==a?a:NaN)):void 0}},{name:"Lb",description:"Base-2 Logarithm",domain:"Number",wikidata:"Q581168",numeric:!0,complexity:4100,N:(e,i)=>{const t=i[0];return t.decimalValue?e.number(t.decimalValue.log().div(e.DECIMAL_TWO)):t.complexValue?e.number(t.complexValue.log().div(e.complex(2))):null!==t.asFloat?e.number(Math.log2(t.asFloat)):void 0}},{name:"Lg",description:"Base-10 Logarithm",domain:"Number",wikidata:"Q966582",numeric:!0,complexity:4100,N:(e,i)=>{const t=i[0];return t.decimalValue?e.number(t.decimalValue.log().div(e.decimal(10))):t.complexValue?e.number(t.complexValue.log().div(e.complex(10))):null!==t.asFloat?e.number(Math.log10(t.asFloat)):void 0}},{name:"Multiply",domain:"Number",wikidata:"Q40276",associative:!0,commutative:!0,idempotent:!0,numeric:!0,complexity:2100,canonical:(e,i)=>tt(e,i),simplify:(e,i)=>nt(e,i),evaluate:(e,i)=>nt(e,i),N:(e,i)=>function(e,i){for(const t of i)if(t.isNaN||t.isMissing||"Undefined"===t.symbol)return e.NAN;let[t,n]=[1,1],r=1,s=e.DECIMAL_ONE,a=c.exports.Complex.ONE;const o=new hi(e);for(const l of i)if("Nothing"!==l.symbol&&!l.isOne){const[i,u]=l.rationalValue;null!==i&&null!==u?[t,n]=[t*i,n*u]:null!==l.decimalValue?s=s.mul(l.decimalValue):null!==l.machineValue?ri(e)?s=s.mul(l.machineValue):r*=l.machineValue:null!==l.complexValue?a=a.mul(l.complexValue):o.addTerm(l)}if(!si(e)&&0!==a.im)return e.NAN;if(ri(e)||!s.eq(e.DECIMAL_ONE)){const i=s.mul(t).div(n).mul(r);if(1!==a.re||0!==a.im)if(Ue(i)){const t=e.number(e.complex(a.mul(i.toNumber())));if(o.isEmpty)return t;o.addTerm(t)}else{if(o.isEmpty)return e._fn("Multiply",[e.number(a),e.number(i)]);o.addTerm(e.number(a)),o.addTerm(e.number(i))}else{if(o.isEmpty)return e.number(i);o.addTerm(e.number(i))}}else{const i=r*t/n;let s;if(s=1!==a.re||0!==a.im?e.number(a.mul(i)):e.number(i),o.isEmpty)return s;o.addTerm(s)}return o.asExpression()}(e,i)},{name:"Negate",description:"Additive Inverse",domain:"Number",wikidata:"Q715358",numeric:!0,complexity:2e3,canonical:(e,i)=>Hi(i[0]),simplify:(e,i)=>Ui(0,i[0],"simplify"),evaluate:(e,i)=>Ui(0,i[0],"evaluate"),N:(e,i)=>Ui(0,i[0],"N"),sgn:(e,i)=>{const t=i[0];return t.isZero?0:t.isPositive?-1:t.isNegative?1:void 0}},{name:"Power",domain:"Number",wikidata:"Q33456",commutative:!1,numeric:!0,complexity:3500,canonical:(e,i)=>{var t;return i[0]&&i[1]&&null!==(t=Xi(e,i[0],i[1]))&&void 0!==t?t:e._fn("Power",i)},simplify:(e,i)=>it(e,i[0],i[1],"simplify"),evaluate:(e,i)=>it(e,i[0],i[1],"evaluate"),N:(e,i)=>it(e,i[0],i[1],"N")},{name:"Rational",domain:"RationalNumber",numeric:!0,complexity:2400,canonical:(e,i)=>2===i.length?st(e,i[0],i[1]):e._fn("Rational",i),simplify:(e,i)=>{if(2===i.length)return null!==i[0].asSmallInteger&&null!==i[1].asSmallInteger?e.number([i[0].asSmallInteger,i[1].asSmallInteger]):void 0},evaluate:(e,i)=>{if(2===i.length)return null!==i[0].asSmallInteger&&null!==i[1].asSmallInteger?e.number([i[0].asSmallInteger,i[1].asSmallInteger]):void 0;const t=i[0].asFloat;if(null===t)return i[0];const n=function(e){if(!Number.isFinite(e))return e;if(0==e%1)return e;let i=Math.floor(e),t=1,n=0,r=i,s=1;for(;e-i>1e-15*s*s;){i=Math.floor(e=1/(e-i));const a=t;t=r;const o=n;n=s,r=a+i*t,s=o+i*n}return[r,s]}(t);return"number"==typeof n?e.number(n):e.number([n[0],n[1]])},N:(e,i)=>{if(2===i.length){if(null===i[0].asSmallInteger||null===i[1].asSmallInteger)return;return e.number(i[0].asSmallInteger/i[1].asSmallInteger)}}},{name:"Root",domain:"Number",numeric:!0,complexity:3200,canonical:(e,i)=>{var t;const n=e.inverse(i[1]);return null!==(t=Xi(e,i[0],n))&&void 0!==t?t:e._fn("Power",[i[0],n])},N:(e,i)=>{var t,n,r;const s=i[0],a=i[1];if(s.decimalValue)return e.number(s.decimalValue.pow(e.DECIMAL_ONE.div(null!==(t=a.asFloat)&&void 0!==t?t:NaN)));if(s.complexValue){const i=a.complexValue?c.exports.Complex.ONE.div(a.complexValue):e.complex(1/(null!==(n=a.asFloat)&&void 0!==n?n:NaN));return e.number(s.complexValue.pow(i))}return null!==s.asFloat?e.number(Math.pow(s.asFloat,null!==(r=a.asFloat)&&void 0!==r?r:NaN)):void 0}},{name:"Round",domain:"Number",numeric:!0,complexity:1250,N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.round()):i[0].complexValue?e.number(i[0].complexValue.round(0)):null!==i[0].asFloat?e.number(Math.round(i[0].asFloat)):void 0},{name:"Sign",domain:"Number",range:[-1,1],numeric:!0,complexity:1200,simplify:(e,i)=>{const t=i[0].sgn;return 0===t?e.ZERO:1===t?e.ONE:-1===t?e.NEGATIVE_ONE:void 0},evaluate:(e,i)=>{const t=i[0].sgn;return 0===t?e.ZERO:1===t?e.ONE:-1===t?e.NEGATIVE_ONE:void 0},N:(e,i)=>{const t=i[0].sgn;return 0===t?e.ZERO:1===t?e.ONE:-1===t?e.NEGATIVE_ONE:void 0}},{name:"SignGamma",description:"The sign of the gamma function: -1 or +1",domain:"Number",numeric:!0,complexity:7900,range:[-1,1]},{name:"Sqrt",description:"Square Root",domain:"Number",wikidata:"Q134237",numeric:!0,complexity:3e3,canonical:(e,i)=>{var t;return null!==(t=Xi(e,i[0],e.HALF))&&void 0!==t?t:e._fn("Power",[i[0],e.HALF])},simplify:(e,i)=>lt(e,i[0],"simplify"),evaluate:(e,i)=>lt(e,i[0],"evaluate"),N:(e,i)=>lt(e,i[0],"N")},{name:"Square",domain:"Number",wikidata:"Q3075175",numeric:!0,complexity:3100,canonical:(e,i)=>{var t;return null!==(t=Xi(e,i[0],e.TWO))&&void 0!==t?t:e._fn("Power",[i[0],e.TWO])},N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.mul(i[0].decimalValue)):i[0].complexValue?e.number(i[0].complexValue.mul(i[0].complexValue)):null!==i[0].asFloat?e.number(i[0].asFloat*i[0].asFloat):void 0},{name:"Subscript",hold:"last",canonical:(e,i)=>{var t,n;if(i[0].string&&i[1].isLiteral&&null!==i[1].asSmallInteger){const t=i[1].asSmallInteger;if(t>1&&t<=36){const[n,r]=Be(i[0].string,t);return r?e._fn("Error",[e.number(n),e.string("unexpected-digits"),e._fn("LatexForm",[e.string(r)])]):e.number(n)}}if(i[0].symbol){if(null===(t=i[0].symbolDefinition)||void 0===t?void 0:t.at)return e._fn("At",[i[0],i[1]]);let r=null!==(n=i[1].string)&&void 0!==n?n:i[1].symbol;if(r||null!==i[1].asSmallInteger&&(r=i[1].asSmallInteger.toString()),r)return e.symbol(i[0].symbol+"_"+r)}return e._fn("Subscript",i)}},{name:"Subtract",domain:"Number",wikidata:"Q40754",numeric:!0,complexity:1350,canonical:(e,i)=>0===i.length?e.symbol("Nothing"):1===i.length?Hi(i[0]):Ki(e,[i[0],Hi(i[1])]),N:(e,i)=>{var t,n,r,s,a,o;const l=i[0],u=i[1];return l.complexValue||u.complexValue?e.number(e.complex(null!==(t=l.complexValue)&&void 0!==t?t:l.asFloat).sub(null!==(n=u.complexValue)&&void 0!==n?n:u.asFloat)):l.decimalValue||u.decimalValue?e.number(e.decimal(null!==(s=null!==(r=l.decimalValue)&&void 0!==r?r:l.asFloat)&&void 0!==s?s:NaN).sub(null!==(o=null!==(a=u.decimalValue)&&void 0!==a?a:u.asFloat)&&void 0!==o?o:NaN)):null!==l.asFloat&&null!==u.asFloat?e.number(l.asFloat-u.asFloat):void 0}}]},{symbols:[{name:"MachineEpsilon",domain:"RealNumber",constant:!0,real:!0,value:{num:Number.EPSILON.toString()}},{name:"Half",constant:!0,hold:!1,value:["Rational",1,2]},{name:"ImaginaryUnit",domain:"ImaginaryNumber",constant:!0,hold:!0,wikidata:"Q193796",imaginary:!0,value:["Complex",0,1]},{name:"ExponentialE",domain:"TranscendentalNumber",algebraic:!1,wikidata:"Q82435",constant:!0,hold:!0,real:!0,value:e=>ri(e)?e.DECIMAL_ONE.exp():Math.exp(1)},{name:"GoldenRatio",domain:"AlgebraicNumber",wikidata:"Q41690",constant:!0,algebraic:!0,hold:!1,value:["Divide",["Add",1,["Sqrt",5]],2]},{name:"CatalanConstant",domain:"RealNumber",algebraic:void 0,wikidata:"Q855282",constant:!0,value:{num:"0.91596559417721901505460351493238411077414937428167\n 21342664981196217630197762547694793565129261151062\n 48574422619196199579035898803325859059431594737481\n 15840699533202877331946051903872747816408786590902\n 47064841521630002287276409423882599577415088163974\n 70252482011560707644883807873370489900864775113225\n 99713434074854075532307685653357680958352602193823\n 23950800720680355761048235733942319149829836189977\n 06903640418086217941101917532743149978233976105512\n 24779530324875371878665828082360570225594194818097\n 53509711315712615804242723636439850017382875977976\n 53068370092980873887495610893659771940968726844441\n 66804621624339864838916280448281506273022742073884\n 31172218272190472255870531908685735423498539498309\n 91911596738846450861515249962423704374517773723517\n 75440708538464401321748392999947572446199754961975\n 87064007474870701490937678873045869979860644874974\n 64387206238513712392736304998503539223928787979063\n 36440323547845358519277777872709060830319943013323\n 16712476158709792455479119092126201854803963934243\n "}},{name:"EulerGamma",domain:"RealNumber",algebraic:void 0,wikidata:"Q273023",constant:!0,value:{num:"0.57721566490153286060651209008240243104215933593992359880576723488486772677766\n 467093694706329174674951463144724980708248096050401448654283622417399764492353\n 625350033374293733773767394279259525824709491600873520394816567085323315177661\n 152862119950150798479374508570574002992135478614669402960432542151905877553526\n 733139925401296742051375413954911168510280798423487758720503843109399736137255\n 306088933126760017247953783675927135157722610273492913940798430103417771778088\n 154957066107501016191663340152278935867965497252036212879226555953669628176388\n 792726801324310104765059637039473949576389065729679296010090151251959509222435\n 014093498712282479497471956469763185066761290638110518241974448678363808617494\n 551698927923018773910729457815543160050021828440960537724342032854783670151773\n 943987003023703395183286900015581939880427074115422278197165230110735658339673"}}]},{functions:[{name:"PreIncrement",domain:"Number",numeric:!0},{name:"PreDecrement",domain:"Number",numeric:!0}]}];function ot(e,i,t){if("simplify"!==t||i.isLiteral){if(null!==i.machineValue)return e.number(Math.abs(i.machineValue));if(i.decimalValue)return e.number(i.decimalValue.abs());if(i.complexValue)return e.number(i.complexValue.abs());const[n,r]=i.rationalValue;if(null===n||null===r)return;return e.number("N"===t?Math.abs(n/r):[Math.abs(n),r])}if(!i.isMissing)return i.isNonNegative?i:i.isNegative?e.negate(i):void 0}function lt(e,i,t){if(i.isOne)return e.ONE;if(i.isZero)return e.ZERO;if("N"===t)return i.complexValue?e.number(i.complexValue.sqrt()):i.isNonNegative?i.decimalValue?e.number(i.decimalValue.sqrt()):null!==i.asFloat?e.number(Math.sqrt(i.asFloat)):void 0:si(e)?e.number(e.complex(i.asFloat).sqrt()):e.NAN;if(null!==i.asSmallInteger){const[t,n]=Le(i.asSmallInteger,2);if(1===n)return e.number(t);if(1!==t)return this._fn("Multiply",[t,e._fn("Sqrt",[e.box(n).canonical])])}}const ut=[{symbols:[{name:"Missing",domain:"Nothing"},{name:"Nothing",domain:"Nothing"}]},{functions:[{name:"KeyValuePair",description:"A key/value pair",complexity:8200,canonical:(e,i)=>e.tuple(i)},{name:"Single",description:"A tuple with a single element",complexity:8200,canonical:(e,i)=>e.tuple(i)},{name:"Pair",description:"A tuple of two elements",complexity:8200,canonical:(e,i)=>e.tuple(i)},{name:"Triple",description:"A tuple of three elements",complexity:8200,canonical:(e,i)=>e.tuple(i)},{name:"Tuple",description:"A fixed number of heterogeneous elements",complexity:8200}]},{functions:[{name:"BaseForm",description:"`BaseForm(expr, base=10)`",complexity:9e3,inert:!0,simplify:(e,i)=>i[0]},{name:"Delimiter",complexity:9e3,inert:!0,evalDomain:(e,i)=>!i[0]||i[0].isMissing?"Nothing":i[0].domain,canonical:(e,i)=>!i[0]||i[0].isMissing?e.symbol("Nothing"):i[0],simplify:(e,i)=>i[0],evaluate:(e,i)=>i[0]},{name:"Error",complexity:500,hold:"all",evalDomain:(e,i)=>!i[0]||i[0].isMissing?"Nothing":i[0].domain,evaluate:(e,i)=>i[0].evaluate()},{name:"Style",complexity:9e3,evalDomain:(e,i)=>!i[0]||i[0].isMissing?"Nothing":i[0].domain,evaluate:(e,i)=>i[0]}]},{functions:[{name:"Apply",evalDomain:()=>"Anything"},{name:"About",evalDomain:()=>"Dictionary"},{name:"Block",evalDomain:()=>"Anything"},{name:"Domain",evalDomain:()=>"Domain"},{name:"Evaluate",domain:"Anything",hold:"all",evaluate:(e,i)=>i[0].evaluate()},{name:"FromDigits",description:"`FromDigits(s, base=10)` return an integer representation of the string `s` in base `base`.",evaluate:(e,i)=>{const t=i[0];if(t.isMissing)return;if(!t.string)return e.error(e._fn("FromDigits",i),"Expected first argument as a string",["LatexForm",t.latex]);const n=i[1];if(n.isMissing&&e.number(Number.parseInt(t.string,10)),null===n.machineValue)return["Error",e._fn("FromDigits",i),{str:"Expected `base` as an integer between 2 and 36"},["LatexForm",n.latex]];const r=n.machineValue;if(r<2||r>36)return["Error",e._fn("FromDigits",i),{str:"Expected `base` as an integer between 2 and 36"},["LatexForm",n.latex]];const[s,a]=Be(t.string,r);return a?["Error",s,{str:"unexpected-digits"},["LatexForm",a]]:e.number(s)}},{name:"Head",domain:"Expression",evaluate:(e,i)=>{const t=i[0];return"string"==typeof t.head?e.symbol(t.head):t.head}},{name:"Html",domain:"String",evaluate:(e,i)=>(i.length,e.string(""))},{name:"IntegerString",description:"`IntegerString(n, base=10)` return a string representation of the integer `n` in base `base`.",evaluate:(e,i)=>{var t,n,r,s;const a=i[0];if(a.isMissing)return;const o=null!==(r=null!==(t=a.machineValue)&&void 0!==t?t:null===(n=a.decimalValue)||void 0===n?void 0:n.toNumber())&&void 0!==r?r:NaN;if(Number.isNaN(o)||!Number.isInteger(o))return void e.signal(e._fn("IntegerString",i),`Expected first argument as an integer. Got \\(${a.latex}$\\)`);const l=i[1];if(l.isMissing)return a.machineValue?e.string(Math.abs(a.machineValue).toString()):a.decimalValue?e.string(a.decimalValue.abs().toString()):e.string(Math.abs(Math.round(null!==(s=a.asFloat)&&void 0!==s?s:NaN)).toString());if(null===l.asSmallInteger)return void e.signal(e._fn("IntegerString",i),`Expected \`base\` as an integer between 2 and 36. Got \\(${l.latex}$\\)`);const u=l.asSmallInteger;if(!(u<2||u>36))return e.string(Math.abs(o).toString(u));e.signal(e._fn("IntegerString",i),"Expected `base` as an integer between 2 and 36. Got "+u)}},{name:"Lambda",wikidata:"Q567612",hold:"all",evalDomain:()=>"Anything"},{name:"Latex",domain:"LatexString",evaluate:(e,i)=>0===i.length?e._fn("LatexString",[]):e._fn("LatexString",[e.string(v(i.map((e=>e.latex))))])},{name:"LatexString",domain:"LatexString",evaluate:(e,i)=>0===i.length?e._fn("LatexString",[]):e._fn("LatexString",[e.string(v(i.map((i=>e.serialize(i)))))])},{name:"LatexTokens",evalDomain:()=>"LatexString",evaluate:(e,i)=>0===i.length?e._fn("LatexString",[]):e._fn("LatexString",[e.string(v(i.map((i=>e.serialize(i)))))])},{name:"Parse",domain:"Anything",evaluate:(e,i)=>{if(0===i.length)return e.symbol("Nothing");const t=v(i.map((i=>e.serialize(i))));return e.parse(t)}},{name:"String",domain:"String",threadable:!0,evaluate:(e,i)=>0===i.length?e.string(""):e.string(i.map((e=>{var i;return null!==(i=e.string)&&void 0!==i?i:`\\(${e.latex}$\\)`})).join(""))},{name:"Symbol",complexity:500,description:"Construct a new symbol with a name formed by concatenating the arguments",domain:"Symbol",threadable:!0,evaluate:(e,i)=>{if(0===i.length)return e.symbol("Nothing");const t=i.map((e=>{const i=e.symbol;if(null!==i)return i;const n=t.string;if(null!==n)return n;const r=t.smallIntegerValue;return null!==r?r.toString():""})).join("");return t.length>0?e.symbol(t):e.symbol("Nothing")}},{name:"SymbolName",evaluate:(e,i)=>i[0].symbol?e.string(i[0].symbol):e.symbol("Nothing")},{name:"Tail",evalDomain:()=>"List",evaluate:(e,i)=>{var t;return e._fn("List",null!==(t=i[0].ops)&&void 0!==t?t:[])}},{name:"Timing",description:"`Timing(expr)` evaluates `expr` and return a `Pair` of the number of second elapsed for the evaluation, and the value of the evaluation",domain:"Pair",evaluate:(e,i)=>{var t;if(!i[1]||i[1].isMissing){const t=globalThis.performance.now(),n=i[0].evaluate(),r=1e3*(globalThis.performance.now()-t);return e.pair(e.number(r),n)}let n,r=Math.max(3,Math.round(null!==(t=i[1].asSmallInteger)&&void 0!==t?t:3)),s=[];for(;r>0;){const e=globalThis.performance.now();n=i[0].evaluate(),s.push(1e3*(globalThis.performance.now()-e)),r-=1}const a=Math.max(...s),o=Math.min(...s);s=s.filter((e=>e>o&&e<a));const l=s.reduce(((e,i)=>e+i),0);return 0===l?e.pair(e.number(a),n):e.pair(e.number(l/s.length),n)}}]}],ct={symbols:[{name:"True",wikidata:"Q16751793",domain:"Boolean",constant:!0},{name:"False",wikidata:"Q5432619",domain:"Boolean",constant:!0},{name:"Maybe",wikidata:"Q781546",domain:"MaybeBoolean",constant:!0}],functions:[{name:"And",wikidata:"Q191081",domain:"MaybeBoolean",threadable:!0,associative:!0,commutative:!0,idempotent:!0,complexity:1e4,logic:!0,simplify:mt,evaluate:mt},{name:"Or",wikidata:"Q1651704",domain:"MaybeBoolean",threadable:!0,associative:!0,commutative:!0,idempotent:!0,complexity:1e4,logic:!0,simplify:ht,evaluate:ht},{name:"Not",wikidata:"Q190558",domain:"MaybeBoolean",involution:!0,complexity:10100,logic:!0,simplify:dt,evaluate:dt},{name:"Equivalent",wikidata:"Q220433",domain:"MaybeBoolean",complexity:10200,logic:!0,simplify:ft,evaluate:ft},{name:"Implies",wikidata:"Q7881229",domain:"MaybeBoolean",complexity:10200,logic:!0,simplify:gt,evaluate:gt},{name:"Exists",domain:"MaybeBoolean"}]};function mt(e,i){if(0===i.length)return e.symbol("True");const t=[];for(const n of i){if("False"===n.symbol)return e.symbol("False");if("True"!==n.symbol){let i=!1;for(const r of t)if(r.isSame(n))i=!0;else if("Not"===n.head&&n.op1.isSame(r)||"Not"===r.head&&r.op1.isSame(n))return e.symbol("False");i||t.push(n)}}return 0===t.length?e.symbol("True"):1===t.length?t[0]:e._fn("And",t)}function ht(e,i){if(0===i.length)return e.symbol("True");const t=[];for(const n of i){if("True"===n.symbol)return e.symbol("True");if("False"!==n.symbol){let i=!1;for(const r of t)if(r.isSame(n))i=!0;else if("Not"===n.head&&n.op1.isSame(r)||"Not"===r.head&&r.op1.isSame(n))return e.symbol("True");i||t.push(n)}}return 0===t.length?e.symbol("True"):1===t.length?t[0]:e._fn("Or",t)}function dt(e,i){const t=i[0].symbol;return"True"===t?e.symbol("False"):"False"===t?e.symbol("True"):"Maybe"===t?e.symbol("Maybe"):void 0}function ft(e,i){const t=i[0].symbol,n=i[1].symbol;return"True"===t&&"True"===n||"False"===t&&"False"===n?e.symbol("True"):"True"===t&&"False"===n||"False"===t&&"True"===n?e.symbol("False"):"Maybe"===t||"Maybe"===n?e.symbol("Maybe"):void 0}function gt(e,i){const t=i[0].symbol,n=i[1].symbol;return"True"===t&&"True"===n||"False"===t&&"False"===n||"False"===t&&"True"===n?e.symbol("True"):"True"===t&&"False"===n?e.symbol("False"):"Maybe"===t||"Maybe"===n?e.symbol("Maybe"):void 0}const pt=(e,i)=>i[0]&&i[0].domain.isSubsetOf("Number")?e.symbol("RealNumber"):null,vt=(e,i)=>{if(!i[0])return null;const t=i[0].domain;return t.isSubsetOf("RealNumber")?e.symbol("RealNumber"):t.isSubsetOf("ComplexNumber")?e.symbol("ComplexNumber"):null},bt=[{symbols:[{name:"Degrees",domain:"RealNumber",constant:!0,value:["Divide","Pi",180]},{name:"Pi",domain:"TranscendentalNumber",algebraic:!1,constant:!0,hold:!0,wikidata:"Q167",value:e=>ri(e)?e.DECIMAL_PI:Math.PI}],functions:[{name:"Hypot",evaluate:["Sqrt",["Square","_1"],["Square","_2"]],evalDomain:pt},{name:"Sin",evalDomain:vt,numeric:!0,complexity:5e3,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Sin",i[0]))&&void 0!==t?t:si(e)?e.box(["Divide",["Subtract",["Exp",["Multiply","ImaginaryUnit",i[0]]],["Exp",["Multiply","ImaginaryUnit",["Negate",i[0]]]]],["Complex",0,2]]).canonical:void 0},evaluate:(e,i)=>{var t;return null!==(t=Et(e,"Sin",i[0]))&&void 0!==t?t:si(e)?e.box(["Divide",["Subtract",["Exp",["Multiply","ImaginaryUnit",i[0]]],["Exp",["Multiply","ImaginaryUnit",["Negate",i[0]]]]],["Complex",0,2]]).canonical:void 0},N:(e,i)=>i[0].decimalValue?e.number(e.chop(i[0].decimalValue.sin())):i[0].complexValue?e.number(i[0].complexValue.sin()):null!==i[0].asFloat?e.number(Math.sin(i[0].asFloat)):void 0}]},{functions:[{name:"Arctan",wikidata:"Q2257242",evalDomain:pt,numeric:!0,complexity:5200,simplify:(e,i)=>Et(e,"Arctan",i[0]),N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.atan()):i[0].complexValue?e.number(i[0].complexValue.atan()):null!==i[0].asFloat?e.number(Math.atan(i[0].asFloat)):void 0},{name:"Arctan2",wikidata:"Q776598",evalDomain:pt,numeric:!0,complexity:5200,N:(e,i)=>i[0].decimalValue&&i[1].decimalValue?e.number(l.exports.Decimal.atan2(i[0].decimalValue,i[1].decimalValue)):null!==i[0].asFloat&&null!==i[1].asFloat?e.number(Math.atan2(i[0].asFloat,i[1].asFloat)):void 0},{name:"Cos",evalDomain:pt,numeric:!0,complexity:5050,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Cos",i[0]))&&void 0!==t?t:e.box(["Sin",["Add",i[0],["Multiply","Half","Pi"]]]).canonical},evaluate:["Sin",["Add","_1",["Multiply","Half","Pi"]]],N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.cos()):i[0].complexValue?e.number(i[0].complexValue.cos()):null!==i[0].asFloat?e.number(Math.cos(i[0].asFloat)):void 0},{name:"Tan",evalDomain:vt,numeric:!0,complexity:5100,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Tan",i[0]))&&void 0!==t?t:e.box(["Divide",["Sin",i[0]],["Cos",i[0]]]).canonical},evaluate:["Divide",["Sin","_1"],["Cos","_1"]],N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.tan()):i[0].complexValue?e.number(i[0].complexValue.tan()):null!==i[0].asFloat?e.number(Math.tan(i[0].asFloat)):void 0}]},{functions:[{name:"Arcosh",evalDomain:pt,numeric:!0,complexity:6200,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Arcoshh",i[0]))&&void 0!==t?t:e.box(["Ln",["Add",i[0],["Sqrt",["Subtract",["Square",i[0]],1]]]]).canonical},evaluate:["Ln",["Add","_1",["Sqrt",["Subtract",["Square","_1"],1]]]],N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.acosh()):i[0].complexValue?e.number(i[0].complexValue.acosh()):null!==i[0].asFloat?e.number(Math.acosh(i[0].asFloat)):void 0},{name:"Arcsin",evalDomain:pt,numeric:!0,complexity:5500,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Arcsin",i[0]))&&void 0!==t?t:e.box(["Multiply",2,["Arctan2",i[0],["Add",1,["Sqrt",["Subtract",1,["Square",i[0]]]]]]]).canonical},evaluate:["Multiply",2,["Arctan2","_1",["Add",1,["Sqrt",["Subtract",1,["Square","_1"]]]]]],N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.asin()):i[0].complexValue?e.number(i[0].complexValue.asin()):null!==i[0].asFloat?e.number(Math.asin(i[0].asFloat)):void 0},{name:"Arsinh",evalDomain:pt,numeric:!0,complexity:6100,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Arsinh",i[0]))&&void 0!==t?t:e.box(["Ln",["Add",i[0],["Sqrt",["Add",["Square",i[0]],1]]]]).canonical},evaluate:["Ln",["Add","_1",["Sqrt",["Add",["Square","_1"],1]]]],N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.asinh()):i[0].complexValue?e.number(i[0].complexValue.asinh()):null!==i[0].asFloat?e.number(Math.asinh(i[0].asFloat)):void 0},{name:"Artanh",evalDomain:pt,numeric:!0,complexity:6300,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Artanh",i[0]))&&void 0!==t?t:e.box(["Multiply","Half",["Ln",["Divide",["Add",1,i[0]],["Subtract",1,i[0]]]]]).canonical},evaluate:["Multiply","Half",["Ln",["Divide",["Add",1,"_1"],["Subtract",1,"_1"]]]],N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.atanh()):i[0].complexValue?e.number(i[0].complexValue.atanh()):null!==i[0].asFloat?e.number(Math.atanh(i[0].asFloat)):void 0},{name:"Cosh",evalDomain:pt,numeric:!0,complexity:6050,simplify:(e,i)=>Et(e,"Cosh",i[0]),evaluate:["Multiply","Half",["Add",["Exp","_1"],["Exp",["Negate","_1"]]]],N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.cosh()):i[0].complexValue?e.number(i[0].complexValue.cosh()):null!==i[0].asFloat?e.number(Math.cosh(i[0].asFloat)):void 0},{name:"Cot",evalDomain:vt,numeric:!0,complexity:5600,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Cot",i[0]))&&void 0!==t?t:e.box(["Divide",["Cos",i[0]],["Sin",i[0]]]).canonical},evaluate:["Divide",["Cos","_1"],["Sin","_1"]],N:(e,i)=>i[0].decimalValue?e.number(e.DECIMAL_ONE.div(i[0].decimalValue.tan())):i[0].complexValue?e.number(i[0].complexValue.tan().inverse()):null!==i[0].asFloat?e.number(1/Math.tan(i[0].asFloat)):void 0},{name:"Csc",description:"Cosecant",evalDomain:pt,numeric:!0,complexity:5600,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Csc",i[0]))&&void 0!==t?t:e.box(["Divide",1,["Sin",i[0]]]).canonical},evaluate:["Divide",1,["Sin","_1"]],N:(e,i)=>i[0].decimalValue?e.number(e.DECIMAL_ONE.div(i[0].decimalValue.sin())):i[0].complexValue?e.number(i[0].complexValue.sin().inverse()):null!==i[0].asFloat?e.number(1/Math.sin(i[0].asFloat)):void 0},{name:"Haversine",wikidata:"Q2528380",evalDomain:pt,evaluate:["Divide",["Subtract",1,["Cos","_1"]],2],numeric:!0},{name:"InverseHaversine",evalDomain:vt,numeric:!0,evaluate:["Multiply",2,["Arcsin",["Sqrt","_1"]]]},{name:"Sec",description:"Secant, inverse of cosine",evalDomain:vt,numeric:!0,complexity:5500,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Sec",i[0]))&&void 0!==t?t:e.box(["Divide",1,["Cos",i[0]]]).canonical},evaluate:["Divide",1,["Cos","_1"]],N:(e,i)=>i[0].decimalValue?e.number(e.DECIMAL_ONE.div(i[0].decimalValue.cos())):i[0].complexValue?e.number(i[0].complexValue.cos().inverse()):null!==i[0].asFloat?e.number(1/Math.cos(i[0].asFloat)):void 0},{name:"Sinh",evalDomain:vt,numeric:!0,complexity:6e3,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Sinh",i[0]))&&void 0!==t?t:e.box(["Multiply","Half",["Subtract",["Exp",i[0]],["Exp",["Negate",i[0]]]]]).canonical},evaluate:["Multiply","Half",["Subtract",["Exp","_1"],["Exp",["Negate","_1"]]]]}]},{functions:[{name:"Csch",evalDomain:pt,numeric:!0,complexity:6200,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Csch",i[0]))&&void 0!==t?t:e.box(["Divide",1,["Sinh",i[0]]]).canonical},evaluate:["Divide",1,["Sinh","_1"]],N:(e,i)=>i[0].decimalValue?e.number(e.DECIMAL_ONE.div(i[0].decimalValue.sinh())):i[0].complexValue?e.number(i[0].complexValue.sinh().inverse()):null!==i[0].asFloat?e.number(1/Math.sinh(i[0].asFloat)):void 0},{name:"Sech",evalDomain:vt,numeric:!0,complexity:6200,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Sech",i[0]))&&void 0!==t?t:e.box(["Divide",1,["Cosh",i[0]]]).canonical},evaluate:["Divide",1,["Cosh","_1"]],N:(e,i)=>i[0].decimalValue?e.number(e.DECIMAL_ONE.div(i[0].decimalValue.cosh())):i[0].complexValue?e.number(i[0].complexValue.cosh().inverse()):null!==i[0].asFloat?e.number(1/Math.cosh(i[0].asFloat)):void 0},{name:"Tanh",evalDomain:vt,numeric:!0,complexity:6200,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Tanh",i[0]))&&void 0!==t?t:e.box(["Divide",["Sinh",i[0]],["Cosh",i[0]]]).canonical},evaluate:["Divide",["Sinh","_1"],["Cosh","_1"]],N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.tanh()):i[0].complexValue?e.number(i[0].complexValue.tanh()):null!==i[0].asFloat?e.number(Math.tanh(i[0].asFloat)):void 0}]},{functions:[{name:"Arccos",evalDomain:pt,numeric:!0,complexity:5550,evaluate:["Subtract",["Divide","Pi",2],["Arcsin","_1"]],simplify:(e,i)=>{var t;return null!==(t=Et(e,"Arccos",i[0]))&&void 0!==t?t:e.box(["Subtract",["Divide","Pi",2],["Arcsin",i[0]]]).canonical},N:(e,i)=>i[0].decimalValue?e.number(i[0].decimalValue.acos()):i[0].complexValue?e.number(i[0].complexValue.acos()):null!==i[0].asFloat?e.number(Math.acos(i[0].asFloat)):void 0},{name:"Coth",evalDomain:vt,numeric:!0,complexity:6300,simplify:(e,i)=>{var t;return null!==(t=Et(e,"Coth",i[0]))&&void 0!==t?t:e.box(["Divide",1,["Tanh",i[0]]]).canonical},evaluate:["Divide",1,["Tanh","_1"]],N:(e,i)=>i[0].decimalValue?e.number(e.DECIMAL_ONE.div(i[0].decimalValue.tanh())):i[0].complexValue?e.number(i[0].complexValue.tanh().inverse()):null!==i[0].asFloat?e.number(1/Math.tanh(i[0].asFloat)):void 0},{name:"InverseFunction",domain:"Number",simplify:(e,i)=>It(e,i[0]),evaluate:(e,i)=>It(e,i[0])}]}],yt=["Sqrt",2],xt=["Sqrt",3],Nt=["Sqrt",5],_t=["Sqrt",6],wt=[[[0,1],{Sin:0,Cos:1,Tan:0,Cot:NaN,Sec:1,Csc:NaN}],[[1,12],{Sin:["Divide",["Subtract",_t,yt],4],Cos:["Divide",["Add",_t,yt],4],Tan:["Subtract",2,xt],Cot:["Add",2,xt],Sec:["Subtract",_t,yt],Csc:["Add",_t,yt]}],[[1,10],{Sin:["Divide",["Subtract",Nt,1],4],Cos:["Divide",["Sqrt",["Add",10,["Multiply",2,Nt]]],4],Tan:["Divide",["Sqrt",["Subtract",25,["Multiply",10,Nt]]],4],Cot:["Sqrt",["Add",5,["Multiply",2,Nt]]],Sec:["Divide",["Sqrt",["Subtract",50,["Multiply",10,Nt]]],5],Csc:["Add",1,Nt]}],[[1,8],{Sin:"$\\frac\\sqrt{2-\\sqrt2}{2}$",Cos:"$\\frac {\\sqrt {2+{\\sqrt {2}}}}{2}$",Tan:"$\\sqrt{2} - 1$",Cot:"$\\sqrt{2} + 1$",Sec:"$\\sqrt{ 4 - 2\\sqrt{2}$",Csc:"$\\sqrt{ 4 + 2\\sqrt{2}$"}],[[1,6],{Sin:"$\\frac{1}{2}$",Cos:"$\\frac{\\sqrt{3}}{2}$",Tan:"$\\frac{\\sqrt{3}}{3}$",Cot:"$\\frac{2\\sqrt{3}}{3}$",Sec:"$\\sqrt{3}$",Csc:2}],[[1,5],{Sin:"$\\frac{\\sqrt{10- 2\\sqrt{5}}} {4}$",Cos:"$\\frac{1+ \\sqrt{5}} {4}$",Tan:"$\\sqrt{5-2\\sqrt5}$",Cot:"$\\frac{\\sqrt{25+10\\sqrt5}} {5}$",Sec:"$\\sqrt{5} - 1$",Csc:"$\\frac{\\sqrt{50+10\\sqrt{5}}} {5}$"}],[[1,4],{Sin:["Divide",yt,2],Cos:["Divide",yt,2],Tan:1,Cot:1,Sec:yt,Csc:yt}],[[3,10],{Sin:"$\\frac{1+ \\sqrt{5}} {4}$",Cos:"$\\frac{\\sqrt{10- 2\\sqrt{5}}} {4}$",Tan:"$\\frac{\\sqrt{25+10\\sqrt5}} {5}$",Cot:"$\\sqrt{5-2\\sqrt5}$",Sec:"$$",Csc:"$\\frac{\\sqrt{50+10\\sqrt{5}}} {5}$"}],[[1,3],{Sin:["Divide",xt,2],Cos:"Half",Tan:xt,Cot:["Divide",xt,3],Sec:2,Csc:["Divide",["Multiply",2,xt],3]}],[[3,8],{Sin:"$\\frac{ \\sqrt{2 + \\sqrt{2}} } {2}$",Cos:"$\\frac{ \\sqrt{2 - \\sqrt{2}} } {2}$",Tan:"$\\sqrt{2} + 1$",Cot:"$\\sqrt{2} - 1$",Sec:"$\\sqrt{ 4 + 2 \\sqrt{2} }$",Csc:"$\\sqrt{ 4 - 2 \\sqrt{2} }$"}],[[2,5],{Sin:"$\\frac{\\sqrt{10+ 2\\sqrt{5}}} {4}$",Cos:"$\\frac{\\sqrt{5}-1} {4}$",Tan:"$\\sqrt{5+2\\sqrt{5}}$",Cot:"$\\frac{\\sqrt{25-10\\sqrt{5}}} {5}$",Sec:"$1 + \\sqrt{5}$",Csc:"$\\frac{\\sqrt{50-10\\sqrt{5}}} {5}$"}],[[5,12],{Sin:"$\\frac{\\sqrt{6} + \\sqrt{2}} {4}$",Cos:"$\\frac{ \\sqrt{6} - \\sqrt{2}} {4}$",Tan:"$2+\\sqrt{3}$",Cot:"$2-\\sqrt{3}$",Sec:"$\\sqrt{6}+\\sqrt{2}$",Csc:"$\\sqrt{6} - \\sqrt{2}$"}],[[1,2],{Sin:1,Cos:0,Tan:NaN,Cot:0,Sec:NaN,Csc:1}]],St={Sin:[[1,"Sin"],[1,"Cos"],[-1,"Sin"],[-1,"Cos"]],Cos:[[1,"Cos"],[-1,"Sin"],[-1,"Cos"],[1,"Sin"]],Sec:[[1,"Sec"],[-1,"Csc"],[-1,"Sec"],[1,"Csc"]],Csc:[[1,"Csc"],[1,"Sec"],[-1,"Csc"],[-1,"Sec"]],Tan:[[1,"Tan"],[-1,"Cot"],[1,"Tan"],[-1,"Cot"]],Cot:[[1,"Cot"],[-1,"Tan"],[1,"Cot"],[-1,"Tan"]]};function Et(e,i,t){var n;if(!t||t.isMissing)return;const r=e.cache("constructible-trigonometric-values",(()=>{var i;const t=[];for(const[n,r]of wt){const s={};for(const t of Object.keys(r))s[t]=(null!==(i=e.parse(ii(r[t])))&&void 0!==i?i:e.box(r[t])).canonical;t.push([n,s])}return t}),(e=>{for(const[i,t]of e)for(const e of Object.values(t))e._purge();return e}));if(!(t=null!==(n=t.numericValue)&&void 0!==n?n:t).isLiteral)return;let s=t.asFloat;if(null===s)return;s%=2*Math.PI;const a="Cos"!==i&&"Sec"!==i?Math.sign(s):1;s=Math.abs(s);const o=Math.floor(2*s/Math.PI);let l;s%=Math.PI/2,[l,i]=St[i][o],l*=a;for(const[[t,n],a]of r)if(0===e.chop(s-Math.PI*t/n))return l<0?Hi(a[i]):a[i]}function It(e,i){const t=i.op1.head;if("string"!=typeof t)return i;const n={Sin:"Arcsin",Cos:"Arccos",Tan:"Arctan",Sec:"Arcsec",Csc:" Arccsc",Sinh:"Arsinh",Cosh:"Arcosh",Tanh:"Artanh",Sech:"Arcsech",Csch:"Arcsch",Arcosh:"Cosh",Arcos:"Cos",Arccsc:"Csc",Arcsch:"Csch",Arcsec:"Sec",Arcsin:"Sin",Arsinh:"Sinh",Arctan:"Tan",Artanh:"Tanh"}[t];return n?e._fn(n,[i.op1.op1]):i}class kt{constructor(e,i){var t,n,r,s,a,o,l,u,c,m,h,d,f;const g=null!==(t=i.numeric)&&void 0!==t&&t,p=null!==(n=i.hold)&&void 0!==n?n:"none",v=null!==(r=i.idempotent)&&void 0!==r&&r,b=null!==(s=i.involution)&&void 0!==s&&s;if(g&&"none"!==p)throw Error(`Function Definition "${i.name}": unexpected 'hold' attribute on a 'numeric' function`);if(v&&b)throw Error(`Function Definition "${i.name}": the 'idempotent' and 'involution' flags are mutually exclusive in function `);if(i.domain&&i.evalDomain)throw Error(`Function definition "${i.name}" should include either 'domain' or 'evalDomain', not both `);this.name=i.name,this.description=i.description,this.wikidata=i.wikidata,this.scope=e.context,this.threadable=null!==(a=i.threadable)&&void 0!==a&&a,this.associative=null!==(o=i.associative)&&void 0!==o&&o,this.commutative=null!==(l=i.commutative)&&void 0!==l&&l,this.idempotent=v,this.involution=b,this.numeric=g,this.logic=null!==(u=i.logic)&&void 0!==u&&u,this.relationalOperator=null!==(c=i.relationalOperator)&&void 0!==c&&c,this.inert=null!==(m=i.inert)&&void 0!==m&&m,this.pure=null===(h=i.pure)||void 0===h||h,this.complexity=null!==(d=i.complexity)&&void 0!==d?d:oi,this.hold=p,this.sequenceHold=null!==(f=i.sequenceHold)&&void 0!==f&&f,this.range=i.range,this.domain=i.domain?e.domain(i.domain):i.numeric?e.domain("Number"):e.domain("Anything"),this.canonical=i.canonical,this.simplify=i.simplify,this.evaluate=i.evaluate?"function"==typeof i.evaluate?i.evaluate:e.box(i.evaluate).canonical:void 0,this.N=i.N,this.evalDomain=i.evalDomain,this.evalDimension=i.evalDimension,this.sgn=i.sgn,this.compile=i.compile}_purge(){this.domain._purge()}}function Mt(e,i){return new kt(e,i)}function At(e,i){const t=e.engine;return"Negate"===e.head&&"Negate"===i.head?At(e.op1,i.op1):"Negate"===e.head?Hi(At(e.op1,i)):"Negate"===i.head?Hi(At(e,i.op1)):"Add"===e.head?t.add(e.ops.map((e=>At(e,i)))):"Add"===i.head?t.add(i.ops.map((i=>At(e,i)))):t.mul([e,i])}function Ot(e,i){if(1===i)return e;const t=At(e,e);return 2===i?t:i%2==0?Ot(t,i/2):At(Ot(t,Math.round(i/2)-1),e)}function Dt(e="all"){if("all"===e)return Dt(["domains","core","collections","algebra","arithmetic","calculus","combinatorics","dimensions","linear-algebra","logic","numeric","other","physics","polynomials","relop","statistics","trigonometry","units"]);const i=[];for(const t of e){const e=Ct[t];e&&Array.isArray(e)?i.push(...e):e&&i.push(e)}return i}const Ct={arithmetic:at,core:ut,collections:[{symbols:[{name:"EmptySet",domain:"Set",constant:!0,wikidata:"Q226183"}],functions:[{name:"Element",domain:"MaybeBoolean",complexity:11200},{name:"NotElement",domain:"MaybeBoolean",complexity:11200,canonical:(e,i)=>e.fn("Not",[e.fn("Element",i)])},{name:"Subset",domain:"MaybeBoolean",complexity:11200},{name:"NotSubset",domain:"MaybeBoolean",complexity:11200,canonical:(e,i)=>e.fn("Not",[e.fn("Subset",i)])},{name:"Superset",domain:"MaybeBoolean",complexity:11200},{name:"SupersetEqual",domain:"MaybeBoolean",complexity:11200},{name:"NotSuperset",domain:"MaybeBoolean",complexity:11200,canonical:(e,i)=>e.fn("Not",[e.fn("Superset",i)])},{name:"NotSupersetEqual",domain:"MaybeBoolean",complexity:11200,canonical:(e,i)=>e.fn("Not",[e.fn("SupersetEqual",i)])},{name:"SubsetEqual",domain:"MaybeBoolean",complexity:11200},{name:"NotSubsetNotEqual",domain:"MaybeBoolean",complexity:11200,canonical:(e,i)=>e.fn("Not",[e.fn("SubsetEqual",i)])},{name:"CartesianProduct",domain:"Set",wikidata:"Q173740"},{name:"Complement",domain:"Set",wikidata:"Q242767"},{name:"Intersection",domain:"Set",wikidata:"Q185837",threadable:!0,associative:!0,commutative:!0,involution:!0,evaluate:function(e,i){return e.symbol("EmptySet")}},{name:"Union",domain:"Set",wikidata:"Q185359",threadable:!0,associative:!0,commutative:!0,involution:!0,evaluate:function(e,i){return e.symbol("False")}},{name:"Set",domain:"Set"},{name:"SetMinus",domain:"Set",wikidata:"Q18192442",evaluate:function(e,i){return e.symbol("EmptySet")}},{name:"SymmetricDifference",domain:"Set",wikidata:"Q1147242"}]},{functions:[{name:"Sequence"}]}],logic:ct,relop:{functions:[{name:"Equal",domain:"MaybeBoolean",commutative:!0,complexity:11e3,relationalOperator:!0,evaluate:(e,i)=>{if(i.length<2)return e.symbol("True");let t;for(const n of i)if(t){if(!1===t.isEqual(n))return e.symbol("False")}else t=n;return e.symbol("True")}},{name:"NotEqual",domain:"MaybeBoolean",wikidata:"Q28113351",commutative:!0,complexity:11e3,relationalOperator:!0,evaluate:(e,i)=>{if(i.length<2)return e.symbol("False");let t;for(const n of i)if(t){if(!0===t.isEqual(n))return e.symbol("False")}else t=n;return e.symbol("True")}},{name:"Less",domain:"MaybeBoolean",complexity:11e3,relationalOperator:!0,evaluate:(e,i)=>{if(i.length<2)return e.symbol("True");let t;for(const n of i){if(!n.isNumber)return;if(t){const i=e.fn("Subtract",[n,t]).N().sgn;if(null==i)return;if(i<=0)return e.symbol("False");t=n}else t=n}return e.symbol("True")}},{name:"NotLess",domain:"MaybeBoolean",complexity:11e3,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("Less",i)])},{name:"Greater",domain:"MaybeBoolean",complexity:11e3,relationalOperator:!0,canonical:(e,i)=>e._fn("Less",i.reverse()),evaluate:(e,i)=>{if(i.length<2)return e.symbol("True");let t;for(const n of i){if(!n.isNumber)return;if(t){const i=e.fn("Subtract",[n,t]).N().sgn;if(null==i)return;if(i>=0)return e.symbol("False");t=n}else t=n}return e.symbol("True")}},{name:"NotGreater",domain:"MaybeBoolean",complexity:11e3,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("Greater",i)])},{name:"LessEqual",domain:"MaybeBoolean",complexity:11e3,relationalOperator:!0,evaluate:(e,i)=>{if(i.length<2)return e.symbol("True");let t;for(const n of i){if(!n.isNumber)return;if(t){const i=e.fn("Subtract",[n,t]).N().sgn;if(null==i)return;if(i<0)return e.symbol("False");t=n}else t=n}return e.symbol("True")}},{name:"NotLessNotEqual",domain:"MaybeBoolean",complexity:11e3,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("LessEqual",i)])},{name:"GreaterEqual",domain:"MaybeBoolean",complexity:11e3,relationalOperator:!0,canonical:(e,i)=>e._fn("LessEqual",i.reverse()),evaluate:(e,i)=>{if(i.length<2)return e.symbol("True");let t;for(const n of i){if(!n.isNumber)return;if(t){const i=e.fn("Subtract",[n,t]).N().sgn;if(null==i)return;if(i>0)return e.symbol("False");t=n}else t=n}return e.symbol("True")}},{name:"NotGreaterNotEqual",domain:"MaybeBoolean",complexity:11e3,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("GreaterEqual",i)])},{name:"TildeFullEqual",description:"Indicate isomorphism, congruence and homotopic equivalence",domain:"MaybeBoolean",relationalOperator:!0},{name:"NotTildeFullEqual",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("TildeFullEqual",i)])},{name:"TildeEqual",description:"Approximately or asymptotically equal",domain:"MaybeBoolean",relationalOperator:!0,complexity:11e3},{name:"NotTildeEqual",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("TildeEqual",i)])},{name:"Approx",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0},{name:"NotApprox",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("Approx",i)])},{name:"ApproxEqual",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0},{name:"NotApproxEqual",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("ApproxEqual",i)])},{name:"ApproxNotEqual",domain:"MaybeBoolean",relationalOperator:!0,complexity:11100},{name:"NotApproxNotEqual",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("ApproxNotEqual",i)])},{name:"Precedes",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0},{name:"NotPrecedes",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("Precedes",i)])},{name:"Succeeds",domain:"MaybeBoolean"},{name:"NotSucceeds",domain:"MaybeBoolean",complexity:11100,relationalOperator:!0,canonical:(e,i)=>e._fn("Not",[e._fn("Succeeds",i)])}]},polynomials:[{functions:[{name:"Expand",description:"Expand out products and positive integer powers",evaluate:(e,i)=>i[0]?function(e){if("Multiply"===(e=e.simplify()).head)return 2===e.nops?At(e.op1,e.op2):e.ops.reduce(((e,i)=>At(e,i)),e.engine.ONE);if("Power"===e.head){const i=e.op1.head;if("Multiply"===i)return e.engine.mul(e.op1.ops.map((i=>e.engine.power(i,e.op2))));if("Negate"===i){const i=e.op2.asSmallInteger;if(null!==i&&i>0)return i%2==0?e.engine.power(e.op1.op1,e.op2):e.engine.negate(e.engine.power(e.op1.op1,e.op2))}if("Add"===i){const i=e.op2.asSmallInteger;if(null!==i)return i>0?Ot(e.op1,i):e.engine.inverse(Ot(e.op1,-i))}}return e}(i[0]):e.symbol("Nothing")}]}],physics:{symbols:[{name:"Mu-0",description:"Vaccum permeability",constant:!0,wikidata:"Q1515261",domain:"RealNumber",value:125663706212e-17}]},trigonometry:bt};function qt(e,i){if("object"!=typeof i||!("name"in i)||!i.name)throw Error("Missing name for definition "+JSON.stringify(i));if(!/[A-Za-z][A-Za-z0-9-]*/.test(i.name)&&1!==i.name.length)throw Error("Invalid definition name "+i.name)}function Vt(e,i){if(void 0===i)return;if(Array.isArray(i)){for(const t of i)Vt(e,t);return}e.context.dictionary||(e.context.dictionary={symbols:new Map,functions:new Map,symbolWikidata:new Map,functionWikidata:new Map});const t=e.context.dictionary;if(i.symbols)for(const n of i.symbols){qt(0,n);const i=new Ti(e,n);if(n.wikidata){if(t.symbolWikidata.has(n.wikidata))throw Error(`Duplicate symbol with wikidata ${n.wikidata}, ${n.name} and ${t.symbolWikidata.get(n.wikidata).name}`);t.symbolWikidata.set(n.wikidata,i)}if(t.symbols.has(n.name))throw Error(`Duplicate symbol definition ${n.name}:\n${JSON.stringify(t.symbols.get(n.name))}\n${JSON.stringify(n)}`);t.symbols.set(n.name,i)}if(i.functions)for(const n of i.functions){qt(0,n);const i=Mt(e,n);if(t.functions.has(n.name)?t.functions.set(n.name,[...t.functions.get(n.name),i]):t.functions.set(n.name,[i]),n.wikidata){if(t.functionWikidata.has(n.wikidata))throw Error(`Duplicate function with wikidata ${n.wikidata}, ${n.name} and ${t.functionWikidata.get(n.wikidata).name}`);t.functionWikidata.set(n.wikidata,i)}}}function Pt(e){return Number.isInteger(e)?Math.floor(Math.log2(Math.abs(e))/Math.log2(10))+(e>0?1:2):2}const Ft=function e(i){var t,n;if(i.symbol)return 1;if(i.isLiteral){if(i.isZero)return 1;if(i.isInteger&&null!==i.asFloat)return Pt(i.asFloat);const[e,t]=i.rationalValue;if(null!==e&&null!==t)return Pt(e)+Pt(t)+1;if(i.complexValue){const e=i.complexValue;return Pt(e.re)+Pt(e.im)+1}if(i.isNumber)return 2}const r=i.head;return("string"==typeof r?1:e(r))+(null!==(n=null===(t=i.ops)||void 0===t?void 0:t.reduce(((i,t)=>i+e(t)),0))&&void 0!==n?n:0)};class Lt{constructor(e){this._items=e?e instanceof Lt?new Map(e._items):new Map(e):new Map}has(e){for(const i of this._items.keys())if(i.isSame(e))return!0;return!1}get(e){for(const[i,t]of this._items)if(i.isSame(e))return t}clear(){this._items.clear()}set(e,i){for(const t of this._items.keys())if(t.isSame(e))return void this._items.set(t,i);this._items.set(e,i)}delete(e){this._items.delete(e)}[Symbol.iterator](){return this._items.entries()}entries(){return this._items.entries()}}class Tt extends Ge{constructor(e,i,t){super(e,t),this._pattern=ei(i)?e.parse(i):e.box(i),this._pattern.isCanonical&&(this._canonicalPattern=this._pattern)}get hash(){return ai("Pattern")^this._pattern.hash}_purge(){var e;this._pattern._purge(),null===(e=this._canonicalPattern)||void 0===e||e._purge()}get json(){return pi(this.engine,"Pattern",[this._pattern])}get head(){return"Pattern"}get domain(){return this.engine.domain("Pattern")}get isCanonical(){return!0}set isCanonical(e){}isSame(e){return this===e||e instanceof Tt&&this._pattern.isSame(e._pattern)}isEqual(e){return e instanceof Tt&&this._pattern.isEqual(e._pattern)}match(e,i){var t,n,r;let s=this._pattern;return null!==(t=null==i?void 0:i.exact)&&void 0!==t&&t||(this._canonicalPattern||(this._canonicalPattern=this._pattern.canonical),s=this._canonicalPattern),function(e,i,t){var n;return Rt(e,i,{},{numericTolerance:null!==(n=null==t?void 0:t.numericTolerance)&&void 0!==n?n:Ve})||null}(e,s,{recursive:null!==(n=null==i?void 0:i.recursive)&&void 0!==n&&n,numericTolerance:null!==(r=null==i?void 0:i.numericTolerance)&&void 0!==r?r:0})}test(e,i){return null!==this.match(e,i)}count(e,i){let t=0;for(const n of e)null!==this.match(n,i)&&(t+=1);return t}subs(e){return new Tt(this.engine,this._pattern.subs(e).canonical)}}function zt(e,i,t){const n=function(e){const i=e.match(/^__?_?([a-zA-Z0-9]+)/);return null===i?"":i[1]}(e);return""===n?t:t[n]?i.isSame(t[n])?t:null:(t[n]=i,t)}function Rt(e,i,t,n){const r=e.engine;if(i instanceof Ci)return e instanceof Ci?0===n.numericTolerance?i.isSame(e)?t:null:i.isEqualWithTolerance(e,n.numericTolerance)?t:null:null;const s=i.string;if(null!==s)return e.string===s?t:null;const a=i.symbol;if(null!==a)return a.startsWith("_")?zt(a,e,t):a===e.symbol?t:null;if(i.nops!==e.nops)return null;const o=i.keys;if(null!==o){const i=e.keys;if(null===i)return null;for(const e of o){const r=Rt(i[e],o[e],t,n);if(null===r)return null;t=r}return t}if(i.ops){const s=i.head;if("string"==typeof s&&s.startsWith("_"))return zt(s,r.box(e.head),t);{const i=Rt(r.box(e.head),r.pattern(s),t,n);if(null===i)return null;t=i}const a=e.ops;let o=Object.assign({},t),l=0;const u=i.ops.map((e=>r.pattern(e)));for(;l<i.nops;){const e=u[l],i=e.symbol;if(null!==i)if(i.startsWith("__")){let e=0;if(void 0===u[l+1])e=a.length+1;else{let i=!1;for(;!i&&e<a.length;)i=null!==Rt(a[e],u[l+1],t,n),e+=1;if(!i)return null}if(!i.startsWith("___")&&e<=1)return null;o=zt(i,r.fn("Sequence",a.splice(0,e-1)),o)}else if(i.startsWith("_"))o=zt(i,a.shift(),o);else{const i=Rt(a.shift(),e,t,n);if(null===i)return null;o=Object.assign(Object.assign({},o),i)}else{const i=Rt(a.shift(),e,t,n);if(null===i)return null;o=Object.assign(Object.assign({},o),i)}if(null===o)return null;l+=1}return o}return null}class $t{constructor(e){var i,t,n,r,s;this._cache={},this._commonSymbols={True:null,False:null,Maybe:null,All:null,Missing:null,Nothing:null,None:null,Undefined:null,Pi:null,ImaginaryUnit:null},this._commonNumbers={0:null,1:null,2:null,3:null,4:null,5:null,6:null,7:null,8:null,9:null,10:null},this._commonDomains={Anything:null,Nothing:null,Boolean:null,MaybeBoolean:null,String:null,Domain:null,Symbol:null,Integer:null,RationalNumber:null,AlgebraicNumber:null,RealNumber:null,ExtendedRealNumber:null,ImaginaryNumber:null,ComplexNumber:null,ExtendedComplexNumber:null,Number:null,PositiveInteger:null,TranscendentalNumber:null,PositiveNumber:null},this._latexDictionary=null==e?void 0:e.latexDictionary,this._jsonSerializationOptions={exclude:[],shorthands:["function","symbol","string","dictionary","number"],metadata:[],repeatingDecimal:!0},this._stats={highwaterMark:0,symbols:new Set,expressions:new Set},this._defaultDomain=null,this._numericMode=null!==(i=null==e?void 0:e.numericMode)&&void 0!==i?i:"auto",this._precision=Math.max(null!==(t=null==e?void 0:e.numericPrecision)&&void 0!==t?t:100,Math.floor(qe)),this._decimal=l.exports.Decimal.clone({precision:this._precision}),this.decimal=e=>new this._decimal(e),this.complex=(e,i)=>new c.exports.Complex(e,i),this.tolerance=null!==(n=null==e?void 0:e.tolerance)&&void 0!==n?n:Ve,this.ZERO=new Ci(this,0),this.ONE=new Ci(this,1),this.TWO=new Ci(this,2),this.HALF=new Ci(this,[1,2]),this.NEGATIVE_ONE=new Ci(this,-1),this.I=new Ci(this,c.exports.Complex.I),this.NAN=new Ci(this,NaN),this.POSITIVE_INFINITY=new Ci(this,1/0),this.NEGATIVE_INFINITY=new Ci(this,-1/0),this.COMPLEX_INFINITY=new Ci(this,c.exports.Complex.INFINITY),this.purge();const a=null!==(r=null==e?void 0:e.dictionaries)&&void 0!==r?r:$t.getDictionaries();this.pushScope({dictionary:a,scope:{warn:e=>{for(const i of e)i.message},timeLimit:2,memoryLimit:1,recursionLimit:1024}}),null===(null==e?void 0:e.assumptions)?this.pushScope():this.pushScope({assumptions:null==e?void 0:e.assumptions});for(const e of Object.keys(this._commonDomains))this._commonDomains[e]&&!this._commonDomains[e].symbolDefinition&&this._commonDomains[e]._repairDefinition();for(const e of Object.keys(this._commonSymbols))this._commonSymbols[e]&&!this._commonSymbols[e].symbolDefinition&&this._commonSymbols[e]._repairDefinition();this._defaultDomain=null===(null==e?void 0:e.defaultDomain)?null:this.domain(null!==(s=null==e?void 0:e.defaultDomain)&&void 0!==s?s:"ExtendedRealNumber")}static getDictionaries(e="all"){return Dt(e)}purge(){var e,i;this.DECIMAL_NEGATIVE_ONE=this.decimal(-1),this.DECIMAL_NAN=this.decimal(NaN),this.DECIMAL_ZERO=this.decimal(0),this.DECIMAL_ONE=this.decimal(1),this.DECIMAL_TWO=this.decimal(2),this.DECIMAL_HALF=this.DECIMAL_ONE.div(this.DECIMAL_TWO),this.DECIMAL_PI=this.DECIMAL_NEGATIVE_ONE.acos();const t=this._stats.symbols.values(),n=this._stats.expressions.values();this._stats.symbols=new Set,this._stats.expressions=new Set;for(const e of t)e._purge();for(const e of n)e._purge();for(const e of Object.values(this._commonDomains))null==e||e._purge();for(const e of Object.values(this._commonSymbols))null==e||e._purge();let r=this.context;for(;r;){if(null===(e=r.dictionary)||void 0===e?void 0:e.functions)for(const[e,i]of r.dictionary.functions)for(const e of i)e._purge();if(null===(i=r.dictionary)||void 0===i?void 0:i.symbols)for(const[e,i]of r.dictionary.symbols)i._purge();r=r.parentScope}for(const e of Object.keys(this._cache))this._cache[e].value&&(this._cache[e].purge?this._cache[e].value=this._cache[e].purge(this._cache[e].value):delete this._cache[e])}_register(e){this._stats.highwaterMark+=1}_unregister(e){}get stats(){const e=this._stats.expressions;return this._stats.expressions=null,this._stats.expressions=e,Object.assign({},this._stats)}get precision(){return this._precision}set precision(e){const i=this._precision;"machine"===e&&(e=Math.floor(qe)),e!==i&&(this._latexSyntax&&this.latexSyntax.updateOptions({precision:e,avoidExponentsInRange:[-6,e]}),this._precision=Math.max(e,Math.floor(qe)),this._decimal=this._decimal.config({precision:this._precision}),this.purge())}get numericMode(){return this._numericMode}set numericMode(e){e!==this._numericMode&&(this._numericMode=e,"complex"!==e&&"machine"!==e||(this._precision=Math.floor(qe)),this._latexSyntax&&this.latexSyntax.options.precision>this._precision&&this.latexSyntax.updateOptions({precision:this._precision}),this.purge())}get timeLimit(){let e=this.context;for(;e;){if(void 0!==e.timeLimit)return e.timeLimit;e=e.parentScope}return 2}get iterationLimit(){let e=this.context;for(;e;){if(void 0!==e.iterationLimit)return e.iterationLimit;e=e.parentScope}return 1024}get recursionLimit(){let e=this.context;for(;e;){if(void 0!==e.recursionLimit)return e.recursionLimit;e=e.parentScope}return 1024}get defaultDomain(){return this._defaultDomain}set defaultDomain(e){this._defaultDomain=null===e?null:this.domain(e)}get tolerance(){return this._tolerance}set tolerance(e){this._tolerance="number"==typeof e&&Number.isFinite(e)?Math.max(e,0):Ve,this._decimalTolerance=this.decimal(this._tolerance)}chop(e){return"number"==typeof e&&Math.abs(e)<=this._tolerance||e instanceof l.exports.Decimal&&e.abs().lte(this._decimalTolerance)||e instanceof c.exports.Complex&&Math.abs(e.re)<=this._tolerance&&Math.abs(e.im)<=this._tolerance?0:e}get latexSyntax(){return this._latexSyntax||(this._latexSyntax=new Ce({computeEngine:this,dictionary:this._latexDictionary,precision:this.precision,avoidExponentsInRange:[-6,this.precision],onError:e=>{throw Error(e[0].message.toString())}})),this._latexSyntax}set costFunction(e){"function"!=typeof e&&(this._cost=Ft),this._cost=e}get costFunction(){var e;return null!==(e=this._cost)&&void 0!==e?e:Ft}getSymbolDefinition(e,i){var t,n,r;let s,a=this.context;if(i)for(;a&&!s;)s=null===(t=a.dictionary)||void 0===t?void 0:t.symbolWikidata.get(i),a=a.parentScope;for(;a&&!s;)i&&(s=null===(n=a.dictionary)||void 0===n?void 0:n.symbolWikidata.get(i)),s||(s=null===(r=a.dictionary)||void 0===r?void 0:r.symbols.get(e)),a=a.parentScope;return s}getFunctionDefinition(e){var i;let t,n=this.context;for(;n&&!t;)t=null===(i=n.dictionary)||void 0===i?void 0:i.functions.get(e),n=n.parentScope;if(t)return t[0]}defineSymbol(e){const i=new Ti(this,e);return this.context.dictionary||(this.context.dictionary={symbols:new Map,functions:new Map,symbolWikidata:new Map,functionWikidata:new Map}),e.name&&this.context.dictionary.symbols.set(e.name,i),e.wikidata&&this.context.dictionary.symbolWikidata.set(e.wikidata,i),i}pushScope(e){var i;if(this.context=Object.assign(Object.assign({},null==e?void 0:e.scope),{parentScope:this.context,assumptions:this.context?new Lt(this.context.assumptions):new Lt}),Vt(this,null==e?void 0:e.dictionary),void 0!==(null==e?void 0:e.assumptions))for(const t of e.assumptions)this.assume(null!==(i=this.parse(ii(t)))&&void 0!==i?i:t)}popScope(){var e;const i=null===(e=this.context)||void 0===e?void 0:e.parentScope;if(this.context.warnings){const e=[...this.context.warnings];this.context.warnings=[],this.context.warn&&this.context.warn(e)}i&&this.context.warnings&&this.context.warnings.length>0&&(i.warnings?i.warnings=[...i.warnings,...this.context.warnings]:i.warnings=[...this.context.warnings]),this.context=i}get assumptions(){return this.context.assumptions||(this.context.assumptions=new Lt),this.context.assumptions}shouldContinueExecution(){return void 0===this.deadline||this.deadline>=Date.now()}checkContinueExecution(){if(!this.shouldContinueExecution())throw Error("timeout")}assert(e,i,t,n){e||this.signal(i,t,n)}signal(e,i,t){"object"==typeof e&&"message"in e?t=e.message:e.latex,void 0===t||"string"==typeof t||Array.isArray(t)&&t.map((e=>e.toString())).join(", ")}cache(e,i,t){var n;if(void 0===this._cache[e])try{this._cache[e]={build:i,purge:t,value:i()}}catch(e){}return null===(n=this._cache[e])||void 0===n?void 0:n.value}box(e){return $i(this,e)}fn(e,i,t){var n,r,s,a,o,l,u,c,m;if("Hold"===e)return this._fn("Hold",i,t);if(i=i.map((e=>e.canonical)),"String"===e)return this.string(i.map((e=>{var i;return null!==(i=e.string)&&void 0!==i?i:e.latex})).join(""),t);if("Symbol"===e)return this.symbol(i.map((e=>{var i;return null!==(i=e.string)&&void 0!==i?i:e.latex})).join(""),t);if(("Divide"===e||"Rational"===e)&&2===i.length){const e=i[0].asSmallInteger,t=i[1].asSmallInteger;if(null!==e&&null!==t&&Number.isInteger(e)&&Number.isInteger(t))return this.number([e,t])}if("Number"===e){if(1===i.length){const e=i[0],t=null!==(r=null!==(n=e.decimalValue)&&void 0!==n?n:e.complexValue)&&void 0!==r?r:e.machineValue;if(null!==t)return this.number(t);const[s,a]=e.rationalValue;if(null!==s&&null!==a)return this.number([s,a])}return this.NAN}if("Complex"===e){if(1===i.length){const e=i[0].asFloat;return null!==e?this.number(this.complex(0,e)):this.mul([i[0],this.I])}if(2===i.length){const e=i[0].asFloat,n=i[1].asFloat;return null!==e&&null!==n&&this.number(this.complex(e,n)),0===n?i[0]:this.add([i[0],this.mul([i[1],this.I])],t)}}if("Negate"===e&&1===i.length)return Hi(null!==(s=i[0])&&void 0!==s?s:this.symbol("Missing"),t);if("Single"===e||"Pair"===e||"Triple"===e||"KeyValuePair"===e)return this.tuple(i,t);if("Dictionary"===e){const e={};for(const t of i)if("Tuple"===t.head){const i=t.op1;if(!i.isMissing){t.op2;let n=null!==(a=i.symbol)&&void 0!==a?a:i.string;if(!n&&i.isLiteral){const e=null!==(o=i.machineValue)&&void 0!==o?o:i.asSmallInteger;e&&Number.isFinite(e)&&Number.isInteger(e)&&(n=e.toString())}n&&e[n]}}return new xi(this,e,t)}return"Add"===e?this.add(i,t):"Multiply"===e?this.mul(i,t):"Divide"===e?this.divide(null!==(l=i[0])&&void 0!==l?l:this.symbol("Missing"),null!==(u=i[1])&&void 0!==u?u:this.symbol("Missing"),t):"Power"===e?this.power(null!==(c=i[0])&&void 0!==c?c:this.symbol("Missing"),null!==(m=i[1])&&void 0!==m?m:this.symbol("Missing"),t):new Ii(this,e,i,t).canonical}_fn(e,i,t){const n=new Ii(this,e,i,t);return n.isCanonical=!0,n}error(e,i,t){return this._fn("Error",[e,this.string(i),this.box(t)])}add(e,i){const t=Ki(this,e);return(null==i?void 0:i.latex)&&(t.latex=i.latex),(null==i?void 0:i.wikidata)&&(t.wikidata=i.wikidata),t}mul(e,i){const t=tt(this,e);return(null==i?void 0:i.latex)&&(t.latex=i.latex),(null==i?void 0:i.wikidata)&&(t.wikidata=i.wikidata),t}power(e,i,t){var n;let r=null;if("number"==typeof i?r=i:Array.isArray(i)&&1===i[1]&&(r=i[0]),1===r)return e;if(-1===r&&e.isLiteral){const[i,t]=e.rationalValue;if(null!==i&&null!==t)return this.number([t,i]);const n=e.asSmallInteger;if(null!==n)return this.number([1,n])}return("number"==typeof i||Array.isArray(i))&&(i=this.number(i)),null!==(n=Xi(this,e,i,t))&&void 0!==n?n:this._fn("Power",[e,i],t)}inverse(e,i){var t;let n=this.NEGATIVE_ONE;if("Power"===e.head){if(e.op2.isNegativeOne)return e.op1;n=Hi(e.op2),e=e.op1}return null!==(t=Xi(this,e,n,i))&&void 0!==t?t:this._fn("Power",[e,n],i)}negate(e,i){return Hi(e,i)}divide(e,i,t){const n=st(this,e,i);return(null==t?void 0:t.latex)&&(n.latex=t.latex),(null==t?void 0:t.wikidata)&&(n.wikidata=t.wikidata),n}pair(e,i,t){return this._fn("Tuple",[e,i],t)}tuple(e,i){return this._fn("Tuple",e,i)}string(e,i){return new qi(this,e,i)}symbol(e,i){if("Infinity"===e)return this.POSITIVE_INFINITY;if("+Infinity"===e)return this.POSITIVE_INFINITY;if("-Infinity"===e)return this.NEGATIVE_INFINITY;if("Half"===e)return this.HALF;let t=this._commonSymbols[e];return t?(null==i?void 0:i.wikidata)&&t.wikidata&&t.wikidata!==i.wikidata?new zi(this,e,i):t:null===t?(t=new zi(this,e),this._commonSymbols[e]=t,t):new zi(this,e,i)}domain(e,i){return"string"!=typeof e?e:this._commonDomains[e]?this._commonDomains[e]:null===this._commonDomains[e]?(this._commonDomains[e]=Zi(this,e,i),this._commonDomains[e]):Zi(this,e,i)}number(e,i){var t,n;if(Array.isArray(e)&&1===e[1]&&(e=e[0]),"number"==typeof e){if(-1===e)return this.NEGATIVE_ONE;if(null===this._commonNumbers[e]&&(this._commonNumbers[e]=null!==(t=ji(this,e))&&void 0!==t?t:null),this._commonNumbers[e])return this._commonNumbers[e]}return null!==(n=ji(this,e,i))&&void 0!==n?n:this.NAN}rules(e){return Ni(this,e)}pattern(e){return new Tt(this,e)}parse(e){var i;return null===e?null:this.box(this.latexSyntax.parse(null!==(i=ii(e))&&void 0!==i?i:e))}serialize(e){return"object"==typeof e&&"json"in e?this.latexSyntax.serialize(e.json):this.latexSyntax.serialize(e)}get latexOptions(){return Object.assign(Object.assign({},this.latexSyntax.options),this.latexSyntax.serializer.options)}set latexOptions(e){this.latexSyntax.updateOptions(e)}get jsonSerializationOptions(){return this._jsonSerializationOptions}set jsonSerializationOptions(e){e.exclude&&(this._jsonSerializationOptions.exclude=[...e.exclude]),e.shorthands&&("all"===e.shorthands||e.shorthands.includes("all")?this._jsonSerializationOptions.shorthands=["function","symbol","string","dictionary","number"]:this._jsonSerializationOptions.shorthands=[...e.shorthands]),e.metadata&&("all"===e.metadata||e.metadata.includes("all")?this._jsonSerializationOptions.metadata=["latex","wikidata"]:this._jsonSerializationOptions.metadata=[...e.metadata])}ask(e){const i=this.pattern(e),t=[];for(const[e,n]of this.assumptions){const r=i.match(e,{numericTolerance:this._tolerance});null!==r&&!0===n&&t.push(r)}return t}assume(e,i){try{const t=ii(e);let n=t?this.parse(t):this.box(e);return i&&(n=this.box(["Element",e,this.domain(i)])),"not-a-predicate"}catch(e){return"internal-error"}}forget(e){var i;if(void 0!==e){if(Array.isArray(e))for(const i of e)this.forget(i);else if("string"==typeof e){null===(i=this.context.dictionary)||void 0===i||i.symbols.delete(e);for(const[i,t]of this.assumptions)ni(i).includes(e)&&this.assumptions.delete(i)}}else this.assumptions.clear()}}e.ComputeEngine=$t,e.isEnvironmentEntry=a,e.isInfixEntry=n,e.isMatchfixEntry=t,e.isPostfixEntry=s,e.isPrefixEntry=r,e.isSymbolEntry=i,e.version="0.5.0",Object.defineProperty(e,"__esModule",{value:!0})}));
|