@univerjs/engine-formula 0.4.1 → 0.4.2-nightly.202410301606

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.
Files changed (123) hide show
  1. package/lib/es/facade.js +82 -0
  2. package/lib/es/index.js +2859 -793
  3. package/lib/set-formula-calculation.mutation-DKlyJoJ-.mjs +26 -0
  4. package/lib/types/basics/database.d.ts +31 -0
  5. package/lib/types/basics/inverted-index-cache.d.ts +7 -18
  6. package/lib/types/basics/math.d.ts +12 -0
  7. package/lib/types/commands/mutations/set-formula-calculation.mutation.d.ts +0 -1
  8. package/lib/types/controller/calculate.controller.d.ts +0 -1
  9. package/lib/types/controller/config.schema.d.ts +5 -1
  10. package/lib/types/engine/analysis/__tests__/dependency.spec.d.ts +16 -0
  11. package/lib/types/engine/ast-node/base-ast-node.d.ts +1 -1
  12. package/lib/types/engine/ast-node/function-node.d.ts +2 -0
  13. package/lib/types/engine/ast-node/node-type.d.ts +13 -13
  14. package/lib/types/engine/dependency/dependency-tree.d.ts +14 -6
  15. package/lib/types/engine/reference-object/base-reference-object.d.ts +10 -0
  16. package/lib/types/engine/utils/char-kit.d.ts +5 -7
  17. package/lib/types/engine/utils/numfmt-kit.d.ts +13 -1
  18. package/lib/types/engine/utils/reference-cache.d.ts +3 -0
  19. package/lib/types/engine/utils/reference.d.ts +0 -2
  20. package/lib/types/engine/value-object/array-value-object.d.ts +1 -0
  21. package/lib/types/facade/f-formula.d.ts +30 -0
  22. package/lib/types/facade/f-univer.d.ts +9 -0
  23. package/lib/types/facade/index.d.ts +1 -0
  24. package/lib/types/functions/base-function.d.ts +26 -1
  25. package/lib/types/functions/database/daverage/__tests__/index.spec.d.ts +16 -0
  26. package/lib/types/functions/database/daverage/index.d.ts +8 -0
  27. package/lib/types/functions/database/dcount/__tests__/index.spec.d.ts +16 -0
  28. package/lib/types/functions/database/dcount/index.d.ts +8 -0
  29. package/lib/types/functions/database/dcounta/__tests__/index.spec.d.ts +16 -0
  30. package/lib/types/functions/database/dcounta/index.d.ts +8 -0
  31. package/lib/types/functions/database/dget/__tests__/index.spec.d.ts +16 -0
  32. package/lib/types/functions/database/dget/index.d.ts +7 -0
  33. package/lib/types/functions/database/dmax/__tests__/index.spec.d.ts +16 -0
  34. package/lib/types/functions/database/dmax/index.d.ts +8 -0
  35. package/lib/types/functions/database/dmin/__tests__/index.spec.d.ts +16 -0
  36. package/lib/types/functions/database/dmin/index.d.ts +8 -0
  37. package/lib/types/functions/database/dproduct/__tests__/index.spec.d.ts +16 -0
  38. package/lib/types/functions/database/dproduct/index.d.ts +8 -0
  39. package/lib/types/functions/database/dstdev/__tests__/index.spec.d.ts +16 -0
  40. package/lib/types/functions/database/dstdev/index.d.ts +8 -0
  41. package/lib/types/functions/database/dstdevp/__tests__/index.spec.d.ts +16 -0
  42. package/lib/types/functions/database/dstdevp/index.d.ts +8 -0
  43. package/lib/types/functions/database/dsum/__tests__/index.spec.d.ts +16 -0
  44. package/lib/types/functions/database/dsum/index.d.ts +8 -0
  45. package/lib/types/functions/database/dvar/__tests__/index.spec.d.ts +16 -0
  46. package/lib/types/functions/database/dvar/index.d.ts +8 -0
  47. package/lib/types/functions/database/dvarp/__tests__/index.spec.d.ts +16 -0
  48. package/lib/types/functions/database/dvarp/index.d.ts +8 -0
  49. package/lib/types/functions/database/function-map.d.ts +3 -16
  50. package/lib/types/functions/financial/db/index.d.ts +1 -0
  51. package/lib/types/functions/financial/ddb/index.d.ts +1 -0
  52. package/lib/types/functions/financial/fv/index.d.ts +1 -0
  53. package/lib/types/functions/financial/ipmt/index.d.ts +1 -0
  54. package/lib/types/functions/financial/npv/index.d.ts +1 -0
  55. package/lib/types/functions/financial/pmt/index.d.ts +1 -0
  56. package/lib/types/functions/financial/ppmt/index.d.ts +1 -0
  57. package/lib/types/functions/financial/pv/index.d.ts +1 -0
  58. package/lib/types/functions/financial/sln/index.d.ts +1 -0
  59. package/lib/types/functions/financial/syd/index.d.ts +1 -0
  60. package/lib/types/functions/financial/tbillprice/index.d.ts +1 -0
  61. package/lib/types/functions/financial/vdb/index.d.ts +1 -0
  62. package/lib/types/functions/information/function-map.d.ts +1 -1
  63. package/lib/types/functions/information/sheet/__tests__/index.spec.d.ts +16 -0
  64. package/lib/types/functions/information/sheet/index.d.ts +10 -0
  65. package/lib/types/functions/information/sheets/__tests__/index.spec.d.ts +16 -0
  66. package/lib/types/functions/information/sheets/index.d.ts +8 -0
  67. package/lib/types/functions/lookup/xlookup/index.d.ts +1 -1
  68. package/lib/types/functions/math/arabic/__tests__/index.spec.d.ts +16 -0
  69. package/lib/types/functions/math/arabic/index.d.ts +8 -0
  70. package/lib/types/functions/math/roman/__tests__/index.spec.d.ts +16 -0
  71. package/lib/types/functions/math/roman/index.d.ts +9 -0
  72. package/lib/types/functions/math/sumif/index.d.ts +3 -1
  73. package/lib/types/functions/text/arraytotext/__test__/index.spec.d.ts +16 -0
  74. package/lib/types/functions/text/arraytotext/index.d.ts +9 -0
  75. package/lib/types/functions/text/asc/__test__/index.spec.d.ts +16 -0
  76. package/lib/types/functions/text/asc/index.d.ts +8 -0
  77. package/lib/types/functions/text/bahttext/__test__/index.spec.d.ts +16 -0
  78. package/lib/types/functions/text/bahttext/index.d.ts +9 -0
  79. package/lib/types/functions/text/char/__test__/index.spec.d.ts +16 -0
  80. package/lib/types/functions/text/char/index.d.ts +8 -0
  81. package/lib/types/functions/text/clean/__test__/index.spec.d.ts +16 -0
  82. package/lib/types/functions/text/clean/index.d.ts +8 -0
  83. package/lib/types/functions/text/code/__test__/index.spec.d.ts +16 -0
  84. package/lib/types/functions/text/code/index.d.ts +8 -0
  85. package/lib/types/functions/text/dbcs/__test__/index.spec.d.ts +16 -0
  86. package/lib/types/functions/text/dbcs/index.d.ts +8 -0
  87. package/lib/types/functions/text/dollar/__test__/index.spec.d.ts +16 -0
  88. package/lib/types/functions/text/dollar/index.d.ts +9 -0
  89. package/lib/types/functions/text/exact/__test__/index.spec.d.ts +16 -0
  90. package/lib/types/functions/text/exact/index.d.ts +8 -0
  91. package/lib/types/functions/text/fixed/__test__/index.spec.d.ts +16 -0
  92. package/lib/types/functions/text/fixed/index.d.ts +8 -0
  93. package/lib/types/functions/text/leftb/index.d.ts +1 -2
  94. package/lib/types/functions/text/numbervalue/__test__/index.spec.d.ts +16 -0
  95. package/lib/types/functions/text/numbervalue/index.d.ts +8 -0
  96. package/lib/types/functions/text/proper/__test__/index.spec.d.ts +16 -0
  97. package/lib/types/functions/text/proper/index.d.ts +8 -0
  98. package/lib/types/functions/text/right/__test__/index.spec.d.ts +16 -0
  99. package/lib/types/functions/text/right/index.d.ts +8 -0
  100. package/lib/types/functions/text/rightb/__test__/index.spec.d.ts +16 -0
  101. package/lib/types/functions/text/rightb/index.d.ts +8 -0
  102. package/lib/types/functions/text/substitute/__test__/index.spec.d.ts +16 -0
  103. package/lib/types/functions/text/substitute/index.d.ts +9 -0
  104. package/lib/types/functions/text/t/__test__/index.spec.d.ts +16 -0
  105. package/lib/types/functions/text/t/index.d.ts +7 -0
  106. package/lib/types/functions/text/unichar/__test__/index.spec.d.ts +16 -0
  107. package/lib/types/functions/text/unichar/index.d.ts +8 -0
  108. package/lib/types/functions/text/unicode/__test__/index.spec.d.ts +16 -0
  109. package/lib/types/functions/text/unicode/index.d.ts +8 -0
  110. package/lib/types/functions/text/value/__test__/index.spec.d.ts +16 -0
  111. package/lib/types/functions/text/value/index.d.ts +8 -0
  112. package/lib/types/functions/text/valuetotext/__test__/index.spec.d.ts +16 -0
  113. package/lib/types/functions/text/valuetotext/index.d.ts +8 -0
  114. package/lib/types/index.d.ts +2 -3
  115. package/lib/types/services/calculate-formula.service.d.ts +3 -4
  116. package/lib/types/services/current-data.service.d.ts +17 -2
  117. package/lib/types/services/dependency-manager.service.d.ts +17 -9
  118. package/lib/types/services/runtime.service.d.ts +10 -9
  119. package/lib/umd/facade.js +1 -0
  120. package/lib/umd/index.js +2 -2
  121. package/package.json +10 -13
  122. package/LICENSE +0 -176
  123. package/lib/cjs/index.js +0 -7
package/lib/umd/index.js CHANGED
@@ -1,7 +1,7 @@
1
- (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("@univerjs/core"),require("rxjs"),require("@univerjs/rpc")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs","@univerjs/rpc"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.UniverEngineFormula={},global.UniverCore,global.rxjs,global.UniverRpc))})(this,function(exports2,core,rxjs,rpc){"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);var _a,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x,_y,_z;var BooleanValue=(BooleanValue2=>(BooleanValue2.FALSE="FALSE",BooleanValue2.TRUE="TRUE",BooleanValue2))(BooleanValue||{}),AstNodePromiseType=(AstNodePromiseType2=>(AstNodePromiseType2[AstNodePromiseType2.SUCCESS=0]="SUCCESS",AstNodePromiseType2[AstNodePromiseType2.ERROR=1]="ERROR",AstNodePromiseType2))(AstNodePromiseType||{}),ConcatenateType=(ConcatenateType2=>(ConcatenateType2[ConcatenateType2.FRONT=0]="FRONT",ConcatenateType2[ConcatenateType2.BACK=1]="BACK",ConcatenateType2))(ConcatenateType||{});function isInDirtyRange(dirtyRanges,unitId,sheetId,row,column){for(let i=0,len=dirtyRanges.length;i<len;i++){const dirtyRange=dirtyRanges[i];if(unitId!==dirtyRange.unitId||sheetId!==dirtyRange.sheetId)continue;const{startRow,startColumn,endRow,endColumn}=dirtyRange.range;if(row>=startRow&&row<=endRow&&column>=startColumn&&column<=endColumn)return!0}return!1}__name(isInDirtyRange,"isInDirtyRange");var ErrorType$1=(ErrorType2=>(ErrorType2.DIV_BY_ZERO="#DIV/0!",ErrorType2.NAME="#NAME?",ErrorType2.VALUE="#VALUE!",ErrorType2.NUM="#NUM!",ErrorType2.NA="#N/A",ErrorType2.CYCLE="#CYCLE!",ErrorType2.REF="#REF!",ErrorType2.SPILL="#SPILL!",ErrorType2.CALC="#CALC!",ErrorType2.ERROR="#ERROR!",ErrorType2.CONNECT="#GETTING_DATA",ErrorType2.NULL="#NULL!",ErrorType2))(ErrorType$1||{});const ERROR_TYPE_SET=new Set(Object.values(ErrorType$1)),ERROR_TYPE_COUNT_ARRAY=[...new Set(Object.values(ErrorType$1).map(error=>error.length))];var FunctionType=(FunctionType2=>(FunctionType2[FunctionType2.Financial=0]="Financial",FunctionType2[FunctionType2.Date=1]="Date",FunctionType2[FunctionType2.Math=2]="Math",FunctionType2[FunctionType2.Statistical=3]="Statistical",FunctionType2[FunctionType2.Lookup=4]="Lookup",FunctionType2[FunctionType2.Database=5]="Database",FunctionType2[FunctionType2.Text=6]="Text",FunctionType2[FunctionType2.Logical=7]="Logical",FunctionType2[FunctionType2.Information=8]="Information",FunctionType2[FunctionType2.Engineering=9]="Engineering",FunctionType2[FunctionType2.Cube=10]="Cube",FunctionType2[FunctionType2.Compatibility=11]="Compatibility",FunctionType2[FunctionType2.Web=12]="Web",FunctionType2[FunctionType2.Array=13]="Array",FunctionType2[FunctionType2.Univer=14]="Univer",FunctionType2[FunctionType2.User=15]="User",FunctionType2[FunctionType2.DefinedName=16]="DefinedName",FunctionType2))(FunctionType||{}),operatorToken=(operatorToken2=>(operatorToken2.PLUS="+",operatorToken2.MINUS="-",operatorToken2.MULTIPLY="*",operatorToken2.DIVIDED="/",operatorToken2.CONCATENATE="&",operatorToken2.POWER="^",operatorToken2.EQUALS="=",operatorToken2.NOT_EQUAL="<>",operatorToken2.GREATER_THAN=">",operatorToken2.GREATER_THAN_OR_EQUAL=">=",operatorToken2.LESS_THAN="<",operatorToken2.LESS_THAN_OR_EQUAL="<=",operatorToken2))(operatorToken||{}),compareToken=(compareToken2=>(compareToken2.EQUALS="=",compareToken2.NOT_EQUAL="<>",compareToken2.GREATER_THAN=">",compareToken2.GREATER_THAN_OR_EQUAL=">=",compareToken2.LESS_THAN="<",compareToken2.LESS_THAN_OR_EQUAL="<=",compareToken2))(compareToken||{});const OPERATOR_TOKEN_PRIORITY=new Map([["<>",4],["<",4],[">=",4],["=",4],[">",4],["<=",4],["&",3],["+",2],["-",2],["/",1],["*",1],["^",0]]),OPERATOR_TOKEN_SET=new Set(OPERATOR_TOKEN_PRIORITY.keys()),OPERATOR_TOKEN_COMPARE_SET=new Set(["=","<>",">",">=","<","<="]);var matchToken=(matchToken2=>(matchToken2.OPEN_BRACKET="(",matchToken2.CLOSE_BRACKET=")",matchToken2.COMMA=",",matchToken2.SINGLE_QUOTATION="'",matchToken2.DOUBLE_QUOTATION='"',matchToken2.OPEN_BRACES="{",matchToken2.CLOSE_BRACES="}",matchToken2.COLON=":",matchToken2.OPEN_SQUARE_BRACKET="[",matchToken2.CLOSE_SQUARE_BRACKET="]",matchToken2))(matchToken||{}),suffixToken=(suffixToken2=>(suffixToken2.PERCENTAGE="%",suffixToken2.POUND="#",suffixToken2))(suffixToken||{});const SUFFIX_TOKEN_SET=new Set(["%","#"]);var prefixToken=(prefixToken2=>(prefixToken2.AT="@",prefixToken2.MINUS="-",prefixToken2.PLUS="+",prefixToken2))(prefixToken||{});const SPACE_TOKEN=" ",FORMULA_LEXER_TOKENS=[...Object.values(compareToken),...Object.values(operatorToken),...Object.values(matchToken),...Object.values(suffixToken),...Object.values(prefixToken)];function isFormulaLexerToken(str){return FORMULA_LEXER_TOKENS.includes(str)}__name(isFormulaLexerToken,"isFormulaLexerToken");function includeFormulaLexerToken(str){for(const token of FORMULA_LEXER_TOKENS)if(str.indexOf(token)>-1)return!0;return!1}__name(includeFormulaLexerToken,"includeFormulaLexerToken");function normalizeSheetName(sheetName){return sheetName[0]==="'"&&sheetName[sheetName.length-1]==="'"?sheetName.substring(1,sheetName.length-1):sheetName}__name(normalizeSheetName,"normalizeSheetName");function matchRefDrawToken(char){return isFormulaLexerToken(char)&&char!==matchToken.CLOSE_BRACES&&char!==matchToken.CLOSE_BRACKET&&char!==matchToken.SINGLE_QUOTATION&&char!==matchToken.DOUBLE_QUOTATION||char===" "}__name(matchRefDrawToken,"matchRefDrawToken");const TOKEN_CANNOT_BE_AT_END_SET=new Set([operatorToken.PLUS,operatorToken.MINUS,operatorToken.MULTIPLY,operatorToken.DIVIDED,operatorToken.CONCATENATE,operatorToken.POWER,operatorToken.EQUALS,operatorToken.NOT_EQUAL,operatorToken.GREATER_THAN,operatorToken.GREATER_THAN_OR_EQUAL,operatorToken.LESS_THAN,operatorToken.LESS_THAN_OR_EQUAL,matchToken.OPEN_BRACKET,matchToken.COMMA,matchToken.COLON,matchToken.OPEN_BRACES,matchToken.OPEN_SQUARE_BRACKET]);function isTokenCannotBeAtEnd(token){return TOKEN_CANNOT_BE_AT_END_SET.has(token)}__name(isTokenCannotBeAtEnd,"isTokenCannotBeAtEnd");const TOKEN_CANNOT_PRECEDE_SUFFIX_TOKEN_SET=new Set([operatorToken.PLUS,operatorToken.MINUS,operatorToken.MULTIPLY,operatorToken.DIVIDED,operatorToken.CONCATENATE,operatorToken.POWER,operatorToken.EQUALS,operatorToken.NOT_EQUAL,operatorToken.GREATER_THAN,operatorToken.GREATER_THAN_OR_EQUAL,operatorToken.LESS_THAN,operatorToken.LESS_THAN_OR_EQUAL,matchToken.OPEN_BRACKET,matchToken.COMMA,matchToken.COLON,matchToken.OPEN_BRACES,matchToken.OPEN_SQUARE_BRACKET,suffixToken.PERCENTAGE,suffixToken.POUND]);function isTokenCannotPrecedeSuffixToken(token){return TOKEN_CANNOT_PRECEDE_SUFFIX_TOKEN_SET.has(token)}__name(isTokenCannotPrecedeSuffixToken,"isTokenCannotPrecedeSuffixToken");function convertUnitDataToRuntime(unitData){const arrayFormulaCellData={};return Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;arrayFormulaCellData[unitId]==null&&(arrayFormulaCellData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{const cellData=sheetData[sheetId];arrayFormulaCellData[unitId][sheetId]=new core.ObjectMatrix(cellData)})}),arrayFormulaCellData}__name(convertUnitDataToRuntime,"convertUnitDataToRuntime");function convertRuntimeToUnitData(unitData){const unitPrimitiveData={};return Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;unitPrimitiveData[unitId]==null&&(unitPrimitiveData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{const cellData=sheetData[sheetId];unitPrimitiveData[unitId][sheetId]=cellData.getData()})}),unitPrimitiveData}__name(convertRuntimeToUnitData,"convertRuntimeToUnitData");const UNIT_NAME_REGEX='\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]',UNIT_NAME_REGEX_PRECOMPILING=new RegExp(UNIT_NAME_REGEX),SHEET_NAME_REGEX="((?![\\[\\]\\/?*\\\\]).)*!",ABSOLUTE_SYMBOL="$",RANGE_SYMBOL="\\s*?:\\s*?",COLUMN_REGEX="[A-Za-z]+",ROW_REGEX="[1-9][0-9]*",UNIT_NAME_SHEET_NAME_REGEX=`'?(${UNIT_NAME_REGEX})?(${SHEET_NAME_REGEX})?'?`,SIMPLE_SINGLE_RANGE_REGEX=`\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}`,REFERENCE_MULTIPLE_RANGE_REGEX=`^(${prefixToken.AT})?${UNIT_NAME_SHEET_NAME_REGEX}${SIMPLE_SINGLE_RANGE_REGEX}${RANGE_SYMBOL}${SIMPLE_SINGLE_RANGE_REGEX}$`,REFERENCE_MULTIPLE_RANGE_REGEX_PRECOMPILING=new RegExp(REFERENCE_MULTIPLE_RANGE_REGEX),REFERENCE_SINGLE_RANGE_REGEX=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?${SIMPLE_SINGLE_RANGE_REGEX}(${suffixToken.POUND})?$`,REFERENCE_SINGLE_RANGE_REGEX_PRECOMPILING=new RegExp(REFERENCE_SINGLE_RANGE_REGEX),REFERENCE_REGEX_ROW=`^${UNIT_NAME_SHEET_NAME_REGEX}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}${RANGE_SYMBOL}\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}$`,REFERENCE_REGEX_ROW_PRECOMPILING=new RegExp(REFERENCE_REGEX_ROW),REFERENCE_REGEX_COLUMN=`^${UNIT_NAME_SHEET_NAME_REGEX}\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}${RANGE_SYMBOL}\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}$`,REFERENCE_REGEX_COLUMN_PRECOMPILING=new RegExp(REFERENCE_REGEX_COLUMN),REFERENCE_REGEX_SINGLE_ROW=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?\\${ABSOLUTE_SYMBOL}?${ROW_REGEX}$`,REFERENCE_REGEX_SINGLE_ROW_PRECOMPILING=new RegExp(REFERENCE_REGEX_SINGLE_ROW),REFERENCE_REGEX_SINGLE_COLUMN=`^${UNIT_NAME_SHEET_NAME_REGEX}\\s*?\\${ABSOLUTE_SYMBOL}?${COLUMN_REGEX}$`,REFERENCE_REGEX_SINGLE_COLUMN_PRECOMPILING=new RegExp(REFERENCE_REGEX_SINGLE_COLUMN),ARRAY_VALUE_REGEX="{.*?}",ARRAY_VALUE_REGEX_PRECOMPILING=new RegExp(ARRAY_VALUE_REGEX,"g");function regexTestSingeRange(token){return REFERENCE_SINGLE_RANGE_REGEX_PRECOMPILING.lastIndex=0,REFERENCE_SINGLE_RANGE_REGEX_PRECOMPILING.test(token)}__name(regexTestSingeRange,"regexTestSingeRange");function regexTestMultipleRange(token){return REFERENCE_MULTIPLE_RANGE_REGEX_PRECOMPILING.lastIndex=0,REFERENCE_MULTIPLE_RANGE_REGEX_PRECOMPILING.test(token)}__name(regexTestMultipleRange,"regexTestMultipleRange");function regexTestRow(token){return REFERENCE_REGEX_ROW_PRECOMPILING.lastIndex=0,REFERENCE_REGEX_ROW_PRECOMPILING.test(token)}__name(regexTestRow,"regexTestRow");function regexTestColumn(token){return REFERENCE_REGEX_COLUMN_PRECOMPILING.lastIndex=0,REFERENCE_REGEX_COLUMN_PRECOMPILING.test(token)}__name(regexTestColumn,"regexTestColumn");function regexTestSingleRow(token){return REFERENCE_REGEX_SINGLE_ROW_PRECOMPILING.lastIndex=0,REFERENCE_REGEX_SINGLE_ROW_PRECOMPILING.test(token)}__name(regexTestSingleRow,"regexTestSingleRow");function regexTestSingleColumn(token){return REFERENCE_REGEX_SINGLE_COLUMN_PRECOMPILING.lastIndex=0,REFERENCE_REGEX_SINGLE_COLUMN_PRECOMPILING.test(token)}__name(regexTestSingleColumn,"regexTestSingleColumn");function regexTestArrayValue(token){return ARRAY_VALUE_REGEX_PRECOMPILING.lastIndex=0,ARRAY_VALUE_REGEX_PRECOMPILING.test(token)}__name(regexTestArrayValue,"regexTestArrayValue");function isReferenceString(refString){return regexTestSingeRange(refString)||regexTestMultipleRange(refString)||regexTestRow(refString)||regexTestColumn(refString)}__name(isReferenceString,"isReferenceString");const RegisterFunctionMutation={id:"formula.mutation.register-function",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetArrayFormulaDataMutation={id:"formula.mutation.set-array-formula-data",type:core.CommandType.MUTATION,handler:__name((accessor,params)=>!0,"handler")},$ROW_REGEX=/[^0-9]/g,$COLUMN_REGEX=/[^A-Za-z]/g;function getAbsoluteRefTypeWithSingleString(singleRefString){let isColumnAbsolute=singleRefString[0]==="$";const remainChar=singleRefString.substring(1);let isRowAbsolute=remainChar.indexOf("$")>-1;return core.Tools.isStringNumber(remainChar)&&isColumnAbsolute&&!isRowAbsolute&&(isColumnAbsolute=!1,isRowAbsolute=!0),isColumnAbsolute&&isRowAbsolute?core.AbsoluteRefType.ALL:isColumnAbsolute?core.AbsoluteRefType.COLUMN:isRowAbsolute?core.AbsoluteRefType.ROW:core.AbsoluteRefType.NONE}__name(getAbsoluteRefTypeWithSingleString,"getAbsoluteRefTypeWithSingleString");function getAbsoluteRefTypeWitString(refString){const sheetArray=refString.split("!");sheetArray.length>1&&(refString=sheetArray[sheetArray.length-1]);const refArray=refString.split(":");return refArray.length>1?{startAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[0]),endAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[1])}:{startAbsoluteRefType:getAbsoluteRefTypeWithSingleString(refArray[0])}}__name(getAbsoluteRefTypeWitString,"getAbsoluteRefTypeWitString");function _getAbsoluteToken(absoluteRefType=core.AbsoluteRefType.NONE){let rowAbsoluteString="",columnAbsoluteString="";return absoluteRefType===core.AbsoluteRefType.ROW?rowAbsoluteString="$":absoluteRefType===core.AbsoluteRefType.COLUMN?columnAbsoluteString="$":absoluteRefType===core.AbsoluteRefType.ALL&&(rowAbsoluteString="$",columnAbsoluteString="$"),{rowAbsoluteString,columnAbsoluteString}}__name(_getAbsoluteToken,"_getAbsoluteToken");function serializeRange(range){const{startColumn,startRow,endColumn,endRow,startAbsoluteRefType,endAbsoluteRefType,rangeType=core.RANGE_TYPE.NORMAL}=range,start=_getAbsoluteToken(startAbsoluteRefType),end=_getAbsoluteToken(endAbsoluteRefType);if(rangeType===core.RANGE_TYPE.ROW||rangeType===core.RANGE_TYPE.ALL){const startStr2=`${start.rowAbsoluteString}${startRow+1}`,endStr2=`${end.rowAbsoluteString}${endRow+1}`;return`${startStr2}:${endStr2}`}if(rangeType===core.RANGE_TYPE.COLUMN){const startStr2=`${start.columnAbsoluteString}${core.Tools.chatAtABC(startColumn)}`,endStr2=`${end.columnAbsoluteString}${core.Tools.chatAtABC(endColumn)}`;return`${startStr2}:${endStr2}`}const startStr=`${start.columnAbsoluteString}${core.Tools.chatAtABC(startColumn)}${start.rowAbsoluteString}${startRow+1}`,endStr=`${end.columnAbsoluteString}${core.Tools.chatAtABC(endColumn)}${end.rowAbsoluteString}${endRow+1}`;return startStr===endStr?startStr:`${startStr}:${endStr}`}__name(serializeRange,"serializeRange");function serializeRangeWithSheet(sheetName,range){return needsQuoting(sheetName)?`'${sheetName}'!${serializeRange(range)}`:`${sheetName}!${serializeRange(range)}`}__name(serializeRangeWithSheet,"serializeRangeWithSheet");function serializeRangeWithSpreadsheet(unit,sheetName,range){return needsQuoting(unit)||needsQuoting(sheetName)?`'[${unit}]${sheetName}'!${serializeRange(range)}`:`[${unit}]${sheetName}!${serializeRange(range)}`}__name(serializeRangeWithSpreadsheet,"serializeRangeWithSpreadsheet");function serializeRangeToRefString(gridRangeName){const{unitId,sheetName,range}=gridRangeName;return unitId!=null&&unitId.length>0&&sheetName!=null&&sheetName.length>0?serializeRangeWithSpreadsheet(unitId,sheetName,range):sheetName!=null&&sheetName.length>0?serializeRangeWithSheet(sheetName,range):serializeRange(range)}__name(serializeRangeToRefString,"serializeRangeToRefString");function singleReferenceToGrid(refBody){const row=Number.parseInt(refBody.replace($ROW_REGEX,""))-1,column=core.Tools.ABCatNum(refBody.replace($COLUMN_REGEX,"")),absoluteRefType=getAbsoluteRefTypeWithSingleString(refBody);return{row,column,absoluteRefType}}__name(singleReferenceToGrid,"singleReferenceToGrid");function handleRefStringInfo(refString){const unitIdMatch=UNIT_NAME_REGEX_PRECOMPILING.exec(refString);let unitId="";unitIdMatch!=null&&(unitId=unitIdMatch[0].trim(),unitId=unitId.slice(1,unitId.length-1),refString=refString.replace(UNIT_NAME_REGEX_PRECOMPILING,""));const sheetNameIndex=refString.indexOf("!");let sheetName="",refBody="";return sheetNameIndex>-1?(sheetName=refString.substring(0,sheetNameIndex),sheetName[0]==="'"&&sheetName[sheetName.length-1]==="'"&&(sheetName=sheetName.substring(1,sheetName.length-1)),refBody=refString.substring(sheetNameIndex+1)):refBody=refString,{refBody,sheetName,unitId}}__name(handleRefStringInfo,"handleRefStringInfo");function deserializeRangeWithSheet(refString){const{refBody,sheetName,unitId}=handleRefStringInfo(refString),colonIndex=refBody.indexOf(":");if(colonIndex===-1){const grid=singleReferenceToGrid(refBody),row=grid.row,column=grid.column,absoluteRefType=grid.absoluteRefType;return{unitId,sheetName,range:{startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absoluteRefType,endAbsoluteRefType:absoluteRefType}}}const refStartString=refBody.substring(0,colonIndex),refEndString=refBody.substring(colonIndex+1),startGrid=singleReferenceToGrid(refStartString),endGrid=singleReferenceToGrid(refEndString),startRow=startGrid.row>endGrid.row?endGrid.row:startGrid.row,startColumn=startGrid.column>endGrid.column?endGrid.column:startGrid.column,endRow=startGrid.row>endGrid.row?startGrid.row:endGrid.row,endColumn=startGrid.column>endGrid.column?startGrid.column:endGrid.column;let rangeType=core.RANGE_TYPE.NORMAL;return Number.isNaN(startRow)&&Number.isNaN(endRow)?rangeType=core.RANGE_TYPE.COLUMN:Number.isNaN(startColumn)&&Number.isNaN(endColumn)&&(rangeType=core.RANGE_TYPE.ROW),{unitId,sheetName,range:{startRow,startColumn,endRow,endColumn,startAbsoluteRefType:startGrid.absoluteRefType,endAbsoluteRefType:endGrid.absoluteRefType,rangeType}}}__name(deserializeRangeWithSheet,"deserializeRangeWithSheet");const referenceToRangeCache=new Map;function deserializeRangeWithSheetWithCache(refString){if(referenceToRangeCache.has(refString))return referenceToRangeCache.get(refString);const result=deserializeRangeWithSheet(refString);return referenceToRangeCache.set(refString,result),deserializeRangeWithSheet(refString)}__name(deserializeRangeWithSheetWithCache,"deserializeRangeWithSheetWithCache");function clearReferenceToRangeCache(){referenceToRangeCache.clear()}__name(clearReferenceToRangeCache,"clearReferenceToRangeCache");const EXCEPTION_REF_STRINGS=["LOG10"];function isReferenceStringWithEffectiveColumn(refString){const noPrefixRefString=replaceRefPrefixString(refString);if(!isReferenceString(noPrefixRefString)||EXCEPTION_REF_STRINGS.includes(noPrefixRefString.toUpperCase().trim()))return!1;const{range}=deserializeRangeWithSheet(noPrefixRefString);return!(range.endColumn>=16384)}__name(isReferenceStringWithEffectiveColumn,"isReferenceStringWithEffectiveColumn");function replaceRefPrefixString(token){const tokenArray=[];let isNotPreFix=!1;for(let i=0,len=token.length;i<len;i++){const char=token[i];if(char===SPACE_TOKEN&&!isNotPreFix)tokenArray.push(char);else{if(!isNotPreFix&&(char===prefixToken.AT||char===prefixToken.MINUS||char===prefixToken.PLUS))continue;tokenArray.push(char),isNotPreFix=!0}}return tokenArray.join("")}__name(replaceRefPrefixString,"replaceRefPrefixString");function getRangeWithRefsString(refString,getSheetIdByName){const valueArray=(refString==null?void 0:refString.split(","))||[];return refString===""||valueArray.length===0?[]:isReferenceStrings(refString)?valueArray.map(ref=>{const unitRange=deserializeRangeWithSheet(ref);return{unitId:unitRange.unitId,sheetId:getSheetIdByName(unitRange.sheetName),range:unitRange.range,sheetName:unitRange.sheetName}}):[]}__name(getRangeWithRefsString,"getRangeWithRefsString");function isReferenceStrings(refString){return((refString==null?void 0:refString.split(","))||[]).every(refString2=>isReferenceStringWithEffectiveColumn(refString2.trim()))}__name(isReferenceStrings,"isReferenceStrings");function needsQuoting(name){return name.length===0?!1:!!(includeFormulaLexerToken(name)||isA1Notation(name)||isR1C1Notation(name)||startsWithNonAlphabetic(name)||/[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/.test(name))}__name(needsQuoting,"needsQuoting");function isA1Notation(name){const match=name.match(/[1-9][0-9]{0,6}/);return/^[A-Z]+[1-9][0-9]{0,6}$/.test(name)&&match!==null}__name(isA1Notation,"isA1Notation");function isR1C1Notation(name){return/^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(name)}__name(isR1C1Notation,"isR1C1Notation");function startsWithNonAlphabetic(name){return!new RegExp("^\\p{Letter}","u").test(name.charAt(0))}__name(startsWithNonAlphabetic,"startsWithNonAlphabetic");var __defProp$n=Object.defineProperty,__getOwnPropDesc$n=Object.getOwnPropertyDescriptor,__decorateClass$n=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$n(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$n(target,key,result),result},"__decorateClass$n"),__decorateParam$n=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$n");exports2.DefinedNamesService=(_a=class extends core.Disposable{constructor(_univerInstanceService){super();__publicField(this,"_definedNameMap",{});__publicField(this,"_update$",new rxjs.Subject);__publicField(this,"update$",this._update$.asObservable());__publicField(this,"_currentRange",{unitId:"",sheetId:"",range:{startRow:0,endRow:0,startColumn:0,endColumn:0}});__publicField(this,"_currentRange$",new rxjs.Subject);__publicField(this,"currentRange$",this._currentRange$.asObservable());__publicField(this,"_focusRange$",new rxjs.Subject);__publicField(this,"focusRange$",this._focusRange$.asObservable());this._univerInstanceService=_univerInstanceService}dispose(){this._definedNameMap={}}getWorksheetByRef(unitId,ref){var _a2;const{sheetName}=handleRefStringInfo(ref);return(_a2=this._univerInstanceService.getUnit(unitId))==null?void 0:_a2.getSheetBySheetName(sheetName)}focusRange(unitId,id){const item=this.getValueById(unitId,id);item!=null&&this._focusRange$.next({...item,unitId})}setCurrentRange(range){this._currentRange=range,this._currentRange$.next(range)}getCurrentRange(){return this._currentRange}getCurrentRangeForString(){return serializeRange(this._currentRange.range)}registerDefinedNames(unitId,params){this._definedNameMap[unitId]=params,this._update()}registerDefinedName(unitId,param){this._definedNameMap[unitId]==null&&(this._definedNameMap[unitId]={}),this._definedNameMap[unitId][param.id]=param,this._update()}removeDefinedName(unitId,id){var _a2;(_a2=this._definedNameMap[unitId])==null||delete _a2[id],this._update()}removeUnitDefinedName(unitId){delete this._definedNameMap[unitId],this._update()}getDefinedNameMap(unitId){return this._definedNameMap[unitId]}getValueByName(unitId,name){var _a2;const nameMap=this._definedNameMap[unitId];return nameMap==null?null:(_a2=Array.from(Object.values(nameMap)).filter(value=>value.name===name))==null?void 0:_a2[0]}getValueById(unitId,id){var _a2;return(_a2=this._definedNameMap[unitId])==null?void 0:_a2[id]}hasDefinedName(unitId){return this._definedNameMap[unitId]==null?!1:(Array.from(Object.values(this._definedNameMap[unitId])).length||0)!==0}_update(){this._update$.next(null)}},__name(_a,"DefinedNamesService"),_a),exports2.DefinedNamesService=__decorateClass$n([__decorateParam$n(0,core.IUniverInstanceService)],exports2.DefinedNamesService);const IDefinedNamesService=core.createIdentifier("univer.formula.defined-names.service"),SetDefinedNameMutationFactory=__name((accessor,params)=>{const{unitId,id}=params;return{...accessor.get(IDefinedNamesService).getValueById(unitId,id),unitId}},"SetDefinedNameMutationFactory"),SetDefinedNameMutation={id:"formula.mutation.set-defined-name",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveDefinedNameMutation={id:"formula.mutation.remove-defined-name",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFeatureCalculationMutation={id:"formula.mutation.set-feature-calculation",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveFeatureCalculationMutation={id:"formula.mutation.remove-feature-calculation",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationStartMutation={id:"formula.mutation.set-formula-calculation-start",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationStopMutation={id:"formula.mutation.set-formula-calculation-stop",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationNotificationMutation={id:"formula.mutation.set-formula-calculation-notification",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaCalculationResultMutation={id:"formula.mutation.set-formula-calculation-result",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetFormulaDataMutation={id:"formula.mutation.set-formula-data",type:core.CommandType.MUTATION,handler:__name((accessor,params)=>!0,"handler")},SetOtherFormulaMutation={id:"formula.mutation.set-other-formula",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveOtherFormulaMutation={id:"formula.mutation.remove-other-formula",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetSuperTableMutation={id:"formula.mutation.set-super-table",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},RemoveSuperTableMutation={id:"formula.mutation.remove-super-table",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},SetSuperTableOptionMutation={id:"formula.mutation.set-super-table-option",type:core.CommandType.MUTATION,handler:__name(()=>!0,"handler")},_FormulaAstLRU=class _FormulaAstLRU{constructor(cacheCount){__publicField(this,"_cache");this._cache=new core.LRUMap(cacheCount)}set(formulaString,node){const hash=this._hash(formulaString);this._cache.set(hash,node)}get(formulaString){const hash=this._hash(formulaString);return this._cache.get(hash)}clear(){this._cache.clear()}_hash(formulaString){return formulaString.length<=64?formulaString:core.hashAlgorithm(formulaString).toString()}};__name(_FormulaAstLRU,"FormulaAstLRU");let FormulaAstLRU=_FormulaAstLRU;const DEFAULT_TOKEN_TYPE_PARAMETER="P_1",DEFAULT_TOKEN_TYPE_ROOT="R_1",DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER="L_1",DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER="LR_1",DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER="LO_1",DEFAULT_TOKEN_LET_FUNCTION_NAME="LET",DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME="LAMBDA",DEFAULT_TOKEN_CUBE_FUNCTION_NAME="CUBE",FORCED_RECALCULATION_FUNCTION_NAME=new Set(["RAND","RANDBETWEEN","NOW","TODAY"]);var sequenceNodeType=(sequenceNodeType2=>(sequenceNodeType2[sequenceNodeType2.NORMAL=0]="NORMAL",sequenceNodeType2[sequenceNodeType2.NUMBER=1]="NUMBER",sequenceNodeType2[sequenceNodeType2.STRING=2]="STRING",sequenceNodeType2[sequenceNodeType2.FUNCTION=3]="FUNCTION",sequenceNodeType2[sequenceNodeType2.REFERENCE=4]="REFERENCE",sequenceNodeType2[sequenceNodeType2.ARRAY=5]="ARRAY",sequenceNodeType2[sequenceNodeType2.DEFINED_NAME=6]="DEFINED_NAME",sequenceNodeType2))(sequenceNodeType||{});function generateStringWithSequence(newSequenceNodes){let sequenceString="";for(const node of newSequenceNodes)typeof node=="string"?sequenceString+=node:sequenceString+=node.token;return sequenceString}__name(generateStringWithSequence,"generateStringWithSequence");const _LexerNode=class _LexerNode{constructor(){__publicField(this,"_parent");__publicField(this,"_token",DEFAULT_TOKEN_TYPE_ROOT);__publicField(this,"_children",[]);__publicField(this,"_lambdaId");__publicField(this,"_functionDefinitionPrivacyVar");__publicField(this,"_lambdaParameter","");__publicField(this,"_startIndex",-1);__publicField(this,"_endIndex",-1);__publicField(this,"_definedNames",[])}dispose(){var _a2;this._children.forEach(node=>{typeof node!="string"&&node.dispose()}),(_a2=this._functionDefinitionPrivacyVar)==null||_a2.clear(),this._parent=null}getDefinedNames(){return this._definedNames}getStartIndex(){return this._startIndex}getLambdaId(){return this._lambdaId}setLambdaId(lambdaId){this._lambdaId=lambdaId}getFunctionDefinitionPrivacyVar(){return this._functionDefinitionPrivacyVar}setLambdaPrivacyVar(lambdaPrivacyVar){this._functionDefinitionPrivacyVar=lambdaPrivacyVar}getLambdaParameter(){return this._lambdaParameter}setLambdaParameter(lambdaParameter){this._lambdaParameter=lambdaParameter}getParent(){return this._parent}setParent(lexerNode){this._parent=lexerNode}getChildren(){return this._children}setChildren(children){this._children=children}addChildren(children){this._children.push(children)}addChildrenFirst(children){this._children.unshift(children)}getToken(){return this._token}setToken(token){this._token=token}setIndex(st,ed){this._startIndex=st,this._endIndex=ed}setDefinedNames(definedNames){this._definedNames=definedNames}hasDefinedNames(){return this._definedNames.length>0}replaceChild(lexerNode,newLexerNode){const i=this._getIndexInParent(lexerNode);i!=null&&(this.getChildren().splice(i,1,newLexerNode),newLexerNode.setParent(this))}changeToParent(newParentLexerNode){const parentNode=this.getParent();parentNode&&parentNode.removeChild(this),this.setParent(newParentLexerNode),newParentLexerNode.getChildren().push(this)}removeChild(lexerNode){const i=this._getIndexInParent(lexerNode);i!=null&&this.getChildren().splice(i,1)}serialize(){const token=this.getToken(),children=this.getChildren(),childrenSerialization=[],childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];item instanceof _LexerNode?childrenSerialization.push(item.serialize()):childrenSerialization.push(item)}return{token,st:this._startIndex,ed:this._endIndex,children:childrenSerialization}}_getIndexInParent(lexerNode){const childrenNode=this.getChildren(),childrenCount=childrenNode.length;for(let i=0;i<childrenCount;i++)if(childrenNode[i]===lexerNode)return i}};__name(_LexerNode,"LexerNode");let LexerNode=_LexerNode;const FORMULA_CACHE_LRU_COUNT$2=1e5,FormulaLexerNodeCache=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$2),FormulaSequenceNodeCache=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$2),_LexerTreeBuilder=class _LexerTreeBuilder extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_currentLexerNode",new LexerNode);__publicField(this,"_upLevel",0);__publicField(this,"_segment","");__publicField(this,"_bracketState",[]);__publicField(this,"_squareBracketState",0);__publicField(this,"_bracesState",0);__publicField(this,"_singleQuotationState",0);__publicField(this,"_doubleQuotationState",0);__publicField(this,"_lambdaState",!1);__publicField(this,"_colonState",!1);__publicField(this,"_formulaErrorCount",0);__publicField(this,"_tableBracketState",!1)}dispose(){this._resetTemp(),this._currentLexerNode.dispose(),FormulaLexerNodeCache.clear(),FormulaSequenceNodeCache.clear()}getUpLevel(){return this._upLevel}isColonClose(){return this._colonState===!1}isColonOpen(){return this._colonState===!0}isDoubleQuotationClose(){return this._doubleQuotationState===0}isLambdaOpen(){return this._lambdaState===!0}isLambdaClose(){return this._lambdaState===!1}isSingleQuotationClose(){return this._singleQuotationState===0}isBracesClose(){return this._bracesState===0}isBracketClose(){return this._bracketState.length===0}isSquareBracketClose(){return this._squareBracketState===0}getCurrentLexerNode(){return this._currentLexerNode}getFunctionAndParameter(formulaString,strIndex){const current=this._getCurrentParamIndex(formulaString,strIndex);if(current==null||current===ErrorType$1.VALUE)return;const lexerNode=current[0];if(typeof lexerNode=="string")return;let parent=lexerNode.getParent(),children=lexerNode;for(;parent;){const token=parent.getToken();if(token!==DEFAULT_TOKEN_TYPE_PARAMETER&&!isFormulaLexerToken(token)&&parent.getStartIndex()!==-1){const paramIndex=parent.getChildren().indexOf(children);return{functionName:token,paramIndex}}children=parent,parent=parent.getParent()}}checkIfAddBracket(formulaString){let lastBracketCount=0,lastIndex=formulaString.length-1,lastString=formulaString[lastIndex];for(;(lastString===matchToken.CLOSE_BRACKET||lastString===" ")&&lastIndex>=0;)lastString===matchToken.CLOSE_BRACKET&&lastBracketCount++,lastString=formulaString[--lastIndex];const current=this._getCurrentParamIndex(formulaString,formulaString.length-2);if(current==null||current===ErrorType$1.VALUE)return 0;const lexerNode=current[0];if(typeof lexerNode=="string")return 0;let parent=lexerNode.getParent(),bracketCount=0;for(current[1]===matchToken.OPEN_BRACKET&&bracketCount++;parent;){const token=parent.getToken();token!==DEFAULT_TOKEN_TYPE_PARAMETER&&token!==matchToken.COLON&&parent.getStartIndex()!==-1&&token.toUpperCase()!==DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&(lastBracketCount===0?bracketCount+=1:lastBracketCount--),parent=parent.getParent()}return bracketCount}sequenceNodesBuilder(formulaString){const sequenceNodesCache=FormulaSequenceNodeCache.get(formulaString);if(sequenceNodesCache)return[...sequenceNodesCache];const sequenceArray=this._getSequenceArray(formulaString);if(sequenceArray.length===0)return;const newSequenceNodes=this.getSequenceNode(sequenceArray);return FormulaSequenceNodeCache.set(formulaString,[...newSequenceNodes]),newSequenceNodes}convertRefersToAbsolute(formulaString,startAbsoluteRefType,endAbsoluteRefType){const nodes=this.sequenceNodesBuilder(formulaString);if(nodes==null)return formulaString;let prefixToken2="";formulaString.substring(0,1)===operatorToken.EQUALS&&(prefixToken2=operatorToken.EQUALS);for(let i=0,len=nodes.length;i<len;i++){const node=nodes[i];if(typeof node!="string"&&node.nodeType===sequenceNodeType.REFERENCE){const{token,endIndex}=node,sequenceGrid=deserializeRangeWithSheet(token);if(sequenceGrid==null)continue;const{range,sheetName,unitId}=sequenceGrid,newRange={...range,startAbsoluteRefType,endAbsoluteRefType},newToken=serializeRangeToRefString({range:newRange,unitId,sheetName}),minusCount=newToken.length-token.length;nodes[i]={...node,token:newToken,endIndex:endIndex+minusCount};for(let j=i+1;j<len;j++){const nextNode=nodes[j];typeof nextNode!="string"&&(nextNode.startIndex+=minusCount,nextNode.endIndex+=minusCount)}}}return`${prefixToken2}${generateStringWithSequence(nodes)}`}moveFormulaRefOffset(formulaString,refOffsetX,refOffsetY,ignoreAbsolute=!1){const sequenceNodes=this.sequenceNodesBuilder(formulaString);if(sequenceNodes==null)return formulaString;const newSequenceNodes=[];for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"||node.nodeType!==sequenceNodeType.REFERENCE){newSequenceNodes.push(node);continue}const{token}=node,sequenceGrid=deserializeRangeWithSheet(token),{sheetName,unitId:sequenceUnitId}=sequenceGrid;let newRange=sequenceGrid.range;if(!ignoreAbsolute&&newRange.startAbsoluteRefType===core.AbsoluteRefType.ALL&&newRange.endAbsoluteRefType===core.AbsoluteRefType.ALL){newSequenceNodes.push(node);continue}else newRange=core.moveRangeByOffset(newRange,refOffsetX,refOffsetY,ignoreAbsolute);let newToken="";core.isValidRange(newRange)?newToken=serializeRangeToRefString({range:newRange,unitId:sequenceUnitId,sheetName}):newToken=ErrorType$1.REF,newSequenceNodes.push({...node,token:newToken})}return`=${generateStringWithSequence(newSequenceNodes)}`}_formulaSpellCheck(){if(this._currentLexerNode.getChildren().length===0)return!0;const node=this._currentLexerNode.getChildren()[0];return!!(node instanceof LexerNode||OPERATOR_TOKEN_SET.has(node)||SUFFIX_TOKEN_SET.has(node)||node===prefixToken.AT||node===matchToken.COMMA||node===matchToken.COLON||node===matchToken.OPEN_BRACKET)}getSequenceNode(sequenceArray){const sequenceNodes=[];let maybeString=!1;for(let i=0,len=sequenceArray.length;i<len;i++){const item=sequenceArray[i],preItem=sequenceArray[i-1],{segment,currentString}=item;if(currentString===matchToken.DOUBLE_QUOTATION&&(maybeString=!0),(segment!==""||i===0)&&i!==len-1){sequenceNodes.push(currentString);continue}let preSegment=(preItem==null?void 0:preItem.segment)||"";const startIndex=i-preSegment.length;let endIndex=i-1;const deleteEndIndex=i-1;if(i===len-1&&this._isLastMergeString(currentString)&&(preSegment+=currentString,endIndex+=1),preSegment===""||OPERATOR_TOKEN_PRIORITY.has(preSegment)){sequenceNodes.push(currentString);continue}const preSegmentTrim=preSegment.trim(),preSegmentNotPrefixToken=replaceRefPrefixString(preSegmentTrim);maybeString===!0&&preSegmentTrim[preSegmentTrim.length-1]===matchToken.DOUBLE_QUOTATION&&preSegmentTrim[0]!==matchToken.OPEN_BRACES?(maybeString=!1,this._processPushSequenceNode(sequenceNodes,sequenceNodeType.STRING,preSegment,startIndex,endIndex,deleteEndIndex)):regexTestSingeRange(preSegmentNotPrefixToken)&&isReferenceStringWithEffectiveColumn(preSegmentNotPrefixToken)?this._processPushSequenceNode(sequenceNodes,sequenceNodeType.REFERENCE,preSegment,startIndex,endIndex,deleteEndIndex):core.Tools.isStringNumber(preSegmentTrim)?this._processPushSequenceNode(sequenceNodes,sequenceNodeType.NUMBER,preSegment,startIndex,endIndex,deleteEndIndex):preSegmentTrim.length>0&&this._processPushSequenceNode(sequenceNodes,sequenceNodeType.FUNCTION,preSegment,startIndex,endIndex,deleteEndIndex),(i!==len-1||!this._isLastMergeString(currentString))&&sequenceNodes.push(currentString)}return this._mergeSequenceNodeReference(sequenceNodes)}_processPushSequenceNode(sequenceNodes,nodeType,token,startIndex,endIndex,deleteEndIndex){this._pushSequenceNode(sequenceNodes,{nodeType,token,startIndex,endIndex},deleteEndIndex)}_getCurrentParamIndex(formulaString,index){return this._nodeMaker(formulaString,void 0,index)}_isLastMergeString(str){return str===matchToken.DOUBLE_QUOTATION||core.Tools.isStringNumber(str)||!isFormulaLexerToken(str)}_mergeSequenceNodeReference(sequenceNodes){const newSequenceNodes=[],sequenceNodesCount=sequenceNodes.length;let i=0;for(;i<sequenceNodesCount;){const node=sequenceNodes[i];if(typeof node=="string"){const preNode=sequenceNodes[i-1];if(node.trim()===matchToken.CLOSE_BRACES&&preNode!=null&&typeof preNode!="string"&&preNode.nodeType===sequenceNodeType.FUNCTION&&preNode.token.trim().substring(0,1)===matchToken.OPEN_BRACES){preNode.nodeType=sequenceNodeType.ARRAY,preNode.token+=node,preNode.endIndex+=node.length,i++;continue}newSequenceNodes.push(node)}else{const nextOneNode=sequenceNodes[i+1],nextTwoNode=sequenceNodes[i+2];nextOneNode===matchToken.COLON&&typeof node!="string"&&nextTwoNode!=null&&typeof nextTwoNode!="string"&&isReferenceStringWithEffectiveColumn((node.token+nextOneNode+nextTwoNode.token).trim())&&(node.nodeType=sequenceNodeType.REFERENCE,node.token+=nextOneNode+nextTwoNode.token,node.endIndex=nextTwoNode.endIndex,i+=2),newSequenceNodes.push(node)}i++}return this._minusSplitSequenceNode(newSequenceNodes)}_minusSplitSequenceNode(sequenceNodes){const finalSequenceNodes=[];for(const node of sequenceNodes){if(typeof node!="string"){const match=node.token.match(/^(\s*([-@+]\s*)+)(.*)$/);if(match){const operatorPart=match[1],referencePart=match[3];if(isReferenceStringWithEffectiveColumn(referencePart.trim())){const operatorLength=operatorPart.length,operatorStart=node.startIndex,operatorEnd=node.startIndex+operatorLength-1,operatorNode={nodeType:sequenceNodeType.NORMAL,token:operatorPart,startIndex:operatorStart,endIndex:operatorEnd},refNode={nodeType:sequenceNodeType.REFERENCE,token:referencePart,startIndex:operatorEnd+1,endIndex:node.endIndex};finalSequenceNodes.push(operatorNode),finalSequenceNodes.push(refNode);continue}}}finalSequenceNodes.push(node)}return finalSequenceNodes}_pushSequenceNode(sequenceNodes,node,deleteEndIndex){const segmentCount=deleteEndIndex-node.startIndex+1;sequenceNodes.splice(sequenceNodes.length-segmentCount,segmentCount,node)}nodeMakerTest(formulaString){return this._nodeMaker(formulaString)}treeBuilder(formulaString,transformSuffix=!0,injectDefinedName,simpleCheckDefinedName){if(transformSuffix===!0){const lexerNode=FormulaLexerNodeCache.get(formulaString),simpleCheckDefinedNameResult=simpleCheckDefinedName==null?void 0:simpleCheckDefinedName(formulaString);if(lexerNode&&!simpleCheckDefinedNameResult)return lexerNode}this._resetCurrentLexerNode(),this._currentLexerNode.setToken(DEFAULT_TOKEN_TYPE_ROOT);const sequenceArray=[];let state=this._nodeMaker(formulaString,sequenceArray);if(state===ErrorType$1.VALUE||sequenceArray.length===0)return state;let currentHasDefinedName=!1,currentSequenceString="",currentDefinedNames=[];if(injectDefinedName){const{hasDefinedName,sequenceString,definedNames}=injectDefinedName(sequenceArray);currentHasDefinedName=hasDefinedName,currentSequenceString=sequenceString,currentDefinedNames=definedNames}if(currentHasDefinedName&&(this._resetCurrentLexerNode(),this._currentLexerNode.setToken(DEFAULT_TOKEN_TYPE_ROOT),state=this._nodeMaker(`=${currentSequenceString}`),state===ErrorType$1.VALUE))return state;const node=this._getTopNode(this._currentLexerNode);if(node&&(this._currentLexerNode=node),transformSuffix){if(!this._suffixExpressionHandler(this._currentLexerNode))return ErrorType$1.VALUE;FormulaLexerNodeCache.set(formulaString,this._currentLexerNode)}return currentHasDefinedName&&this._currentLexerNode.setDefinedNames(currentDefinedNames),this._currentLexerNode}_suffixExpressionHandler(lexerNode){var _a2;const children=lexerNode.getChildren();if(!children)return!1;const childrenCount=children.length,baseStack=[],symbolStack=[];let isChildValid=!0;for(let i=0;i<childrenCount;i++){const node=children[i];if(node instanceof LexerNode)isChildValid=this._suffixExpressionHandler(node),baseStack.push(node);else{const char=node.trim();if(char==="")continue;if(OPERATOR_TOKEN_SET.has(char)){if(char===operatorToken.PLUS&&this._deletePlusForPreNode(children[i-1]))continue;if(char!==operatorToken.PLUS&&char!==operatorToken.MINUS&&this._deletePlusForPreNode(children[i-1]))return!1;for(;symbolStack.length>0;){const lastSymbol=(_a2=symbolStack[symbolStack.length-1])==null?void 0:_a2.trim();if(!lastSymbol||lastSymbol===matchToken.OPEN_BRACKET)break;const lastSymbolPriority=OPERATOR_TOKEN_PRIORITY.get(lastSymbol),charPriority=OPERATOR_TOKEN_PRIORITY.get(char);if(!lastSymbolPriority||!charPriority)break;if(charPriority>=lastSymbolPriority)baseStack.push(symbolStack.pop());else break}symbolStack.push(node)}else if(char===matchToken.OPEN_BRACKET)symbolStack.push(node);else if(char===matchToken.CLOSE_BRACKET)this._processSuffixExpressionCloseBracket(baseStack,symbolStack,children,i);else{if(this._checkCloseBracket(children[i-1]))return!1;baseStack.push(node)}}}return isChildValid?this._processSuffixExpressionRemain(baseStack,symbolStack,lexerNode):!1}_processSuffixExpressionRemain(baseStack,symbolStack,lexerNode){const baseStackLength=baseStack.length,lastBaseStack=baseStack[baseStackLength-1];for(;symbolStack.length>0;){const symbol=symbolStack.pop();if(!(lastBaseStack instanceof LexerNode)&&(symbol===matchToken.OPEN_BRACKET||symbol===matchToken.CLOSE_BRACKET))return!1;baseStack.push(symbol)}return lexerNode.setChildren(baseStack),!0}_processSuffixExpressionCloseBracket(baseStack,symbolStack,children,i){var _a2;if(this._checkOpenBracket(children[i-1])||this._checkOperator(children[i-1]))return!1;for(;symbolStack.length>0;){const lastSymbol=(_a2=symbolStack[symbolStack.length-1])==null?void 0:_a2.trim();if(!lastSymbol)break;if(lastSymbol===matchToken.OPEN_BRACKET){symbolStack.pop();break}baseStack.push(symbolStack.pop())}}_checkCloseBracket(node){return node===matchToken.CLOSE_BRACKET||node instanceof LexerNode}_checkOpenBracket(node){return node===matchToken.OPEN_BRACKET}_checkOperator(node){return node==null||node instanceof LexerNode?!1:OPERATOR_TOKEN_SET.has(node)}_deletePlusForPreNode(preNode){if(preNode==null)return!0;if(!(preNode instanceof LexerNode)){const preChar=preNode.trim();if(OPERATOR_TOKEN_SET.has(preChar)||preChar===matchToken.OPEN_BRACKET)return!0}return!1}_resetCurrentLexerNode(){this._currentLexerNode=new LexerNode}_resetSegment(){this._segment=""}_openBracket(type=0){this._bracketState.push(type)}_closeBracket(){this._bracketState.pop()}_openSquareBracket(){this._squareBracketState+=1}_closeSquareBracket(){this._squareBracketState-=1}_getCurrentBracket(){const bracketState=this._bracketState;return bracketState[bracketState.length-1]}_changeCurrentBracket(type){const bracketState=this._bracketState;bracketState[bracketState.length-1]=type}_openBraces(){this._bracesState+=1}_closeBraces(){this._bracesState-=1}_openSingleQuotation(){this._singleQuotationState+=1}_closeSingleQuotation(){this._singleQuotationState-=1}_openDoubleQuotation(){this._doubleQuotationState+=1}_closeDoubleQuotation(){this._doubleQuotationState-=1}_openLambda(){this._lambdaState=!0}_closeLambda(){this._lambdaState=!1}_openColon(upLevel){this._upLevel=upLevel,this._colonState=!0}_closeColon(){this._upLevel=0,this._colonState=!1}_isTableBracket(){return this._tableBracketState}_openTableBracket(){this._tableBracketState=!0}_closeTableBracket(){this._tableBracketState=!1}_formalErrorOccurred(){this._formulaErrorCount+=1}_hasFormalError(){return this._formulaErrorCount>0}_getLastChildCurrentLexerNode(){const children=this._currentLexerNode.getChildren();if(children&&children.length>0){const lastNode=children[children.length-1];if(lastNode instanceof LexerNode)return lastNode}return!1}_getLastChildCurrent(){const children=this._currentLexerNode.getChildren();return children&&children.length>0?children[children.length-1]:!1}_setParentCurrentLexerNode(){const parent=this._currentLexerNode.getParent();return parent?(this._currentLexerNode=parent,!0):!1}_setAncestorCurrentLexerNode(){var _a2,_b2,_c2,_d2,_e2,_f2;const parent=(_a2=this._currentLexerNode)==null?void 0:_a2.getParent();let state=!1;if(parent&&parent.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){if((_b2=parent==null?void 0:parent.getParent())!=null&&_b2.getParent()){const node=(_d2=(_c2=this._currentLexerNode.getParent())==null?void 0:_c2.getParent())==null?void 0:_d2.getParent();node&&(this._currentLexerNode=node),state=!0}}else if(parent!=null&&parent.getParent()){const node=(_e2=this._currentLexerNode.getParent())==null?void 0:_e2.getParent();node&&(this._currentLexerNode=node),state=!0}for(let i=0;i<this._upLevel;i++){const node=(_f2=this._currentLexerNode)==null?void 0:_f2.getParent();node&&(this._currentLexerNode=node),this._currentLexerNode?state=!0:state=!1}return state}_segmentCount(){return this._segment.trim().length}_pushSegment(value){this._segment+=value}_pushNodeToChildren(valueRaw,isUnshift=!1){let value=valueRaw;if(value!==""){const children=this._currentLexerNode.getChildren();if(!(value instanceof LexerNode)&&this.isColonOpen()){const subLexerNode_ref=new LexerNode;subLexerNode_ref.setToken(value),subLexerNode_ref.setParent(this._currentLexerNode),value=subLexerNode_ref}isUnshift?children.unshift(value):children.push(value)}this.isColonOpen()&&(this._setAncestorCurrentLexerNode(),this._closeColon())}_setCurrentLexerNode(subLexerNode,isUnshift=!1){this._pushNodeToChildren(subLexerNode,isUnshift),subLexerNode.setParent(this._currentLexerNode),this._currentLexerNode=subLexerNode}_newAndPushCurrentLexerNode(token,current,isUnshift=!1){const subLexerNode=new LexerNode;subLexerNode.setToken(token),subLexerNode.setIndex(current-token.length,current-1),this._setCurrentLexerNode(subLexerNode,isUnshift)}_getTopNode(lexerNode){let parentNode=lexerNode;for(;parentNode!=null&&parentNode.getParent();)parentNode=parentNode.getParent();return parentNode}_removeLastChild(){this._currentLexerNode.getChildren().splice(-1)}_formulaErrorLastTokenCheck(formulaStringArray,indexRaw){const lastToken=this._findPreviousToken(formulaStringArray,indexRaw)||"",isFirstCheck=formulaStringArray.length-1===indexRaw;if(!isFirstCheck&&this._isOperatorToken(lastToken)||isFirstCheck&&isTokenCannotBeAtEnd(lastToken))return!0;if(SUFFIX_TOKEN_SET.has(lastToken)){const lastTwoToken=this._findSecondLastNonSpaceToken(formulaStringArray,indexRaw);if(lastTwoToken==null||isTokenCannotPrecedeSuffixToken(lastTwoToken))return!0}return!1}_findPreviousToken(data,indexRaw){let index=indexRaw;for(;index>=0;){const token=data[index];if(token!==" ")return token;index--}}_findSecondLastNonSpaceToken(data,indexRaw){let index=indexRaw,nonSpaceTokenCount=0;for(;index>=0;){const token=data[index];if(token!==" "&&(nonSpaceTokenCount++,nonSpaceTokenCount===2))return token;index--}return null}_findNextToken(data,indexRaw){let index=indexRaw;for(;index>=0;){const token=data[index];if(token!==" ")return token;index++}}_unexpectedEndingTokenExcludeOperator(prevString){return prevString===matchToken.OPEN_BRACKET||prevString===matchToken.COMMA||prevString===operatorToken.EQUALS||prevString===""}_unexpectedEndingToken(prevString){return!!(this._isOperatorToken(prevString)||this._unexpectedEndingTokenExcludeOperator(prevString))}_isOperatorToken(prevString){return!!OPERATOR_TOKEN_SET.has(prevString)}_getSequenceArray(formulaString){const sequenceArray=[];return this._nodeMaker(formulaString,sequenceArray),sequenceArray}_resetTemp(){this._currentLexerNode=new LexerNode,this._upLevel=0,this._segment="",this._bracketState=[],this._bracesState=0,this._singleQuotationState=0,this._doubleQuotationState=0,this._lambdaState=!1,this._colonState=!1,this._formulaErrorCount=0}_checkErrorState(){return!!(this._bracketState.length>0||this._bracesState>0||this._singleQuotationState>0||this._doubleQuotationState>0||this._hasFormalError())}_checkSimilarErrorToken(currentString,curRow,formulaStringArray){let cur=curRow;if(currentString!==suffixToken.POUND)return!0;let currentText=formulaStringArray[++cur];for(;currentText===" ";)currentText=formulaStringArray[++cur];return!!isFormulaLexerToken(currentText)}_checkIfErrorObject(cur,formulaStringArray){return!!this._findErrorObject(cur,formulaStringArray)}_findErrorObject(curRaw,formulaStringArray){for(let i=0;i<ERROR_TYPE_COUNT_ARRAY.length;i++){const errorTypeCount=ERROR_TYPE_COUNT_ARRAY[i],errorType=formulaStringArray.slice(curRaw,curRaw+errorTypeCount).join("").toUpperCase();if(ERROR_TYPE_SET.has(errorType))return errorType}}_nodeMaker(formulaStringRaw,sequenceArray,matchCurrentNodeIndex){let formulaString=formulaStringRaw.replace(/\r\n$/,"").replace(/\r/g," ").replace(/\n/g," ");formulaString.substring(0,1)===operatorToken.EQUALS&&(formulaString=formulaString.substring(1));const formulaStringArray=formulaString.split(""),formulaStringArrayCount=formulaStringArray.length;let cur=0;for(this._resetTemp(),this._formulaErrorLastTokenCheck(formulaStringArray,formulaStringArrayCount-1)&&this._formalErrorOccurred();cur<formulaStringArrayCount;){const currentString=formulaStringArray[cur];if(matchCurrentNodeIndex===cur)return[this._currentLexerNode,currentString];if(currentString===suffixToken.POUND&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()&&this._checkIfErrorObject(cur,formulaStringArray)){const errorType=this._findErrorObject(cur,formulaStringArray);if(errorType==null)return ErrorType$1.VALUE;this._pushNodeToChildren(errorType);for(let i=0;i<errorType.length;i++){const curStr=formulaStringArray[cur];this._pushSegment(curStr),this._addSequenceArray(sequenceArray,curStr,cur),cur++}this._resetSegment();continue}else if(currentString===matchToken.OPEN_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())if(this._segmentCount()>0||this.isLambdaOpen()){this.isLambdaClose()&&(this._newAndPushCurrentLexerNode(this._segment,cur),this._resetSegment()),this._openBracket(1),this._closeLambda();const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&nextCurrentString===matchToken.CLOSE_BRACKET){if(!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE;this._addSequenceArray(sequenceArray,currentString,cur),cur++,this._addSequenceArray(sequenceArray,nextCurrentString,cur),cur++,this._closeBracket();continue}else nextCurrentString&&this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}else this._pushNodeToChildren(currentString),this._openBracket(0),this._resetSegment();else if(currentString===matchToken.CLOSE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){this._formulaErrorLastTokenCheck(formulaStringArray,cur-1)&&this._formalErrorOccurred(),this._pushNodeToChildren(this._segment),this._resetSegment();const currentBracket=this._getCurrentBracket();if(currentBracket===0)this._pushNodeToChildren(currentString);else if(currentBracket===1){const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&nextCurrentString===matchToken.OPEN_BRACKET){if(!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE;this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER,cur,!0),this._openLambda()}else if(!this._setAncestorCurrentLexerNode()&&cur!==formulaStringArrayCount-1)return ErrorType$1.VALUE}else return ErrorType$1.VALUE;this._closeBracket()}else if(currentString===matchToken.OPEN_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){if(this._pushSegment(currentString),this._openBraces(),!this._formulaSpellCheck())return ErrorType$1.VALUE}else if(currentString===matchToken.CLOSE_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(currentString),this._pushNodeToChildren(this._segment),this._resetSegment(),this._closeBraces();else if(currentString===matchToken.OPEN_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._segment.length>0&&this._openTableBracket(),this._pushSegment(currentString),this._openSquareBracket();else if(currentString===matchToken.CLOSE_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._closeSquareBracket(),this.isSquareBracketClose()?(this._pushSegment(currentString),this._isTableBracket()&&(this._pushNodeToChildren(this._segment),this._resetSegment()),this._closeTableBracket()):this._pushSegment(currentString);else if(currentString===matchToken.DOUBLE_QUOTATION&&this.isSingleQuotationClose()&&this.isSquareBracketClose()){if(this.isDoubleQuotationClose())this._openDoubleQuotation();else{const nextCurrentString=formulaStringArray[cur+1];nextCurrentString&&nextCurrentString===matchToken.DOUBLE_QUOTATION?cur++:this._closeDoubleQuotation()}this._pushSegment(currentString)}else if(currentString===matchToken.SINGLE_QUOTATION&&this.isDoubleQuotationClose()){if(this.isSingleQuotationClose())this._openSingleQuotation();else{const nextCurrentString=formulaStringArray[cur+1];nextCurrentString&&nextCurrentString===matchToken.SINGLE_QUOTATION?cur++:this._closeSingleQuotation()}this._pushSegment(currentString)}else if(currentString===matchToken.COMMA&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){this._formulaErrorLastTokenCheck(formulaStringArray,cur-1)&&this._formalErrorOccurred();const currentBracket=this._getCurrentBracket();if(currentBracket===1||currentBracket==null){if(this._pushNodeToChildren(this._segment),this._resetSegment(),!this._setParentCurrentLexerNode()&&cur!==formulaStringArrayCount-1&&currentBracket!=null)return ErrorType$1.VALUE;this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}else{const cubeNode=new LexerNode;cubeNode.setToken(DEFAULT_TOKEN_CUBE_FUNCTION_NAME);const cubeParamNode=new LexerNode;cubeParamNode.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),cubeParamNode.changeToParent(cubeNode);const colonNode=this._currentLexerNode.getParent();if(colonNode&&colonNode.getToken()===matchToken.COLON){const colonNodeParent=colonNode.getParent();if(!colonNodeParent)return ErrorType$1.VALUE;colonNode.changeToParent(cubeParamNode),colonNodeParent.setChildren([]),cubeNode.changeToParent(colonNodeParent)}else return ErrorType$1.VALUE;this._changeCurrentBracket(1),this._pushNodeToChildren(this._segment),this._resetSegment(),this._currentLexerNode=cubeNode,this._newAndPushCurrentLexerNode(DEFAULT_TOKEN_TYPE_PARAMETER,cur)}}else if(currentString===matchToken.COLON&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const subLexerNode_op=new LexerNode;subLexerNode_op.setToken(currentString);const subLexerNode_left=new LexerNode;subLexerNode_left.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),subLexerNode_left.setParent(subLexerNode_op);const subLexerNode_right=new LexerNode;subLexerNode_right.setToken(DEFAULT_TOKEN_TYPE_PARAMETER),subLexerNode_right.setParent(subLexerNode_op),subLexerNode_op.getChildren().push(subLexerNode_left,subLexerNode_right);let subLexerNode_main=subLexerNode_op,upLevel=0;if(this._segmentCount()>0){let subLexerNode_minus,subLexerNode_at,sliceLength=0;const segmentTrim=this._segment.trim(),lastString=segmentTrim[0],twoLastString=segmentTrim[1];if(lastString===prefixToken.MINUS&&(subLexerNode_minus=new LexerNode,subLexerNode_minus.setToken(prefixToken.MINUS),sliceLength++),(lastString===prefixToken.AT||twoLastString===prefixToken.AT)&&(subLexerNode_at=new LexerNode,subLexerNode_at.setToken(prefixToken.AT),subLexerNode_minus&&(subLexerNode_minus.addChildren(subLexerNode_at),subLexerNode_at.setParent(subLexerNode_minus)),sliceLength++),sliceLength>0&&(this._segment=segmentTrim.slice(sliceLength)),upLevel=sliceLength,subLexerNode_at)if(subLexerNode_at.addChildren(subLexerNode_op),subLexerNode_op.setParent(subLexerNode_at),subLexerNode_at.getParent()){const node=subLexerNode_at.getParent();node&&(subLexerNode_main=node)}else subLexerNode_main=subLexerNode_at;else subLexerNode_minus&&(subLexerNode_main=subLexerNode_minus,subLexerNode_minus.addChildren(subLexerNode_op),subLexerNode_op.setParent(subLexerNode_minus));const subLexerNode_ref=new LexerNode;subLexerNode_ref.setToken(this._segment),subLexerNode_ref.setParent(subLexerNode_left),subLexerNode_left.getChildren().push(subLexerNode_ref),this._resetSegment()}else{const lastChildNode=this._getLastChildCurrentLexerNode();lastChildNode&&lastChildNode.changeToParent(subLexerNode_left)}this._setCurrentLexerNode(subLexerNode_main),this._currentLexerNode=subLexerNode_right,this._openColon(upLevel)}else if(SUFFIX_TOKEN_SET.has(currentString)&&this._checkSimilarErrorToken(currentString,cur,formulaStringArray)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){this._pushNodeToChildren(this._segment);const subLexerNode=new LexerNode;subLexerNode.setToken(currentString);const lastChildNode=this._getLastChildCurrent();lastChildNode instanceof LexerNode?lastChildNode.changeToParent(subLexerNode):lastChildNode!==!1&&(subLexerNode.getChildren().push(lastChildNode),this._removeLastChild()),this._pushNodeToChildren(subLexerNode),subLexerNode.setParent(this._currentLexerNode),this._resetSegment()}else if(OPERATOR_TOKEN_SET.has(currentString)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){let trimSegment=this._segment.trim();if(currentString===operatorToken.MINUS&&trimSegment===""){const prevString=this._findPreviousToken(formulaStringArray,cur-1)||"",nextString=this._findNextToken(formulaStringArray,cur+1)||"";if(this._unexpectedEndingTokenExcludeOperator(prevString)&&this._isOperatorToken(nextString)){this._pushNodeToChildren("0"),this._pushNodeToChildren(operatorToken.MINUS),this._addSequenceArray(sequenceArray,currentString,cur),this._resetSegment(),cur++;continue}else if(this._unexpectedEndingToken(prevString))if(nextString===operatorToken.PLUS){this._pushSegment(operatorToken.MINUS),this._addSequenceArray(sequenceArray,currentString,cur),this._addSequenceArray(sequenceArray,operatorToken.PLUS,cur+1),cur+=2;continue}else{this._pushSegment(operatorToken.MINUS),this._addSequenceArray(sequenceArray,currentString,cur),cur++;continue}}else if(this._segment.length>0&&this._isScientificNotation(formulaStringArray,cur,currentString)){this._pushSegment(currentString),this._addSequenceArray(sequenceArray,currentString,cur),cur++;continue}else this._segment.length>0&&trimSegment===""?trimSegment=this._segment:(this._pushNodeToChildren(this._segment),trimSegment="");if(currentString===operatorToken.LESS_THAN||currentString===operatorToken.GREATER_THAN){const nextCurrentString=formulaStringArray[cur+1];if(nextCurrentString&&OPERATOR_TOKEN_SET.has(currentString+nextCurrentString)){this._pushNodeToChildren(trimSegment+currentString+nextCurrentString),this._resetSegment(),this._addSequenceArray(sequenceArray,currentString,cur),cur++,this._addSequenceArray(sequenceArray,nextCurrentString,cur),cur++;continue}else this._pushNodeToChildren(trimSegment+currentString)}else this._pushNodeToChildren(trimSegment+currentString);this._resetSegment()}else this._pushSegment(currentString);this._addSequenceArray(sequenceArray,currentString,cur),cur++}if(this._pushNodeToChildren(this._segment),this._checkErrorState())return ErrorType$1.VALUE}_isScientificNotation(formulaStringArray,cur,currentString){const preTwoChar=formulaStringArray[cur-2];if(preTwoChar&&Number.isNaN(Number(preTwoChar))||!(currentString===operatorToken.MINUS||currentString===operatorToken.PLUS))return!1;const nextOneChar=formulaStringArray[cur+1];if(nextOneChar&&Number.isNaN(Number(nextOneChar)))return!1;const preOneChar=formulaStringArray[cur-1];return preOneChar&&preOneChar.toUpperCase()==="E"}_addSequenceArray(sequenceArray,currentString,cur){sequenceArray==null||sequenceArray.push({segment:this._segment,currentString,cur,currentLexerNode:this._currentLexerNode})}};__name(_LexerTreeBuilder,"LexerTreeBuilder");let LexerTreeBuilder=_LexerTreeBuilder;function updateFormulaDataByCellValue(sheetFormulaDataMatrix,newSheetFormulaDataMatrix,formulaIdMap,deleteFormulaIdMap,r,c,cell){const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",checkFormulaString=core.isFormulaString(formulaString),checkFormulaId=core.isFormulaId(formulaId),currentFormulaInfo=sheetFormulaDataMatrix.getValue(r,c),f=(currentFormulaInfo==null?void 0:currentFormulaInfo.f)||"",si=(currentFormulaInfo==null?void 0:currentFormulaInfo.si)||"";function clearFormulaData(){var _a2;if(core.isFormulaString(f)&&core.isFormulaId(si)){const updatedFormula=(_a2=formulaIdMap.get(si))==null?void 0:_a2.f;updatedFormula?deleteFormulaIdMap.set(si,updatedFormula):deleteFormulaIdMap.set(si,f)}}__name(clearFormulaData,"clearFormulaData"),checkFormulaString&&checkFormulaId?(si!==formulaId&&clearFormulaData(),sheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId}),formulaIdMap.set(formulaId,{f:formulaString,r,c}),newSheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId})):checkFormulaString&&!checkFormulaId?(f!==formulaString&&clearFormulaData(),sheetFormulaDataMatrix.setValue(r,c,{f:formulaString}),newSheetFormulaDataMatrix.setValue(r,c,{f:formulaString})):!checkFormulaString&&checkFormulaId?(si!==formulaId&&clearFormulaData(),sheetFormulaDataMatrix.setValue(r,c,{f:"",si:formulaId})):!checkFormulaString&&!checkFormulaId&&sheetFormulaDataMatrix.getValue(r,c)&&(clearFormulaData(),sheetFormulaDataMatrix.realDeleteValue(r,c),newSheetFormulaDataMatrix.setValue(r,c,null))}__name(updateFormulaDataByCellValue,"updateFormulaDataByCellValue");function clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix,arrayFormulaCellDataMatrix,r,c){const arrayFormulaRangeValue=arrayFormulaRangeMatrix==null?void 0:arrayFormulaRangeMatrix.getValue(r,c);if(arrayFormulaRangeValue==null)return!0;const intersection=[];arrayFormulaRangeMatrix.forValue((rangeRow,rangeCol,range)=>{rangeRow===r&&rangeCol===c||core.Rectangle.intersects(range,arrayFormulaRangeValue)&&intersection.push(range)});const{startRow,startColumn,endRow,endColumn}=arrayFormulaRangeValue;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){let isOverlapping=!1;const currentCell=core.cellToRange(row,col);intersection.some(range=>core.Rectangle.contains(range,currentCell)?(isOverlapping=!0,!0):!1),isOverlapping||arrayFormulaCellDataMatrix.realDeleteValue(row,col)}}__name(clearArrayFormulaCellDataByCell,"clearArrayFormulaCellDataByCell");var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$m(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$m(target,key,result),result},"__decorateClass$m"),__decorateParam$m=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$m");exports2.FormulaDataModel=(_b=class extends core.Disposable{constructor(_univerInstanceService,_lexerTreeBuilder){super();__publicField(this,"_formulaData",{});__publicField(this,"_arrayFormulaRange",{});__publicField(this,"_arrayFormulaCellData",{});this._univerInstanceService=_univerInstanceService,this._lexerTreeBuilder=_lexerTreeBuilder,this.initFormulaData()}dispose(){super.dispose(),this._formulaData={},this._arrayFormulaRange={},this._arrayFormulaCellData={}}clearPreviousArrayFormulaCellData(clearArrayFormulaCellData){Object.keys(clearArrayFormulaCellData).forEach(unitId=>{const clearSheetData=clearArrayFormulaCellData[unitId];if(clearSheetData==null)return!0;Object.keys(clearSheetData).forEach(sheetId=>{var _a2,_b2,_c2,_d2;const clearCellMatrixData=clearSheetData[sheetId],formulaRange=(_b2=(_a2=this._arrayFormulaRange)==null?void 0:_a2[unitId])==null?void 0:_b2[sheetId];if(formulaRange==null)return!0;const rangeMatrix=new core.ObjectMatrix(formulaRange);let arrayFormulaCellMatrixData=new core.ObjectMatrix;((_c2=this._arrayFormulaCellData[unitId])==null?void 0:_c2[sheetId])!=null&&(arrayFormulaCellMatrixData=new core.ObjectMatrix((_d2=this._arrayFormulaCellData[unitId])==null?void 0:_d2[sheetId])),clearCellMatrixData.forValue((row,column)=>{const range=rangeMatrix.getValue(row,column);if(range==null)return!0;const{startRow,startColumn,endRow,endColumn}=range;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)arrayFormulaCellMatrixData.setValue(r,c,null);rangeMatrix.realDeleteValue(row,column)}),this._arrayFormulaCellData[unitId]&&(this._arrayFormulaCellData[unitId][sheetId]=arrayFormulaCellMatrixData.getData())})})}mergeArrayFormulaCellData(unitData){Object.keys(unitData).forEach(unitId=>{const sheetData=unitData[unitId];if(sheetData==null)return!0;this._arrayFormulaRange[unitId]==null&&(this._arrayFormulaRange[unitId]={}),this._arrayFormulaCellData[unitId]==null&&(this._arrayFormulaCellData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a2,_b2;const cellMatrixData=sheetData[sheetId],arrayFormulaRangeMatrix=new core.ObjectMatrix((_a2=this._arrayFormulaRange[unitId])==null?void 0:_a2[sheetId]),arrayFormulaCellMatrixData=new core.ObjectMatrix((_b2=this._arrayFormulaCellData[unitId])==null?void 0:_b2[sheetId]);cellMatrixData.forValue((row,column)=>{const arrayFormulaRange=arrayFormulaRangeMatrix==null?void 0:arrayFormulaRangeMatrix.getValue(row,column);if(arrayFormulaRange==null)return!0;const{startRow,startColumn,endRow,endColumn}=arrayFormulaRange;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)arrayFormulaCellMatrixData.setValue(r,c,null)}),cellMatrixData.forValue((row,column,cellData)=>{arrayFormulaCellMatrixData.setValue(row,column,cellData)}),this._arrayFormulaCellData[unitId]&&(this._arrayFormulaCellData[unitId][sheetId]=arrayFormulaCellMatrixData.getData())})})}getFormulaData(){return this._formulaData}setFormulaData(value){this._formulaData=value}getArrayFormulaRange(){return this._arrayFormulaRange}setArrayFormulaRange(value){this._arrayFormulaRange=value}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(value){this._arrayFormulaCellData=value}mergeArrayFormulaRange(formulaData){Object.keys(formulaData).forEach(unitId=>{const sheetData=formulaData[unitId];if(sheetData==null)return!0;this._arrayFormulaRange[unitId]||(this._arrayFormulaRange[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a2;const arrayFormula=new core.ObjectMatrix(sheetData[sheetId]),rangeMatrix=new core.ObjectMatrix((_a2=this._arrayFormulaRange[unitId])==null?void 0:_a2[sheetId]);arrayFormula.forValue((r,c,v)=>{rangeMatrix.setValue(r,c,v)}),this._arrayFormulaRange[unitId]&&(this._arrayFormulaRange[unitId][sheetId]=rangeMatrix.getData())})})}mergeFormulaData(formulaData){Object.keys(formulaData).forEach(unitId=>{const sheetData=formulaData[unitId];if(sheetData!==void 0){if(sheetData===null){delete this._formulaData[unitId];return}this._formulaData[unitId]||(this._formulaData[unitId]={}),Object.keys(sheetData).forEach(sheetId=>{var _a2,_b2;const currentSheetData=sheetData[sheetId];if(currentSheetData===void 0)return;if(currentSheetData===null){(_a2=this._formulaData[unitId])==null||delete _a2[sheetId];return}const sheetFormula=new core.ObjectMatrix(currentSheetData),formulaMatrix=new core.ObjectMatrix(((_b2=this._formulaData[unitId])==null?void 0:_b2[sheetId])||{});sheetFormula.forValue((r,c,v)=>{v==null?formulaMatrix.realDeleteValue(r,c):formulaMatrix.setValue(r,c,v)}),this._formulaData[unitId][sheetId]=formulaMatrix.clone()})}})}deleteArrayFormulaRange(unitId,sheetId,row,column){var _a2;const cellMatrixData=(_a2=this._arrayFormulaRange[unitId])==null?void 0:_a2[sheetId];if(cellMatrixData==null)return;const rangeMatrixData=new core.ObjectMatrix(cellMatrixData);rangeMatrixData.getValue(row,column)&&(rangeMatrixData.realDeleteValue(row,column),this._arrayFormulaRange[unitId]&&(this._arrayFormulaRange[unitId][sheetId]=rangeMatrixData.getData()))}initFormulaData(){if(this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).length===0)return;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId();this._formulaData[unitId]={},workbook.getSheets().forEach(worksheet=>{const cellMatrix=worksheet.getCellMatrix(),sheetId=worksheet.getSheetId();initSheetFormulaData(this._formulaData,unitId,sheetId,cellMatrix)})}getCalculateData(){const unitAllSheet=this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET),allUnitData={},unitSheetNameMap={};for(const workbook of unitAllSheet){const unitId=workbook.getUnitId(),sheets=workbook.getSheets(),sheetData={},sheetNameMap={};for(const sheet of sheets){const sheetId=sheet.getSheetId(),sheetConfig=sheet.getConfig();sheetData[sheetId]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData,defaultRowHeight:sheetConfig.defaultRowHeight,defaultColumnWidth:sheetConfig.defaultColumnWidth},sheetNameMap[sheet.getName()]=sheet.getSheetId()}allUnitData[unitId]=sheetData,unitSheetNameMap[unitId]=sheetNameMap}return{allUnitData,unitSheetNameMap}}updateFormulaData(unitId,sheetId,cellValue){const cellMatrix=new core.ObjectMatrix(cellValue),formulaIdMap=this.getFormulaIdMap(unitId,sheetId),deleteFormulaIdMap=new Map,formulaData=this._formulaData;formulaData[unitId]==null&&(formulaData[unitId]={});const workbookFormulaData=formulaData[unitId];workbookFormulaData[sheetId]==null&&(workbookFormulaData[sheetId]={});const sheetFormulaDataMatrix=new core.ObjectMatrix(workbookFormulaData[sheetId]||{}),newSheetFormulaDataMatrix=new core.ObjectMatrix;return cellMatrix.forValue((r,c,cell)=>{updateFormulaDataByCellValue(sheetFormulaDataMatrix,newSheetFormulaDataMatrix,formulaIdMap,deleteFormulaIdMap,r,c,cell)}),sheetFormulaDataMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"";if(core.isFormulaId(formulaId)){const formulaInfo=formulaIdMap.get(formulaId),deleteFormula=deleteFormulaIdMap.get(formulaId);if(formulaInfo&&!core.isFormulaString(formulaString)){const f=formulaInfo.f,x=c-formulaInfo.c,y=r-formulaInfo.r;sheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y}),newSheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y})}else if(typeof deleteFormula=="string"){const x=(cell==null?void 0:cell.x)||0,y=(cell==null?void 0:cell.y)||0,offsetFormula=this._lexerTreeBuilder.moveFormulaRefOffset(deleteFormula,x,y);deleteFormulaIdMap.set(formulaId,{r,c,f:offsetFormula}),sheetFormulaDataMatrix.setValue(r,c,{f:offsetFormula,si:formulaId}),newSheetFormulaDataMatrix.setValue(r,c,{f:offsetFormula,si:formulaId})}else if(typeof deleteFormula=="object"){const x=c-deleteFormula.c,y=r-deleteFormula.r;sheetFormulaDataMatrix.setValue(r,c,{f:deleteFormula.f,si:formulaId,x,y}),newSheetFormulaDataMatrix.setValue(r,c,{f:deleteFormula.f,si:formulaId,x,y})}}}),newSheetFormulaDataMatrix.clone()}updateArrayFormulaRange(unitId,sheetId,cellValue){var _a2;const arrayFormulaRange=(_a2=this._arrayFormulaRange[unitId])==null?void 0:_a2[sheetId];if(!arrayFormulaRange)return;const arrayFormulaRangeMatrix=new core.ObjectMatrix(arrayFormulaRange);new core.ObjectMatrix(cellValue).forValue((r,c,cell)=>{arrayFormulaRangeMatrix.realDeleteValue(r,c)})}updateArrayFormulaCellData(unitId,sheetId,cellValue){var _a2,_b2;const arrayFormulaRange=(_a2=this._arrayFormulaRange[unitId])==null?void 0:_a2[sheetId];if(!arrayFormulaRange)return;const arrayFormulaRangeMatrix=new core.ObjectMatrix(arrayFormulaRange),arrayFormulaCellData=(_b2=this._arrayFormulaCellData[unitId])==null?void 0:_b2[sheetId];if(!arrayFormulaCellData)return;const arrayFormulaCellDataMatrix=new core.ObjectMatrix(arrayFormulaCellData);new core.ObjectMatrix(cellValue).forValue((r,c,cell)=>{clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix,arrayFormulaCellDataMatrix,r,c)})}getFormulaItemBySId(sId,sheetId,unitId){const formulaData=this._formulaData;if(formulaData[unitId]==null)return null;const workbookFormulaData=formulaData[unitId];if((workbookFormulaData==null?void 0:workbookFormulaData[sheetId])==null)return null;const cellMatrix=new core.ObjectMatrix(workbookFormulaData[sheetId]||{});let formulaDataItem=null;return cellMatrix.forValue((row,column,item)=>{if(item==null)return!0;const{f,si,x=0,y=0}=item;if(si===sId&&f.length>0&&x===0&&y===0)return formulaDataItem=item,!1}),formulaDataItem}getFormulaDataItem(row,column,sheetId,unitId){var _a2,_b2,_c2,_d2;return(_d2=(_c2=(_b2=(_a2=this._formulaData)==null?void 0:_a2[unitId])==null?void 0:_b2[sheetId])==null?void 0:_c2[row])==null?void 0:_d2[column]}getFormulaIdMap(unitId,sheetId){const formulaIdMap=new Map,formulaData=this._formulaData;if(formulaData[unitId]==null)return formulaIdMap;const workbookFormulaData=formulaData[unitId];return(workbookFormulaData==null?void 0:workbookFormulaData[sheetId])==null||new core.ObjectMatrix(workbookFormulaData[sheetId]||{}).forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",x=(cell==null?void 0:cell.x)||0,y=(cell==null?void 0:cell.y)||0;core.isFormulaString(formulaString)&&core.isFormulaId(formulaId)&&x===0&&y===0&&formulaIdMap.set(formulaId,{f:formulaString,r,c})}),formulaIdMap}getFormulaStringByCell(row,column,sheetId,unitId){const formulaDataItem=this.getFormulaDataItem(row,column,sheetId,unitId);if(formulaDataItem==null)return null;const{f,si,x=0,y=0}=formulaDataItem;if(si!=null&&(x!==0||y!==0)){let formulaString="";if(f.length>0)formulaString=f;else{const originItem=this.getFormulaItemBySId(si,sheetId,unitId);if(originItem==null||originItem.f.length===0)return null;formulaString=originItem.f}return formulaString=this._lexerTreeBuilder.moveFormulaRefOffset(formulaString,x,y),formulaString}return core.isFormulaString(f)?f:null}},__name(_b,"FormulaDataModel"),_b),exports2.FormulaDataModel=__decorateClass$m([__decorateParam$m(0,core.IUniverInstanceService),__decorateParam$m(1,core.Inject(LexerTreeBuilder))],exports2.FormulaDataModel);function initSheetFormulaData(formulaData,unitId,sheetId,cellMatrix){const formulaIdMap=new Map,sheetFormulaDataMatrix=new core.ObjectMatrix;cellMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"",checkFormulaString=core.isFormulaString(formulaString),checkFormulaId=core.isFormulaId(formulaId);checkFormulaString&&checkFormulaId?(sheetFormulaDataMatrix.setValue(r,c,{f:formulaString,si:formulaId}),formulaIdMap.set(formulaId,{f:formulaString,r,c})):checkFormulaString&&!checkFormulaId?sheetFormulaDataMatrix.setValue(r,c,{f:formulaString}):!checkFormulaString&&checkFormulaId&&sheetFormulaDataMatrix.setValue(r,c,{f:"",si:formulaId})}),sheetFormulaDataMatrix.forValue((r,c,cell)=>{const formulaString=(cell==null?void 0:cell.f)||"",formulaId=(cell==null?void 0:cell.si)||"";if(core.isFormulaId(formulaId)&&!core.isFormulaString(formulaString)){const formulaInfo=formulaIdMap.get(formulaId);if(formulaInfo){const f=formulaInfo.f,x=c-formulaInfo.c,y=r-formulaInfo.r;sheetFormulaDataMatrix.setValue(r,c,{f,si:formulaId,x,y})}else sheetFormulaDataMatrix.realDeleteValue(r,c)}}),formulaData[unitId]||(formulaData[unitId]={});const newSheetFormulaData=sheetFormulaDataMatrix.clone();return formulaData[unitId][sheetId]=newSheetFormulaData,{[unitId]:{[sheetId]:newSheetFormulaData}}}__name(initSheetFormulaData,"initSheetFormulaData");const _InvertedIndexCache=class _InvertedIndexCache{constructor(){__publicField(this,"_cache",new Map);__publicField(this,"_continueBuildingCache",new Map)}set(unitId,sheetId,column,value,row){if(!this.shouldContinueBuildingCache(unitId,sheetId,column,row))return;let unitMap=this._cache.get(unitId);unitMap==null&&(unitMap=new Map,this._cache.set(unitId,unitMap));let sheetMap=unitMap.get(sheetId);sheetMap==null&&(sheetMap=new Map,unitMap.set(sheetId,sheetMap));let columnMap=sheetMap.get(column);columnMap==null&&(columnMap=new Map,sheetMap.set(column,columnMap));let cellList=columnMap.get(value);cellList==null&&(cellList=new Set,columnMap.set(value,cellList)),cellList.add(row)}getCellValuePositions(unitId,sheetId,column){var _a2,_b2;return(_b2=(_a2=this._cache.get(unitId))==null?void 0:_a2.get(sheetId))==null?void 0:_b2.get(column)}getCellPositions(unitId,sheetId,column,value){var _a2,_b2,_c2;return(_c2=(_b2=(_a2=this._cache.get(unitId))==null?void 0:_a2.get(sheetId))==null?void 0:_b2.get(column))==null?void 0:_c2.get(value)}getCellPosition(unitId,sheetId,column,value,startRow,endRow){const rows=this.getCellPositions(unitId,sheetId,column,value);if(rows!=null){for(const row of rows)if(row>=startRow&&row<=endRow)return row}}setContinueBuildingCache(unitId,sheetId,column,startRow,endRow){let unitMap=this._continueBuildingCache.get(unitId);unitMap==null&&(unitMap=new Map,this._continueBuildingCache.set(unitId,unitMap));let sheetMap=unitMap.get(sheetId);sheetMap==null&&(sheetMap=new Map,unitMap.set(sheetId,sheetMap));let columnMap=sheetMap.get(column);if(columnMap==null){columnMap={startRow,endRow},sheetMap.set(column,columnMap);return}columnMap.startRow=Math.min(columnMap.startRow,startRow),columnMap.endRow=Math.max(columnMap.endRow,endRow)}shouldContinueBuildingCache(unitId,sheetId,column,row){var _a2,_b2;const rowRange=(_b2=(_a2=this._continueBuildingCache.get(unitId))==null?void 0:_a2.get(sheetId))==null?void 0:_b2.get(column);if(rowRange==null)return!0;const{startRow,endRow}=rowRange;return!(row>=startRow&&row<=endRow)}canUseCache(unitId,sheetId,column,rangeStartRow,rangeEndRow){var _a2,_b2;if(column===-1||rangeStartRow===-1||rangeEndRow===-1)return!1;const rowRange=(_b2=(_a2=this._continueBuildingCache.get(unitId))==null?void 0:_a2.get(sheetId))==null?void 0:_b2.get(column);if(rowRange==null)return!1;const{startRow,endRow}=rowRange;return!(rangeStartRow>endRow||rangeEndRow<startRow)}clear(){this._cache.clear(),this._continueBuildingCache.clear()}};__name(_InvertedIndexCache,"InvertedIndexCache");let InvertedIndexCache=_InvertedIndexCache;const CELL_INVERTED_INDEX_CACHE=new InvertedIndexCache;var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$l(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$l(target,key,result),result},"__decorateClass$l"),__decorateParam$l=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$l");exports2.FormulaCurrentConfigService=(_c=class extends core.Disposable{constructor(_univerInstanceService){super();__publicField(this,"_unitData",{});__publicField(this,"_unitStylesData",{});__publicField(this,"_arrayFormulaCellData",{});__publicField(this,"_arrayFormulaRange",{});__publicField(this,"_formulaData",{});__publicField(this,"_sheetNameMap",{});__publicField(this,"_forceCalculate",!1);__publicField(this,"_clearDependencyTreeCache",{});__publicField(this,"_dirtyRanges",[]);__publicField(this,"_dirtyNameMap",{});__publicField(this,"_dirtyDefinedNameMap",{});__publicField(this,"_dirtyUnitFeatureMap",{});__publicField(this,"_dirtyUnitOtherFormulaMap",{});__publicField(this,"_excludedCell");__publicField(this,"_sheetIdToNameMap",{});__publicField(this,"_executeUnitId","");__publicField(this,"_executeSubUnitId","");this._univerInstanceService=_univerInstanceService}dispose(){this._unitData={},this._unitStylesData={},this._formulaData={},this._arrayFormulaCellData={},this._arrayFormulaRange={},this._sheetNameMap={},this._dirtyRanges=[],this._dirtyNameMap={},this._dirtyDefinedNameMap={},this._dirtyUnitFeatureMap={},this._excludedCell={},this._sheetIdToNameMap={},this._dirtyUnitOtherFormulaMap={}}getExecuteUnitId(){return this._executeUnitId}getExecuteSubUnitId(){return this._executeSubUnitId}setExecuteUnitId(unitId){this._executeUnitId=unitId}setExecuteSubUnitId(subUnitId){this._executeSubUnitId=subUnitId}getExcludedRange(){return this._excludedCell}getUnitData(){return this._unitData}getUnitStylesData(){return this._unitStylesData}getFormulaData(){return this._formulaData}getArrayFormulaCellData(){return this._arrayFormulaCellData}getArrayFormulaRange(){return this._arrayFormulaRange}getSheetNameMap(){return this._sheetNameMap}isForceCalculate(){return this._forceCalculate}getDirtyRanges(){return this._dirtyRanges}getDirtyNameMap(){return this._dirtyNameMap}getDirtyDefinedNameMap(){return this._dirtyDefinedNameMap}getDirtyUnitFeatureMap(){return this._dirtyUnitFeatureMap}getDirtyUnitOtherFormulaMap(){return this._dirtyUnitOtherFormulaMap}getSheetName(unitId,sheetId){return this._sheetIdToNameMap[unitId]==null?"":this._sheetIdToNameMap[unitId][sheetId]||""}getClearDependencyTreeCache(){return this._clearDependencyTreeCache}load(config2){if(config2.allUnitData&&config2.unitSheetNameMap&&config2.unitStylesData)this._unitData=config2.allUnitData,this._unitStylesData=config2.unitStylesData,this._sheetNameMap=config2.unitSheetNameMap;else{const{allUnitData,unitSheetNameMap,unitStylesData}=this._loadSheetData();this._unitData=allUnitData,this._unitStylesData=unitStylesData,this._sheetNameMap=unitSheetNameMap}this._formulaData=config2.formulaData,this._arrayFormulaCellData=convertUnitDataToRuntime(config2.arrayFormulaCellData),this._arrayFormulaRange=config2.arrayFormulaRange,this._forceCalculate=config2.forceCalculate,this._clearDependencyTreeCache=config2.clearDependencyTreeCache||{},this._dirtyRanges=config2.dirtyRanges,this._dirtyNameMap=config2.dirtyNameMap,this._dirtyDefinedNameMap=config2.dirtyDefinedNameMap,this._dirtyUnitFeatureMap=config2.dirtyUnitFeatureMap,this._dirtyUnitOtherFormulaMap=config2.dirtyUnitOtherFormulaMap,this._excludedCell=config2.excludedCell,this._mergeNameMap(this._sheetNameMap,this._dirtyNameMap)}getDirtyData(){return{forceCalculation:this._forceCalculate,dirtyRanges:this._dirtyRanges,dirtyNameMap:this._dirtyNameMap,dirtyDefinedNameMap:this._dirtyDefinedNameMap,dirtyUnitFeatureMap:this._dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap:this._dirtyUnitOtherFormulaMap,clearDependencyTreeCache:this._clearDependencyTreeCache}}loadDirtyRangesAndExcludedCell(dirtyRanges,excludedCell){this._dirtyRanges=dirtyRanges,this._excludedCell=excludedCell,this._dirtyNameMap={}}registerUnitData(unitData){this._unitData=unitData}registerFormulaData(formulaData){this._formulaData=formulaData}registerSheetNameMap(sheetNameMap){this._sheetNameMap=sheetNameMap}_mergeNameMap(unitSheetNameMap,dirtyNameMap){Object.keys(dirtyNameMap).forEach(unitId=>{dirtyNameMap[unitId]&&Object.keys(dirtyNameMap[unitId]).forEach(sheetId=>{unitSheetNameMap[unitId]==null&&(unitSheetNameMap[unitId]={}),unitSheetNameMap[unitId][dirtyNameMap[unitId][sheetId]]=sheetId})}),this._sheetIdToNameMap={},Object.keys(unitSheetNameMap).forEach(unitId=>{Object.keys(unitSheetNameMap[unitId]).forEach(sheetName=>{this._sheetIdToNameMap[unitId]==null&&(this._sheetIdToNameMap[unitId]={}),this._sheetIdToNameMap[unitId][unitSheetNameMap[unitId][sheetName]]=sheetName})})}_loadSheetData(){const unitAllSheet=this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET),workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();this._executeUnitId=workbook==null?void 0:workbook.getUnitId(),this._executeSubUnitId=worksheet==null?void 0:worksheet.getSheetId();const allUnitData={},unitStylesData={},unitSheetNameMap={};for(const workbook2 of unitAllSheet){const unitId=workbook2.getUnitId(),sheets=workbook2.getSheets(),sheetData={},sheetNameMap={};for(const sheet of sheets){const sheetId=sheet.getSheetId(),sheetConfig=sheet.getConfig();sheetData[sheetId]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData,defaultRowHeight:sheetConfig.defaultRowHeight,defaultColumnWidth:sheetConfig.defaultColumnWidth},sheetNameMap[sheet.getName()]=sheet.getSheetId()}allUnitData[unitId]=sheetData,unitStylesData[unitId]=workbook2.getStyles(),unitSheetNameMap[unitId]=sheetNameMap}return{allUnitData,unitStylesData,unitSheetNameMap}}},__name(_c,"FormulaCurrentConfigService"),_c),exports2.FormulaCurrentConfigService=__decorateClass$l([__decorateParam$l(0,core.IUniverInstanceService)],exports2.FormulaCurrentConfigService);const IFormulaCurrentConfigService=core.createIdentifier("univer.formula.current-data.service");var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$k(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$k(target,key,result),result},"__decorateClass$k"),__decorateParam$k=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$k");exports2.Lexer=(_d=class extends core.Disposable{constructor(_definedNamesService,_lexerTreeBuilder,_formulaCurrentConfigService){super(),this._definedNamesService=_definedNamesService,this._lexerTreeBuilder=_lexerTreeBuilder,this._formulaCurrentConfigService=_formulaCurrentConfigService}treeBuilder(formulaString,transformSuffix=!0){return this._lexerTreeBuilder.treeBuilder(formulaString,transformSuffix,this._injectDefinedName.bind(this),this._simpleCheckDefinedName.bind(this))}_simpleCheckDefinedName(formulaString){const definedNameMap=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._formulaCurrentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++){const name=names[i];if(formulaString.indexOf(name)>-1)return!0}}return!1}_checkDefinedNameDirty(token){const definedNameMap=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._formulaCurrentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++)if(names[i]===token)return!0}return!1}_injectDefinedName(sequenceArray){const unitId=this._formulaCurrentConfigService.getExecuteUnitId();if(unitId==null)return{sequenceString:"",hasDefinedName:!1,definedNames:[]};const sequenceNodes=this._lexerTreeBuilder.getSequenceNode(sequenceArray);let sequenceString="",hasDefinedName=!1;const definedNames=[];for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"){sequenceString+=node;continue}const{nodeType,token}=node;if(nodeType===sequenceNodeType.REFERENCE||nodeType===sequenceNodeType.FUNCTION){const definedContent=this._definedNamesService.getValueByName(unitId,token);if(definedContent){let refString=definedContent.formulaOrRefString;refString.substring(0,1)===operatorToken.EQUALS&&(refString=refString.substring(1)),sequenceString+=refString,definedNames.push(definedContent.name),hasDefinedName=!0}else this._checkDefinedNameDirty(token)?(sequenceString+=ErrorType$1.NAME,hasDefinedName=!0,definedNames.push(token)):sequenceString+=token}else sequenceString+=token}return{sequenceString,hasDefinedName,definedNames}}},__name(_d,"Lexer"),_d),exports2.Lexer=__decorateClass$k([__decorateParam$k(0,IDefinedNamesService),__decorateParam$k(1,core.Inject(LexerTreeBuilder)),__decorateParam$k(2,IFormulaCurrentConfigService)],exports2.Lexer);function getRuntimeFeatureCell(row,column,sheetId,unitId,runtimeFeatureCellData){var _a2;const featureKeys=Object.keys(runtimeFeatureCellData);for(const featureId of featureKeys){const data=runtimeFeatureCellData[featureId],CellData=(_a2=data==null?void 0:data[unitId])==null?void 0:_a2[sheetId];if(CellData==null)continue;const value=CellData.getValue(row,column);if(value!=null)return value}}__name(getRuntimeFeatureCell,"getRuntimeFeatureCell");const currencySymbols=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],NumberFormatTypeMap={currency:2,date:4,datetime:5,error:11,fraction:7,general:0,grouped:11,number:1,percent:6,scientific:8,text:9,time:5,unknown:11};function handleNumfmtInCell(oldCell,cell,styles){var _a2,_b2;if(oldCell==null||cell==null)return cell;const oldCellStyle=(styles==null?void 0:styles.getStyleByCell(oldCell))||oldCell.s,cellStyle=(styles==null?void 0:styles.getStyleByCell(cell))||cell.s;if(oldCellStyle==null||cellStyle==null||typeof oldCellStyle!="object"||typeof cellStyle!="object")return cell;const oldPattern=(_a2=oldCellStyle==null?void 0:oldCellStyle.n)==null?void 0:_a2.pattern,pattern=(_b2=cellStyle==null?void 0:cellStyle.n)==null?void 0:_b2.pattern;if(oldPattern==null||pattern==null)return cell;const newPattern=oldPattern||pattern;return cellStyle.n.pattern=newPattern,cell}__name(handleNumfmtInCell,"handleNumfmtInCell");const numberFormatTypeCache=new Map;function getNumberFormatType(pattern){if(numberFormatTypeCache.has(pattern))return numberFormatTypeCache.get(pattern);const type=getNumberFormatTypeRaw(pattern);return numberFormatTypeCache.set(pattern,type),type}__name(getNumberFormatType,"getNumberFormatType");function clearNumberFormatTypeCache(){numberFormatTypeCache.clear()}__name(clearNumberFormatTypeCache,"clearNumberFormatTypeCache");function getNumberFormatTypeRaw(pattern){if(isAccounting(pattern))return 3;const type=core.numfmt.getInfo(pattern).type||"unknown";return NumberFormatTypeMap[type]}__name(getNumberFormatTypeRaw,"getNumberFormatTypeRaw");function isAccounting(pattern){return!!currencySymbols.find(code=>pattern.includes(code))&&pattern.startsWith("_(")}__name(isAccounting,"isAccounting");function comparePatternPriority(previousPattern,nextPattern,operator){if(previousPattern==="")return nextPattern;if(nextPattern==="")return previousPattern;const previousPatternType=getNumberFormatType(previousPattern),nextPatternType=getNumberFormatType(nextPattern);return operator===operatorToken.PLUS||operator===operatorToken.MINUS?previousPatternType===4&&nextPatternType===4||previousPatternType===11&&nextPatternType===11?"":nextPattern:operator===operatorToken.MULTIPLY||operator===operatorToken.DIVIDED?previousPatternType===6&&nextPatternType===6||previousPatternType===7&&nextPatternType===7||previousPatternType===8&&nextPatternType===8||previousPatternType===9&&nextPatternType===9?nextPattern:"":previousPattern||nextPattern}__name(comparePatternPriority,"comparePatternPriority");const _ObjectClassType=class _ObjectClassType{constructor(){__publicField(this,"pattern","")}dispose(){}getPattern(){return this.pattern}setPattern(pattern){this.pattern=pattern}isError(){return!1}isAsyncObject(){return!1}isAsyncArrayObject(){return!1}isReferenceObject(){return!1}isArray(){return!1}isValueObject(){return!1}isEqualType(object){return!1}};__name(_ObjectClassType,"ObjectClassType");let ObjectClassType=_ObjectClassType;const _BaseValueObject=class _BaseValueObject extends ObjectClassType{constructor(_rawValue){super(),this._rawValue=_rawValue}isValueObject(){return!0}toUnitRange(){return{range:{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1},sheetId:"",unitId:""}}getValue(){return 0}getArrayValue(){return[]}setValue(value){}setArrayValue(value){}isCube(){return!1}isString(){return!1}isNumber(){return!1}isBoolean(){return!1}isLambda(){return!1}isError(){return!1}isNull(){return!1}sum(){return ErrorValueObject.create(ErrorType$1.VALUE)}max(){return ErrorValueObject.create(ErrorType$1.VALUE)}min(){return ErrorValueObject.create(ErrorType$1.VALUE)}count(){return ErrorValueObject.create(ErrorType$1.VALUE)}countA(){return ErrorValueObject.create(ErrorType$1.VALUE)}countBlank(){return ErrorValueObject.create(ErrorType$1.VALUE)}getNegative(){return ErrorValueObject.create(ErrorType$1.VALUE)}getReciprocal(){return ErrorValueObject.create(ErrorType$1.VALUE)}plus(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}minus(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}multiply(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}divided(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}mod(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}map(callbackFn){return ErrorValueObject.create(ErrorType$1.NAME)}mapValue(callbackFn){return ErrorValueObject.create(ErrorType$1.NAME)}compare(valueObject,operator,isCaseSensitive=!1){return ErrorValueObject.create(ErrorType$1.NAME)}isEqual(valueObject){return this.compare(valueObject,compareToken.EQUALS)}isNotEqual(valueObject){return this.compare(valueObject,compareToken.NOT_EQUAL)}isGreaterThanOrEqual(valueObject){return this.compare(valueObject,compareToken.GREATER_THAN_OR_EQUAL)}isLessThanOrEqual(valueObject){return this.compare(valueObject,compareToken.LESS_THAN_OR_EQUAL)}isLessThan(valueObject){return this.compare(valueObject,compareToken.LESS_THAN)}isGreaterThan(valueObject){return this.compare(valueObject,compareToken.GREATER_THAN)}concatenateFront(valueObject){return ErrorValueObject.create(ErrorType$1.NAME)}concatenateBack(valueObject){return ErrorValueObject.create(ErrorType$1.NAME)}plusBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}minusBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}multiplyBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}dividedBy(value){return ErrorValueObject.create(ErrorType$1.VALUE)}modInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}compareBy(value,operator){return ErrorValueObject.create(ErrorType$1.NAME)}concatenate(value,concatenateType=ConcatenateType.FRONT){let currentValue=this.getValue().toString();if(typeof value=="string")concatenateType===ConcatenateType.FRONT?currentValue=value+currentValue:currentValue+=value;else if(typeof value=="number")concatenateType===ConcatenateType.FRONT?currentValue=value.toString()+currentValue:currentValue+=value.toString();else if(typeof value=="boolean"){const booleanString=value?"TRUE":"FALSE";concatenateType===ConcatenateType.FRONT?currentValue=booleanString+currentValue:currentValue+=booleanString}return currentValue}pow(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}powInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}sqrt(){return ErrorValueObject.create(ErrorType$1.VALUE)}cbrt(){return ErrorValueObject.create(ErrorType$1.VALUE)}cos(){return ErrorValueObject.create(ErrorType$1.VALUE)}cosh(){return ErrorValueObject.create(ErrorType$1.VALUE)}acos(){return ErrorValueObject.create(ErrorType$1.VALUE)}acosh(){return ErrorValueObject.create(ErrorType$1.VALUE)}sin(){return ErrorValueObject.create(ErrorType$1.VALUE)}sinh(){return ErrorValueObject.create(ErrorType$1.VALUE)}asin(){return ErrorValueObject.create(ErrorType$1.VALUE)}asinh(){return ErrorValueObject.create(ErrorType$1.VALUE)}tan(){return ErrorValueObject.create(ErrorType$1.VALUE)}tanh(){return ErrorValueObject.create(ErrorType$1.VALUE)}atan(){return ErrorValueObject.create(ErrorType$1.VALUE)}atan2(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}atan2Inverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}atanh(){return ErrorValueObject.create(ErrorType$1.VALUE)}mean(){return this}median(){return this}var(){return this}std(){return this}log(){return ErrorValueObject.create(ErrorType$1.VALUE)}log10(){return ErrorValueObject.create(ErrorType$1.VALUE)}exp(){return ErrorValueObject.create(ErrorType$1.VALUE)}abs(){return ErrorValueObject.create(ErrorType$1.VALUE)}round(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}roundInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}floor(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}floorInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}ceil(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}ceilInverse(valueObject){return ErrorValueObject.create(ErrorType$1.VALUE)}convertToNumberObjectValue(){return ErrorValueObject.create(ErrorType$1.VALUE)}convertToBooleanObjectValue(){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_BaseValueObject,"BaseValueObject");let BaseValueObject=_BaseValueObject;const Error_CACHE_LRU_COUNT=1e3,ErrorValueObjectCache=new FormulaAstLRU(Error_CACHE_LRU_COUNT),_ErrorValueObject=class _ErrorValueObject extends BaseValueObject{constructor(_errorType,_errorContent=""){super(_errorType),this._errorType=_errorType,this._errorContent=_errorContent}static create(errorType,errorContent=""){const key=`${errorType}-${errorContent}`,cached=ErrorValueObjectCache.get(key);if(cached)return cached;const instance=new _ErrorValueObject(errorType,errorContent);return ErrorValueObjectCache.set(key,instance),instance}getValue(){return this._errorType}getErrorType(){return this._errorType}getErrorContent(){return this._errorContent}isEqualType(object){return object.getErrorType()===this.getErrorType()}isError(){return!0}};__name(_ErrorValueObject,"ErrorValueObject");let ErrorValueObject=_ErrorValueObject;function reverseCompareOperator(operator){let result;switch(operator){case compareToken.EQUALS:result=compareToken.EQUALS;break;case compareToken.GREATER_THAN:result=compareToken.LESS_THAN;break;case compareToken.GREATER_THAN_OR_EQUAL:result=compareToken.LESS_THAN_OR_EQUAL;break;case compareToken.LESS_THAN:result=compareToken.GREATER_THAN;break;case compareToken.LESS_THAN_OR_EQUAL:result=compareToken.GREATER_THAN_OR_EQUAL;break;case compareToken.NOT_EQUAL:result=compareToken.NOT_EQUAL;break}return result}__name(reverseCompareOperator,"reverseCompareOperator");var ArrayBinarySearchType=(ArrayBinarySearchType2=>(ArrayBinarySearchType2[ArrayBinarySearchType2.MIN=0]="MIN",ArrayBinarySearchType2[ArrayBinarySearchType2.MAX=1]="MAX",ArrayBinarySearchType2))(ArrayBinarySearchType||{}),ArrayOrderSearchType=(ArrayOrderSearchType2=>(ArrayOrderSearchType2[ArrayOrderSearchType2.NORMAL=0]="NORMAL",ArrayOrderSearchType2[ArrayOrderSearchType2.MIN=1]="MIN",ArrayOrderSearchType2[ArrayOrderSearchType2.MAX=2]="MAX",ArrayOrderSearchType2))(ArrayOrderSearchType||{});function getCompare(){return Intl&&Intl.Collator?new Intl.Collator(void 0,{numeric:!1}).compare:(a,b)=>a.localeCompare(b)}__name(getCompare,"getCompare");function isWildcard(str){return str.indexOf("*")>-1||str.indexOf("?")>-1}__name(isWildcard,"isWildcard");function isMatchWildcard(currentValue,value){const pattern=escapeRegExp(value).replace(/~?[*?]/g,match=>match.startsWith("~")?`\\${match.substring(1)}`:match==="*"?".*":match==="?"?".":match);return new RegExp(`^${pattern}$`).test(currentValue)}__name(isMatchWildcard,"isMatchWildcard");function replaceWildcard(value){return value.replace(/~?[*?]/g,match=>match.startsWith("~")?match.substring(1):" ")}__name(replaceWildcard,"replaceWildcard");function compareWithWildcard(currentValue,value,operator){let result=!1;switch(operator){case compareToken.EQUALS:result=isMatchWildcard(currentValue,value);break;case compareToken.NOT_EQUAL:result=!isMatchWildcard(currentValue,value);break;case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:result=isMatchWildcard(currentValue,value)||currentValue>replaceWildcard(value);break;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:result=currentValue<replaceWildcard(value);break}return result}__name(compareWithWildcard,"compareWithWildcard");function escapeRegExp(str){return str.replace(/[.+^${}()|[\]\\]/g,"\\$&")}__name(escapeRegExp,"escapeRegExp");function getMatchModeValue(matchModeValue){switch(matchModeValue){case 1:return 2;case 0:return 0;case-1:return 1;default:return 0}}__name(getMatchModeValue,"getMatchModeValue");function getSearchModeValue(searchModeValue){return searchModeValue===-2?1:0}__name(getSearchModeValue,"getSearchModeValue");/*!
1
+ (function(L,O){typeof exports=="object"&&typeof module<"u"?O(exports,require("@univerjs/core"),require("rxjs"),require("@univerjs/rpc")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs","@univerjs/rpc"],O):(L=typeof globalThis<"u"?globalThis:L||self,O(L.UniverEngineFormula={},L.UniverCore,L.rxjs,L.UniverRpc))})(this,function(L,O,qe,Yu){"use strict";var N_=Object.defineProperty;var V_=(L,O,qe)=>O in L?N_(L,O,{enumerable:!0,configurable:!0,writable:!0,value:qe}):L[O]=qe;var C=(L,O,qe)=>V_(L,typeof O!="symbol"?O+"":O,qe);var ks;var dt=(a=>(a.FALSE="FALSE",a.TRUE="TRUE",a))(dt||{}),Ct=(a=>(a[a.SUCCESS=0]="SUCCESS",a[a.ERROR=1]="ERROR",a))(Ct||{}),Xe=(a=>(a[a.FRONT=0]="FRONT",a[a.BACK=1]="BACK",a))(Xe||{});function Ys(a,i,e,t,r){for(let n=0,s=a.length;n<s;n++){const u=a[n];if(i!==u.unitId||e!==u.sheetId)continue;const{startRow:o,startColumn:c,endRow:l,endColumn:f}=u.range;if(t>=o&&t<=l&&r>=c&&r<=f)return!0}return!1}var h=(a=>(a.DIV_BY_ZERO="#DIV/0!",a.NAME="#NAME?",a.VALUE="#VALUE!",a.NUM="#NUM!",a.NA="#N/A",a.CYCLE="#CYCLE!",a.REF="#REF!",a.SPILL="#SPILL!",a.CALC="#CALC!",a.ERROR="#ERROR!",a.CONNECT="#GETTING_DATA",a.NULL="#NULL!",a))(h||{});const Mt=new Set(Object.values(h)),Hs=[...new Set(Object.values(h).map(a=>a.length))];var Qs=(a=>(a[a.Financial=0]="Financial",a[a.Date=1]="Date",a[a.Math=2]="Math",a[a.Statistical=3]="Statistical",a[a.Lookup=4]="Lookup",a[a.Database=5]="Database",a[a.Text=6]="Text",a[a.Logical=7]="Logical",a[a.Information=8]="Information",a[a.Engineering=9]="Engineering",a[a.Cube=10]="Cube",a[a.Compatibility=11]="Compatibility",a[a.Web=12]="Web",a[a.Array=13]="Array",a[a.Univer=14]="Univer",a[a.User=15]="User",a[a.DefinedName=16]="DefinedName",a))(Qs||{}),G=(a=>(a.PLUS="+",a.MINUS="-",a.MULTIPLY="*",a.DIVIDED="/",a.CONCATENATE="&",a.POWER="^",a.EQUALS="=",a.NOT_EQUAL="<>",a.GREATER_THAN=">",a.GREATER_THAN_OR_EQUAL=">=",a.LESS_THAN="<",a.LESS_THAN_OR_EQUAL="<=",a))(G||{}),B=(a=>(a.EQUALS="=",a.NOT_EQUAL="<>",a.GREATER_THAN=">",a.GREATER_THAN_OR_EQUAL=">=",a.LESS_THAN="<",a.LESS_THAN_OR_EQUAL="<=",a))(B||{});const Dr=new Map([["<>",4],["<",4],[">=",4],["=",4],[">",4],["<=",4],["&",3],["+",2],["-",2],["/",1],["*",1],["^",0]]),_t=new Set(Dr.keys()),Hu=new Set(["=","<>",">",">=","<","<="]);var Q=(a=>(a.OPEN_BRACKET="(",a.CLOSE_BRACKET=")",a.COMMA=",",a.SINGLE_QUOTATION="'",a.DOUBLE_QUOTATION='"',a.OPEN_BRACES="{",a.CLOSE_BRACES="}",a.COLON=":",a.OPEN_SQUARE_BRACKET="[",a.CLOSE_SQUARE_BRACKET="]",a))(Q||{}),Ye=(a=>(a.PERCENTAGE="%",a.POUND="#",a))(Ye||{});const Dn=new Set(["%","#"]);var Ne=(a=>(a.AT="@",a.MINUS="-",a.PLUS="+",a))(Ne||{});const Qu=" ",Ws=[...Object.values(B),...Object.values(G),...Object.values(Q),...Object.values(Ye),...Object.values(Ne)];function or(a){return Ws.includes(a)}function Gs(a){for(const i of Ws)if(a.indexOf(i)>-1)return!0;return!1}function Wu(a){return a[0]==="'"&&a[a.length-1]==="'"?a.substring(1,a.length-1):a}function Gu(a){return or(a)&&a!==Q.CLOSE_BRACES&&a!==Q.CLOSE_BRACKET&&a!==Q.SINGLE_QUOTATION&&a!==Q.DOUBLE_QUOTATION||a===" "}const qu=new Set([G.PLUS,G.MINUS,G.MULTIPLY,G.DIVIDED,G.CONCATENATE,G.POWER,G.EQUALS,G.NOT_EQUAL,G.GREATER_THAN,G.GREATER_THAN_OR_EQUAL,G.LESS_THAN,G.LESS_THAN_OR_EQUAL,Q.OPEN_BRACKET,Q.COMMA,Q.COLON,Q.OPEN_BRACES,Q.OPEN_SQUARE_BRACKET]);function Xu(a){return qu.has(a)}const Ku=new Set([G.PLUS,G.MINUS,G.MULTIPLY,G.DIVIDED,G.CONCATENATE,G.POWER,G.EQUALS,G.NOT_EQUAL,G.GREATER_THAN,G.GREATER_THAN_OR_EQUAL,G.LESS_THAN,G.LESS_THAN_OR_EQUAL,Q.OPEN_BRACKET,Q.COMMA,Q.COLON,Q.OPEN_BRACES,Q.OPEN_SQUARE_BRACKET,Ye.PERCENTAGE,Ye.POUND]);function Zu(a){return Ku.has(a)}function qs(a){const i={};return Object.keys(a).forEach(e=>{const t=a[e];if(t==null)return!0;i[e]==null&&(i[e]={}),Object.keys(t).forEach(r=>{const n=t[r];i[e][r]=new O.ObjectMatrix(n)})}),i}function zu(a){const i={};return Object.keys(a).forEach(e=>{const t=a[e];if(t==null)return!0;i[e]==null&&(i[e]={}),Object.keys(t).forEach(r=>{const n=t[r];i[e][r]=n.getData()})}),i}const Xs='\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]',Ks=new RegExp(Xs),Ju="((?![\\[\\]\\/?*\\\\]).)*!",Et="$",Sn="\\s*?:\\s*?",Sr="[A-Za-z]+",Lr="[1-9][0-9]*",Ht=`'?(${Xs})?(${Ju})?'?`,Ln=`\\${Et}?${Sr}\\${Et}?${Lr}`,eo=`^(${Ne.AT})?${Ht}${Ln}${Sn}${Ln}$`,Zs=new RegExp(eo),to=`^${Ht}\\s*?${Ln}(${Ye.POUND})?$`,zs=new RegExp(to),ro=`^${Ht}\\${Et}?${Lr}${Sn}\\${Et}?${Lr}$`,Js=new RegExp(ro),no=`^${Ht}\\${Et}?${Sr}${Sn}\\${Et}?${Sr}$`,ea=new RegExp(no),so=`^${Ht}\\s*?\\${Et}?${Lr}$`,ta=new RegExp(so),ao=`^${Ht}\\s*?\\${Et}?${Sr}$`,ra=new RegExp(ao),io="{.*?}",na=new RegExp(io,"g");function cr(a){return zs.lastIndex=0,zs.test(a)}function uo(a){return Zs.lastIndex=0,Zs.test(a)}function sa(a){return Js.lastIndex=0,Js.test(a)}function aa(a){return ea.lastIndex=0,ea.test(a)}function ia(a){return ta.lastIndex=0,ta.test(a)}function ua(a){return ra.lastIndex=0,ra.test(a)}function oo(a){return na.lastIndex=0,na.test(a)}function oa(a){return cr(a)||uo(a)||sa(a)||aa(a)}const ca={id:"formula.mutation.register-function",type:O.CommandType.MUTATION,handler:()=>!0},Pr={id:"formula.mutation.set-array-formula-data",type:O.CommandType.MUTATION,handler:(a,i)=>!0},co=/[^0-9]/g,lo=/[^A-Za-z]/g;function lr(a){let i=a[0]==="$";const e=a.substring(1);let t=e.indexOf("$")>-1;return O.Tools.isStringNumber(e)&&i&&!t&&(i=!1,t=!0),i&&t?O.AbsoluteRefType.ALL:i?O.AbsoluteRefType.COLUMN:t?O.AbsoluteRefType.ROW:O.AbsoluteRefType.NONE}function fo(a){const i=a.split("!");i.length>1&&(a=i[i.length-1]);const e=a.split(":");return e.length>1?{startAbsoluteRefType:lr(e[0]),endAbsoluteRefType:lr(e[1])}:{startAbsoluteRefType:lr(e[0])}}function la(a=O.AbsoluteRefType.NONE){let i="",e="";return a===O.AbsoluteRefType.ROW?i="$":a===O.AbsoluteRefType.COLUMN?e="$":a===O.AbsoluteRefType.ALL&&(i="$",e="$"),{rowAbsoluteString:i,columnAbsoluteString:e}}function bt(a){const{startColumn:i,startRow:e,endColumn:t,endRow:r,startAbsoluteRefType:n,endAbsoluteRefType:s,rangeType:u=O.RANGE_TYPE.NORMAL}=a,o=la(n),c=la(s);if(u===O.RANGE_TYPE.ROW||u===O.RANGE_TYPE.ALL){const m=`${o.rowAbsoluteString}${e+1}`,d=`${c.rowAbsoluteString}${r+1}`;return`${m}:${d}`}if(u===O.RANGE_TYPE.COLUMN){const m=`${o.columnAbsoluteString}${O.Tools.chatAtABC(i)}`,d=`${c.columnAbsoluteString}${O.Tools.chatAtABC(t)}`;return`${m}:${d}`}const l=`${o.columnAbsoluteString}${O.Tools.chatAtABC(i)}${o.rowAbsoluteString}${e+1}`,f=`${c.columnAbsoluteString}${O.Tools.chatAtABC(t)}${c.rowAbsoluteString}${r+1}`;return l===f?l:`${l}:${f}`}function fa(a,i){return xr(a)?`'${a}'!${bt(i)}`:`${a}!${bt(i)}`}function ma(a,i,e){return xr(a)||xr(i)?`'[${a}]${i}'!${bt(e)}`:`[${a}]${i}!${bt(e)}`}function Mr(a){const{unitId:i,sheetName:e,range:t}=a;return i!=null&&i.length>0&&e!=null&&e.length>0?ma(i,e,t):e!=null&&e.length>0?fa(e,t):bt(t)}function wr(a){const i=Number.parseInt(a.replace(co,""))-1,e=O.Tools.ABCatNum(a.replace(lo,"")),t=lr(a);return{row:i,column:e,absoluteRefType:t}}function jr(a){const i=Ks.exec(a);let e="";i!=null&&(e=i[0].trim(),e=e.slice(1,e.length-1),a=a.replace(Ks,""));const t=a.indexOf("!");let r="",n="";return t>-1?(r=a.substring(0,t),r[0]==="'"&&r[r.length-1]==="'"&&(r=r.substring(1,r.length-1)),n=a.substring(t+1)):n=a,{refBody:n,sheetName:r,unitId:e}}function fr(a){const{refBody:i,sheetName:e,unitId:t}=jr(a),r=i.indexOf(":");if(r===-1){const _=wr(i),E=_.row,b=_.column,y=_.absoluteRefType;return{unitId:t,sheetName:e,range:{startRow:E,startColumn:b,endRow:E,endColumn:b,startAbsoluteRefType:y,endAbsoluteRefType:y}}}const n=i.substring(0,r),s=i.substring(r+1),u=wr(n),o=wr(s),c=u.row>o.row?o.row:u.row,l=u.column>o.column?o.column:u.column,f=u.row>o.row?u.row:o.row,m=u.column>o.column?u.column:o.column;let d=O.RANGE_TYPE.NORMAL;return Number.isNaN(c)&&Number.isNaN(f)?d=O.RANGE_TYPE.COLUMN:Number.isNaN(l)&&Number.isNaN(m)&&(d=O.RANGE_TYPE.ROW),{unitId:t,sheetName:e,range:{startRow:c,startColumn:l,endRow:f,endColumn:m,startAbsoluteRefType:u.absoluteRefType,endAbsoluteRefType:o.absoluteRefType,rangeType:d}}}const mo=["LOG10"];function mr(a){const i=ha(a);if(!oa(i)||mo.includes(i.toUpperCase().trim()))return!1;const{range:e}=fr(i);return!(e.endColumn>=16384)}function ha(a){const i=[];let e=!1;for(let t=0,r=a.length;t<r;t++){const n=a[t];if(n===Qu&&!e)i.push(n);else{if(!e&&(n===Ne.AT||n===Ne.MINUS||n===Ne.PLUS))continue;i.push(n),e=!0}}return i.join("")}function ho(a,i){const e=(a==null?void 0:a.split(","))||[];return a===""||e.length===0?[]:ga(a)?e.map(n=>{const s=fr(n);return{unitId:s.unitId,sheetId:i(s.sheetName),range:s.range,sheetName:s.sheetName}}):[]}function ga(a){return((a==null?void 0:a.split(","))||[]).every(e=>mr(e.trim()))}function xr(a){return a.length===0?!1:!!(Gs(a)||go(a)||Co(a)||_o(a)||/[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/.test(a))}function go(a){const i=a.match(/[1-9][0-9]{0,6}/);return/^[A-Z]+[1-9][0-9]{0,6}$/.test(a)&&i!==null}function Co(a){return/^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(a)}function _o(a){return!new RegExp("^\\p{Letter}","u").test(a.charAt(0))}var Eo=Object.defineProperty,bo=Object.getOwnPropertyDescriptor,Ao=(a,i,e,t)=>{for(var r=t>1?void 0:t?bo(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&Eo(i,e,r),r},yo=(a,i)=>(e,t)=>i(e,t,a);L.DefinedNamesService=class extends O.Disposable{constructor(e){super();C(this,"_definedNameMap",{});C(this,"_update$",new qe.Subject);C(this,"update$",this._update$.asObservable());C(this,"_currentRange",{unitId:"",sheetId:"",range:{startRow:0,endRow:0,startColumn:0,endColumn:0}});C(this,"_currentRange$",new qe.Subject);C(this,"currentRange$",this._currentRange$.asObservable());C(this,"_focusRange$",new qe.Subject);C(this,"focusRange$",this._focusRange$.asObservable());this._univerInstanceService=e}dispose(){this._definedNameMap={}}getWorksheetByRef(e,t){var n;const{sheetName:r}=jr(t);return(n=this._univerInstanceService.getUnit(e))==null?void 0:n.getSheetBySheetName(r)}focusRange(e,t){const r=this.getValueById(e,t);r!=null&&this._focusRange$.next({...r,unitId:e})}setCurrentRange(e){this._currentRange=e,this._currentRange$.next(e)}getCurrentRange(){return this._currentRange}getCurrentRangeForString(){return bt(this._currentRange.range)}registerDefinedNames(e,t){this._definedNameMap[e]=t,this._update()}registerDefinedName(e,t){this._definedNameMap[e]==null&&(this._definedNameMap[e]={}),this._definedNameMap[e][t.id]=t,this._update()}removeDefinedName(e,t){var r;(r=this._definedNameMap[e])==null||delete r[t],this._update()}removeUnitDefinedName(e){delete this._definedNameMap[e],this._update()}getDefinedNameMap(e){return this._definedNameMap[e]}getValueByName(e,t){var n;const r=this._definedNameMap[e];return r==null?null:(n=Array.from(Object.values(r)).filter(s=>s.name===t))==null?void 0:n[0]}getValueById(e,t){var r;return(r=this._definedNameMap[e])==null?void 0:r[t]}hasDefinedName(e){return this._definedNameMap[e]==null?!1:(Array.from(Object.values(this._definedNameMap[e])).length||0)!==0}_update(){this._update$.next(null)}},L.DefinedNamesService=Ao([yo(0,O.IUniverInstanceService)],L.DefinedNamesService);const Qt=O.createIdentifier("univer.formula.defined-names.service"),Ro=(a,i)=>{const{unitId:e,id:t}=i;return{...a.get(Qt).getValueById(e,t),unitId:e}},hr={id:"formula.mutation.set-defined-name",type:O.CommandType.MUTATION,handler:()=>!0},Ur={id:"formula.mutation.remove-defined-name",type:O.CommandType.MUTATION,handler:()=>!0},Tr={id:"formula.mutation.set-feature-calculation",type:O.CommandType.MUTATION,handler:()=>!0},vr={id:"formula.mutation.remove-feature-calculation",type:O.CommandType.MUTATION,handler:()=>!0},Pn={id:"formula.mutation.set-formula-calculation-start",type:O.CommandType.MUTATION,handler:()=>!0},Mn={id:"formula.mutation.set-formula-calculation-stop",type:O.CommandType.MUTATION,handler:()=>!0},Br={id:"formula.mutation.set-formula-calculation-notification",type:O.CommandType.MUTATION,handler:()=>!0},wn={id:"formula.mutation.set-formula-calculation-result",type:O.CommandType.MUTATION,handler:()=>!0},Fr={id:"formula.mutation.set-formula-data",type:O.CommandType.MUTATION,handler:(a,i)=>!0},Ir={id:"formula.mutation.set-other-formula",type:O.CommandType.MUTATION,handler:()=>!0},kr={id:"formula.mutation.remove-other-formula",type:O.CommandType.MUTATION,handler:()=>!0},da={id:"formula.mutation.set-super-table",type:O.CommandType.MUTATION,handler:()=>!0},Ca={id:"formula.mutation.remove-super-table",type:O.CommandType.MUTATION,handler:()=>!0},jn={id:"formula.mutation.set-super-table-option",type:O.CommandType.MUTATION,handler:()=>!0};class rt{constructor(i){C(this,"_cache");this._cache=new O.LRUMap(i)}set(i,e){const t=this._hash(i);this._cache.set(t,e)}get(i){const e=this._hash(i);return this._cache.get(e)}clear(){this._cache.clear()}_hash(i){return i.length<=64?i:O.hashAlgorithm(i).toString()}}const ot="P_1",At="R_1",Wt="L_1",gr="LR_1",_a="LO_1",po="LET",dr="LAMBDA",No="CUBE",Vo=new Set(["RAND","RANDBETWEEN","NOW","TODAY"]),xn=new rt(1e5);function wt(a){const i=xn.get(a);if(i)return i;const e=fr(a);return xn.set(a,e),fr(a)}function Oo(){xn.clear()}var Ue=(a=>(a[a.NORMAL=0]="NORMAL",a[a.NUMBER=1]="NUMBER",a[a.STRING=2]="STRING",a[a.FUNCTION=3]="FUNCTION",a[a.REFERENCE=4]="REFERENCE",a[a.ARRAY=5]="ARRAY",a[a.DEFINED_NAME=6]="DEFINED_NAME",a))(Ue||{});function Un(a){let i="";for(const e of a)typeof e=="string"?i+=e:i+=e.token;return i}class ae{constructor(){C(this,"_parent");C(this,"_token",At);C(this,"_children",[]);C(this,"_lambdaId");C(this,"_functionDefinitionPrivacyVar");C(this,"_lambdaParameter","");C(this,"_startIndex",-1);C(this,"_endIndex",-1);C(this,"_definedNames",[])}dispose(){var i;this._children.forEach(e=>{typeof e!="string"&&e.dispose()}),(i=this._functionDefinitionPrivacyVar)==null||i.clear(),this._parent=null}getDefinedNames(){return this._definedNames}getStartIndex(){return this._startIndex}getLambdaId(){return this._lambdaId}setLambdaId(i){this._lambdaId=i}getFunctionDefinitionPrivacyVar(){return this._functionDefinitionPrivacyVar}setLambdaPrivacyVar(i){this._functionDefinitionPrivacyVar=i}getLambdaParameter(){return this._lambdaParameter}setLambdaParameter(i){this._lambdaParameter=i}getParent(){return this._parent}setParent(i){this._parent=i}getChildren(){return this._children}setChildren(i){this._children=i}addChildren(i){this._children.push(i)}addChildrenFirst(i){this._children.unshift(i)}getToken(){return this._token}setToken(i){this._token=i}setIndex(i,e){this._startIndex=i,this._endIndex=e}setDefinedNames(i){this._definedNames=i}hasDefinedNames(){return this._definedNames.length>0}replaceChild(i,e){const t=this._getIndexInParent(i);t!=null&&(this.getChildren().splice(t,1,e),e.setParent(this))}changeToParent(i){const e=this.getParent();e&&e.removeChild(this),this.setParent(i),i.getChildren().push(this)}removeChild(i){const e=this._getIndexInParent(i);e!=null&&this.getChildren().splice(e,1)}serialize(){const i=this.getToken(),e=this.getChildren(),t=[],r=e.length;for(let n=0;n<r;n++){const s=e[n];s instanceof ae?t.push(s.serialize()):t.push(s)}return{token:i,st:this._startIndex,ed:this._endIndex,children:t}}_getIndexInParent(i){const e=this.getChildren(),t=e.length;for(let r=0;r<t;r++)if(e[r]===i)return r}}const Ea=1e5,Tn=new rt(Ea),vn=new rt(Ea);class $r extends O.Disposable{constructor(){super(...arguments);C(this,"_currentLexerNode",new ae);C(this,"_upLevel",0);C(this,"_segment","");C(this,"_bracketState",[]);C(this,"_squareBracketState",0);C(this,"_bracesState",0);C(this,"_singleQuotationState",0);C(this,"_doubleQuotationState",0);C(this,"_lambdaState",!1);C(this,"_colonState",!1);C(this,"_formulaErrorCount",0);C(this,"_tableBracketState",!1)}dispose(){this._resetTemp(),this._currentLexerNode.dispose(),Tn.clear(),vn.clear()}getUpLevel(){return this._upLevel}isColonClose(){return this._colonState===!1}isColonOpen(){return this._colonState===!0}isDoubleQuotationClose(){return this._doubleQuotationState===0}isLambdaOpen(){return this._lambdaState===!0}isLambdaClose(){return this._lambdaState===!1}isSingleQuotationClose(){return this._singleQuotationState===0}isBracesClose(){return this._bracesState===0}isBracketClose(){return this._bracketState.length===0}isSquareBracketClose(){return this._squareBracketState===0}getCurrentLexerNode(){return this._currentLexerNode}getFunctionAndParameter(e,t){const r=this._getCurrentParamIndex(e,t);if(r==null||r===h.VALUE)return;const n=r[0];if(typeof n=="string")return;let s=n.getParent(),u=n;for(;s;){const o=s.getToken();if(o!==ot&&!or(o)&&s.getStartIndex()!==-1){const c=s.getChildren().indexOf(u);return{functionName:o,paramIndex:c}}u=s,s=s.getParent()}}checkIfAddBracket(e){let t=0,r=e.length-1,n=e[r];for(;(n===Q.CLOSE_BRACKET||n===" ")&&r>=0;)n===Q.CLOSE_BRACKET&&t++,n=e[--r];const s=this._getCurrentParamIndex(e,e.length-2);if(s==null||s===h.VALUE)return 0;const u=s[0];if(typeof u=="string")return 0;let o=u.getParent(),c=0;for(s[1]===Q.OPEN_BRACKET&&c++;o;){const l=o.getToken();l!==ot&&l!==Q.COLON&&o.getStartIndex()!==-1&&l.toUpperCase()!==dr&&(t===0?c+=1:t--),o=o.getParent()}return c}sequenceNodesBuilder(e){const t=vn.get(e);if(t)return[...t];const r=this._getSequenceArray(e);if(r.length===0)return;const n=this.getSequenceNode(r);return vn.set(e,[...n]),n}convertRefersToAbsolute(e,t,r){const n=this.sequenceNodesBuilder(e);if(n==null)return e;let s="";e.substring(0,1)===G.EQUALS&&(s=G.EQUALS);for(let u=0,o=n.length;u<o;u++){const c=n[u];if(typeof c!="string"&&c.nodeType===Ue.REFERENCE){const{token:l,endIndex:f}=c,m=wt(l);if(m==null)continue;const{range:d,sheetName:_,unitId:E}=m,b={...d,startAbsoluteRefType:t,endAbsoluteRefType:r},y=Mr({range:b,unitId:E,sheetName:_}),R=y.length-l.length;n[u]={...c,token:y,endIndex:f+R};for(let p=u+1;p<o;p++){const N=n[p];typeof N!="string"&&(N.startIndex+=R,N.endIndex+=R)}}}return`${s}${Un(n)}`}moveFormulaRefOffset(e,t,r,n=!1){const s=this.sequenceNodesBuilder(e);if(s==null)return e;const u=[];for(let o=0,c=s.length;o<c;o++){const l=s[o];if(typeof l=="string"||l.nodeType!==Ue.REFERENCE){u.push(l);continue}const{token:f}=l,m=wt(f),{sheetName:d,unitId:_}=m;let E=m.range;if(!n&&E.startAbsoluteRefType===O.AbsoluteRefType.ALL&&E.endAbsoluteRefType===O.AbsoluteRefType.ALL){u.push(l);continue}else E=O.moveRangeByOffset(E,t,r,n);let b="";O.isValidRange(E)?b=Mr({range:E,unitId:_,sheetName:d}):b=h.REF,u.push({...l,token:b})}return`=${Un(u)}`}_formulaSpellCheck(){if(this._currentLexerNode.getChildren().length===0)return!0;const e=this._currentLexerNode.getChildren()[0];return!!(e instanceof ae||_t.has(e)||Dn.has(e)||e===Ne.AT||e===Q.COMMA||e===Q.COLON||e===Q.OPEN_BRACKET)}getSequenceNode(e){const t=[];let r=!1;for(let n=0,s=e.length;n<s;n++){const u=e[n],o=e[n-1],{segment:c,currentString:l}=u;if(l===Q.DOUBLE_QUOTATION&&(r=!0),(c!==""||n===0)&&n!==s-1){t.push(l);continue}let f=(o==null?void 0:o.segment)||"";const m=n-f.length;let d=n-1;const _=n-1;if(n===s-1&&this._isLastMergeString(l)&&(f+=l,d+=1),f===""||Dr.has(f)){t.push(l);continue}const E=f.trim(),b=ha(E);r===!0&&E[E.length-1]===Q.DOUBLE_QUOTATION&&E[0]!==Q.OPEN_BRACES?(r=!1,this._processPushSequenceNode(t,Ue.STRING,f,m,d,_)):cr(b)&&mr(b)?this._processPushSequenceNode(t,Ue.REFERENCE,f,m,d,_):O.Tools.isStringNumber(E)?this._processPushSequenceNode(t,Ue.NUMBER,f,m,d,_):E.length>0&&this._processPushSequenceNode(t,Ue.FUNCTION,f,m,d,_),(n!==s-1||!this._isLastMergeString(l))&&t.push(l)}return this._mergeSequenceNodeReference(t)}_processPushSequenceNode(e,t,r,n,s,u){this._pushSequenceNode(e,{nodeType:t,token:r,startIndex:n,endIndex:s},u)}_getCurrentParamIndex(e,t){return this._nodeMaker(e,void 0,t)}_isLastMergeString(e){return e===Q.DOUBLE_QUOTATION||O.Tools.isStringNumber(e)||!or(e)}_mergeSequenceNodeReference(e){const t=[],r=e.length;let n=0;for(;n<r;){const s=e[n];if(typeof s=="string"){const u=e[n-1];if(s.trim()===Q.CLOSE_BRACES&&u!=null&&typeof u!="string"&&u.nodeType===Ue.FUNCTION&&u.token.trim().substring(0,1)===Q.OPEN_BRACES){u.nodeType=Ue.ARRAY,u.token+=s,u.endIndex+=s.length,n++;continue}t.push(s)}else{const u=e[n+1],o=e[n+2];u===Q.COLON&&typeof s!="string"&&o!=null&&typeof o!="string"&&mr((s.token+u+o.token).trim())&&(s.nodeType=Ue.REFERENCE,s.token+=u+o.token,s.endIndex=o.endIndex,n+=2),t.push(s)}n++}return this._minusSplitSequenceNode(t)}_minusSplitSequenceNode(e){const t=[];for(const r of e){if(typeof r!="string"){const s=r.token.match(/^(\s*([-@+]\s*)+)(.*)$/);if(s){const u=s[1],o=s[3];if(mr(o.trim())){const c=u.length,l=r.startIndex,f=r.startIndex+c-1,m={nodeType:Ue.NORMAL,token:u,startIndex:l,endIndex:f},d={nodeType:Ue.REFERENCE,token:o,startIndex:f+1,endIndex:r.endIndex};t.push(m),t.push(d);continue}}}t.push(r)}return t}_pushSequenceNode(e,t,r){const n=r-t.startIndex+1;e.splice(e.length-n,n,t)}nodeMakerTest(e){return this._nodeMaker(e)}treeBuilder(e,t=!0,r,n){if(t===!0){const m=Tn.get(e),d=n==null?void 0:n(e);if(m&&!d)return m}this._resetCurrentLexerNode(),this._currentLexerNode.setToken(At);const s=[];let u=this._nodeMaker(e,s);if(u===h.VALUE||s.length===0)return u;let o=!1,c="",l=[];if(r){const{hasDefinedName:m,sequenceString:d,definedNames:_}=r(s);o=m,c=d,l=_}if(o&&(this._resetCurrentLexerNode(),this._currentLexerNode.setToken(At),u=this._nodeMaker(`=${c}`),u===h.VALUE))return u;const f=this._getTopNode(this._currentLexerNode);if(f&&(this._currentLexerNode=f),t){if(!this._suffixExpressionHandler(this._currentLexerNode))return h.VALUE;Tn.set(e,this._currentLexerNode)}return o&&this._currentLexerNode.setDefinedNames(l),this._currentLexerNode}_suffixExpressionHandler(e){var o;const t=e.getChildren();if(!t)return!1;const r=t.length,n=[],s=[];let u=!0;for(let c=0;c<r;c++){const l=t[c];if(l instanceof ae)u=this._suffixExpressionHandler(l),n.push(l);else{const f=l.trim();if(f==="")continue;if(_t.has(f)){if(f===G.PLUS&&this._deletePlusForPreNode(t[c-1]))continue;if(f!==G.PLUS&&f!==G.MINUS&&this._deletePlusForPreNode(t[c-1]))return!1;for(;s.length>0;){const m=(o=s[s.length-1])==null?void 0:o.trim();if(!m||m===Q.OPEN_BRACKET)break;const d=Dr.get(m),_=Dr.get(f);if(!d||!_)break;if(_>=d)n.push(s.pop());else break}s.push(l)}else if(f===Q.OPEN_BRACKET)s.push(l);else if(f===Q.CLOSE_BRACKET)this._processSuffixExpressionCloseBracket(n,s,t,c);else{if(this._checkCloseBracket(t[c-1]))return!1;n.push(l)}}}return u?this._processSuffixExpressionRemain(n,s,e):!1}_processSuffixExpressionRemain(e,t,r){const n=e.length,s=e[n-1];for(;t.length>0;){const u=t.pop();if(!(s instanceof ae)&&(u===Q.OPEN_BRACKET||u===Q.CLOSE_BRACKET))return!1;e.push(u)}return r.setChildren(e),!0}_processSuffixExpressionCloseBracket(e,t,r,n){var s;if(this._checkOpenBracket(r[n-1])||this._checkOperator(r[n-1]))return!1;for(;t.length>0;){const u=(s=t[t.length-1])==null?void 0:s.trim();if(!u)break;if(u===Q.OPEN_BRACKET){t.pop();break}e.push(t.pop())}}_checkCloseBracket(e){return e===Q.CLOSE_BRACKET||e instanceof ae}_checkOpenBracket(e){return e===Q.OPEN_BRACKET}_checkOperator(e){return e==null||e instanceof ae?!1:_t.has(e)}_deletePlusForPreNode(e){if(e==null)return!0;if(!(e instanceof ae)){const t=e.trim();if(_t.has(t)||t===Q.OPEN_BRACKET)return!0}return!1}_resetCurrentLexerNode(){this._currentLexerNode=new ae}_resetSegment(){this._segment=""}_openBracket(e=0){this._bracketState.push(e)}_closeBracket(){this._bracketState.pop()}_openSquareBracket(){this._squareBracketState+=1}_closeSquareBracket(){this._squareBracketState-=1}_getCurrentBracket(){const e=this._bracketState;return e[e.length-1]}_changeCurrentBracket(e){const t=this._bracketState;t[t.length-1]=e}_openBraces(){this._bracesState+=1}_closeBraces(){this._bracesState-=1}_openSingleQuotation(){this._singleQuotationState+=1}_closeSingleQuotation(){this._singleQuotationState-=1}_openDoubleQuotation(){this._doubleQuotationState+=1}_closeDoubleQuotation(){this._doubleQuotationState-=1}_openLambda(){this._lambdaState=!0}_closeLambda(){this._lambdaState=!1}_openColon(e){this._upLevel=e,this._colonState=!0}_closeColon(){this._upLevel=0,this._colonState=!1}_isTableBracket(){return this._tableBracketState}_openTableBracket(){this._tableBracketState=!0}_closeTableBracket(){this._tableBracketState=!1}_formalErrorOccurred(){this._formulaErrorCount+=1}_hasFormalError(){return this._formulaErrorCount>0}_getLastChildCurrentLexerNode(){const e=this._currentLexerNode.getChildren();if(e&&e.length>0){const t=e[e.length-1];if(t instanceof ae)return t}return!1}_getLastChildCurrent(){const e=this._currentLexerNode.getChildren();return e&&e.length>0?e[e.length-1]:!1}_setParentCurrentLexerNode(){const e=this._currentLexerNode.getParent();return e?(this._currentLexerNode=e,!0):!1}_setAncestorCurrentLexerNode(){var r,n,s,u,o,c;const e=(r=this._currentLexerNode)==null?void 0:r.getParent();let t=!1;if(e&&e.getToken()===Wt){if((n=e==null?void 0:e.getParent())!=null&&n.getParent()){const l=(u=(s=this._currentLexerNode.getParent())==null?void 0:s.getParent())==null?void 0:u.getParent();l&&(this._currentLexerNode=l),t=!0}}else if(e!=null&&e.getParent()){const l=(o=this._currentLexerNode.getParent())==null?void 0:o.getParent();l&&(this._currentLexerNode=l),t=!0}for(let l=0;l<this._upLevel;l++){const f=(c=this._currentLexerNode)==null?void 0:c.getParent();f&&(this._currentLexerNode=f),this._currentLexerNode?t=!0:t=!1}return t}_segmentCount(){return this._segment.trim().length}_pushSegment(e){this._segment+=e}_pushNodeToChildren(e,t=!1){let r=e;if(r!==""){const n=this._currentLexerNode.getChildren();if(!(r instanceof ae)&&this.isColonOpen()){const s=new ae;s.setToken(r),s.setParent(this._currentLexerNode),r=s}t?n.unshift(r):n.push(r)}this.isColonOpen()&&(this._setAncestorCurrentLexerNode(),this._closeColon())}_setCurrentLexerNode(e,t=!1){this._pushNodeToChildren(e,t),e.setParent(this._currentLexerNode),this._currentLexerNode=e}_newAndPushCurrentLexerNode(e,t,r=!1){const n=new ae;n.setToken(e),n.setIndex(t-e.length,t-1),this._setCurrentLexerNode(n,r)}_getTopNode(e){let t=e;for(;t!=null&&t.getParent();)t=t.getParent();return t}_removeLastChild(){this._currentLexerNode.getChildren().splice(-1)}_formulaErrorLastTokenCheck(e,t){const r=this._findPreviousToken(e,t)||"",n=e.length-1===t;if(!n&&this._isOperatorToken(r)||n&&Xu(r))return!0;if(Dn.has(r)){const s=this._findSecondLastNonSpaceToken(e,t);if(s==null||Zu(s))return!0}return!1}_findPreviousToken(e,t){let r=t;for(;r>=0;){const n=e[r];if(n!==" ")return n;r--}}_findSecondLastNonSpaceToken(e,t){let r=t,n=0;for(;r>=0;){const s=e[r];if(s!==" "&&(n++,n===2))return s;r--}return null}_findNextToken(e,t){let r=t;for(;r>=0;){const n=e[r];if(n!==" ")return n;r++}}_unexpectedEndingTokenExcludeOperator(e){return e===Q.OPEN_BRACKET||e===Q.COMMA||e===G.EQUALS||e===""}_unexpectedEndingToken(e){return!!(this._isOperatorToken(e)||this._unexpectedEndingTokenExcludeOperator(e))}_isOperatorToken(e){return!!_t.has(e)}_getSequenceArray(e){const t=[];return this._nodeMaker(e,t),t}_resetTemp(){this._currentLexerNode=new ae,this._upLevel=0,this._segment="",this._bracketState=[],this._bracesState=0,this._singleQuotationState=0,this._doubleQuotationState=0,this._lambdaState=!1,this._colonState=!1,this._formulaErrorCount=0}_checkErrorState(){return!!(this._bracketState.length>0||this._bracesState>0||this._singleQuotationState>0||this._doubleQuotationState>0||this._hasFormalError())}_checkSimilarErrorToken(e,t,r){let n=t;if(e!==Ye.POUND)return!0;let s=r[++n];for(;s===" ";)s=r[++n];return!!or(s)}_checkIfErrorObject(e,t){return!!this._findErrorObject(e,t)}_findErrorObject(e,t){for(let r=0;r<Hs.length;r++){const n=Hs[r],s=t.slice(e,e+n).join("").toUpperCase();if(Mt.has(s))return s}}_nodeMaker(e,t,r){let n=e.replace(/\r\n$/,"").replace(/\r/g," ").replace(/\n/g," ");n.substring(0,1)===G.EQUALS&&(n=n.substring(1));const s=n.split(""),u=s.length;let o=0;for(this._resetTemp(),this._formulaErrorLastTokenCheck(s,u-1)&&this._formalErrorOccurred();o<u;){const c=s[o];if(r===o)return[this._currentLexerNode,c];if(c===Ye.POUND&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()&&this._checkIfErrorObject(o,s)){const l=this._findErrorObject(o,s);if(l==null)return h.VALUE;this._pushNodeToChildren(l);for(let f=0;f<l.length;f++){const m=s[o];this._pushSegment(m),this._addSequenceArray(t,m,o),o++}this._resetSegment();continue}else if(c===Q.OPEN_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())if(this._segmentCount()>0||this.isLambdaOpen()){this.isLambdaClose()&&(this._newAndPushCurrentLexerNode(this._segment,o),this._resetSegment()),this._openBracket(1),this._closeLambda();const l=s[o+1];if(l&&l===Q.CLOSE_BRACKET){if(!this._setParentCurrentLexerNode()&&o!==u-1)return h.VALUE;this._addSequenceArray(t,c,o),o++,this._addSequenceArray(t,l,o),o++,this._closeBracket();continue}else l&&this._newAndPushCurrentLexerNode(ot,o)}else this._pushNodeToChildren(c),this._openBracket(0),this._resetSegment();else if(c===Q.CLOSE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){this._formulaErrorLastTokenCheck(s,o-1)&&this._formalErrorOccurred(),this._pushNodeToChildren(this._segment),this._resetSegment();const l=this._getCurrentBracket();if(l===0)this._pushNodeToChildren(c);else if(l===1){const f=s[o+1];if(f&&f===Q.OPEN_BRACKET){if(!this._setParentCurrentLexerNode()&&o!==u-1)return h.VALUE;this._newAndPushCurrentLexerNode(Wt,o,!0),this._openLambda()}else if(!this._setAncestorCurrentLexerNode()&&o!==u-1)return h.VALUE}else return h.VALUE;this._closeBracket()}else if(c===Q.OPEN_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()){if(this._pushSegment(c),this._openBraces(),!this._formulaSpellCheck())return h.VALUE}else if(c===Q.CLOSE_BRACES&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._pushSegment(c),this._pushNodeToChildren(this._segment),this._resetSegment(),this._closeBraces();else if(c===Q.OPEN_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._segment.length>0&&this._openTableBracket(),this._pushSegment(c),this._openSquareBracket();else if(c===Q.CLOSE_SQUARE_BRACKET&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose())this._closeSquareBracket(),this.isSquareBracketClose()?(this._pushSegment(c),this._isTableBracket()&&(this._pushNodeToChildren(this._segment),this._resetSegment()),this._closeTableBracket()):this._pushSegment(c);else if(c===Q.DOUBLE_QUOTATION&&this.isSingleQuotationClose()&&this.isSquareBracketClose()){if(this.isDoubleQuotationClose())this._openDoubleQuotation();else{const l=s[o+1];l&&l===Q.DOUBLE_QUOTATION?o++:this._closeDoubleQuotation()}this._pushSegment(c)}else if(c===Q.SINGLE_QUOTATION&&this.isDoubleQuotationClose()){if(this.isSingleQuotationClose())this._openSingleQuotation();else{const l=s[o+1];l&&l===Q.SINGLE_QUOTATION?o++:this._closeSingleQuotation()}this._pushSegment(c)}else if(c===Q.COMMA&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){this._formulaErrorLastTokenCheck(s,o-1)&&this._formalErrorOccurred();const l=this._getCurrentBracket();if(l===1||l==null){if(this._pushNodeToChildren(this._segment),this._resetSegment(),!this._setParentCurrentLexerNode()&&o!==u-1&&l!=null)return h.VALUE;this._newAndPushCurrentLexerNode(ot,o)}else{const f=new ae;f.setToken(No);const m=new ae;m.setToken(ot),m.changeToParent(f);const d=this._currentLexerNode.getParent();if(d&&d.getToken()===Q.COLON){const _=d.getParent();if(!_)return h.VALUE;d.changeToParent(m),_.setChildren([]),f.changeToParent(_)}else return h.VALUE;this._changeCurrentBracket(1),this._pushNodeToChildren(this._segment),this._resetSegment(),this._currentLexerNode=f,this._newAndPushCurrentLexerNode(ot,o)}}else if(c===Q.COLON&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isBracesClose()&&this.isSquareBracketClose()){const l=new ae;l.setToken(c);const f=new ae;f.setToken(ot),f.setParent(l);const m=new ae;m.setToken(ot),m.setParent(l),l.getChildren().push(f,m);let d=l,_=0;if(this._segmentCount()>0){let E,b,y=0;const R=this._segment.trim(),p=R[0],N=R[1];if(p===Ne.MINUS&&(E=new ae,E.setToken(Ne.MINUS),y++),(p===Ne.AT||N===Ne.AT)&&(b=new ae,b.setToken(Ne.AT),E&&(E.addChildren(b),b.setParent(E)),y++),y>0&&(this._segment=R.slice(y)),_=y,b)if(b.addChildren(l),l.setParent(b),b.getParent()){const P=b.getParent();P&&(d=P)}else d=b;else E&&(d=E,E.addChildren(l),l.setParent(E));const S=new ae;S.setToken(this._segment),S.setParent(f),f.getChildren().push(S),this._resetSegment()}else{const E=this._getLastChildCurrentLexerNode();E&&E.changeToParent(f)}this._setCurrentLexerNode(d),this._currentLexerNode=m,this._openColon(_)}else if(Dn.has(c)&&this._checkSimilarErrorToken(c,o,s)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){this._pushNodeToChildren(this._segment);const l=new ae;l.setToken(c);const f=this._getLastChildCurrent();f instanceof ae?f.changeToParent(l):f!==!1&&(l.getChildren().push(f),this._removeLastChild()),this._pushNodeToChildren(l),l.setParent(this._currentLexerNode),this._resetSegment()}else if(_t.has(c)&&this.isSingleQuotationClose()&&this.isDoubleQuotationClose()&&this.isSquareBracketClose()&&this.isBracesClose()){let l=this._segment.trim();if(c===G.MINUS&&l===""){const f=this._findPreviousToken(s,o-1)||"",m=this._findNextToken(s,o+1)||"";if(this._unexpectedEndingTokenExcludeOperator(f)&&this._isOperatorToken(m)){this._pushNodeToChildren("0"),this._pushNodeToChildren(G.MINUS),this._addSequenceArray(t,c,o),this._resetSegment(),o++;continue}else if(this._unexpectedEndingToken(f))if(m===G.PLUS){this._pushSegment(G.MINUS),this._addSequenceArray(t,c,o),this._addSequenceArray(t,G.PLUS,o+1),o+=2;continue}else{this._pushSegment(G.MINUS),this._addSequenceArray(t,c,o),o++;continue}}else if(this._segment.length>0&&this._isScientificNotation(s,o,c)){this._pushSegment(c),this._addSequenceArray(t,c,o),o++;continue}else this._segment.length>0&&l===""?l=this._segment:(this._pushNodeToChildren(this._segment),l="");if(c===G.LESS_THAN||c===G.GREATER_THAN){const f=s[o+1];if(f&&_t.has(c+f)){this._pushNodeToChildren(l+c+f),this._resetSegment(),this._addSequenceArray(t,c,o),o++,this._addSequenceArray(t,f,o),o++;continue}else this._pushNodeToChildren(l+c)}else this._pushNodeToChildren(l+c);this._resetSegment()}else this._pushSegment(c);this._addSequenceArray(t,c,o),o++}if(this._pushNodeToChildren(this._segment),this._checkErrorState())return h.VALUE}_isScientificNotation(e,t,r){const n=e[t-2];if(n&&Number.isNaN(Number(n))||!(r===G.MINUS||r===G.PLUS))return!1;const s=e[t+1];if(s&&Number.isNaN(Number(s)))return!1;const u=e[t-1];return u&&u.toUpperCase()==="E"}_addSequenceArray(e,t,r){e==null||e.push({segment:this._segment,currentString:t,cur:r,currentLexerNode:this._currentLexerNode})}}function Do(a,i,e,t,r,n,s){const u=(s==null?void 0:s.f)||"",o=(s==null?void 0:s.si)||"",c=O.isFormulaString(u),l=O.isFormulaId(o),f=a.getValue(r,n),m=(f==null?void 0:f.f)||"",d=(f==null?void 0:f.si)||"";function _(){var E;if(O.isFormulaString(m)&&O.isFormulaId(d)){const b=(E=e.get(d))==null?void 0:E.f;b?t.set(d,b):t.set(d,m)}}c&&l?(d!==o&&_(),a.setValue(r,n,{f:u,si:o}),e.set(o,{f:u,r,c:n}),i.setValue(r,n,{f:u,si:o})):c&&!l?(m!==u&&_(),a.setValue(r,n,{f:u}),i.setValue(r,n,{f:u})):!c&&l?(d!==o&&_(),a.setValue(r,n,{f:"",si:o})):!c&&!l&&a.getValue(r,n)&&(_(),a.realDeleteValue(r,n),i.setValue(r,n,null))}function So(a,i,e,t){const r=a==null?void 0:a.getValue(e,t);if(r==null)return!0;const n=[];a.forValue((l,f,m)=>{l===e&&f===t||O.Rectangle.intersects(m,r)&&n.push(m)});const{startRow:s,startColumn:u,endRow:o,endColumn:c}=r;for(let l=s;l<=o;l++)for(let f=u;f<=c;f++){let m=!1;const d=O.cellToRange(l,f);n.some(_=>O.Rectangle.contains(_,d)?(m=!0,!0):!1),m||i.realDeleteValue(l,f)}}var Lo=Object.defineProperty,Po=Object.getOwnPropertyDescriptor,Mo=(a,i,e,t)=>{for(var r=t>1?void 0:t?Po(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&Lo(i,e,r),r},ba=(a,i)=>(e,t)=>i(e,t,a);L.FormulaDataModel=class extends O.Disposable{constructor(e,t){super();C(this,"_formulaData",{});C(this,"_arrayFormulaRange",{});C(this,"_arrayFormulaCellData",{});this._univerInstanceService=e,this._lexerTreeBuilder=t,this.initFormulaData()}dispose(){super.dispose(),this._formulaData={},this._arrayFormulaRange={},this._arrayFormulaCellData={}}clearPreviousArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(n=>{var l,f,m,d;const s=r[n],u=(f=(l=this._arrayFormulaRange)==null?void 0:l[t])==null?void 0:f[n];if(u==null)return!0;const o=new O.ObjectMatrix(u);let c=new O.ObjectMatrix;((m=this._arrayFormulaCellData[t])==null?void 0:m[n])!=null&&(c=new O.ObjectMatrix((d=this._arrayFormulaCellData[t])==null?void 0:d[n])),s.forValue((_,E)=>{const b=o.getValue(_,E);if(b==null)return!0;const{startRow:y,startColumn:R,endRow:p,endColumn:N}=b;for(let S=y;S<=p;S++)for(let P=R;P<=N;P++)c.setValue(S,P,null);o.realDeleteValue(_,E)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][n]=c.getData())})})}mergeArrayFormulaCellData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]==null&&(this._arrayFormulaRange[t]={}),this._arrayFormulaCellData[t]==null&&(this._arrayFormulaCellData[t]={}),Object.keys(r).forEach(n=>{var c,l;const s=r[n],u=new O.ObjectMatrix((c=this._arrayFormulaRange[t])==null?void 0:c[n]),o=new O.ObjectMatrix((l=this._arrayFormulaCellData[t])==null?void 0:l[n]);s.forValue((f,m)=>{const d=u==null?void 0:u.getValue(f,m);if(d==null)return!0;const{startRow:_,startColumn:E,endRow:b,endColumn:y}=d;for(let R=_;R<=b;R++)for(let p=E;p<=y;p++)o.setValue(R,p,null)}),s.forValue((f,m,d)=>{o.setValue(f,m,d)}),this._arrayFormulaCellData[t]&&(this._arrayFormulaCellData[t][n]=o.getData())})})}getFormulaData(){return this._formulaData}setFormulaData(e){this._formulaData=e}getArrayFormulaRange(){return this._arrayFormulaRange}setArrayFormulaRange(e){this._arrayFormulaRange=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}mergeArrayFormulaRange(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;this._arrayFormulaRange[t]||(this._arrayFormulaRange[t]={}),Object.keys(r).forEach(n=>{var o;const s=new O.ObjectMatrix(r[n]),u=new O.ObjectMatrix((o=this._arrayFormulaRange[t])==null?void 0:o[n]);s.forValue((c,l,f)=>{u.setValue(c,l,f)}),this._arrayFormulaRange[t]&&(this._arrayFormulaRange[t][n]=u.getData())})})}mergeFormulaData(e){Object.keys(e).forEach(t=>{const r=e[t];if(r!==void 0){if(r===null){delete this._formulaData[t];return}this._formulaData[t]||(this._formulaData[t]={}),Object.keys(r).forEach(n=>{var c,l;const s=r[n];if(s===void 0)return;if(s===null){(c=this._formulaData[t])==null||delete c[n];return}const u=new O.ObjectMatrix(s),o=new O.ObjectMatrix(((l=this._formulaData[t])==null?void 0:l[n])||{});u.forValue((f,m,d)=>{d==null?o.realDeleteValue(f,m):o.setValue(f,m,d)}),this._formulaData[t][n]=o.clone()})}})}deleteArrayFormulaRange(e,t,r,n){var o;const s=(o=this._arrayFormulaRange[e])==null?void 0:o[t];if(s==null)return;const u=new O.ObjectMatrix(s);u.getValue(r,n)&&(u.realDeleteValue(r,n),this._arrayFormulaRange[e]&&(this._arrayFormulaRange[e][t]=u.getData()))}initFormulaData(){if(this._univerInstanceService.getAllUnitsForType(O.UniverInstanceType.UNIVER_SHEET).length===0)return;const t=this._univerInstanceService.getCurrentUnitForType(O.UniverInstanceType.UNIVER_SHEET),r=t.getUnitId();this._formulaData[r]={},t.getSheets().forEach(s=>{const u=s.getCellMatrix(),o=s.getSheetId();Aa(this._formulaData,r,o,u)})}getCalculateData(){const e=this._univerInstanceService.getAllUnitsForType(O.UniverInstanceType.UNIVER_SHEET),t={},r={};for(const n of e){const s=n.getUnitId(),u=n.getSheets(),o={},c={};for(const l of u){const f=l.getSheetId(),m=l.getConfig();o[f]={cellData:new O.ObjectMatrix(m.cellData),rowCount:m.rowCount,columnCount:m.columnCount,rowData:m.rowData,columnData:m.columnData,defaultRowHeight:m.defaultRowHeight,defaultColumnWidth:m.defaultColumnWidth},c[l.getName()]=l.getSheetId()}t[s]=o,r[s]=c}return{allUnitData:t,unitSheetNameMap:r}}updateFormulaData(e,t,r){const n=new O.ObjectMatrix(r),s=this.getFormulaIdMap(e,t),u=new Map,o=this._formulaData;o[e]==null&&(o[e]={});const c=o[e];c[t]==null&&(c[t]={});const l=new O.ObjectMatrix(c[t]||{}),f=new O.ObjectMatrix;return n.forValue((m,d,_)=>{Do(l,f,s,u,m,d,_)}),l.forValue((m,d,_)=>{const E=(_==null?void 0:_.f)||"",b=(_==null?void 0:_.si)||"";if(O.isFormulaId(b)){const y=s.get(b),R=u.get(b);if(y&&!O.isFormulaString(E)){const p=y.f,N=d-y.c,S=m-y.r;l.setValue(m,d,{f:p,si:b,x:N,y:S}),f.setValue(m,d,{f:p,si:b,x:N,y:S})}else if(typeof R=="string"){const p=(_==null?void 0:_.x)||0,N=(_==null?void 0:_.y)||0,S=this._lexerTreeBuilder.moveFormulaRefOffset(R,p,N);u.set(b,{r:m,c:d,f:S}),l.setValue(m,d,{f:S,si:b}),f.setValue(m,d,{f:S,si:b})}else if(typeof R=="object"){const p=d-R.c,N=m-R.r;l.setValue(m,d,{f:R.f,si:b,x:p,y:N}),f.setValue(m,d,{f:R.f,si:b,x:p,y:N})}}}),f.clone()}updateArrayFormulaRange(e,t,r){var o;const n=(o=this._arrayFormulaRange[e])==null?void 0:o[t];if(!n)return;const s=new O.ObjectMatrix(n);new O.ObjectMatrix(r).forValue((c,l,f)=>{s.realDeleteValue(c,l)})}updateArrayFormulaCellData(e,t,r){var l,f;const n=(l=this._arrayFormulaRange[e])==null?void 0:l[t];if(!n)return;const s=new O.ObjectMatrix(n),u=(f=this._arrayFormulaCellData[e])==null?void 0:f[t];if(!u)return;const o=new O.ObjectMatrix(u);new O.ObjectMatrix(r).forValue((m,d,_)=>{So(s,o,m,d)})}getFormulaItemBySId(e,t,r){const n=this._formulaData;if(n[r]==null)return null;const s=n[r];if((s==null?void 0:s[t])==null)return null;const u=new O.ObjectMatrix(s[t]||{});let o=null;return u.forValue((c,l,f)=>{if(f==null)return!0;const{f:m,si:d,x:_=0,y:E=0}=f;if(d===e&&m.length>0&&_===0&&E===0)return o=f,!1}),o}getFormulaDataItem(e,t,r,n){var s,u,o,c;return(c=(o=(u=(s=this._formulaData)==null?void 0:s[n])==null?void 0:u[r])==null?void 0:o[e])==null?void 0:c[t]}getFormulaIdMap(e,t){const r=new Map,n=this._formulaData;if(n[e]==null)return r;const s=n[e];return(s==null?void 0:s[t])==null||new O.ObjectMatrix(s[t]||{}).forValue((o,c,l)=>{const f=(l==null?void 0:l.f)||"",m=(l==null?void 0:l.si)||"",d=(l==null?void 0:l.x)||0,_=(l==null?void 0:l.y)||0;O.isFormulaString(f)&&O.isFormulaId(m)&&d===0&&_===0&&r.set(m,{f,r:o,c})}),r}getFormulaStringByCell(e,t,r,n){const s=this.getFormulaDataItem(e,t,r,n);if(s==null)return null;const{f:u,si:o,x:c=0,y:l=0}=s;if(o!=null&&(c!==0||l!==0)){let f="";if(u.length>0)f=u;else{const m=this.getFormulaItemBySId(o,r,n);if(m==null||m.f.length===0)return null;f=m.f}return f=this._lexerTreeBuilder.moveFormulaRefOffset(f,c,l),f}return O.isFormulaString(u)?u:null}},L.FormulaDataModel=Mo([ba(0,O.IUniverInstanceService),ba(1,O.Inject($r))],L.FormulaDataModel);function Aa(a,i,e,t){const r=new Map,n=new O.ObjectMatrix;t.forValue((u,o,c)=>{const l=(c==null?void 0:c.f)||"",f=(c==null?void 0:c.si)||"",m=O.isFormulaString(l),d=O.isFormulaId(f);m&&d?(n.setValue(u,o,{f:l,si:f}),r.set(f,{f:l,r:u,c:o})):m&&!d?n.setValue(u,o,{f:l}):!m&&d&&n.setValue(u,o,{f:"",si:f})}),n.forValue((u,o,c)=>{const l=(c==null?void 0:c.f)||"",f=(c==null?void 0:c.si)||"";if(O.isFormulaId(f)&&!O.isFormulaString(l)){const m=r.get(f);if(m){const d=m.f,_=o-m.c,E=u-m.r;n.setValue(u,o,{f:d,si:f,x:_,y:E})}else n.realDeleteValue(u,o)}}),a[i]||(a[i]={});const s=n.clone();return a[i][e]=s,{[i]:{[e]:s}}}const wo=class $s{constructor(i,e){this.low=i,this.high=e}clone(){return new $s(this.low,this.high)}get max(){return this.clone()}less_than(i){return this.low<i.low||this.low===i.low&&this.high<i.high}equal_to(i){return this.low===i.low&&this.high===i.high}intersect(i){return!this.not_intersect(i)}not_intersect(i){return this.high<i.low||i.high<this.low}merge(i){return new $s(this.low===void 0?i.low:this.low<i.low?this.low:i.low,this.high===void 0?i.high:this.high>i.high?this.high:i.high)}output(){return[this.low,this.high]}static comparable_max(i,e){return i.merge(e)}static comparable_less_than(i,e){return i<e}},Pe=0,_e=1;class jt{constructor(i=void 0,e=void 0,t=null,r=null,n=null,s=_e){if(this.left=t,this.right=r,this.parent=n,this.color=s,this.item={key:i,value:e},i&&i instanceof Array&&i.length===2&&!Number.isNaN(i[0])&&!Number.isNaN(i[1])){let[u,o]=i;u>o&&([u,o]=[o,u]),this.item.key=new wo(u,o)}this.max=this.item.key?this.item.key.max:void 0}isNil(){return this.item.key===void 0&&this.item.value===void 0&&this.left===null&&this.right===null&&this.color===_e}_value_less_than(i){return this.item.value&&i.item.value&&this.item.value.less_than?this.item.value.less_than(i.item.value):this.item.value<i.item.value}less_than(i){return this.item.value===this.item.key&&i.item.value===i.item.key?this.item.key.less_than(i.item.key):this.item.key.less_than(i.item.key)||this.item.key.equal_to(i.item.key)&&this._value_less_than(i)}_value_equal(i){return this.item.value&&i.item.value&&this.item.value.equal_to?this.item.value.equal_to(i.item.value):this.item.value===i.item.value}equal_to(i){return this.item.value===this.item.key&&i.item.value===i.item.key?this.item.key.equal_to(i.item.key):this.item.key.equal_to(i.item.key)&&this._value_equal(i)}intersect(i){return this.item.key.intersect(i.item.key)}copy_data(i){this.item.key=i.item.key,this.item.value=i.item.value}update_max(){if(this.max=this.item.key?this.item.key.max:void 0,this.right&&this.right.max){const i=this.item.key.constructor.comparable_max;this.max=i(this.max,this.right.max)}if(this.left&&this.left.max){const i=this.item.key.constructor.comparable_max;this.max=i(this.max,this.left.max)}}not_intersect_left_subtree(i){const e=this.item.key.constructor.comparable_less_than;let t=this.left.max.high!==void 0?this.left.max.high:this.left.max;return e(t,i.item.key.low)}not_intersect_right_subtree(i){const e=this.item.key.constructor.comparable_less_than;let t=this.right.max.low!==void 0?this.right.max.low:this.right.item.key.low;return e(i.item.key.high,t)}}class Bn{constructor(){this.root=null,this.nil_node=new jt}get size(){let i=0;return this.tree_walk(this.root,()=>i++),i}get keys(){let i=[];return this.tree_walk(this.root,e=>i.push(e.item.key.output?e.item.key.output():e.item.key)),i}get values(){let i=[];return this.tree_walk(this.root,e=>i.push(e.item.value)),i}get items(){let i=[];return this.tree_walk(this.root,e=>i.push({key:e.item.key.output?e.item.key.output():e.item.key,value:e.item.value})),i}isEmpty(){return this.root==null||this.root===this.nil_node}clear(){this.root=null}insert(i,e=i){if(i===void 0)return;let t=new jt(i,e,this.nil_node,this.nil_node,null,Pe);return this.tree_insert(t),this.recalc_max(t),t}exist(i,e=i){let t=new jt(i,e);return!!this.tree_search(this.root,t)}remove(i,e=i){let t=new jt(i,e),r=this.tree_search(this.root,t);return r&&this.tree_delete(r),r}search(i,e=(t,r)=>t===r?r.output():t){let t=new jt(i),r=[];return this.tree_search_interval(this.root,t,r),r.map(n=>e(n.item.value,n.item.key))}intersect_any(i){let e=new jt(i);return this.tree_find_any_interval(this.root,e)}forEach(i){this.tree_walk(this.root,e=>i(e.item.key,e.item.value))}map(i){const e=new Bn;return this.tree_walk(this.root,t=>e.insert(t.item.key,i(t.item.value,t.item.key))),e}*iterate(i,e=(t,r)=>t===r?r.output():t){let t;for(i?t=this.tree_search_nearest_forward(this.root,new jt(i)):this.root&&(t=this.local_minimum(this.root));t;)yield e(t.item.value,t.item.key),t=this.tree_successor(t)}recalc_max(i){let e=i;for(;e.parent!=null;)e.parent.update_max(),e=e.parent}tree_insert(i){let e=this.root,t=null;if(this.root==null||this.root===this.nil_node)this.root=i;else{for(;e!==this.nil_node;)t=e,i.less_than(e)?e=e.left:e=e.right;i.parent=t,i.less_than(t)?t.left=i:t.right=i}this.insert_fixup(i)}insert_fixup(i){let e,t;for(e=i;e!==this.root&&e.parent.color===Pe;)e.parent===e.parent.parent.left?(t=e.parent.parent.right,t.color===Pe?(e.parent.color=_e,t.color=_e,e.parent.parent.color=Pe,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,this.rotate_left(e)),e.parent.color=_e,e.parent.parent.color=Pe,this.rotate_right(e.parent.parent))):(t=e.parent.parent.left,t.color===Pe?(e.parent.color=_e,t.color=_e,e.parent.parent.color=Pe,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,this.rotate_right(e)),e.parent.color=_e,e.parent.parent.color=Pe,this.rotate_left(e.parent.parent)));this.root.color=_e}tree_delete(i){let e,t;i.left===this.nil_node||i.right===this.nil_node?e=i:e=this.tree_successor(i),e.left!==this.nil_node?t=e.left:t=e.right,t.parent=e.parent,e===this.root?this.root=t:(e===e.parent.left?e.parent.left=t:e.parent.right=t,e.parent.update_max()),this.recalc_max(t),e!==i&&(i.copy_data(e),i.update_max(),this.recalc_max(i)),e.color===_e&&this.delete_fixup(t)}delete_fixup(i){let e=i,t;for(;e!==this.root&&e.parent!=null&&e.color===_e;)e===e.parent.left?(t=e.parent.right,t.color===Pe&&(t.color=_e,e.parent.color=Pe,this.rotate_left(e.parent),t=e.parent.right),t.left.color===_e&&t.right.color===_e?(t.color=Pe,e=e.parent):(t.right.color===_e&&(t.color=Pe,t.left.color=_e,this.rotate_right(t),t=e.parent.right),t.color=e.parent.color,e.parent.color=_e,t.right.color=_e,this.rotate_left(e.parent),e=this.root)):(t=e.parent.left,t.color===Pe&&(t.color=_e,e.parent.color=Pe,this.rotate_right(e.parent),t=e.parent.left),t.left.color===_e&&t.right.color===_e?(t.color=Pe,e=e.parent):(t.left.color===_e&&(t.color=Pe,t.right.color=_e,this.rotate_left(t),t=e.parent.left),t.color=e.parent.color,e.parent.color=_e,t.left.color=_e,this.rotate_right(e.parent),e=this.root));e.color=_e}tree_search(i,e){if(!(i==null||i===this.nil_node))return e.equal_to(i)?i:e.less_than(i)?this.tree_search(i.left,e):this.tree_search(i.right,e)}tree_search_nearest_forward(i,e){let t,r=i;for(;r&&r!==this.nil_node;)r.less_than(e)?r.intersect(e)?(t=r,r=r.left):r=r.right:((!t||r.less_than(t))&&(t=r),r=r.left);return t||null}tree_search_interval(i,e,t){i!=null&&i!==this.nil_node&&(i.left!==this.nil_node&&!i.not_intersect_left_subtree(e)&&this.tree_search_interval(i.left,e,t),i.intersect(e)&&t.push(i),i.right!==this.nil_node&&!i.not_intersect_right_subtree(e)&&this.tree_search_interval(i.right,e,t))}tree_find_any_interval(i,e){let t=!1;return i!=null&&i!==this.nil_node&&(i.left!==this.nil_node&&!i.not_intersect_left_subtree(e)&&(t=this.tree_find_any_interval(i.left,e)),t||(t=i.intersect(e)),!t&&i.right!==this.nil_node&&!i.not_intersect_right_subtree(e)&&(t=this.tree_find_any_interval(i.right,e))),t}local_minimum(i){let e=i;for(;e.left!=null&&e.left!==this.nil_node;)e=e.left;return e}local_maximum(i){let e=i;for(;e.right!=null&&e.right!==this.nil_node;)e=e.right;return e}tree_successor(i){let e,t,r;if(i.right!==this.nil_node)e=this.local_minimum(i.right);else{for(t=i,r=i.parent;r!=null&&r.right===t;)t=r,r=r.parent;e=r}return e}rotate_left(i){let e=i.right;i.right=e.left,e.left!==this.nil_node&&(e.left.parent=i),e.parent=i.parent,i===this.root?this.root=e:i===i.parent.left?i.parent.left=e:i.parent.right=e,e.left=i,i.parent=e,i!=null&&i!==this.nil_node&&i.update_max(),e=i.parent,e!=null&&e!==this.nil_node&&e.update_max()}rotate_right(i){let e=i.left;i.left=e.right,e.right!==this.nil_node&&(e.right.parent=i),e.parent=i.parent,i===this.root?this.root=e:i===i.parent.left?i.parent.left=e:i.parent.right=e,e.right=i,i.parent=e,i!==null&&i!==this.nil_node&&i.update_max(),e=i.parent,e!=null&&e!==this.nil_node&&e.update_max()}tree_walk(i,e){i!=null&&i!==this.nil_node&&(this.tree_walk(i.left,e),e(i),this.tree_walk(i.right,e))}testRedBlackProperty(){let i=!0;return this.tree_walk(this.root,function(e){e.color===Pe&&(e.left.color===_e&&e.right.color===_e||(i=!1))}),i}testBlackHeightProperty(i){let e=0,t=0,r=0;if(i.color===_e&&e++,i.left!==this.nil_node?t=this.testBlackHeightProperty(i.left):t=1,i.right!==this.nil_node?r=this.testBlackHeightProperty(i.right):r=1,t!==r)throw new Error("Red-black height property violated");return e+=t,e}}class jo{constructor(){C(this,"_cache",new Map);C(this,"_continueBuildingCache",new Map)}set(i,e,t,r,n){if(!this.shouldContinueBuildingCache(i,e,t,n))return;let s=this._cache.get(i);s==null&&(s=new Map,this._cache.set(i,s));let u=s.get(e);u==null&&(u=new Map,s.set(e,u));let o=u.get(t);o==null&&(o=new Map,u.set(t,o));let c=o.get(r);c==null&&(c=new Set,o.set(r,c)),c.add(n)}getCellValuePositions(i,e,t){var r,n;return(n=(r=this._cache.get(i))==null?void 0:r.get(e))==null?void 0:n.get(t)}getCellPositions(i,e,t,r,n){var u,o,c;const s=(c=(o=(u=this._cache.get(i))==null?void 0:u.get(e))==null?void 0:o.get(t))==null?void 0:c.get(r);return s&&[...s].filter(l=>n.some(([f,m])=>l>=f&&l<=m))}setContinueBuildingCache(i,e,t,r,n){if(t===-1||r===-1||n===-1)return;let s=this._continueBuildingCache.get(i);s==null&&(s=new Map,this._continueBuildingCache.set(i,s));let u=s.get(e);u==null&&(u=new Map,s.set(e,u));let o=u.get(t);if(o==null){o=new Bn,o.insert([r,n]),u.set(t,o);return}this._handleNewInterval(o,r,n)}shouldContinueBuildingCache(i,e,t,r){var u,o;const n=(o=(u=this._continueBuildingCache.get(i))==null?void 0:u.get(e))==null?void 0:o.get(t);return n?n.search([r,r]).length===0:!0}canUseCache(i,e,t,r,n){var f,m;const s=(m=(f=this._continueBuildingCache.get(i))==null?void 0:f.get(e))==null?void 0:m.get(t);if(t===-1||r===-1||n===-1||!s)return{rowsInCache:[],rowsNotInCache:[]};const u=s.search([r,n]);if(u.length===0)return{rowsInCache:[],rowsNotInCache:[]};u.sort((d,_)=>d[0]-_[0]);const o=[],c=[];let l=r;for(const d of u){const[_,E]=d;if(l>=_){if(n<=E){o.push([l,n]);break}o.push([l,E]),l=E+1}else{if(n>E){o.push([_,E]),c.push([l,_-1]),l=E+1;continue}o.push([_,n]),c.push([l,_-1])}}return{rowsInCache:o,rowsNotInCache:c}}clear(){this._cache.clear(),this._continueBuildingCache.clear()}_handleNewInterval(i,e,t){let r=i.search([e,t]);if(r.length===0){const u=[e-1<0?0:e-1,t+1];if(r=i.search(u),r.length===0){i.insert([e,t]);return}}let n=e,s=t;for(const u of r)n=Math.min(n,u[0]),s=Math.max(s,u[1]),i.remove(u);i.insert([n,s])}}const yt=new jo,Fn="engine-formula.config",xo={};var Uo=Object.defineProperty,To=Object.getOwnPropertyDescriptor,vo=(a,i,e,t)=>{for(var r=t>1?void 0:t?To(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&Uo(i,e,r),r},ya=(a,i)=>(e,t)=>i(e,t,a);L.FormulaCurrentConfigService=class extends O.Disposable{constructor(e,t){super();C(this,"_unitData",{});C(this,"_unitStylesData",{});C(this,"_arrayFormulaCellData",{});C(this,"_arrayFormulaRange",{});C(this,"_formulaData",{});C(this,"_sheetNameMap",{});C(this,"_forceCalculate",!1);C(this,"_clearDependencyTreeCache",{});C(this,"_dirtyRanges",[]);C(this,"_dirtyNameMap",{});C(this,"_dirtyDefinedNameMap",{});C(this,"_dirtyUnitFeatureMap",{});C(this,"_dirtyUnitOtherFormulaMap",{});C(this,"_excludedCell");C(this,"_sheetIdToNameMap",{});C(this,"_executeUnitId","");C(this,"_executeSubUnitId","");this._univerInstanceService=e,this._localeService=t}dispose(){this._unitData={},this._unitStylesData={},this._formulaData={},this._arrayFormulaCellData={},this._arrayFormulaRange={},this._sheetNameMap={},this._dirtyRanges=[],this._dirtyNameMap={},this._dirtyDefinedNameMap={},this._dirtyUnitFeatureMap={},this._excludedCell={},this._sheetIdToNameMap={},this._dirtyUnitOtherFormulaMap={}}getExecuteUnitId(){return this._executeUnitId}getExecuteSubUnitId(){return this._executeSubUnitId}setExecuteUnitId(e){this._executeUnitId=e}setExecuteSubUnitId(e){this._executeSubUnitId=e}getExcludedRange(){return this._excludedCell}getUnitData(){return this._unitData}getUnitStylesData(){return this._unitStylesData}getFormulaData(){return this._formulaData}getArrayFormulaCellData(){return this._arrayFormulaCellData}getArrayFormulaRange(){return this._arrayFormulaRange}getSheetNameMap(){return this._sheetNameMap}isForceCalculate(){return this._forceCalculate}getDirtyRanges(){return this._dirtyRanges}getDirtyNameMap(){return this._dirtyNameMap}getDirtyDefinedNameMap(){return this._dirtyDefinedNameMap}getDirtyUnitFeatureMap(){return this._dirtyUnitFeatureMap}getDirtyUnitOtherFormulaMap(){return this._dirtyUnitOtherFormulaMap}getSheetName(e,t){return this._sheetIdToNameMap[e]==null?"":this._sheetIdToNameMap[e][t]||""}getClearDependencyTreeCache(){return this._clearDependencyTreeCache}getLocale(){return this._localeService.getCurrentLocale()}getSheetsInfo(){const e=this._univerInstanceService.getCurrentUnitForType(O.UniverInstanceType.UNIVER_SHEET),{id:t,sheetOrder:r}=e.getSnapshot();return{sheetOrder:r,sheetNameMap:this._sheetIdToNameMap[t]}}load(e){if(e.allUnitData&&e.unitSheetNameMap&&e.unitStylesData)this._unitData=e.allUnitData,this._unitStylesData=e.unitStylesData,this._sheetNameMap=e.unitSheetNameMap;else{const{allUnitData:t,unitSheetNameMap:r,unitStylesData:n}=this._loadSheetData();this._unitData=t,this._unitStylesData=n,this._sheetNameMap=r}this._formulaData=e.formulaData,this._arrayFormulaCellData=qs(e.arrayFormulaCellData),this._arrayFormulaRange=e.arrayFormulaRange,this._forceCalculate=e.forceCalculate,this._clearDependencyTreeCache=e.clearDependencyTreeCache||{},this._dirtyRanges=e.dirtyRanges,this._dirtyNameMap=e.dirtyNameMap,this._dirtyDefinedNameMap=e.dirtyDefinedNameMap,this._dirtyUnitFeatureMap=e.dirtyUnitFeatureMap,this._dirtyUnitOtherFormulaMap=e.dirtyUnitOtherFormulaMap,this._excludedCell=e.excludedCell,this._mergeNameMap(this._sheetNameMap,this._dirtyNameMap)}getDirtyData(){return{forceCalculation:this._forceCalculate,dirtyRanges:this._dirtyRanges,dirtyNameMap:this._dirtyNameMap,dirtyDefinedNameMap:this._dirtyDefinedNameMap,dirtyUnitFeatureMap:this._dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap:this._dirtyUnitOtherFormulaMap,clearDependencyTreeCache:this._clearDependencyTreeCache}}loadDirtyRangesAndExcludedCell(e,t){this._dirtyRanges=e,this._excludedCell=t,this._dirtyNameMap={}}registerUnitData(e){this._unitData=e}registerFormulaData(e){this._formulaData=e}registerSheetNameMap(e){this._sheetNameMap=e}_mergeNameMap(e,t){Object.keys(t).forEach(r=>{t[r]&&Object.keys(t[r]).forEach(n=>{e[r]==null&&(e[r]={}),e[r][t[r][n]]=n})}),this._sheetIdToNameMap={},Object.keys(e).forEach(r=>{Object.keys(e[r]).forEach(n=>{this._sheetIdToNameMap[r]==null&&(this._sheetIdToNameMap[r]={}),this._sheetIdToNameMap[r][e[r][n]]=n})})}_loadSheetData(){const e=this._univerInstanceService.getAllUnitsForType(O.UniverInstanceType.UNIVER_SHEET),t=this._univerInstanceService.getCurrentUnitForType(O.UniverInstanceType.UNIVER_SHEET),r=t==null?void 0:t.getActiveSheet();this._executeUnitId=t==null?void 0:t.getUnitId(),this._executeSubUnitId=r==null?void 0:r.getSheetId();const n={},s={},u={};for(const o of e){const c=o.getUnitId(),l=o.getSheets(),f={},m={};for(const d of l){const _=d.getSheetId(),E=d.getConfig();f[_]={cellData:new O.ObjectMatrix(E.cellData),rowCount:E.rowCount,columnCount:E.columnCount,rowData:E.rowData,columnData:E.columnData,defaultRowHeight:E.defaultRowHeight,defaultColumnWidth:E.defaultColumnWidth},m[d.getName()]=d.getSheetId()}n[c]=f,s[c]=o.getStyles(),u[c]=m}return{allUnitData:n,unitStylesData:s,unitSheetNameMap:u}}},L.FormulaCurrentConfigService=vo([ya(0,O.IUniverInstanceService),ya(1,O.Inject(O.LocaleService))],L.FormulaCurrentConfigService);const ct=O.createIdentifier("univer.formula.current-data.service");var Bo=Object.defineProperty,Fo=Object.getOwnPropertyDescriptor,Io=(a,i,e,t)=>{for(var r=t>1?void 0:t?Fo(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&Bo(i,e,r),r},In=(a,i)=>(e,t)=>i(e,t,a);L.Lexer=class extends O.Disposable{constructor(i,e,t){super(),this._definedNamesService=i,this._lexerTreeBuilder=e,this._formulaCurrentConfigService=t}treeBuilder(i,e=!0){return this._lexerTreeBuilder.treeBuilder(i,e,this._injectDefinedName.bind(this),this._simpleCheckDefinedName.bind(this))}_simpleCheckDefinedName(i){const e=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),t=this._formulaCurrentConfigService.getExecuteUnitId();if(t!=null&&e[t]!=null){const r=Object.keys(e[t]);for(let n=0,s=r.length;n<s;n++){const u=r[n];if(i.indexOf(u)>-1)return!0}}return!1}_checkDefinedNameDirty(i){const e=this._formulaCurrentConfigService.getDirtyDefinedNameMap(),t=this._formulaCurrentConfigService.getExecuteUnitId();if(t!=null&&e[t]!=null){const r=Object.keys(e[t]);for(let n=0,s=r.length;n<s;n++)if(r[n]===i)return!0}return!1}_injectDefinedName(i){const e=this._formulaCurrentConfigService.getExecuteUnitId();if(e==null)return{sequenceString:"",hasDefinedName:!1,definedNames:[]};const t=this._lexerTreeBuilder.getSequenceNode(i);let r="",n=!1;const s=[];for(let u=0,o=t.length;u<o;u++){const c=t[u];if(typeof c=="string"){r+=c;continue}const{nodeType:l,token:f}=c;if(l===Ue.REFERENCE||l===Ue.FUNCTION){const m=this._definedNamesService.getValueByName(e,f);if(m){let d=m.formulaOrRefString;d.substring(0,1)===G.EQUALS&&(d=d.substring(1)),r+=d,s.push(m.name),n=!0}else this._checkDefinedNameDirty(f)?(r+=h.NAME,n=!0,s.push(f)):r+=f}else r+=f}return{sequenceString:r,hasDefinedName:n,definedNames:s}}},L.Lexer=Io([In(0,Qt),In(1,O.Inject($r)),In(2,ct)],L.Lexer);function Ra(a,i,e,t,r){var s;const n=Object.keys(r);for(const u of n){const o=r[u],c=(s=o==null?void 0:o[t])==null?void 0:s[e];if(c==null)continue;const l=c.getValue(a,i);if(l!=null)return l}}const ko=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],$o={currency:2,date:4,datetime:5,error:11,fraction:7,general:0,grouped:11,number:1,percent:6,scientific:8,text:9,time:5,unknown:11};function Yo(a,i,e){var o,c;if(a==null||i==null)return i;const t=(e==null?void 0:e.getStyleByCell(a))||a.s,r=(e==null?void 0:e.getStyleByCell(i))||i.s;if(t==null||r==null||typeof t!="object"||typeof r!="object")return i;const n=(o=t==null?void 0:t.n)==null?void 0:o.pattern,s=(c=r==null?void 0:r.n)==null?void 0:c.pattern;if(n==null||s==null)return i;const u=n||s;return r.n.pattern=u,i}const kn=new rt(1e5);function pa(a){const i=kn.get(a);if(i!==void 0)return i;const e=Qo(a);return kn.set(a,e),e}function Ho(){kn.clear()}function Qo(a){if(Wo(a))return 3;const i=O.numfmt.getInfo(a).type||"unknown";return $o[i]}function Wo(a){return!!ko.find(i=>a.includes(i))&&a.startsWith("_(")}function Yr(a,i,e){if(a==="")return i;if(i==="")return a;const t=pa(a),r=pa(i);return e===G.PLUS||e===G.MINUS?t===4&&r===4||t===11&&r===11?"":i:e===G.MULTIPLY||e===G.DIVIDED?t===6&&r===6||t===7&&r===7||t===8&&r===8||t===9&&r===9?i:"":a||i}const Go=new Map([[O.LocaleType.EN_US,"$"],[O.LocaleType.RU_RU,"₽"],[O.LocaleType.VI_VN,"₫"],[O.LocaleType.ZH_CN,"¥"],[O.LocaleType.ZH_TW,"NT$"]]);function Na(a){return Go.get(a)||"$"}function ke(a,i=2){let e=i;i>127&&(e=127);let t="";return e>0&&(t=`.${"0".repeat(e)}`),`"${Na(a)}"#,##0${t}_);[Red]("${Na(a)}"#,##0${t})`}function qo(a,i,e=2){return O.numfmt.format(ke(a,e),i)}const $n=new rt(1e5);function Xo(a){let i=a;i.startsWith('"')&&i.endsWith('"')&&(i=i.slice(1,-1));const e=$n.get(i);if(e)return{isNumberPattern:!0,value:e.value,pattern:e.pattern};const t=O.numfmt.parseNumber(i);if(t)return Yn(i,t.v,t.z);const r=O.numfmt.parseDate(i);if(r)return Yn(i,r.v,r.z);const n=O.numfmt.parseTime(i);return n?Yn(i,n.v,n.z):{isNumberPattern:!1}}function Yn(a,i,e){return $n.set(a,{value:i,pattern:e}),{isNumberPattern:!0,value:i,pattern:e}}function Ko(){$n.clear()}class Hr{constructor(){C(this,"pattern","")}dispose(){}getPattern(){return this.pattern}setPattern(i){this.pattern=i}isError(){return!1}isAsyncObject(){return!1}isAsyncArrayObject(){return!1}isReferenceObject(){return!1}isArray(){return!1}isValueObject(){return!1}isEqualType(i){return!1}}class lt extends Hr{constructor(i){super(),this._rawValue=i}isValueObject(){return!0}toUnitRange(){return{range:{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1},sheetId:"",unitId:""}}getValue(){return 0}getArrayValue(){return[]}setValue(i){}setArrayValue(i){}isCube(){return!1}isString(){return!1}isNumber(){return!1}isBoolean(){return!1}isLambda(){return!1}isError(){return!1}isNull(){return!1}sum(){return g.create(h.VALUE)}max(){return g.create(h.VALUE)}min(){return g.create(h.VALUE)}count(){return g.create(h.VALUE)}countA(){return g.create(h.VALUE)}countBlank(){return g.create(h.VALUE)}getNegative(){return g.create(h.VALUE)}getReciprocal(){return g.create(h.VALUE)}plus(i){return g.create(h.VALUE)}minus(i){return g.create(h.VALUE)}multiply(i){return g.create(h.VALUE)}divided(i){return g.create(h.VALUE)}mod(i){return g.create(h.VALUE)}map(i){return g.create(h.NAME)}mapValue(i){return g.create(h.NAME)}compare(i,e,t=!1){return g.create(h.NAME)}isEqual(i){return this.compare(i,B.EQUALS)}isNotEqual(i){return this.compare(i,B.NOT_EQUAL)}isGreaterThanOrEqual(i){return this.compare(i,B.GREATER_THAN_OR_EQUAL)}isLessThanOrEqual(i){return this.compare(i,B.LESS_THAN_OR_EQUAL)}isLessThan(i){return this.compare(i,B.LESS_THAN)}isGreaterThan(i){return this.compare(i,B.GREATER_THAN)}concatenateFront(i){return g.create(h.NAME)}concatenateBack(i){return g.create(h.NAME)}plusBy(i){return g.create(h.VALUE)}minusBy(i){return g.create(h.VALUE)}multiplyBy(i){return g.create(h.VALUE)}dividedBy(i){return g.create(h.VALUE)}modInverse(i){return g.create(h.VALUE)}compareBy(i,e){return g.create(h.NAME)}concatenate(i,e=Xe.FRONT){let t=this.getValue().toString();if(typeof i=="string")e===Xe.FRONT?t=i+t:t+=i;else if(typeof i=="number")e===Xe.FRONT?t=i.toString()+t:t+=i.toString();else if(typeof i=="boolean"){const r=i?"TRUE":"FALSE";e===Xe.FRONT?t=r+t:t+=r}return t}pow(i){return g.create(h.VALUE)}powInverse(i){return g.create(h.VALUE)}sqrt(){return g.create(h.VALUE)}cbrt(){return g.create(h.VALUE)}cos(){return g.create(h.VALUE)}cosh(){return g.create(h.VALUE)}acos(){return g.create(h.VALUE)}acosh(){return g.create(h.VALUE)}sin(){return g.create(h.VALUE)}sinh(){return g.create(h.VALUE)}asin(){return g.create(h.VALUE)}asinh(){return g.create(h.VALUE)}tan(){return g.create(h.VALUE)}tanh(){return g.create(h.VALUE)}atan(){return g.create(h.VALUE)}atan2(i){return g.create(h.VALUE)}atan2Inverse(i){return g.create(h.VALUE)}atanh(){return g.create(h.VALUE)}mean(){return this}median(){return this}var(){return this}std(){return this}log(){return g.create(h.VALUE)}log10(){return g.create(h.VALUE)}exp(){return g.create(h.VALUE)}abs(){return g.create(h.VALUE)}round(i){return g.create(h.VALUE)}roundInverse(i){return g.create(h.VALUE)}floor(i){return g.create(h.VALUE)}floorInverse(i){return g.create(h.VALUE)}ceil(i){return g.create(h.VALUE)}ceilInverse(i){return g.create(h.VALUE)}convertToNumberObjectValue(){return g.create(h.VALUE)}convertToBooleanObjectValue(){return g.create(h.VALUE)}}const Zo=1e3,Va=new rt(Zo);class g extends lt{constructor(i,e=""){super(i),this._errorType=i,this._errorContent=e}static create(i,e=""){const t=`${i}-${e}`,r=Va.get(t);if(r)return r;const n=new g(i,e);return Va.set(t,n),n}getValue(){return this._errorType}getErrorType(){return this._errorType}getErrorContent(){return this._errorContent}isEqualType(i){return i.getErrorType()===this.getErrorType()}isError(){return!0}}function Hn(a){let i;switch(a){case B.EQUALS:i=B.EQUALS;break;case B.GREATER_THAN:i=B.LESS_THAN;break;case B.GREATER_THAN_OR_EQUAL:i=B.LESS_THAN_OR_EQUAL;break;case B.LESS_THAN:i=B.GREATER_THAN;break;case B.LESS_THAN_OR_EQUAL:i=B.GREATER_THAN_OR_EQUAL;break;case B.NOT_EQUAL:i=B.NOT_EQUAL;break}return i}var xt=(a=>(a[a.MIN=0]="MIN",a[a.MAX=1]="MAX",a))(xt||{}),De=(a=>(a[a.NORMAL=0]="NORMAL",a[a.MIN=1]="MIN",a[a.MAX=2]="MAX",a))(De||{});function Qr(){return Intl&&Intl.Collator?new Intl.Collator(void 0,{numeric:!1}).compare:(a,i)=>a.localeCompare(i)}function zo(a){return a.indexOf("*")>-1||a.indexOf("?")>-1}function Qn(a,i){const e=ec(i).replace(/~?[*?]/g,r=>r.startsWith("~")?`\\${r.substring(1)}`:r==="*"?".*":r==="?"?".":r);return new RegExp(`^${e}$`).test(a)}function Oa(a){return a.replace(/~?[*?]/g,i=>i.startsWith("~")?i.substring(1):" ")}function Jo(a,i,e){let t=!1;switch(e){case B.EQUALS:t=Qn(a,i);break;case B.NOT_EQUAL:t=!Qn(a,i);break;case B.GREATER_THAN:case B.GREATER_THAN_OR_EQUAL:t=Qn(a,i)||a>Oa(i);break;case B.LESS_THAN:case B.LESS_THAN_OR_EQUAL:t=a<Oa(i);break}return t}function ec(a){return a.replace(/[.+^${}()|[\]\\]/g,"\\$&")}function Wn(a){switch(a){case 1:return 2;case 0:return 0;case-1:return 1;default:return 0}}function Gn(a){return a===-2?1:0}/*!
2
2
  * decimal.js v10.4.3
3
3
  * An arbitrary-precision Decimal type for JavaScript.
4
4
  * https://github.com/MikeMcl/decimal.js
5
5
  * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>
6
6
  * MIT Licence
7
- */var EXP_LIMIT=9e15,MAX_DIGITS=1e9,NUMERALS="0123456789abcdef",LN10="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",PI="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",DEFAULTS={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-EXP_LIMIT,maxE:EXP_LIMIT,crypto:!1},inexact,quadrant,external=!0,decimalError="[DecimalError] ",invalidArgument=decimalError+"Invalid argument: ",precisionLimitExceeded=decimalError+"Precision limit exceeded",cryptoUnavailable=decimalError+"crypto unavailable",tag="[object Decimal]",mathfloor=Math.floor,mathpow=Math.pow,isBinary=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,isHex=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,isOctal=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,isDecimal=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,BASE=1e7,LOG_BASE=7,MAX_SAFE_INTEGER=9007199254740991,LN10_PRECISION=LN10.length-1,PI_PRECISION=PI.length-1,P={toStringTag:tag};P.absoluteValue=P.abs=function(){var x=new this.constructor(this);return x.s<0&&(x.s=1),finalise(x)},P.ceil=function(){return finalise(new this.constructor(this),this.e+1,2)},P.clampedTo=P.clamp=function(min2,max2){var k,x=this,Ctor=x.constructor;if(min2=new Ctor(min2),max2=new Ctor(max2),!min2.s||!max2.s)return new Ctor(NaN);if(min2.gt(max2))throw Error(invalidArgument+max2);return k=x.cmp(min2),k<0?min2:x.cmp(max2)>0?max2:new Ctor(x)},P.comparedTo=P.cmp=function(y){var i,j,xdL,ydL,x=this,xd=x.d,yd=(y=new x.constructor(y)).d,xs=x.s,ys=y.s;if(!xd||!yd)return!xs||!ys?NaN:xs!==ys?xs:xd===yd?0:!xd^xs<0?1:-1;if(!xd[0]||!yd[0])return xd[0]?xs:yd[0]?-ys:0;if(xs!==ys)return xs;if(x.e!==y.e)return x.e>y.e^xs<0?1:-1;for(xdL=xd.length,ydL=yd.length,i=0,j=xdL<ydL?xdL:ydL;i<j;++i)if(xd[i]!==yd[i])return xd[i]>yd[i]^xs<0?1:-1;return xdL===ydL?0:xdL>ydL^xs<0?1:-1},P.cosine=P.cos=function(){var pr,rm,x=this,Ctor=x.constructor;return x.d?x.d[0]?(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(x.e,x.sd())+LOG_BASE,Ctor.rounding=1,x=cosine(Ctor,toLessThanHalfPi(Ctor,x)),Ctor.precision=pr,Ctor.rounding=rm,finalise(quadrant==2||quadrant==3?x.neg():x,pr,rm,!0)):new Ctor(1):new Ctor(NaN)},P.cubeRoot=P.cbrt=function(){var e,m,n,r,rep,s,sd,t,t3,t3plusx,x=this,Ctor=x.constructor;if(!x.isFinite()||x.isZero())return new Ctor(x);for(external=!1,s=x.s*mathpow(x.s*x,1/3),!s||Math.abs(s)==1/0?(n=digitsToString(x.d),e=x.e,(s=(e-n.length+1)%3)&&(n+=s==1||s==-2?"0":"00"),s=mathpow(n,1/3),e=mathfloor((e+1)/3)-(e%3==(e<0?-1:2)),s==1/0?n="5e"+e:(n=s.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new Ctor(n),r.s=x.s):r=new Ctor(s.toString()),sd=(e=Ctor.precision)+3;;)if(t=r,t3=t.times(t).times(t),t3plusx=t3.plus(x),r=divide$1(t3plusx.plus(x).times(t),t3plusx.plus(t3),sd+2,1),digitsToString(t.d).slice(0,sd)===(n=digitsToString(r.d)).slice(0,sd))if(n=n.slice(sd-3,sd+1),n=="9999"||!rep&&n=="4999"){if(!rep&&(finalise(t,e+1,0),t.times(t).times(t).eq(x))){r=t;break}sd+=4,rep=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(finalise(r,e+1,1),m=!r.times(r).times(r).eq(x));break}return external=!0,finalise(r,e,Ctor.rounding,m)},P.decimalPlaces=P.dp=function(){var w,d=this.d,n=NaN;if(d){if(w=d.length-1,n=(w-mathfloor(this.e/LOG_BASE))*LOG_BASE,w=d[w],w)for(;w%10==0;w/=10)n--;n<0&&(n=0)}return n},P.dividedBy=P.div=function(y){return divide$1(this,new this.constructor(y))},P.dividedToIntegerBy=P.divToInt=function(y){var x=this,Ctor=x.constructor;return finalise(divide$1(x,new Ctor(y),0,1,1),Ctor.precision,Ctor.rounding)},P.equals=P.eq=function(y){return this.cmp(y)===0},P.floor=function(){return finalise(new this.constructor(this),this.e+1,3)},P.greaterThan=P.gt=function(y){return this.cmp(y)>0},P.greaterThanOrEqualTo=P.gte=function(y){var k=this.cmp(y);return k==1||k===0},P.hyperbolicCosine=P.cosh=function(){var k,n,pr,rm,len,x=this,Ctor=x.constructor,one=new Ctor(1);if(!x.isFinite())return new Ctor(x.s?1/0:NaN);if(x.isZero())return one;pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(x.e,x.sd())+4,Ctor.rounding=1,len=x.d.length,len<32?(k=Math.ceil(len/3),n=(1/tinyPow(4,k)).toString()):(k=16,n="2.3283064365386962890625e-10"),x=taylorSeries(Ctor,1,x.times(n),new Ctor(1),!0);for(var cosh2_x,i=k,d8=new Ctor(8);i--;)cosh2_x=x.times(x),x=one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));return finalise(x,Ctor.precision=pr,Ctor.rounding=rm,!0)},P.hyperbolicSine=P.sinh=function(){var k,pr,rm,len,x=this,Ctor=x.constructor;if(!x.isFinite()||x.isZero())return new Ctor(x);if(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(x.e,x.sd())+4,Ctor.rounding=1,len=x.d.length,len<3)x=taylorSeries(Ctor,2,x,x,!0);else{k=1.4*Math.sqrt(len),k=k>16?16:k|0,x=x.times(1/tinyPow(5,k)),x=taylorSeries(Ctor,2,x,x,!0);for(var sinh2_x,d5=new Ctor(5),d16=new Ctor(16),d20=new Ctor(20);k--;)sinh2_x=x.times(x),x=x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))))}return Ctor.precision=pr,Ctor.rounding=rm,finalise(x,pr,rm,!0)},P.hyperbolicTangent=P.tanh=function(){var pr,rm,x=this,Ctor=x.constructor;return x.isFinite()?x.isZero()?new Ctor(x):(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+7,Ctor.rounding=1,divide$1(x.sinh(),x.cosh(),Ctor.precision=pr,Ctor.rounding=rm)):new Ctor(x.s)},P.inverseCosine=P.acos=function(){var halfPi,x=this,Ctor=x.constructor,k=x.abs().cmp(1),pr=Ctor.precision,rm=Ctor.rounding;return k!==-1?k===0?x.isNeg()?getPi(Ctor,pr,rm):new Ctor(0):new Ctor(NaN):x.isZero()?getPi(Ctor,pr+4,rm).times(.5):(Ctor.precision=pr+6,Ctor.rounding=1,x=x.asin(),halfPi=getPi(Ctor,pr+4,rm).times(.5),Ctor.precision=pr,Ctor.rounding=rm,halfPi.minus(x))},P.inverseHyperbolicCosine=P.acosh=function(){var pr,rm,x=this,Ctor=x.constructor;return x.lte(1)?new Ctor(x.eq(1)?0:NaN):x.isFinite()?(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(Math.abs(x.e),x.sd())+4,Ctor.rounding=1,external=!1,x=x.times(x).minus(1).sqrt().plus(x),external=!0,Ctor.precision=pr,Ctor.rounding=rm,x.ln()):new Ctor(x)},P.inverseHyperbolicSine=P.asinh=function(){var pr,rm,x=this,Ctor=x.constructor;return!x.isFinite()||x.isZero()?new Ctor(x):(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+2*Math.max(Math.abs(x.e),x.sd())+6,Ctor.rounding=1,external=!1,x=x.times(x).plus(1).sqrt().plus(x),external=!0,Ctor.precision=pr,Ctor.rounding=rm,x.ln())},P.inverseHyperbolicTangent=P.atanh=function(){var pr,rm,wpr,xsd,x=this,Ctor=x.constructor;return x.isFinite()?x.e>=0?new Ctor(x.abs().eq(1)?x.s/0:x.isZero()?x:NaN):(pr=Ctor.precision,rm=Ctor.rounding,xsd=x.sd(),Math.max(xsd,pr)<2*-x.e-1?finalise(new Ctor(x),pr,rm,!0):(Ctor.precision=wpr=xsd-x.e,x=divide$1(x.plus(1),new Ctor(1).minus(x),wpr+pr,1),Ctor.precision=pr+4,Ctor.rounding=1,x=x.ln(),Ctor.precision=pr,Ctor.rounding=rm,x.times(.5))):new Ctor(NaN)},P.inverseSine=P.asin=function(){var halfPi,k,pr,rm,x=this,Ctor=x.constructor;return x.isZero()?new Ctor(x):(k=x.abs().cmp(1),pr=Ctor.precision,rm=Ctor.rounding,k!==-1?k===0?(halfPi=getPi(Ctor,pr+4,rm).times(.5),halfPi.s=x.s,halfPi):new Ctor(NaN):(Ctor.precision=pr+6,Ctor.rounding=1,x=x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan(),Ctor.precision=pr,Ctor.rounding=rm,x.times(2)))},P.inverseTangent=P.atan=function(){var i,j,k,n,px,t,r,wpr,x2,x=this,Ctor=x.constructor,pr=Ctor.precision,rm=Ctor.rounding;if(x.isFinite()){if(x.isZero())return new Ctor(x);if(x.abs().eq(1)&&pr+4<=PI_PRECISION)return r=getPi(Ctor,pr+4,rm).times(.25),r.s=x.s,r}else{if(!x.s)return new Ctor(NaN);if(pr+4<=PI_PRECISION)return r=getPi(Ctor,pr+4,rm).times(.5),r.s=x.s,r}for(Ctor.precision=wpr=pr+10,Ctor.rounding=1,k=Math.min(28,wpr/LOG_BASE+2|0),i=k;i;--i)x=x.div(x.times(x).plus(1).sqrt().plus(1));for(external=!1,j=Math.ceil(wpr/LOG_BASE),n=1,x2=x.times(x),r=new Ctor(x),px=x;i!==-1;)if(px=px.times(x2),t=r.minus(px.div(n+=2)),px=px.times(x2),r=t.plus(px.div(n+=2)),r.d[j]!==void 0)for(i=j;r.d[i]===t.d[i]&&i--;);return k&&(r=r.times(2<<k-1)),external=!0,finalise(r,Ctor.precision=pr,Ctor.rounding=rm,!0)},P.isFinite=function(){return!!this.d},P.isInteger=P.isInt=function(){return!!this.d&&mathfloor(this.e/LOG_BASE)>this.d.length-2},P.isNaN=function(){return!this.s},P.isNegative=P.isNeg=function(){return this.s<0},P.isPositive=P.isPos=function(){return this.s>0},P.isZero=function(){return!!this.d&&this.d[0]===0},P.lessThan=P.lt=function(y){return this.cmp(y)<0},P.lessThanOrEqualTo=P.lte=function(y){return this.cmp(y)<1},P.logarithm=P.log=function(base){var isBase10,d,denominator,k,inf,num,sd,r,arg=this,Ctor=arg.constructor,pr=Ctor.precision,rm=Ctor.rounding,guard=5;if(base==null)base=new Ctor(10),isBase10=!0;else{if(base=new Ctor(base),d=base.d,base.s<0||!d||!d[0]||base.eq(1))return new Ctor(NaN);isBase10=base.eq(10)}if(d=arg.d,arg.s<0||!d||!d[0]||arg.eq(1))return new Ctor(d&&!d[0]?-1/0:arg.s!=1?NaN:d?0:1/0);if(isBase10)if(d.length>1)inf=!0;else{for(k=d[0];k%10===0;)k/=10;inf=k!==1}if(external=!1,sd=pr+guard,num=naturalLogarithm(arg,sd),denominator=isBase10?getLn10(Ctor,sd+10):naturalLogarithm(base,sd),r=divide$1(num,denominator,sd,1),checkRoundingDigits(r.d,k=pr,rm))do if(sd+=10,num=naturalLogarithm(arg,sd),denominator=isBase10?getLn10(Ctor,sd+10):naturalLogarithm(base,sd),r=divide$1(num,denominator,sd,1),!inf){+digitsToString(r.d).slice(k+1,k+15)+1==1e14&&(r=finalise(r,pr+1,0));break}while(checkRoundingDigits(r.d,k+=10,rm));return external=!0,finalise(r,pr,rm)},P.minus=P.sub=function(y){var d,e,i,j,k,len,pr,rm,xd,xe,xLTy,yd,x=this,Ctor=x.constructor;if(y=new Ctor(y),!x.d||!y.d)return!x.s||!y.s?y=new Ctor(NaN):x.d?y.s=-y.s:y=new Ctor(y.d||x.s!==y.s?x:NaN),y;if(x.s!=y.s)return y.s=-y.s,x.plus(y);if(xd=x.d,yd=y.d,pr=Ctor.precision,rm=Ctor.rounding,!xd[0]||!yd[0]){if(yd[0])y.s=-y.s;else if(xd[0])y=new Ctor(x);else return new Ctor(rm===3?-0:0);return external?finalise(y,pr,rm):y}if(e=mathfloor(y.e/LOG_BASE),xe=mathfloor(x.e/LOG_BASE),xd=xd.slice(),k=xe-e,k){for(xLTy=k<0,xLTy?(d=xd,k=-k,len=yd.length):(d=yd,e=xe,len=xd.length),i=Math.max(Math.ceil(pr/LOG_BASE),len)+2,k>i&&(k=i,d.length=1),d.reverse(),i=k;i--;)d.push(0);d.reverse()}else{for(i=xd.length,len=yd.length,xLTy=i<len,xLTy&&(len=i),i=0;i<len;i++)if(xd[i]!=yd[i]){xLTy=xd[i]<yd[i];break}k=0}for(xLTy&&(d=xd,xd=yd,yd=d,y.s=-y.s),len=xd.length,i=yd.length-len;i>0;--i)xd[len++]=0;for(i=yd.length;i>k;){if(xd[--i]<yd[i]){for(j=i;j&&xd[--j]===0;)xd[j]=BASE-1;--xd[j],xd[i]+=BASE}xd[i]-=yd[i]}for(;xd[--len]===0;)xd.pop();for(;xd[0]===0;xd.shift())--e;return xd[0]?(y.d=xd,y.e=getBase10Exponent(xd,e),external?finalise(y,pr,rm):y):new Ctor(rm===3?-0:0)},P.modulo=P.mod=function(y){var q,x=this,Ctor=x.constructor;return y=new Ctor(y),!x.d||!y.s||y.d&&!y.d[0]?new Ctor(NaN):!y.d||x.d&&!x.d[0]?finalise(new Ctor(x),Ctor.precision,Ctor.rounding):(external=!1,Ctor.modulo==9?(q=divide$1(x,y.abs(),0,3,1),q.s*=y.s):q=divide$1(x,y,0,Ctor.modulo,1),q=q.times(y),external=!0,x.minus(q))},P.naturalExponential=P.exp=function(){return naturalExponential(this)},P.naturalLogarithm=P.ln=function(){return naturalLogarithm(this)},P.negated=P.neg=function(){var x=new this.constructor(this);return x.s=-x.s,finalise(x)},P.plus=P.add=function(y){var carry,d,e,i,k,len,pr,rm,xd,yd,x=this,Ctor=x.constructor;if(y=new Ctor(y),!x.d||!y.d)return!x.s||!y.s?y=new Ctor(NaN):x.d||(y=new Ctor(y.d||x.s===y.s?x:NaN)),y;if(x.s!=y.s)return y.s=-y.s,x.minus(y);if(xd=x.d,yd=y.d,pr=Ctor.precision,rm=Ctor.rounding,!xd[0]||!yd[0])return yd[0]||(y=new Ctor(x)),external?finalise(y,pr,rm):y;if(k=mathfloor(x.e/LOG_BASE),e=mathfloor(y.e/LOG_BASE),xd=xd.slice(),i=k-e,i){for(i<0?(d=xd,i=-i,len=yd.length):(d=yd,e=k,len=xd.length),k=Math.ceil(pr/LOG_BASE),len=k>len?k+1:len+1,i>len&&(i=len,d.length=1),d.reverse();i--;)d.push(0);d.reverse()}for(len=xd.length,i=yd.length,len-i<0&&(i=len,d=yd,yd=xd,xd=d),carry=0;i;)carry=(xd[--i]=xd[i]+yd[i]+carry)/BASE|0,xd[i]%=BASE;for(carry&&(xd.unshift(carry),++e),len=xd.length;xd[--len]==0;)xd.pop();return y.d=xd,y.e=getBase10Exponent(xd,e),external?finalise(y,pr,rm):y},P.precision=P.sd=function(z){var k,x=this;if(z!==void 0&&z!==!!z&&z!==1&&z!==0)throw Error(invalidArgument+z);return x.d?(k=getPrecision(x.d),z&&x.e+1>k&&(k=x.e+1)):k=NaN,k},P.round=function(){var x=this,Ctor=x.constructor;return finalise(new Ctor(x),x.e+1,Ctor.rounding)},P.sine=P.sin=function(){var pr,rm,x=this,Ctor=x.constructor;return x.isFinite()?x.isZero()?new Ctor(x):(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+Math.max(x.e,x.sd())+LOG_BASE,Ctor.rounding=1,x=sine(Ctor,toLessThanHalfPi(Ctor,x)),Ctor.precision=pr,Ctor.rounding=rm,finalise(quadrant>2?x.neg():x,pr,rm,!0)):new Ctor(NaN)},P.squareRoot=P.sqrt=function(){var m,n,sd,r,rep,t,x=this,d=x.d,e=x.e,s=x.s,Ctor=x.constructor;if(s!==1||!d||!d[0])return new Ctor(!s||s<0&&(!d||d[0])?NaN:d?x:1/0);for(external=!1,s=Math.sqrt(+x),s==0||s==1/0?(n=digitsToString(d),(n.length+e)%2==0&&(n+="0"),s=Math.sqrt(n),e=mathfloor((e+1)/2)-(e<0||e%2),s==1/0?n="5e"+e:(n=s.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new Ctor(n)):r=new Ctor(s.toString()),sd=(e=Ctor.precision)+3;;)if(t=r,r=t.plus(divide$1(x,t,sd+2,1)).times(.5),digitsToString(t.d).slice(0,sd)===(n=digitsToString(r.d)).slice(0,sd))if(n=n.slice(sd-3,sd+1),n=="9999"||!rep&&n=="4999"){if(!rep&&(finalise(t,e+1,0),t.times(t).eq(x))){r=t;break}sd+=4,rep=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(finalise(r,e+1,1),m=!r.times(r).eq(x));break}return external=!0,finalise(r,e,Ctor.rounding,m)},P.tangent=P.tan=function(){var pr,rm,x=this,Ctor=x.constructor;return x.isFinite()?x.isZero()?new Ctor(x):(pr=Ctor.precision,rm=Ctor.rounding,Ctor.precision=pr+10,Ctor.rounding=1,x=x.sin(),x.s=1,x=divide$1(x,new Ctor(1).minus(x.times(x)).sqrt(),pr+10,0),Ctor.precision=pr,Ctor.rounding=rm,finalise(quadrant==2||quadrant==4?x.neg():x,pr,rm,!0)):new Ctor(NaN)},P.times=P.mul=function(y){var carry,e,i,k,r,rL,t,xdL,ydL,x=this,Ctor=x.constructor,xd=x.d,yd=(y=new Ctor(y)).d;if(y.s*=x.s,!xd||!xd[0]||!yd||!yd[0])return new Ctor(!y.s||xd&&!xd[0]&&!yd||yd&&!yd[0]&&!xd?NaN:!xd||!yd?y.s/0:y.s*0);for(e=mathfloor(x.e/LOG_BASE)+mathfloor(y.e/LOG_BASE),xdL=xd.length,ydL=yd.length,xdL<ydL&&(r=xd,xd=yd,yd=r,rL=xdL,xdL=ydL,ydL=rL),r=[],rL=xdL+ydL,i=rL;i--;)r.push(0);for(i=ydL;--i>=0;){for(carry=0,k=xdL+i;k>i;)t=r[k]+yd[i]*xd[k-i-1]+carry,r[k--]=t%BASE|0,carry=t/BASE|0;r[k]=(r[k]+carry)%BASE|0}for(;!r[--rL];)r.pop();return carry?++e:r.shift(),y.d=r,y.e=getBase10Exponent(r,e),external?finalise(y,Ctor.precision,Ctor.rounding):y},P.toBinary=function(sd,rm){return toStringBinary(this,2,sd,rm)},P.toDecimalPlaces=P.toDP=function(dp,rm){var x=this,Ctor=x.constructor;return x=new Ctor(x),dp===void 0?x:(checkInt32(dp,0,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),finalise(x,dp+x.e+1,rm))},P.toExponential=function(dp,rm){var str,x=this,Ctor=x.constructor;return dp===void 0?str=finiteToString(x,!0):(checkInt32(dp,0,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),x=finalise(new Ctor(x),dp+1,rm),str=finiteToString(x,!0,dp+1)),x.isNeg()&&!x.isZero()?"-"+str:str},P.toFixed=function(dp,rm){var str,y,x=this,Ctor=x.constructor;return dp===void 0?str=finiteToString(x):(checkInt32(dp,0,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),y=finalise(new Ctor(x),dp+x.e+1,rm),str=finiteToString(y,!1,dp+y.e+1)),x.isNeg()&&!x.isZero()?"-"+str:str},P.toFraction=function(maxD){var d,d0,d1,d2,e,k,n,n0,n1,pr,q,r,x=this,xd=x.d,Ctor=x.constructor;if(!xd)return new Ctor(x);if(n1=d0=new Ctor(1),d1=n0=new Ctor(0),d=new Ctor(d1),e=d.e=getPrecision(xd)-x.e-1,k=e%LOG_BASE,d.d[0]=mathpow(10,k<0?LOG_BASE+k:k),maxD==null)maxD=e>0?d:n1;else{if(n=new Ctor(maxD),!n.isInt()||n.lt(n1))throw Error(invalidArgument+n);maxD=n.gt(d)?e>0?d:n1:n}for(external=!1,n=new Ctor(digitsToString(xd)),pr=Ctor.precision,Ctor.precision=e=xd.length*LOG_BASE*2;q=divide$1(n,d,0,1,1),d2=d0.plus(q.times(d1)),d2.cmp(maxD)!=1;)d0=d1,d1=d2,d2=n1,n1=n0.plus(q.times(d2)),n0=d2,d2=d,d=n.minus(q.times(d2)),n=d2;return d2=divide$1(maxD.minus(d0),d1,0,1,1),n0=n0.plus(d2.times(n1)),d0=d0.plus(d2.times(d1)),n0.s=n1.s=x.s,r=divide$1(n1,d1,e,1).minus(x).abs().cmp(divide$1(n0,d0,e,1).minus(x).abs())<1?[n1,d1]:[n0,d0],Ctor.precision=pr,external=!0,r},P.toHexadecimal=P.toHex=function(sd,rm){return toStringBinary(this,16,sd,rm)},P.toNearest=function(y,rm){var x=this,Ctor=x.constructor;if(x=new Ctor(x),y==null){if(!x.d)return x;y=new Ctor(1),rm=Ctor.rounding}else{if(y=new Ctor(y),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),!x.d)return y.s?x:y;if(!y.d)return y.s&&(y.s=x.s),y}return y.d[0]?(external=!1,x=divide$1(x,y,0,rm,1).times(y),external=!0,finalise(x)):(y.s=x.s,x=y),x},P.toNumber=function(){return+this},P.toOctal=function(sd,rm){return toStringBinary(this,8,sd,rm)},P.toPower=P.pow=function(y){var e,k,pr,r,rm,s,x=this,Ctor=x.constructor,yn=+(y=new Ctor(y));if(!x.d||!y.d||!x.d[0]||!y.d[0])return new Ctor(mathpow(+x,yn));if(x=new Ctor(x),x.eq(1))return x;if(pr=Ctor.precision,rm=Ctor.rounding,y.eq(1))return finalise(x,pr,rm);if(e=mathfloor(y.e/LOG_BASE),e>=y.d.length-1&&(k=yn<0?-yn:yn)<=MAX_SAFE_INTEGER)return r=intPow(Ctor,x,k,pr),y.s<0?new Ctor(1).div(r):finalise(r,pr,rm);if(s=x.s,s<0){if(e<y.d.length-1)return new Ctor(NaN);if(y.d[e]&1||(s=1),x.e==0&&x.d[0]==1&&x.d.length==1)return x.s=s,x}return k=mathpow(+x,yn),e=k==0||!isFinite(k)?mathfloor(yn*(Math.log("0."+digitsToString(x.d))/Math.LN10+x.e+1)):new Ctor(k+"").e,e>Ctor.maxE+1||e<Ctor.minE-1?new Ctor(e>0?s/0:0):(external=!1,Ctor.rounding=x.s=1,k=Math.min(12,(e+"").length),r=naturalExponential(y.times(naturalLogarithm(x,pr+k)),pr),r.d&&(r=finalise(r,pr+5,1),checkRoundingDigits(r.d,pr,rm)&&(e=pr+10,r=finalise(naturalExponential(y.times(naturalLogarithm(x,e+k)),e),e+5,1),+digitsToString(r.d).slice(pr+1,pr+15)+1==1e14&&(r=finalise(r,pr+1,0)))),r.s=s,external=!0,Ctor.rounding=rm,finalise(r,pr,rm))},P.toPrecision=function(sd,rm){var str,x=this,Ctor=x.constructor;return sd===void 0?str=finiteToString(x,x.e<=Ctor.toExpNeg||x.e>=Ctor.toExpPos):(checkInt32(sd,1,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8),x=finalise(new Ctor(x),sd,rm),str=finiteToString(x,sd<=x.e||x.e<=Ctor.toExpNeg,sd)),x.isNeg()&&!x.isZero()?"-"+str:str},P.toSignificantDigits=P.toSD=function(sd,rm){var x=this,Ctor=x.constructor;return sd===void 0?(sd=Ctor.precision,rm=Ctor.rounding):(checkInt32(sd,1,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8)),finalise(new Ctor(x),sd,rm)},P.toString=function(){var x=this,Ctor=x.constructor,str=finiteToString(x,x.e<=Ctor.toExpNeg||x.e>=Ctor.toExpPos);return x.isNeg()&&!x.isZero()?"-"+str:str},P.truncated=P.trunc=function(){return finalise(new this.constructor(this),this.e+1,1)},P.valueOf=P.toJSON=function(){var x=this,Ctor=x.constructor,str=finiteToString(x,x.e<=Ctor.toExpNeg||x.e>=Ctor.toExpPos);return x.isNeg()?"-"+str:str};function digitsToString(d){var i,k,ws,indexOfLastWord=d.length-1,str="",w=d[0];if(indexOfLastWord>0){for(str+=w,i=1;i<indexOfLastWord;i++)ws=d[i]+"",k=LOG_BASE-ws.length,k&&(str+=getZeroString(k)),str+=ws;w=d[i],ws=w+"",k=LOG_BASE-ws.length,k&&(str+=getZeroString(k))}else if(w===0)return"0";for(;w%10===0;)w/=10;return str+w}__name(digitsToString,"digitsToString");function checkInt32(i,min2,max2){if(i!==~~i||i<min2||i>max2)throw Error(invalidArgument+i)}__name(checkInt32,"checkInt32");function checkRoundingDigits(d,i,rm,repeating){var di,k,r,rd;for(k=d[0];k>=10;k/=10)--i;return--i<0?(i+=LOG_BASE,di=0):(di=Math.ceil((i+1)/LOG_BASE),i%=LOG_BASE),k=mathpow(10,LOG_BASE-i),rd=d[di]%k|0,repeating==null?i<3?(i==0?rd=rd/100|0:i==1&&(rd=rd/10|0),r=rm<4&&rd==99999||rm>3&&rd==49999||rd==5e4||rd==0):r=(rm<4&&rd+1==k||rm>3&&rd+1==k/2)&&(d[di+1]/k/100|0)==mathpow(10,i-2)-1||(rd==k/2||rd==0)&&(d[di+1]/k/100|0)==0:i<4?(i==0?rd=rd/1e3|0:i==1?rd=rd/100|0:i==2&&(rd=rd/10|0),r=(repeating||rm<4)&&rd==9999||!repeating&&rm>3&&rd==4999):r=((repeating||rm<4)&&rd+1==k||!repeating&&rm>3&&rd+1==k/2)&&(d[di+1]/k/1e3|0)==mathpow(10,i-3)-1,r}__name(checkRoundingDigits,"checkRoundingDigits");function convertBase(str,baseIn,baseOut){for(var j,arr=[0],arrL,i=0,strL=str.length;i<strL;){for(arrL=arr.length;arrL--;)arr[arrL]*=baseIn;for(arr[0]+=NUMERALS.indexOf(str.charAt(i++)),j=0;j<arr.length;j++)arr[j]>baseOut-1&&(arr[j+1]===void 0&&(arr[j+1]=0),arr[j+1]+=arr[j]/baseOut|0,arr[j]%=baseOut)}return arr.reverse()}__name(convertBase,"convertBase");function cosine(Ctor,x){var k,len,y;if(x.isZero())return x;len=x.d.length,len<32?(k=Math.ceil(len/3),y=(1/tinyPow(4,k)).toString()):(k=16,y="2.3283064365386962890625e-10"),Ctor.precision+=k,x=taylorSeries(Ctor,1,x.times(y),new Ctor(1));for(var i=k;i--;){var cos2x=x.times(x);x=cos2x.times(cos2x).minus(cos2x).times(8).plus(1)}return Ctor.precision-=k,x}__name(cosine,"cosine");var divide$1=function(){function multiplyInteger(x,k,base){var temp,carry=0,i=x.length;for(x=x.slice();i--;)temp=x[i]*k+carry,x[i]=temp%base|0,carry=temp/base|0;return carry&&x.unshift(carry),x}__name(multiplyInteger,"multiplyInteger");function compare(a,b,aL,bL){var i,r;if(aL!=bL)r=aL>bL?1:-1;else for(i=r=0;i<aL;i++)if(a[i]!=b[i]){r=a[i]>b[i]?1:-1;break}return r}__name(compare,"compare");function subtract(a,b,aL,base){for(var i=0;aL--;)a[aL]-=i,i=a[aL]<b[aL]?1:0,a[aL]=i*base+a[aL]-b[aL];for(;!a[0]&&a.length>1;)a.shift()}return __name(subtract,"subtract"),function(x,y,pr,rm,dp,base){var cmp,e,i,k,logBase,more,prod,prodL,q,qd,rem,remL,rem0,sd,t,xi,xL,yd0,yL,yz,Ctor=x.constructor,sign2=x.s==y.s?1:-1,xd=x.d,yd=y.d;if(!xd||!xd[0]||!yd||!yd[0])return new Ctor(!x.s||!y.s||(xd?yd&&xd[0]==yd[0]:!yd)?NaN:xd&&xd[0]==0||!yd?sign2*0:sign2/0);for(base?(logBase=1,e=x.e-y.e):(base=BASE,logBase=LOG_BASE,e=mathfloor(x.e/logBase)-mathfloor(y.e/logBase)),yL=yd.length,xL=xd.length,q=new Ctor(sign2),qd=q.d=[],i=0;yd[i]==(xd[i]||0);i++);if(yd[i]>(xd[i]||0)&&e--,pr==null?(sd=pr=Ctor.precision,rm=Ctor.rounding):dp?sd=pr+(x.e-y.e)+1:sd=pr,sd<0)qd.push(1),more=!0;else{if(sd=sd/logBase+2|0,i=0,yL==1){for(k=0,yd=yd[0],sd++;(i<xL||k)&&sd--;i++)t=k*base+(xd[i]||0),qd[i]=t/yd|0,k=t%yd|0;more=k||i<xL}else{for(k=base/(yd[0]+1)|0,k>1&&(yd=multiplyInteger(yd,k,base),xd=multiplyInteger(xd,k,base),yL=yd.length,xL=xd.length),xi=yL,rem=xd.slice(0,yL),remL=rem.length;remL<yL;)rem[remL++]=0;yz=yd.slice(),yz.unshift(0),yd0=yd[0],yd[1]>=base/2&&++yd0;do k=0,cmp=compare(yd,rem,yL,remL),cmp<0?(rem0=rem[0],yL!=remL&&(rem0=rem0*base+(rem[1]||0)),k=rem0/yd0|0,k>1?(k>=base&&(k=base-1),prod=multiplyInteger(yd,k,base),prodL=prod.length,remL=rem.length,cmp=compare(prod,rem,prodL,remL),cmp==1&&(k--,subtract(prod,yL<prodL?yz:yd,prodL,base))):(k==0&&(cmp=k=1),prod=yd.slice()),prodL=prod.length,prodL<remL&&prod.unshift(0),subtract(rem,prod,remL,base),cmp==-1&&(remL=rem.length,cmp=compare(yd,rem,yL,remL),cmp<1&&(k++,subtract(rem,yL<remL?yz:yd,remL,base))),remL=rem.length):cmp===0&&(k++,rem=[0]),qd[i++]=k,cmp&&rem[0]?rem[remL++]=xd[xi]||0:(rem=[xd[xi]],remL=1);while((xi++<xL||rem[0]!==void 0)&&sd--);more=rem[0]!==void 0}qd[0]||qd.shift()}if(logBase==1)q.e=e,inexact=more;else{for(i=1,k=qd[0];k>=10;k/=10)i++;q.e=i+e*logBase-1,finalise(q,dp?pr+q.e+1:pr,rm,more)}return q}}();function finalise(x,sd,rm,isTruncated){var digits,i,j,k,rd,roundUp,w,xd,xdi,Ctor=x.constructor;out:if(sd!=null){if(xd=x.d,!xd)return x;for(digits=1,k=xd[0];k>=10;k/=10)digits++;if(i=sd-digits,i<0)i+=LOG_BASE,j=sd,w=xd[xdi=0],rd=w/mathpow(10,digits-j-1)%10|0;else if(xdi=Math.ceil((i+1)/LOG_BASE),k=xd.length,xdi>=k)if(isTruncated){for(;k++<=xdi;)xd.push(0);w=rd=0,digits=1,i%=LOG_BASE,j=i-LOG_BASE+1}else break out;else{for(w=k=xd[xdi],digits=1;k>=10;k/=10)digits++;i%=LOG_BASE,j=i-LOG_BASE+digits,rd=j<0?0:w/mathpow(10,digits-j-1)%10|0}if(isTruncated=isTruncated||sd<0||xd[xdi+1]!==void 0||(j<0?w:w%mathpow(10,digits-j-1)),roundUp=rm<4?(rd||isTruncated)&&(rm==0||rm==(x.s<0?3:2)):rd>5||rd==5&&(rm==4||isTruncated||rm==6&&(i>0?j>0?w/mathpow(10,digits-j):0:xd[xdi-1])%10&1||rm==(x.s<0?8:7)),sd<1||!xd[0])return xd.length=0,roundUp?(sd-=x.e+1,xd[0]=mathpow(10,(LOG_BASE-sd%LOG_BASE)%LOG_BASE),x.e=-sd||0):xd[0]=x.e=0,x;if(i==0?(xd.length=xdi,k=1,xdi--):(xd.length=xdi+1,k=mathpow(10,LOG_BASE-i),xd[xdi]=j>0?(w/mathpow(10,digits-j)%mathpow(10,j)|0)*k:0),roundUp)for(;;)if(xdi==0){for(i=1,j=xd[0];j>=10;j/=10)i++;for(j=xd[0]+=k,k=1;j>=10;j/=10)k++;i!=k&&(x.e++,xd[0]==BASE&&(xd[0]=1));break}else{if(xd[xdi]+=k,xd[xdi]!=BASE)break;xd[xdi--]=0,k=1}for(i=xd.length;xd[--i]===0;)xd.pop()}return external&&(x.e>Ctor.maxE?(x.d=null,x.e=NaN):x.e<Ctor.minE&&(x.e=0,x.d=[0])),x}__name(finalise,"finalise");function finiteToString(x,isExp,sd){if(!x.isFinite())return nonFiniteToString(x);var k,e=x.e,str=digitsToString(x.d),len=str.length;return isExp?(sd&&(k=sd-len)>0?str=str.charAt(0)+"."+str.slice(1)+getZeroString(k):len>1&&(str=str.charAt(0)+"."+str.slice(1)),str=str+(x.e<0?"e":"e+")+x.e):e<0?(str="0."+getZeroString(-e-1)+str,sd&&(k=sd-len)>0&&(str+=getZeroString(k))):e>=len?(str+=getZeroString(e+1-len),sd&&(k=sd-e-1)>0&&(str=str+"."+getZeroString(k))):((k=e+1)<len&&(str=str.slice(0,k)+"."+str.slice(k)),sd&&(k=sd-len)>0&&(e+1===len&&(str+="."),str+=getZeroString(k))),str}__name(finiteToString,"finiteToString");function getBase10Exponent(digits,e){var w=digits[0];for(e*=LOG_BASE;w>=10;w/=10)e++;return e}__name(getBase10Exponent,"getBase10Exponent");function getLn10(Ctor,sd,pr){if(sd>LN10_PRECISION)throw external=!0,pr&&(Ctor.precision=pr),Error(precisionLimitExceeded);return finalise(new Ctor(LN10),sd,1,!0)}__name(getLn10,"getLn10");function getPi(Ctor,sd,rm){if(sd>PI_PRECISION)throw Error(precisionLimitExceeded);return finalise(new Ctor(PI),sd,rm,!0)}__name(getPi,"getPi");function getPrecision(digits){var w=digits.length-1,len=w*LOG_BASE+1;if(w=digits[w],w){for(;w%10==0;w/=10)len--;for(w=digits[0];w>=10;w/=10)len++}return len}__name(getPrecision,"getPrecision");function getZeroString(k){for(var zs="";k--;)zs+="0";return zs}__name(getZeroString,"getZeroString");function intPow(Ctor,x,n,pr){var isTruncated,r=new Ctor(1),k=Math.ceil(pr/LOG_BASE+4);for(external=!1;;){if(n%2&&(r=r.times(x),truncate(r.d,k)&&(isTruncated=!0)),n=mathfloor(n/2),n===0){n=r.d.length-1,isTruncated&&r.d[n]===0&&++r.d[n];break}x=x.times(x),truncate(x.d,k)}return external=!0,r}__name(intPow,"intPow");function isOdd(n){return n.d[n.d.length-1]&1}__name(isOdd,"isOdd");function maxOrMin(Ctor,args,ltgt){for(var y,x=new Ctor(args[0]),i=0;++i<args.length;)if(y=new Ctor(args[i]),y.s)x[ltgt](y)&&(x=y);else{x=y;break}return x}__name(maxOrMin,"maxOrMin");function naturalExponential(x,sd){var denominator,guard,j,pow2,sum2,t,wpr,rep=0,i=0,k=0,Ctor=x.constructor,rm=Ctor.rounding,pr=Ctor.precision;if(!x.d||!x.d[0]||x.e>17)return new Ctor(x.d?x.d[0]?x.s<0?0:1/0:1:x.s?x.s<0?0:x:NaN);for(sd==null?(external=!1,wpr=pr):wpr=sd,t=new Ctor(.03125);x.e>-2;)x=x.times(t),k+=5;for(guard=Math.log(mathpow(2,k))/Math.LN10*2+5|0,wpr+=guard,denominator=pow2=sum2=new Ctor(1),Ctor.precision=wpr;;){if(pow2=finalise(pow2.times(x),wpr,1),denominator=denominator.times(++i),t=sum2.plus(divide$1(pow2,denominator,wpr,1)),digitsToString(t.d).slice(0,wpr)===digitsToString(sum2.d).slice(0,wpr)){for(j=k;j--;)sum2=finalise(sum2.times(sum2),wpr,1);if(sd==null)if(rep<3&&checkRoundingDigits(sum2.d,wpr-guard,rm,rep))Ctor.precision=wpr+=10,denominator=pow2=t=new Ctor(1),i=0,rep++;else return finalise(sum2,Ctor.precision=pr,rm,external=!0);else return Ctor.precision=pr,sum2}sum2=t}}__name(naturalExponential,"naturalExponential");function naturalLogarithm(y,sd){var c,c0,denominator,e,numerator,rep,sum2,t,wpr,x1,x2,n=1,guard=10,x=y,xd=x.d,Ctor=x.constructor,rm=Ctor.rounding,pr=Ctor.precision;if(x.s<0||!xd||!xd[0]||!x.e&&xd[0]==1&&xd.length==1)return new Ctor(xd&&!xd[0]?-1/0:x.s!=1?NaN:xd?0:x);if(sd==null?(external=!1,wpr=pr):wpr=sd,Ctor.precision=wpr+=guard,c=digitsToString(xd),c0=c.charAt(0),Math.abs(e=x.e)<15e14){for(;c0<7&&c0!=1||c0==1&&c.charAt(1)>3;)x=x.times(y),c=digitsToString(x.d),c0=c.charAt(0),n++;e=x.e,c0>1?(x=new Ctor("0."+c),e++):x=new Ctor(c0+"."+c.slice(1))}else return t=getLn10(Ctor,wpr+2,pr).times(e+""),x=naturalLogarithm(new Ctor(c0+"."+c.slice(1)),wpr-guard).plus(t),Ctor.precision=pr,sd==null?finalise(x,pr,rm,external=!0):x;for(x1=x,sum2=numerator=x=divide$1(x.minus(1),x.plus(1),wpr,1),x2=finalise(x.times(x),wpr,1),denominator=3;;){if(numerator=finalise(numerator.times(x2),wpr,1),t=sum2.plus(divide$1(numerator,new Ctor(denominator),wpr,1)),digitsToString(t.d).slice(0,wpr)===digitsToString(sum2.d).slice(0,wpr))if(sum2=sum2.times(2),e!==0&&(sum2=sum2.plus(getLn10(Ctor,wpr+2,pr).times(e+""))),sum2=divide$1(sum2,new Ctor(n),wpr,1),sd==null)if(checkRoundingDigits(sum2.d,wpr-guard,rm,rep))Ctor.precision=wpr+=guard,t=numerator=x=divide$1(x1.minus(1),x1.plus(1),wpr,1),x2=finalise(x.times(x),wpr,1),denominator=rep=1;else return finalise(sum2,Ctor.precision=pr,rm,external=!0);else return Ctor.precision=pr,sum2;sum2=t,denominator+=2}}__name(naturalLogarithm,"naturalLogarithm");function nonFiniteToString(x){return String(x.s*x.s/0)}__name(nonFiniteToString,"nonFiniteToString");function parseDecimal(x,str){var e,i,len;for((e=str.indexOf("."))>-1&&(str=str.replace(".","")),(i=str.search(/e/i))>0?(e<0&&(e=i),e+=+str.slice(i+1),str=str.substring(0,i)):e<0&&(e=str.length),i=0;str.charCodeAt(i)===48;i++);for(len=str.length;str.charCodeAt(len-1)===48;--len);if(str=str.slice(i,len),str){if(len-=i,x.e=e=e-i-1,x.d=[],i=(e+1)%LOG_BASE,e<0&&(i+=LOG_BASE),i<len){for(i&&x.d.push(+str.slice(0,i)),len-=LOG_BASE;i<len;)x.d.push(+str.slice(i,i+=LOG_BASE));str=str.slice(i),i=LOG_BASE-str.length}else i-=len;for(;i--;)str+="0";x.d.push(+str),external&&(x.e>x.constructor.maxE?(x.d=null,x.e=NaN):x.e<x.constructor.minE&&(x.e=0,x.d=[0]))}else x.e=0,x.d=[0];return x}__name(parseDecimal,"parseDecimal");function parseOther(x,str){var base,Ctor,divisor,i,isFloat,len,p,xd,xe;if(str.indexOf("_")>-1){if(str=str.replace(/(\d)_(?=\d)/g,"$1"),isDecimal.test(str))return parseDecimal(x,str)}else if(str==="Infinity"||str==="NaN")return+str||(x.s=NaN),x.e=NaN,x.d=null,x;if(isHex.test(str))base=16,str=str.toLowerCase();else if(isBinary.test(str))base=2;else if(isOctal.test(str))base=8;else throw Error(invalidArgument+str);for(i=str.search(/p/i),i>0?(p=+str.slice(i+1),str=str.substring(2,i)):str=str.slice(2),i=str.indexOf("."),isFloat=i>=0,Ctor=x.constructor,isFloat&&(str=str.replace(".",""),len=str.length,i=len-i,divisor=intPow(Ctor,new Ctor(base),i,i*2)),xd=convertBase(str,base,BASE),xe=xd.length-1,i=xe;xd[i]===0;--i)xd.pop();return i<0?new Ctor(x.s*0):(x.e=getBase10Exponent(xd,xe),x.d=xd,external=!1,isFloat&&(x=divide$1(x,divisor,len*4)),p&&(x=x.times(Math.abs(p)<54?mathpow(2,p):Decimal$1.pow(2,p))),external=!0,x)}__name(parseOther,"parseOther");function sine(Ctor,x){var k,len=x.d.length;if(len<3)return x.isZero()?x:taylorSeries(Ctor,2,x,x);k=1.4*Math.sqrt(len),k=k>16?16:k|0,x=x.times(1/tinyPow(5,k)),x=taylorSeries(Ctor,2,x,x);for(var sin2_x,d5=new Ctor(5),d16=new Ctor(16),d20=new Ctor(20);k--;)sin2_x=x.times(x),x=x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));return x}__name(sine,"sine");function taylorSeries(Ctor,n,x,y,isHyperbolic){var j,t,u,x2,pr=Ctor.precision,k=Math.ceil(pr/LOG_BASE);for(external=!1,x2=x.times(x),u=new Ctor(y);;){if(t=divide$1(u.times(x2),new Ctor(n++*n++),pr,1),u=isHyperbolic?y.plus(t):y.minus(t),y=divide$1(t.times(x2),new Ctor(n++*n++),pr,1),t=u.plus(y),t.d[k]!==void 0){for(j=k;t.d[j]===u.d[j]&&j--;);if(j==-1)break}j=u,u=y,y=t,t=j}return external=!0,t.d.length=k+1,t}__name(taylorSeries,"taylorSeries");function tinyPow(b,e){for(var n=b;--e;)n*=b;return n}__name(tinyPow,"tinyPow");function toLessThanHalfPi(Ctor,x){var t,isNeg=x.s<0,pi=getPi(Ctor,Ctor.precision,1),halfPi=pi.times(.5);if(x=x.abs(),x.lte(halfPi))return quadrant=isNeg?4:1,x;if(t=x.divToInt(pi),t.isZero())quadrant=isNeg?3:2;else{if(x=x.minus(t.times(pi)),x.lte(halfPi))return quadrant=isOdd(t)?isNeg?2:3:isNeg?4:1,x;quadrant=isOdd(t)?isNeg?1:4:isNeg?3:2}return x.minus(pi).abs()}__name(toLessThanHalfPi,"toLessThanHalfPi");function toStringBinary(x,baseOut,sd,rm){var base,e,i,k,len,roundUp,str,xd,y,Ctor=x.constructor,isExp=sd!==void 0;if(isExp?(checkInt32(sd,1,MAX_DIGITS),rm===void 0?rm=Ctor.rounding:checkInt32(rm,0,8)):(sd=Ctor.precision,rm=Ctor.rounding),!x.isFinite())str=nonFiniteToString(x);else{for(str=finiteToString(x),i=str.indexOf("."),isExp?(base=2,baseOut==16?sd=sd*4-3:baseOut==8&&(sd=sd*3-2)):base=baseOut,i>=0&&(str=str.replace(".",""),y=new Ctor(1),y.e=str.length-i,y.d=convertBase(finiteToString(y),10,base),y.e=y.d.length),xd=convertBase(str,10,base),e=len=xd.length;xd[--len]==0;)xd.pop();if(!xd[0])str=isExp?"0p+0":"0";else{if(i<0?e--:(x=new Ctor(x),x.d=xd,x.e=e,x=divide$1(x,y,sd,rm,0,base),xd=x.d,e=x.e,roundUp=inexact),i=xd[sd],k=base/2,roundUp=roundUp||xd[sd+1]!==void 0,roundUp=rm<4?(i!==void 0||roundUp)&&(rm===0||rm===(x.s<0?3:2)):i>k||i===k&&(rm===4||roundUp||rm===6&&xd[sd-1]&1||rm===(x.s<0?8:7)),xd.length=sd,roundUp)for(;++xd[--sd]>base-1;)xd[sd]=0,sd||(++e,xd.unshift(1));for(len=xd.length;!xd[len-1];--len);for(i=0,str="";i<len;i++)str+=NUMERALS.charAt(xd[i]);if(isExp){if(len>1)if(baseOut==16||baseOut==8){for(i=baseOut==16?4:3,--len;len%i;len++)str+="0";for(xd=convertBase(str,base,baseOut),len=xd.length;!xd[len-1];--len);for(i=1,str="1.";i<len;i++)str+=NUMERALS.charAt(xd[i])}else str=str.charAt(0)+"."+str.slice(1);str=str+(e<0?"p":"p+")+e}else if(e<0){for(;++e;)str="0"+str;str="0."+str}else if(++e>len)for(e-=len;e--;)str+="0";else e<len&&(str=str.slice(0,e)+"."+str.slice(e))}str=(baseOut==16?"0x":baseOut==2?"0b":baseOut==8?"0o":"")+str}return x.s<0?"-"+str:str}__name(toStringBinary,"toStringBinary");function truncate(arr,len){if(arr.length>len)return arr.length=len,!0}__name(truncate,"truncate");function abs(x){return new this(x).abs()}__name(abs,"abs");function acos(x){return new this(x).acos()}__name(acos,"acos");function acosh(x){return new this(x).acosh()}__name(acosh,"acosh");function add(x,y){return new this(x).plus(y)}__name(add,"add");function asin(x){return new this(x).asin()}__name(asin,"asin");function asinh(x){return new this(x).asinh()}__name(asinh,"asinh");function atan(x){return new this(x).atan()}__name(atan,"atan");function atanh(x){return new this(x).atanh()}__name(atanh,"atanh");function atan2(y,x){y=new this(y),x=new this(x);var r,pr=this.precision,rm=this.rounding,wpr=pr+4;return!y.s||!x.s?r=new this(NaN):!y.d&&!x.d?(r=getPi(this,wpr,1).times(x.s>0?.25:.75),r.s=y.s):!x.d||y.isZero()?(r=x.s<0?getPi(this,pr,rm):new this(0),r.s=y.s):!y.d||x.isZero()?(r=getPi(this,wpr,1).times(.5),r.s=y.s):x.s<0?(this.precision=wpr,this.rounding=1,r=this.atan(divide$1(y,x,wpr,1)),x=getPi(this,wpr,1),this.precision=pr,this.rounding=rm,r=y.s<0?r.minus(x):r.plus(x)):r=this.atan(divide$1(y,x,wpr,1)),r}__name(atan2,"atan2");function cbrt(x){return new this(x).cbrt()}__name(cbrt,"cbrt");function ceil$1(x){return finalise(x=new this(x),x.e+1,2)}__name(ceil$1,"ceil$1");function clamp(x,min2,max2){return new this(x).clamp(min2,max2)}__name(clamp,"clamp");function config(obj){if(!obj||typeof obj!="object")throw Error(decimalError+"Object expected");var i,p,v,useDefaults=obj.defaults===!0,ps=["precision",1,MAX_DIGITS,"rounding",0,8,"toExpNeg",-EXP_LIMIT,0,"toExpPos",0,EXP_LIMIT,"maxE",0,EXP_LIMIT,"minE",-EXP_LIMIT,0,"modulo",0,9];for(i=0;i<ps.length;i+=3)if(p=ps[i],useDefaults&&(this[p]=DEFAULTS[p]),(v=obj[p])!==void 0)if(mathfloor(v)===v&&v>=ps[i+1]&&v<=ps[i+2])this[p]=v;else throw Error(invalidArgument+p+": "+v);if(p="crypto",useDefaults&&(this[p]=DEFAULTS[p]),(v=obj[p])!==void 0)if(v===!0||v===!1||v===0||v===1)if(v)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[p]=!0;else throw Error(cryptoUnavailable);else this[p]=!1;else throw Error(invalidArgument+p+": "+v);return this}__name(config,"config");function cos(x){return new this(x).cos()}__name(cos,"cos");function cosh(x){return new this(x).cosh()}__name(cosh,"cosh");function clone(obj){var i,p,ps;function Decimal2(v){var e,i2,t,x=this;if(!(x instanceof Decimal2))return new Decimal2(v);if(x.constructor=Decimal2,isDecimalInstance(v)){x.s=v.s,external?!v.d||v.e>Decimal2.maxE?(x.e=NaN,x.d=null):v.e<Decimal2.minE?(x.e=0,x.d=[0]):(x.e=v.e,x.d=v.d.slice()):(x.e=v.e,x.d=v.d?v.d.slice():v.d);return}if(t=typeof v,t==="number"){if(v===0){x.s=1/v<0?-1:1,x.e=0,x.d=[0];return}if(v<0?(v=-v,x.s=-1):x.s=1,v===~~v&&v<1e7){for(e=0,i2=v;i2>=10;i2/=10)e++;external?e>Decimal2.maxE?(x.e=NaN,x.d=null):e<Decimal2.minE?(x.e=0,x.d=[0]):(x.e=e,x.d=[v]):(x.e=e,x.d=[v]);return}else if(v*0!==0){v||(x.s=NaN),x.e=NaN,x.d=null;return}return parseDecimal(x,v.toString())}else if(t!=="string")throw Error(invalidArgument+v);return(i2=v.charCodeAt(0))===45?(v=v.slice(1),x.s=-1):(i2===43&&(v=v.slice(1)),x.s=1),isDecimal.test(v)?parseDecimal(x,v):parseOther(x,v)}if(__name(Decimal2,"Decimal"),Decimal2.prototype=P,Decimal2.ROUND_UP=0,Decimal2.ROUND_DOWN=1,Decimal2.ROUND_CEIL=2,Decimal2.ROUND_FLOOR=3,Decimal2.ROUND_HALF_UP=4,Decimal2.ROUND_HALF_DOWN=5,Decimal2.ROUND_HALF_EVEN=6,Decimal2.ROUND_HALF_CEIL=7,Decimal2.ROUND_HALF_FLOOR=8,Decimal2.EUCLID=9,Decimal2.config=Decimal2.set=config,Decimal2.clone=clone,Decimal2.isDecimal=isDecimalInstance,Decimal2.abs=abs,Decimal2.acos=acos,Decimal2.acosh=acosh,Decimal2.add=add,Decimal2.asin=asin,Decimal2.asinh=asinh,Decimal2.atan=atan,Decimal2.atanh=atanh,Decimal2.atan2=atan2,Decimal2.cbrt=cbrt,Decimal2.ceil=ceil$1,Decimal2.clamp=clamp,Decimal2.cos=cos,Decimal2.cosh=cosh,Decimal2.div=div,Decimal2.exp=exp,Decimal2.floor=floor$1,Decimal2.hypot=hypot,Decimal2.ln=ln,Decimal2.log=log,Decimal2.log10=log10,Decimal2.log2=log2,Decimal2.max=max,Decimal2.min=min,Decimal2.mod=mod$1,Decimal2.mul=mul,Decimal2.pow=pow$1,Decimal2.random=random,Decimal2.round=round$1,Decimal2.sign=sign,Decimal2.sin=sin,Decimal2.sinh=sinh,Decimal2.sqrt=sqrt$1,Decimal2.sub=sub,Decimal2.sum=sum,Decimal2.tan=tan,Decimal2.tanh=tanh,Decimal2.trunc=trunc,obj===void 0&&(obj={}),obj&&obj.defaults!==!0)for(ps=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],i=0;i<ps.length;)obj.hasOwnProperty(p=ps[i++])||(obj[p]=this[p]);return Decimal2.config(obj),Decimal2}__name(clone,"clone");function div(x,y){return new this(x).div(y)}__name(div,"div");function exp(x){return new this(x).exp()}__name(exp,"exp");function floor$1(x){return finalise(x=new this(x),x.e+1,3)}__name(floor$1,"floor$1");function hypot(){var i,n,t=new this(0);for(external=!1,i=0;i<arguments.length;)if(n=new this(arguments[i++]),n.d)t.d&&(t=t.plus(n.times(n)));else{if(n.s)return external=!0,new this(1/0);t=n}return external=!0,t.sqrt()}__name(hypot,"hypot");function isDecimalInstance(obj){return obj instanceof Decimal$1||obj&&obj.toStringTag===tag||!1}__name(isDecimalInstance,"isDecimalInstance");function ln(x){return new this(x).ln()}__name(ln,"ln");function log(x,y){return new this(x).log(y)}__name(log,"log");function log2(x){return new this(x).log(2)}__name(log2,"log2");function log10(x){return new this(x).log(10)}__name(log10,"log10");function max(){return maxOrMin(this,arguments,"lt")}__name(max,"max");function min(){return maxOrMin(this,arguments,"gt")}__name(min,"min");function mod$1(x,y){return new this(x).mod(y)}__name(mod$1,"mod$1");function mul(x,y){return new this(x).mul(y)}__name(mul,"mul");function pow$1(x,y){return new this(x).pow(y)}__name(pow$1,"pow$1");function random(sd){var d,e,k,n,i=0,r=new this(1),rd=[];if(sd===void 0?sd=this.precision:checkInt32(sd,1,MAX_DIGITS),k=Math.ceil(sd/LOG_BASE),this.crypto)if(crypto.getRandomValues)for(d=crypto.getRandomValues(new Uint32Array(k));i<k;)n=d[i],n>=429e7?d[i]=crypto.getRandomValues(new Uint32Array(1))[0]:rd[i++]=n%1e7;else if(crypto.randomBytes){for(d=crypto.randomBytes(k*=4);i<k;)n=d[i]+(d[i+1]<<8)+(d[i+2]<<16)+((d[i+3]&127)<<24),n>=214e7?crypto.randomBytes(4).copy(d,i):(rd.push(n%1e7),i+=4);i=k/4}else throw Error(cryptoUnavailable);else for(;i<k;)rd[i++]=Math.random()*1e7|0;for(k=rd[--i],sd%=LOG_BASE,k&&sd&&(n=mathpow(10,LOG_BASE-sd),rd[i]=(k/n|0)*n);rd[i]===0;i--)rd.pop();if(i<0)e=0,rd=[0];else{for(e=-1;rd[0]===0;e-=LOG_BASE)rd.shift();for(k=1,n=rd[0];n>=10;n/=10)k++;k<LOG_BASE&&(e-=LOG_BASE-k)}return r.e=e,r.d=rd,r}__name(random,"random");function round$1(x){return finalise(x=new this(x),x.e+1,this.rounding)}__name(round$1,"round$1");function sign(x){return x=new this(x),x.d?x.d[0]?x.s:0*x.s:x.s||NaN}__name(sign,"sign");function sin(x){return new this(x).sin()}__name(sin,"sin");function sinh(x){return new this(x).sinh()}__name(sinh,"sinh");function sqrt$1(x){return new this(x).sqrt()}__name(sqrt$1,"sqrt$1");function sub(x,y){return new this(x).sub(y)}__name(sub,"sub");function sum(){var i=0,args=arguments,x=new this(args[i]);for(external=!1;x.s&&++i<args.length;)x=x.plus(args[i]);return external=!0,finalise(x,this.precision,this.rounding)}__name(sum,"sum");function tan(x){return new this(x).tan()}__name(tan,"tan");function tanh(x){return new this(x).tanh()}__name(tanh,"tanh");function trunc(x){return finalise(x=new this(x),x.e+1,1)}__name(trunc,"trunc"),P[Symbol.for("nodejs.util.inspect.custom")]=P.toString,P[Symbol.toStringTag]="Decimal";var Decimal$1=P.constructor=clone(DEFAULTS);LN10=new Decimal$1(LN10),PI=new Decimal$1(PI);function plus(a,b){const result=a+b;return Number.isSafeInteger(result)?result:new Decimal$1(a).add(b).toNumber()}__name(plus,"plus");function minus(a,b){const result=a-b;return Number.isSafeInteger(result)?result:new Decimal$1(a).sub(b).toNumber()}__name(minus,"minus");function multiply(a,b){const result=a*b;return Number.isSafeInteger(result)?result:new Decimal$1(a).mul(b).toNumber()}__name(multiply,"multiply");function divide(a,b){const result=a/b;return Number.isSafeInteger(result)?result:new Decimal$1(a).div(b).toNumber()}__name(divide,"divide");function round(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.round(multiply(base,factor)+epsilon)/factor}__name(round,"round");function floor(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.floor(multiply(base,factor)+epsilon)/factor}__name(floor,"floor");function ceil(base,precision){const factor=10**Math.trunc(precision),epsilon=baseEpsilon(base,factor);return Math.ceil(multiply(base,factor)-epsilon)/factor}__name(ceil,"ceil");function baseEpsilon(base,factor){return Number.EPSILON*Math.max(1,Math.abs(multiply(base,factor)))}__name(baseEpsilon,"baseEpsilon");function mod(base,divisor){return base-divisor*Math.floor(base/divisor)}__name(mod,"mod");function pow(base,exponent){return base**exponent}__name(pow,"pow");function sqrt(base){return Math.sqrt(base)}__name(sqrt,"sqrt");function equals(a,b){return a===b}__name(equals,"equals");function greaterThan(a,b){return a>b}__name(greaterThan,"greaterThan");function greaterThanOrEquals(a,b){return a>=b}__name(greaterThanOrEquals,"greaterThanOrEquals");function lessThan(a,b){return a<b}__name(lessThan,"lessThan");function lessThanOrEquals(a,b){return a<=b}__name(lessThanOrEquals,"lessThanOrEquals");function strip(num,precision=15){return Number.parseFloat(num.toPrecision(precision))}__name(strip,"strip");function withinErrorMargin(left,right,tolerance=Number.EPSILON){return Math.abs(left-right)<tolerance}__name(withinErrorMargin,"withinErrorMargin");function stripErrorMargin(num,precision=12,tolerance=1e-10){const stripResult=strip(num,precision);return withinErrorMargin(num,stripResult,tolerance)?stripResult:strip(num)}__name(stripErrorMargin,"stripErrorMargin");function getFractionalPart(num){return num-Math.trunc(num)}__name(getFractionalPart,"getFractionalPart");const _NullValueObject=class _NullValueObject extends BaseValueObject{static create(){return this._instance=this._instance||new _NullValueObject(0),this._instance}isNull(){return!0}plus(valueObject){return NumberValueObject.create(0).plus(valueObject)}minus(valueObject){return NumberValueObject.create(0).minus(valueObject)}multiply(valueObject){return NumberValueObject.create(0).multiply(valueObject)}divided(valueObject){return NumberValueObject.create(0).divided(valueObject)}mod(valueObject){return NumberValueObject.create(0).mod(valueObject)}compare(valueObject,operator){return valueObject.isString()?StringValueObject.create("").compare(valueObject,operator):valueObject.isBoolean()?BooleanValueObject.create(!1).compare(valueObject,operator):NumberValueObject.create(0).compare(valueObject,operator)}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(StringValueObject.create("")):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(StringValueObject.create("")):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}plusBy(value){return NumberValueObject.create(0).plusBy(value)}minusBy(value){return NumberValueObject.create(0).minusBy(value)}multiplyBy(value){return NumberValueObject.create(0).multiplyBy(value)}dividedBy(value){return NumberValueObject.create(0).dividedBy(value)}compareBy(value,operator){return typeof value=="string"?StringValueObject.create("").compareBy(value,operator):typeof value=="boolean"?BooleanValueObject.create(!1).compareBy(value,operator):NumberValueObject.create(0).compareBy(value,operator)}pow(valueObject){return NumberValueObject.create(0).pow(valueObject)}sqrt(){return NumberValueObject.create(0).sqrt()}cbrt(){return NumberValueObject.create(0).cbrt()}cos(){return NumberValueObject.create(0).cos()}cosh(){return NumberValueObject.create(0).cosh()}acos(){return NumberValueObject.create(0).acos()}acosh(){return NumberValueObject.create(0).acosh()}sin(){return NumberValueObject.create(0).sin()}sinh(){return NumberValueObject.create(0).sinh()}asin(){return NumberValueObject.create(0).asin()}asinh(){return NumberValueObject.create(0).asinh()}tan(){return NumberValueObject.create(0).tan()}tanh(){return NumberValueObject.create(0).tanh()}atan(){return NumberValueObject.create(0).atan()}atan2(valueObject){return NumberValueObject.create(0).atan2(valueObject)}atanh(){return NumberValueObject.create(0).atanh()}log(){return ErrorValueObject.create(ErrorType$1.NUM)}log10(){return ErrorValueObject.create(ErrorType$1.NUM)}exp(){return NumberValueObject.create(0).exp()}abs(){return NumberValueObject.create(0).abs()}round(valueObject){return NumberValueObject.create(0).round(valueObject)}floor(valueObject){return NumberValueObject.create(0).floor(valueObject)}ceil(valueObject){return NumberValueObject.create(0).ceil(valueObject)}convertToNumberObjectValue(){return NumberValueObject.create(0)}convertToBooleanObjectValue(){return BooleanValueObject.create(!1)}};__name(_NullValueObject,"NullValueObject"),__publicField(_NullValueObject,"_instance");let NullValueObject=_NullValueObject;const _BooleanValueObject=class _BooleanValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value",!1);this._value=rawValue}static create(value){return value?(this._instanceTrue=this._instanceTrue||new _BooleanValueObject(!0),this._instanceTrue):(this._instanceFalse=this._instanceFalse||new _BooleanValueObject(!1),this._instanceFalse)}getValue(){return this._value}isBoolean(){return!0}getNegative(){const currentValue=this.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(-result)}getReciprocal(){return this.getValue()?NumberValueObject.create(1):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO)}plus(valueObject){return this._convertToNumber().plus(valueObject)}minus(valueObject){return this._convertToNumber().minus(valueObject)}multiply(valueObject){return this._convertToNumber().multiply(valueObject)}divided(valueObject){return this._convertToNumber().divided(valueObject)}mod(valueObject){return this._convertToNumber().mod(valueObject)}compare(valueObject,operator){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator)):valueObject.isNull()?this._convertToNumber().compare(valueObject,operator):this.compareBy(valueObject.getValue(),operator)}compareBy(value,operator){let result=!1;if(typeof value=="string"||typeof value=="number")result=this._compareString(operator);else if(typeof value=="boolean"){const booleanNumber=NumberValueObject.create(value?1:0);return this._convertToNumber().compare(booleanNumber,operator)}return _BooleanValueObject.create(result)}_compareString(operator){switch(operator){case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!0;case compareToken.EQUALS:case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!1}}concatenateFront(valueObject){return this._convertToNumber().concatenateFront(valueObject)}concatenateBack(valueObject){return this._convertToNumber().concatenateBack(valueObject)}_convertToNumber(){const currentValue=this.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(result)}pow(valueObject){return this._convertToNumber().pow(valueObject)}sqrt(){return this._convertToNumber().sqrt()}cbrt(){return this._convertToNumber().cbrt()}cos(){return this._convertToNumber().cos()}cosh(){return this._convertToNumber().cosh()}acos(){return this._convertToNumber().acos()}acosh(){return this._convertToNumber().acosh()}sin(){return this._convertToNumber().sin()}sinh(){return this._convertToNumber().sinh()}asin(){return this._convertToNumber().asin()}asinh(){return this._convertToNumber().asinh()}tan(){return this._convertToNumber().tan()}tanh(){return this._convertToNumber().tanh()}atan(){return this._convertToNumber().atan()}atan2(valueObject){return this._convertToNumber().atan2(valueObject)}atanh(){return this._convertToNumber().atanh()}log(){return this._convertToNumber().log()}log10(){return this._convertToNumber().log10()}exp(){return this._convertToNumber().exp()}abs(){return this._convertToNumber().abs()}round(valueObject){return this._convertToNumber().round(valueObject)}floor(valueObject){return this._convertToNumber().floor(valueObject)}ceil(valueObject){return this._convertToNumber().ceil(valueObject)}convertToNumberObjectValue(){return createNumberValueObjectByRawValue(this.getValue())}convertToBooleanObjectValue(){return this}};__name(_BooleanValueObject,"BooleanValueObject"),__publicField(_BooleanValueObject,"_instanceTrue"),__publicField(_BooleanValueObject,"_instanceFalse");let BooleanValueObject=_BooleanValueObject;const NUMBER_CACHE_LRU_COUNT=2e5,NumberValueObjectCache=new FormulaAstLRU(NUMBER_CACHE_LRU_COUNT),_NumberValueObject=class _NumberValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value",0);this._value=Number(rawValue)}static create(value,pattern=""){const key=`${value}-${pattern}`,cached=NumberValueObjectCache.get(key);if(cached)return cached;const instance=new _NumberValueObject(value);return pattern&&instance.setPattern(pattern),NumberValueObjectCache.set(key,instance),instance}getValue(){return this._value}setValue(value){this._value=value}isNumber(){return!0}getNegative(){return _NumberValueObject.create(0).minus(this)}getReciprocal(){return _NumberValueObject.create(1).divided(this)}plus(valueObject){if(valueObject.isArray())return valueObject.plus(this);let object=this.plusBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.PLUS);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}equalZero(){return this._value===0}minus(valueObject){if(valueObject.isArray()){const o=valueObject.getNegative();return o.isError()?o:o.plus(this)}let object=this.minusBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.MINUS);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}multiply(valueObject){if(valueObject.isArray())return valueObject.multiply(this);let object=this.multiplyBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.MULTIPLY);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}divided(valueObject){if(valueObject.isArray()){const o=valueObject.getReciprocal();return o.isError()?o:o.multiply(this)}let object=this.dividedBy(valueObject.getValue());if(object.isError())return object;const pattern=comparePatternPriority(this.getPattern(),valueObject.getPattern(),operatorToken.DIVIDED);return object=_NumberValueObject.create(Number(object.getValue()),pattern),object}mod(valueObject){if(valueObject.isArray())return valueObject.modInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(valueObject.isNull())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(!Number.isFinite(currentValue)||!Number.isFinite(value)||Math.abs(value)*11259e8<=Math.abs(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=mod(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}if(typeof value=="boolean"){const booleanValue=value?1:0;return booleanValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):_NumberValueObject.create(mod(currentValue,booleanValue))}return this}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(this):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(this):StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}compare(valueObject,operator){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator)):this.compareBy(valueObject.getValue(),operator)}plusBy(value){const currentValue=+this.getValue(),_value=+value;if(Number.isNaN(currentValue)||Number.isNaN(_value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(_value))return ErrorValueObject.create(ErrorType$1.NUM);const result=plus(currentValue,_value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}minusBy(value){const currentValue=+this.getValue(),_value=+value;if(Number.isNaN(currentValue)||Number.isNaN(_value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(_value))return ErrorValueObject.create(ErrorType$1.NUM);const result=minus(currentValue,_value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}multiplyBy(value){const currentValue=+this.getValue(),_value=+value;if(Number.isNaN(currentValue)||Number.isNaN(_value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(_value))return ErrorValueObject.create(ErrorType$1.NUM);const result=multiply(currentValue,_value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}dividedBy(value){const currentValue=+this.getValue(),_value=+value;if(Number.isNaN(currentValue)||Number.isNaN(_value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(_value))return ErrorValueObject.create(ErrorType$1.NUM);if(_value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=divide(currentValue,_value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}compareBy(value,operator){const currentValue=this.getValue();let result=!1;return typeof value=="string"?result=this._compareString(operator):typeof value=="number"?result=this._compareNumber(currentValue,value,operator):typeof value=="boolean"&&(result=this._compareBoolean(operator)),BooleanValueObject.create(result)}_compareString(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}_compareNumber(currentValue,value,operator){return!Number.isFinite(currentValue)||!Number.isFinite(value)?this._compareInfinity(currentValue,value,operator):this._compareFiniteNumber(currentValue,value,operator)}_compareFiniteNumber(currentValue,value,operator){switch(operator){case compareToken.EQUALS:return equals(currentValue,value);case compareToken.GREATER_THAN:return greaterThan(currentValue,value);case compareToken.GREATER_THAN_OR_EQUAL:return greaterThanOrEquals(currentValue,value);case compareToken.LESS_THAN:return lessThan(currentValue,value);case compareToken.LESS_THAN_OR_EQUAL:return lessThanOrEquals(currentValue,value);case compareToken.NOT_EQUAL:return!equals(currentValue,value)}}_compareBoolean(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}pow(valueObject){if(valueObject.isArray())return valueObject.powInverse(this);if(this.isError())return this;const currentValue=this.getValue();let _valueObject=valueObject;if(valueObject.isString()&&(_valueObject=valueObject.convertToNumberObjectValue()),_valueObject.isError())return _valueObject;const value=+_valueObject.getValue();if(Number.isNaN(value))return ErrorValueObject.create(ErrorType$1.VALUE);if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);if(currentValue===0)return value<0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):value===0?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(0);const result=pow(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}sqrt(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=sqrt(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cbrt(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cbrt(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cos(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cos(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}cosh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.cosh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}acos(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.acos(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}acosh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.acosh(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}sin(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sin(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}sinh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sinh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}asin(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.asin(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}asinh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.asinh(currentValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):_NumberValueObject.create(result)}tan(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.tan(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}tanh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.tanh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}atan(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.atan(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}atan2(valueObject){if(valueObject.isArray())return valueObject.atan2Inverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);if(currentValue===0&&value===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.atan2(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(Math.atan2(currentValue,value?1:0)):this}atanh(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.atanh(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}log(){const currentValue=this.getValue();if(typeof currentValue=="number"&&currentValue<=0||!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}log10(){const currentValue=this.getValue();if(typeof currentValue=="number"&&currentValue<=0||!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log10(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}exp(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.exp(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}abs(){const currentValue=this.getValue();if(!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.abs(currentValue);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}round(valueObject){if(valueObject.isArray())return valueObject.roundInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-round(Math.abs(currentValue),value):round(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(round(currentValue,value?1:0)):this}floor(valueObject){if(valueObject.isArray())return valueObject.floorInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-floor(Math.abs(currentValue),value):floor(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(floor(currentValue,value?1:0)):this}ceil(valueObject){if(valueObject.isArray())return valueObject.ceilInverse(this);const currentValue=this.getValue(),value=valueObject.getValue();if(typeof value=="string")return ErrorValueObject.create(ErrorType$1.VALUE);if(typeof value=="number"){if(!Number.isFinite(currentValue)||!Number.isFinite(value))return ErrorValueObject.create(ErrorType$1.NUM);const result=currentValue<0?-ceil(Math.abs(currentValue),value):ceil(currentValue,value);return Number.isFinite(result)?_NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NUM)}return typeof value=="boolean"?_NumberValueObject.create(ceil(currentValue,value?1:0)):this}convertToNumberObjectValue(){return this}convertToBooleanObjectValue(){return createBooleanValueObjectByRawValue(!0)}_compareInfinity(currentValue,value,operator){let result=!1;switch(operator){case compareToken.EQUALS:result=currentValue===value;break;case compareToken.GREATER_THAN:result=currentValue>value;break;case compareToken.GREATER_THAN_OR_EQUAL:result=currentValue>=value;break;case compareToken.LESS_THAN:result=currentValue<value;break;case compareToken.LESS_THAN_OR_EQUAL:result=currentValue<=value;break;case compareToken.NOT_EQUAL:result=currentValue!==value;break}return result}};__name(_NumberValueObject,"NumberValueObject");let NumberValueObject=_NumberValueObject;const STRING_CACHE_LRU_COUNT=2e5,StringValueObjectCache=new FormulaAstLRU(STRING_CACHE_LRU_COUNT),_StringValueObject=class _StringValueObject extends BaseValueObject{constructor(rawValue){super(rawValue);__publicField(this,"_value");this._value=rawValue}static create(value){const cached=StringValueObjectCache.get(value);if(cached)return cached;const instance=new _StringValueObject(value);return StringValueObjectCache.set(value,instance),instance}getValue(){return this._value}isString(){return!0}concatenateFront(valueObject){return valueObject.isArray()?valueObject.concatenateBack(this):_StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.FRONT))}concatenateBack(valueObject){return valueObject.isArray()?valueObject.concatenateFront(this):_StringValueObject.create(this.concatenate(valueObject.getValue(),ConcatenateType.BACK))}plus(valueObject){return this.convertToNumberObjectValue().plus(valueObject)}minus(valueObject){return this.convertToNumberObjectValue().minus(valueObject)}multiply(valueObject){return this.convertToNumberObjectValue().multiply(valueObject)}divided(valueObject){return this.convertToNumberObjectValue().divided(valueObject)}compare(valueObject,operator,isCaseSensitive){return valueObject.isArray()?valueObject.compare(this,reverseCompareOperator(operator),isCaseSensitive):this.compareBy(valueObject.getValue(),operator,isCaseSensitive)}compareBy(value,operator,isCaseSensitive=!1){let currentValue=this.getValue(),result=!1;if(typeof value=="string"){let _value=value;if(isCaseSensitive||(currentValue=currentValue.toLocaleLowerCase(),_value=_value.toLocaleLowerCase()),isWildcard(_value))return this._checkWildcard(_value,operator);result=this._compareString(currentValue,_value,operator)}else typeof value=="number"?result=this._compareNumber(operator):typeof value=="boolean"&&(result=this._compareBoolean(operator));return BooleanValueObject.create(result)}_compareString(currentValue,value,operator){switch(operator){case compareToken.EQUALS:return currentValue===value;case compareToken.GREATER_THAN:return currentValue>value;case compareToken.GREATER_THAN_OR_EQUAL:return currentValue>=value;case compareToken.LESS_THAN:return currentValue<value;case compareToken.LESS_THAN_OR_EQUAL:return currentValue<=value;case compareToken.NOT_EQUAL:return currentValue!==value}}_compareNumber(operator){switch(operator){case compareToken.NOT_EQUAL:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!0;case compareToken.EQUALS:case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:return!1}}_compareBoolean(operator){switch(operator){case compareToken.EQUALS:case compareToken.GREATER_THAN:case compareToken.GREATER_THAN_OR_EQUAL:return!1;case compareToken.LESS_THAN:case compareToken.LESS_THAN_OR_EQUAL:case compareToken.NOT_EQUAL:return!0}}convertToNumberObjectValue(){return createNumberValueObjectByRawValue(this.getValue())}convertToBooleanObjectValue(){return BooleanValueObject.create(!0)}_checkWildcard(value,operator){const currentValue=this.getValue().toLocaleLowerCase(),result=compareWithWildcard(currentValue,value,operator);return BooleanValueObject.create(result)}};__name(_StringValueObject,"StringValueObject");let StringValueObject=_StringValueObject;function createBooleanValueObjectByRawValue(rawValue){if(typeof rawValue=="boolean")return BooleanValueObject.create(rawValue);let value=!1;if(typeof rawValue=="string"){const rawValueUpper=rawValue.toLocaleUpperCase();rawValueUpper===BooleanValue.TRUE?value=!0:rawValueUpper===BooleanValue.FALSE&&(value=!1)}else rawValue===1?value=!0:value=!1;return BooleanValueObject.create(value)}__name(createBooleanValueObjectByRawValue,"createBooleanValueObjectByRawValue");function createStringValueObjectByRawValue(rawValue){let value=rawValue.toString();return value.charAt(0)==='"'&&value.charAt(value.length-1)==='"'&&(value=value.slice(1,-1),value=value.replace(/""/g,'"')),StringValueObject.create(value)}__name(createStringValueObjectByRawValue,"createStringValueObjectByRawValue");function createNumberValueObjectByRawValue(rawValue,pattern=""){if(typeof rawValue=="boolean"){let result=0;return rawValue&&(result=1),NumberValueObject.create(result,pattern)}else{if(typeof rawValue=="number")return Number.isFinite(rawValue)?NumberValueObject.create(rawValue,pattern):ErrorValueObject.create(ErrorType$1.NUM);if(core.isRealNum(rawValue))return NumberValueObject.create(Number(rawValue),pattern)}return ErrorValueObject.create(ErrorType$1.VALUE)}__name(createNumberValueObjectByRawValue,"createNumberValueObjectByRawValue");function fromObjectToString(array){return""}__name(fromObjectToString,"fromObjectToString");function transformToValueObject(array=[]){const arrayValueList=[];for(let r=0;r<array.length;r++){const row=array[r];arrayValueList[r]==null&&(arrayValueList[r]=[]);for(let c=0;c<row.length;c++){const cell=row[c];arrayValueList[r][c]=ValueObjectFactory.create(cell)}}return arrayValueList}__name(transformToValueObject,"transformToValueObject");function transformToValue(array=[]){const arrayValueList=[];for(let r=0;r<array.length;r++){const row=array[r];arrayValueList[r]==null&&(arrayValueList[r]=[]);for(let c=0;c<row.length;c++){const cell=row[c];cell==null?arrayValueList[r][c]=null:cell.isError()?arrayValueList[r][c]=cell.getErrorType():arrayValueList[r][c]=cell.getValue()}}return arrayValueList}__name(transformToValue,"transformToValue");const _ArrayValueObject=class _ArrayValueObject extends BaseValueObject{constructor(rawValue){super(typeof rawValue=="string"?rawValue:fromObjectToString());__publicField(this,"_values",[]);__publicField(this,"_rowCount",-1);__publicField(this,"_columnCount",-1);__publicField(this,"_unitId","");__publicField(this,"_sheetId","");__publicField(this,"_currentRow",-1);__publicField(this,"_currentColumn",-1);__publicField(this,"_sliceCache",new Map);__publicField(this,"_flattenCache");__publicField(this,"_defaultValue",null);__publicField(this,"_flattenPosition");this._values=this._formatValue(rawValue)}static create(rawValue){return new _ArrayValueObject(rawValue)}static createByArray(array){const arrayValueObjectData={calculateValueList:transformToValueObject(array),rowCount:array.length,columnCount:array[0].length||0,unitId:"",sheetId:"",row:-1,column:-1};return new _ArrayValueObject(arrayValueObjectData)}dispose(){this._values.forEach(cells=>{cells.forEach(cell=>{cell==null||cell.dispose()})}),this._values=[],this._clearCache()}clone(){return this.map(o=>o)}getRowCount(){return this._rowCount}setRowCount(rowCount){this._rowCount=rowCount}getColumnCount(){return this._columnCount}setColumnCount(columnCount){this._columnCount=columnCount}setCurrent(row,column){this._currentRow=row,this._currentColumn=column}setUnitId(unitId){this._unitId=unitId}getUnitId(){return this._unitId}setSheetId(sheetId){this._sheetId=sheetId}getSheetId(){return this._sheetId}getCurrentRow(){return this._currentRow}getCurrentColumn(){return this._currentColumn}getArrayValue(){return this._values}setArrayValue(value){this._clearCache(),this._values=value}isArray(){return!0}setDefaultValue(value){this._defaultValue=value}get(row,column){var _a2;return((_a2=this._values[row])==null?void 0:_a2[column])||this._defaultValue}getRealValue(row,column){const rowValues=this._values[row];if(rowValues==null)return null;const v=rowValues[column];return v==null?null:v}getValueOrDefault(row,column){return this.get(row,column)||this._defaultValue}set(row,column,value){if(row>=this._rowCount||column>=this._columnCount)throw new Error("Exceeding array bounds.");this._clearCache(),this._values[row][column]=value}getRangePosition(){const rowCount=this.getRowCount(),startColumn=0,columnCount=this.getColumnCount();return{startRow:0,endRow:rowCount-1,startColumn,endColumn:columnCount-1}}iterator(callback){var _a2;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),valueList=this.getArrayValue();for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++)if(callback(((_a2=valueList[r])==null?void 0:_a2[c])||this._defaultValue,r,c)===!1)return}iteratorReverse(callback){var _a2;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),valueList=this.getArrayValue();for(let r=endRow;r>=startRow;r--)for(let c=endColumn;c>=startColumn;c--)if(callback(((_a2=valueList[r])==null?void 0:_a2[c])||this._defaultValue,r,c)===!1)return}getLastTruePosition(){let rangeSingle;return this.iteratorReverse((value,rowIndex,columnIndex)=>{if(value!=null&&value.isBoolean()&&value.getValue()===!0)return rangeSingle={row:rowIndex,column:columnIndex},!1}),rangeSingle}getFirstTruePosition(){let rangeSingle;return this.iterator((value,rowIndex,columnIndex)=>{if(value!=null&&value.isBoolean()&&value.getValue()===!0)return rangeSingle={row:rowIndex,column:columnIndex},!1}),rangeSingle}getFirstCell(){const{startRow,startColumn}=this.getRangePosition();return this.get(startRow,startColumn)||this._defaultValue||NullValueObject.create()}getLastCell(){const{endRow,endColumn}=this.getRangePosition();return this.get(endRow,endColumn)||this._defaultValue||NullValueObject.create()}pick(takeArray){const newValue=this.pickRaw(takeArray);return this._createNewArray(newValue,1,newValue[0].length)}pickRaw(takeArray){const takeArrayRowCount=takeArray.getRowCount(),takeArrayColumnCount=takeArray.getColumnCount();if(takeArrayRowCount!==this._rowCount||takeArrayColumnCount!==this._columnCount)return[[NullValueObject.create()]];const newValue=[];newValue[0]=[];for(let r=0;r<takeArrayRowCount;r++)for(let c=0;c<takeArrayColumnCount;c++){const takeCell=takeArray.get(r,c);if(!(takeCell==null||takeCell.isError())&&takeCell.getValue()===!0){const value=this.get(r,c);newValue[0].push(value)}}return newValue}flatten(){if(this._flattenCache!=null)return this._flattenCache;const newValue=[];newValue[0]=[];for(let r=0;r<this._rowCount;r++)for(let c=0;c<this._columnCount;c++){const value=this.get(r,c);newValue[0].push(value)}const arrayV=this._createNewArray(newValue,1,newValue[0].length);return arrayV.setDefaultValue(this._defaultValue),this._flattenCache=arrayV,arrayV}flattenPosition(){if(this._flattenPosition!=null)return this._flattenPosition;const stringValue=[],numberValue=[],stringPosition=[],numberPosition=[];let index=0;for(let r=0;r<this._rowCount;r++)for(let c=0;c<this._columnCount;c++){const value=this.get(r,c);if(value==null||value.isError()||value.isNull()){index++;continue}value.isString()?(stringValue.push(value),stringPosition.push(index++)):(numberValue.push(value),numberPosition.push(index++))}const result={stringArray:stringValue,numberArray:numberValue,stringPosition,numberPosition};return this._flattenPosition=result,result}slice(rowParam,columnParam){let rowStart=0,rowStop=this._rowCount,rowStep=1,columnStart=0,columnStop=this._columnCount,columnStep=1;if(rowParam!=null&&(rowStart=rowParam[0]||0,rowStop=rowParam[1]||this._rowCount,rowStep=rowParam[2]||1),columnParam!=null&&(columnStart=columnParam[0]||0,columnStop=columnParam[1]||this._columnCount,columnStep=columnParam[2]||1),rowStart>=this._rowCount||columnStart>=this._columnCount)return;const cacheKey=`${rowStart}_${rowStop}_${rowStep}_${columnStart}_${columnStop}_${columnStep}`,cache=this._sliceCache.get(cacheKey);if(cache!=null)return cache;const result=[],array=this._values;let result_row_index=0,result_column_index=0;for(let r=rowStart;r<rowStop;r+=rowStep){result_column_index=0,result[result_row_index]==null&&(result[result_row_index]=[]);for(let c=columnStart;c<columnStop;c+=columnStep){if(!array[r])return;let cell=array[r][c]||this._defaultValue;cell==null&&(cell=NullValueObject.create()),result[result_row_index][result_column_index]=cell,result_column_index++}result_row_index++}if(result.length===0||result[0].length===0)return;const startRow=rowStep>1?-1:rowStart+this._currentRow,startColumn=columnStep>1?-1:columnStart+this._currentColumn,newResultArray=this._createNewArray(result,result.length,result[0].length,startRow,startColumn);return newResultArray.setDefaultValue(this._defaultValue),this._sliceCache.set(cacheKey,newResultArray),newResultArray}sortByRow(index){const result=this._transposeArray(this._values);result.sort(this._sort(index)),this._clearCache(),this._values=this._transposeArray(result)}sortByColumn(index){this._clearCache(),this._values.sort(this._sort(index))}transpose(){const transposeArray=this._transposeArray(this._values),rowCount=this._rowCount,columnCount=this._columnCount,newArray=this._createNewArray(transposeArray,columnCount,rowCount);return newArray.setDefaultValue(this._defaultValue),newArray}orderSearch(valueObject,searchType=ArrayOrderSearchType.MIN,isDesc=!1,isFuzzyMatching=!1){let result,maxOrMin2,resultPosition,maxOrMinPosition;const _handleMatch=__name((itemValue,row,column)=>{if(itemValue==null)return!0;let matchObject;if(isFuzzyMatching===!0?matchObject=itemValue.compare(valueObject,compareToken.EQUALS):matchObject=itemValue.isEqual(valueObject),(matchObject==null?void 0:matchObject.getValue())===!0)return result=itemValue,resultPosition={row,column},!1;searchType===ArrayOrderSearchType.MAX?itemValue.isGreaterThan(valueObject).getValue()===!0&&(maxOrMin2==null||itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin2.minus(valueObject).abs()).getValue()===!0)&&(maxOrMin2=itemValue,maxOrMinPosition={row,column}):searchType===ArrayOrderSearchType.MIN&&itemValue.isLessThan(valueObject).getValue()===!0&&(maxOrMin2==null||itemValue.minus(valueObject).abs().isLessThanOrEqual(maxOrMin2.minus(valueObject).abs()).getValue()===!0)&&(maxOrMin2=itemValue,maxOrMinPosition={row,column})},"_handleMatch");if(isDesc?this.iteratorReverse((itemValue,r,c)=>_handleMatch(itemValue,r,c)):this.iterator((itemValue,r,c)=>_handleMatch(itemValue,r,c)),result!=null)return resultPosition;if(maxOrMin2!=null)return maxOrMinPosition}binarySearch(valueObject,searchType=ArrayBinarySearchType.MIN,matchType=ArrayOrderSearchType.MIN){if(valueObject.isError())return;const{stringArray,stringPosition,numberArray,numberPosition}=this.flattenPosition();return valueObject.isString()?this._binarySearch(valueObject,stringArray,stringPosition,searchType,matchType):this._binarySearch(valueObject,numberArray,numberPosition,searchType,matchType)}_binarySearch(valueObject,searchArray,positionArray,searchType=ArrayBinarySearchType.MIN,matchType=ArrayOrderSearchType.MIN){const compareFunc=getCompare(),value=Number(valueObject.getValue()),isValueNumber=!Number.isNaN(value);let start=0,end=searchArray.length-1,exactMatchIndex=-1,nearestSmallerIndex=-1,nearestLargerIndex=-1;for(;start<=end;){const middle=Math.floor((start+end)/2),compareTo=searchArray[middle];let compareResult;if(compareTo.isNull())compareResult=searchType===ArrayBinarySearchType.MIN?1:-1;else{const compareToValue=compareTo.getValue();if(isValueNumber){const compareToNumber=Number(compareToValue);compareResult=Number.isNaN(compareToNumber)?1:Math.sign(compareToNumber-value)}else compareResult=compareFunc(compareToValue.toString().toLocaleLowerCase(),valueObject.getValue().toString().toLocaleLowerCase())}if(searchType===ArrayBinarySearchType.MAX&&(compareResult=-compareResult),compareResult===0){exactMatchIndex=middle;break}compareResult<0?(nearestSmallerIndex=middle,start=middle+1):(nearestLargerIndex=middle,end=middle-1)}if(matchType===ArrayOrderSearchType.NORMAL)return exactMatchIndex!==-1?positionArray[exactMatchIndex]:void 0;if(matchType===ArrayOrderSearchType.MIN)return exactMatchIndex!==-1?positionArray[exactMatchIndex]:searchType===ArrayBinarySearchType.MIN?positionArray[nearestSmallerIndex]:positionArray[nearestLargerIndex];if(matchType===ArrayOrderSearchType.MAX)return exactMatchIndex!==-1?positionArray[exactMatchIndex]:searchType===ArrayBinarySearchType.MIN?positionArray[nearestLargerIndex]:positionArray[nearestSmallerIndex]}sum(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;accumulatorAll=accumulatorAll.plus(valueObject)}),accumulatorAll}max(){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);return this.iterator(valueObject=>{if(valueObject==null)return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;if(valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll.isLessThan(valueObject).getValue()&&(accumulatorAll=valueObject)}),accumulatorAll}min(){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);return this.iterator(valueObject=>{if(valueObject==null)return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;if(valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll.isGreaterThan(valueObject).getValue()&&(accumulatorAll=valueObject)}),accumulatorAll}count(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isError()||valueObject.isString()||valueObject.isNull()||valueObject.isBoolean())return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}countA(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}countBlank(){let accumulatorAll=NumberValueObject.create(0);return this.iterator(valueObject=>{(valueObject==null||valueObject.isNull()||valueObject.getValue()==="")&&(accumulatorAll=accumulatorAll.plusBy(1))}),accumulatorAll}getNegative(){return _ArrayValueObject.create("{0}").minus(this)}getReciprocal(){return _ArrayValueObject.create("{1}").divided(this)}plus(valueObject){return this._batchOperator(valueObject,1)}minus(valueObject){return this._batchOperator(valueObject,0)}multiply(valueObject){return this._batchOperator(valueObject,2)}divided(valueObject){return this._batchOperator(valueObject,3)}mod(valueObject){return this._batchOperator(valueObject,4)}modInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.mod(currentValue))}compare(valueObject,operator,isCaseSensitive){return this._batchOperator(valueObject,5,operator,isCaseSensitive)}concatenateFront(valueObject){return this._batchOperator(valueObject,6)}concatenateBack(valueObject){return this._batchOperator(valueObject,7)}map(callbackFn){const wrappedCallbackFn=__name((currentValue,r,c)=>currentValue==null?NullValueObject.create():currentValue.isError()?currentValue:callbackFn(currentValue,r,c),"wrappedCallbackFn");return this.mapValue(wrappedCallbackFn)}mapValue(callbackFn){var _a2;const rowCount=this._rowCount,columnCount=this._columnCount,result=[];for(let r=0;r<rowCount;r++){const rowList=[];for(let c=0;c<columnCount;c++){const row=(_a2=this._values)==null?void 0:_a2[r];if(row==null)rowList[c]=ErrorValueObject.create(ErrorType$1.VALUE);else{const currentValue=row[c]||this._defaultValue;currentValue?rowList[c]=callbackFn(currentValue,r,c):rowList[c]=NullValueObject.create()}}result.push(rowList)}return this._createNewArray(result,rowCount,columnCount)}pow(valueObject){return this._batchOperator(valueObject,8)}powInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.pow(currentValue))}sqrt(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sqrt())}cbrt(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cbrt())}cos(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cos())}cosh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.cosh())}acos(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.acos())}acosh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.acosh())}sin(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sin())}sinh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.sinh())}asin(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.asin())}asinh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.asinh())}tan(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.tan())}tanh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.tanh())}atan(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.atan())}atanh(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.atanh())}atan2(valueObject){return this._batchOperator(valueObject,12)}atan2Inverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.atan2(currentValue))}mean(ddof=0){const sum2=this.sum(),count=this.count();return sum2.divided(ddof===0?count:count.minusBy(1))}median(){const numberArray=this.flattenPosition().numberArray,allValue=this._createNewArray([numberArray],1,numberArray.length),count=allValue.getColumnCount();if(count<=1)return allValue.get(0,0)||NullValueObject.create();if(allValue.sortByRow(0),count%2===0){const medianRight=allValue.get(0,count/2)||NullValueObject.create(),medianLeft=allValue.get(0,count/2-1)||NullValueObject.create();return medianRight.plus(medianLeft).divided(NumberValueObject.create(2))}return allValue.get(0,(count-1)/2)||NullValueObject.create()}var(ddof=0){const mean=this.mean(),squaredDifferences=[[]];this.iterator(valueObject=>{if(valueObject==null||valueObject.isError()||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return;const baseValueObject=valueObject.minus(mean).pow(NumberValueObject.create(2));baseValueObject.isError()||squaredDifferences[0].push(baseValueObject)});const{_unitId,_sheetId,_currentRow,_currentColumn}=this;return _ArrayValueObject.create({calculateValueList:squaredDifferences,rowCount:1,columnCount:squaredDifferences[0].length,unitId:_unitId,sheetId:_sheetId,row:_currentRow,column:_currentColumn}).mean(ddof)}std(ddof=0){const variance=this.var(ddof);return variance.isError()?variance:variance.sqrt()}log(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.log())}log10(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.log10())}exp(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.exp())}abs(){return this.map(currentValue=>currentValue.isError()?currentValue:currentValue.abs())}round(valueObject){return this._batchOperator(valueObject,9)}roundInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.round(currentValue))}floor(valueObject){return this._batchOperator(valueObject,10)}floorInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.floor(currentValue))}ceil(valueObject){return this._batchOperator(valueObject,11)}ceilInverse(valueObject){return this.map(currentValue=>currentValue.isError()?currentValue:valueObject.ceil(currentValue))}toValue(){return transformToValue(this._values)}_clearCache(){this._flattenCache=null,this._sliceCache.clear()}_sort(index){const compare=getCompare();return(a,b)=>{const columnA=a[index],columnB=b[index];return columnA==null?1:columnB==null?-1:columnA.isError()&&columnA.isError()?0:columnA.isError()?1:columnB.isError()?-1:compare(columnA.getValue(),columnB.getValue())}}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}_batchOperator(valueObject,batchOperatorType,operator,isCaseSensitive){const valueList=[];let rowCount=this._rowCount,columnCount=this._columnCount;if(valueObject.isArray()){const valueRowCount=valueObject.getRowCount(),valueColumnCount=valueObject.getColumnCount();if(rowCount=Math.max(valueRowCount,rowCount),columnCount=Math.max(valueColumnCount,columnCount),valueRowCount===1&&valueColumnCount===1){const v=valueObject.getFirstCell();for(let c=0;c<columnCount;c++)valueList.push(v)}else if(valueRowCount===1&&this._columnCount>1){const list=valueObject.getArrayValue();for(let c=0;c<columnCount;c++)valueList.push(list[0][c])}else return this._batchOperatorArray(valueObject,batchOperatorType,operator,isCaseSensitive)}else for(let c=0;c<columnCount;c++)valueList.push(valueObject);const result=[];for(let c=0;c<columnCount;c++){const value=valueList[c];this._batchOperatorValue(value,c,result,batchOperatorType,operator,isCaseSensitive)}const newArray=this._createNewArray(result,rowCount,columnCount);return newArray.setDefaultValue(BooleanValueObject.create(!1)),newArray}_batchOperatorValue(valueObject,column,result,batchOperatorType,operator,isCaseSensitive){const rowCount=this._rowCount;let canUseCache=!1;const unitId=this.getUnitId(),sheetId=this.getSheetId(),startRow=this.getCurrentRow(),startColumn=this.getCurrentColumn();if(batchOperatorType===5&&(canUseCache=CELL_INVERTED_INDEX_CACHE.canUseCache(unitId,sheetId,column+startColumn,startRow,startRow+rowCount-1),canUseCache===!0)){if(operator===compareToken.EQUALS){const rowPositions=CELL_INVERTED_INDEX_CACHE.getCellPositions(unitId,sheetId,column+startColumn,valueObject.getValue());rowPositions!=null&&rowPositions.forEach(row=>{if(row<startRow||row>startRow+rowCount-1)return;const r=row-startRow;result[r]==null&&(result[r]=[]),result[r][column]=BooleanValueObject.create(!0)})}else{const rowValuePositions=CELL_INVERTED_INDEX_CACHE.getCellValuePositions(unitId,sheetId,column+startColumn);rowValuePositions!=null&&rowValuePositions.forEach((rowPositions,rowValue)=>{let currentValue=NullValueObject.create();typeof rowValue=="string"?currentValue=StringValueObject.create(rowValue):typeof rowValue=="number"?currentValue=NumberValueObject.create(rowValue):typeof rowValue=="boolean"&&(currentValue=BooleanValueObject.create(rowValue)),currentValue.compare(valueObject,operator,isCaseSensitive).getValue()===!0&&rowPositions.forEach(index=>{index>=startRow&&index<=startRow+rowCount-1&&(result[index-startRow]==null&&(result[index-startRow]=[]),result[index-startRow][column]=BooleanValueObject.create(!0))})})}return}for(let r=0;r<rowCount;r++){const currentValue=this.getValueOrDefault(r,column);if(result[r]==null&&(result[r]=[]),currentValue&&valueObject)if(currentValue.isError())result[r][column]=currentValue;else if(valueObject.isError())result[r][column]=valueObject;else switch(batchOperatorType){case 1:result[r][column]=currentValue.plus(valueObject);break;case 0:result[r][column]=currentValue.minus(valueObject);break;case 2:result[r][column]=currentValue.multiply(valueObject);break;case 3:result[r][column]=currentValue.divided(valueObject);break;case 4:result[r][column]=currentValue.mod(valueObject);break;case 5:operator?result[r][column]=currentValue.compare(valueObject,operator,isCaseSensitive):result[r][column]=ErrorValueObject.create(ErrorType$1.VALUE);break;case 6:result[r][column]=currentValue.concatenateFront(valueObject);break;case 7:result[r][column]=currentValue.concatenateBack(valueObject);break;case 8:result[r][column]=currentValue.pow(valueObject);break;case 9:result[r][column]=currentValue.round(valueObject);break;case 10:result[r][column]=currentValue.floor(valueObject);break;case 12:result[r][column]=currentValue.atan2(valueObject);break;case 11:result[r][column]=currentValue.ceil(valueObject);break}else result[r][column]=ErrorValueObject.create(ErrorType$1.NA);currentValue!=null&&(currentValue.isError()?CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column+startColumn,currentValue.getErrorType(),r+startRow):CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column+startColumn,currentValue.getValue(),r+startRow))}CELL_INVERTED_INDEX_CACHE.setContinueBuildingCache(unitId,sheetId,column+startColumn,startRow,startRow+rowCount-1)}_batchOperatorArray(valueObject,batchOperatorType,operator,isCaseSensitive){let rowCount=valueObject.getRowCount(),columnCount=valueObject.getColumnCount();rowCount<this._rowCount&&(rowCount=this._rowCount),columnCount<this._columnCount&&(columnCount=this._columnCount);const result=[],currentCalculateType=this._checkArrayCalculateType(this),opCalculateType=this._checkArrayCalculateType(valueObject);for(let r=0;r<rowCount;r++){const rowList=[];for(let c=0;c<columnCount;c++){let currentValue;currentCalculateType===3?currentValue=this.getValueOrDefault(0,0):currentCalculateType===1?currentValue=this.getValueOrDefault(0,c):currentCalculateType===2?currentValue=this.getValueOrDefault(r,0):currentValue=this.getValueOrDefault(r,c);let opValue;if(opCalculateType===3?opValue=valueObject.getValueOrDefault(0,0):opCalculateType===1?opValue=valueObject.getValueOrDefault(0,c):opCalculateType===2?opValue=valueObject.getValueOrDefault(r,0):opValue=valueObject.getValueOrDefault(r,c),currentValue&&opValue)if(currentValue.isError())rowList[c]=currentValue;else if(opValue.isError())rowList[c]=opValue;else switch(batchOperatorType){case 1:rowList[c]=currentValue.plus(opValue);break;case 0:rowList[c]=currentValue.minus(opValue);break;case 2:rowList[c]=currentValue.multiply(opValue);break;case 3:rowList[c]=currentValue.divided(opValue);break;case 4:rowList[c]=currentValue.mod(opValue);break;case 5:operator?rowList[c]=currentValue.compare(opValue,operator,isCaseSensitive):rowList[c]=ErrorValueObject.create(ErrorType$1.VALUE);break;case 6:rowList[c]=currentValue.concatenateFront(opValue);break;case 7:rowList[c]=currentValue.concatenateBack(opValue);break;case 8:rowList[c]=currentValue.pow(opValue);break;case 9:rowList[c]=currentValue.round(opValue);break;case 12:rowList[c]=currentValue.atan2(opValue);break;case 10:rowList[c]=currentValue.floor(opValue);break;case 11:rowList[c]=currentValue.ceil(opValue);break}else rowList[c]=ErrorValueObject.create(ErrorType$1.NA)}result.push(rowList)}return this._createNewArray(result,rowCount,columnCount)}_checkArrayCalculateType(valueObject){return valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?3:valueObject.getRowCount()===1?1:valueObject.getColumnCount()===1?2:0}_formatValue(rawValue){if(typeof rawValue!="string")return rawValue=rawValue,this._rowCount=rawValue.rowCount,this._columnCount=rawValue.columnCount,this._unitId=rawValue.unitId,this._sheetId=rawValue.sheetId,this._currentRow=rawValue.row,this._currentColumn=rawValue.column,rawValue.calculateValueList;rawValue=rawValue.slice(1,-1);const rowArray=rawValue.split(";"),rowArrayCount=rowArray.length,result=[];let maxColumnCount=0;for(let r=0;r<rowArrayCount;r++){const columnArray=rowArray[r].split(","),columnArrayCount=columnArray.length;maxColumnCount<columnArrayCount&&(maxColumnCount=columnArrayCount);const row=[];for(let c=0;c<columnArrayCount;c++){const cellRaw=columnArray[c].trim();row.push(ValueObjectFactory.create(cellRaw))}result.push(row)}return this._rowCount=rowArrayCount,this._columnCount=maxColumnCount,result}_createNewArray(result,rowCount,columnCount,row=-1,column=-1){(this._currentColumn===-1||this._currentRow===-1)&&(row=-1,column=-1);const arrayValueObjectData={calculateValueList:result,rowCount,columnCount,unitId:this.getUnitId(),sheetId:this.getSheetId(),row,column};return _ArrayValueObject.create(arrayValueObjectData)}};__name(_ArrayValueObject,"ArrayValueObject");let ArrayValueObject=_ArrayValueObject;const _ValueObjectFactory=class _ValueObjectFactory{static create(rawValue){if(rawValue==null)return NullValueObject.create();if(typeof rawValue=="boolean")return BooleanValueObject.create(rawValue);if(typeof rawValue=="string"){const rawValueUpper=rawValue.toLocaleUpperCase().trim();if(ERROR_TYPE_SET.has(rawValueUpper))return ErrorValueObject.create(rawValueUpper);if(rawValueUpper===BooleanValue.TRUE||rawValueUpper===BooleanValue.FALSE)return createBooleanValueObjectByRawValue(rawValue);if(core.isRealNum(rawValue))return NumberValueObject.create(Number(rawValue));const rawValueSingleLine=rawValue.replace(/\n/g,"").replace(/\r/g,"");return!isStringWrappedByDoubleQuotes(rawValueSingleLine)&&regexTestArrayValue(rawValueSingleLine)?ArrayValueObject.create(rawValueSingleLine):createStringValueObjectByRawValue(rawValue)}return typeof rawValue=="number"?createNumberValueObjectByRawValue(rawValue):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_ValueObjectFactory,"ValueObjectFactory");let ValueObjectFactory=_ValueObjectFactory;function isStringWrappedByDoubleQuotes(input){const trimmedInput=input.trim();return trimmedInput.startsWith('"')&&trimmedInput.endsWith('"')}__name(isStringWrappedByDoubleQuotes,"isStringWrappedByDoubleQuotes");function expandArrayValueObject(rowCount,columnCount,valueObject,defaultValue){const result=[];if(valueObject.isArray()){const valueRowCount=valueObject.getRowCount(),valueColumnCount=valueObject.getColumnCount();if(valueRowCount===1&&valueColumnCount===1){const v=valueObject.getFirstCell();for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++)row.push(v);result.push(row)}}else if(valueRowCount===1&&valueColumnCount>1)for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(0,c)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}else if(valueColumnCount===1&&valueRowCount>1)for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(r,0)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}else for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const v=valueObject.getRealValue(r,c)||(defaultValue!=null?defaultValue:NullValueObject.create());row.push(v)}result.push(row)}}else for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++)row.push(valueObject);result.push(row)}return createNewArray(result,rowCount,columnCount)}__name(expandArrayValueObject,"expandArrayValueObject");function createNewArray(result,rowCount,columnCount,unitId="",sheetId=""){const arrayValueObjectData={calculateValueList:result,rowCount,columnCount,unitId,sheetId,row:-1,column:-1};return ArrayValueObject.create(arrayValueObjectData)}__name(createNewArray,"createNewArray");function findCompareToken(str){const comparisonTokens=[compareToken.EQUALS,compareToken.NOT_EQUAL,compareToken.GREATER_THAN_OR_EQUAL,compareToken.GREATER_THAN,compareToken.LESS_THAN_OR_EQUAL,compareToken.LESS_THAN];for(const token of comparisonTokens)if(str.startsWith(token)){const content=str.substring(token.length);return[token,ValueObjectFactory.create(content)]}return[compareToken.EQUALS,ValueObjectFactory.create(str)]}__name(findCompareToken,"findCompareToken");function valueObjectCompare(range,criteria,operator,isCaseSensitive){if(!operator)if(criteria.isString()){const criteriaValueString=`${criteria.getValue()}`,[token,criteriaStringObject]=findCompareToken(criteriaValueString);operator=token,criteria=criteriaStringObject}else operator=compareToken.EQUALS;return range.compare(criteria,operator,isCaseSensitive)}__name(valueObjectCompare,"valueObjectCompare");function booleanObjectIntersection(valueObject1,valueObject2){const maxRowLength=Math.max(valueObject1.isArray()?valueObject1.getRowCount():1,valueObject2.isArray()?valueObject2.getRowCount():1),maxColumnLength=Math.max(valueObject1.isArray()?valueObject1.getColumnCount():1,valueObject2.isArray()?valueObject2.getColumnCount():1),valueObject1Array=expandArrayValueObject(maxRowLength,maxColumnLength,valueObject1),valueObject2Array=expandArrayValueObject(maxRowLength,maxColumnLength,valueObject2);return valueObject1Array.mapValue((valueObject12,rowIndex,columnIndex)=>{const valueObject22=valueObject2Array.get(rowIndex,columnIndex);return valueObject12!=null&&valueObject12.isError()?valueObject12:valueObject22!=null&&valueObject22.isError()?valueObject22:valueObject12!=null&&valueObject12.isBoolean()&&(valueObject22!=null&&valueObject22.isBoolean())?createBooleanValueObjectByRawValue(valueObject12.getValue()&&valueObject22.getValue()):BooleanValueObject.create(!1)})}__name(booleanObjectIntersection,"booleanObjectIntersection");function convertTonNumber(valueObject){const currentValue=valueObject.getValue();let result=0;return currentValue&&(result=1),NumberValueObject.create(result)}__name(convertTonNumber,"convertTonNumber");function isSingleValueObject(valueObject){return valueObject.isArray()&&valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?!0:valueObject.isReferenceObject()?!!(valueObject.isCell()||valueObject.getRowCount()===1&&valueObject.getColumnCount()===1):(valueObject=valueObject,!!(valueObject.isString()||valueObject.isNumber()||valueObject.isBoolean()||valueObject.isError()||valueObject.isNull()))}__name(isSingleValueObject,"isSingleValueObject");function objectValueToCellValue(objectValue){const pattern=objectValue==null?void 0:objectValue.getPattern();let cellWithStyle={};if(pattern&&(cellWithStyle={s:{n:{pattern}}}),objectValue==null)return{v:null,...cellWithStyle};if(objectValue.isError())return{v:objectValue.getErrorType(),t:core.CellValueType.STRING,...cellWithStyle};if(objectValue.isValueObject()){const vo=objectValue,v=vo.getValue();return vo.isNumber()?{v,t:core.CellValueType.NUMBER,...cellWithStyle}:vo.isBoolean()?{v:v?1:0,t:core.CellValueType.BOOLEAN,...cellWithStyle}:vo.isString()?{v,t:core.CellValueType.STRING,...cellWithStyle}:vo.isNull()?{v:null,...cellWithStyle}:{v,t:core.CellValueType.STRING,...cellWithStyle}}}__name(objectValueToCellValue,"objectValueToCellValue");function calculateMaxDimensions(variants){let maxRowLength=0,maxColumnLength=0;return variants.forEach((variant,i)=>{if(i%2===1)if(variant.isArray()){const arrayValue=variant;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)}),{maxRowLength,maxColumnLength}}__name(calculateMaxDimensions,"calculateMaxDimensions");function getErrorArray(variants,sumRange,maxRowLength,maxColumnLength){const sumRowLength=sumRange.getRowCount(),sumColumnLength=sumRange.getColumnCount();for(let i=0;i<variants.length;i++){if(i%2===1)continue;const range=variants[i],rangeRowLength=range.getRowCount(),rangeColumnLength=range.getColumnCount();if(rangeRowLength!==sumRowLength||rangeColumnLength!==sumColumnLength)return expandArrayValueObject(maxRowLength,maxColumnLength,ErrorValueObject.create(ErrorType$1.VALUE))}return null}__name(getErrorArray,"getErrorArray");function getBooleanResults(variants,maxRowLength,maxColumnLength,isNumberSensitive=!1){const booleanResults=[];for(let i=0;i<variants.length;i++){if(i%2===1)continue;const range=variants[i],criteria=variants[i+1];expandArrayValueObject(maxRowLength,maxColumnLength,criteria,ErrorValueObject.create(ErrorType$1.NA)).iterator((criteriaValueObject,rowIndex,columnIndex)=>{if(!criteriaValueObject)return;let resultArrayObject=valueObjectCompare(range,criteriaValueObject);const[,criteriaStringObject]=findCompareToken(`${criteriaValueObject.getValue()}`);if(isNumberSensitive&&(resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject)),booleanResults[rowIndex]===void 0&&(booleanResults[rowIndex]=[]),booleanResults[rowIndex][columnIndex]===void 0){booleanResults[rowIndex][columnIndex]=resultArrayObject;return}booleanResults[rowIndex][columnIndex]=booleanObjectIntersection(booleanResults[rowIndex][columnIndex],resultArrayObject)})}return booleanResults}__name(getBooleanResults,"getBooleanResults");function filterSameValueObjectResult(array,range,criteria){return array.mapValue((valueObject,r,c)=>{const rangeValueObject=range.get(r,c);return rangeValueObject&&isSameValueObjectType(rangeValueObject,criteria)?valueObject:rangeValueObject!=null&&rangeValueObject.isError()&&criteria.isError()&&rangeValueObject.getValue()===criteria.getValue()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)})}__name(filterSameValueObjectResult,"filterSameValueObjectResult");function isSameValueObjectType(left,right){if(left.isNumber()&&right.isNumber()||left.isBoolean()&&right.isBoolean())return!0;const isLeftBlank=left.isString()&&left.getValue()==="",isRightBlank=right.isString()&&right.getValue()==="";return!!((isLeftBlank||left.isNull())&&(isRightBlank||right.isNull())||left.isString()&&!isLeftBlank&&right.isString()&&!isRightBlank)}__name(isSameValueObjectType,"isSameValueObjectType");var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$j(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$j(target,key,result),result},"__decorateClass$j"),__decorateParam$j=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$j"),FormulaExecuteStageType=(FormulaExecuteStageType2=>(FormulaExecuteStageType2[FormulaExecuteStageType2.IDLE=0]="IDLE",FormulaExecuteStageType2[FormulaExecuteStageType2.START_DEPENDENCY=1]="START_DEPENDENCY",FormulaExecuteStageType2[FormulaExecuteStageType2.START_CALCULATION=2]="START_CALCULATION",FormulaExecuteStageType2[FormulaExecuteStageType2.CURRENTLY_CALCULATING=3]="CURRENTLY_CALCULATING",FormulaExecuteStageType2[FormulaExecuteStageType2.START_DEPENDENCY_ARRAY_FORMULA=4]="START_DEPENDENCY_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.START_CALCULATION_ARRAY_FORMULA=5]="START_CALCULATION_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.CURRENTLY_CALCULATING_ARRAY_FORMULA=6]="CURRENTLY_CALCULATING_ARRAY_FORMULA",FormulaExecuteStageType2[FormulaExecuteStageType2.CALCULATION_COMPLETED=7]="CALCULATION_COMPLETED",FormulaExecuteStageType2))(FormulaExecuteStageType||{}),FormulaExecutedStateType=(FormulaExecutedStateType2=>(FormulaExecutedStateType2[FormulaExecutedStateType2.INITIAL=0]="INITIAL",FormulaExecutedStateType2[FormulaExecutedStateType2.STOP_EXECUTION=1]="STOP_EXECUTION",FormulaExecutedStateType2[FormulaExecutedStateType2.NOT_EXECUTED=2]="NOT_EXECUTED",FormulaExecutedStateType2[FormulaExecutedStateType2.SUCCESS=3]="SUCCESS",FormulaExecutedStateType2))(FormulaExecutedStateType||{});exports2.FormulaRuntimeService=(_e=class extends core.Disposable{constructor(_currentConfigService){super();__publicField(this,"_formulaExecuteStage",0);__publicField(this,"_stopState",!1);__publicField(this,"_currentRow",-1);__publicField(this,"_currentColumn",-1);__publicField(this,"_currentRowCount",Number.NEGATIVE_INFINITY);__publicField(this,"_currentColumnCount",Number.NEGATIVE_INFINITY);__publicField(this,"_currentSubUnitId","");__publicField(this,"_currentUnitId","");__publicField(this,"_runtimeData",{});__publicField(this,"_runtimeOtherData",{});__publicField(this,"_unitArrayFormulaRange",{});__publicField(this,"_runtimeArrayFormulaCellData",{});__publicField(this,"_runtimeClearArrayFormulaCellData",{});__publicField(this,"_runtimeFeatureRange",{});__publicField(this,"_runtimeFeatureCellData",{});__publicField(this,"_functionsExecutedState",0);__publicField(this,"_functionDefinitionPrivacyVar",new Map);__publicField(this,"_totalFormulasToCalculate",0);__publicField(this,"_completedFormulasCount",0);__publicField(this,"_totalArrayFormulasToCalculate",0);__publicField(this,"_completedArrayFormulasCount",0);__publicField(this,"_formulaCycleIndex",0);__publicField(this,"_isCycleDependency",!1);this._currentConfigService=_currentConfigService}get currentRow(){return this._currentRow}get currentColumn(){return this._currentColumn}get currentRowCount(){return this._currentRowCount}get currentColumnCount(){return this._currentColumnCount}get currentSubUnitId(){return this._currentSubUnitId}get currentUnitId(){return this._currentUnitId}dispose(){this.reset(),this._runtimeFeatureCellData={},this._runtimeFeatureRange={},this.clearReferenceAndNumberformatCache()}enableCycleDependency(){this._isCycleDependency=!0}disableCycleDependency(){this._isCycleDependency=!1}isCycleDependency(){return this._isCycleDependency}setTotalArrayFormulasToCalculate(value){this._totalArrayFormulasToCalculate=value}getTotalArrayFormulasToCalculate(){return this._totalArrayFormulasToCalculate}setCompletedArrayFormulasCount(value){this._completedArrayFormulasCount=value}getCompletedArrayFormulasCount(){return this._completedArrayFormulasCount}setTotalFormulasToCalculate(value){this._totalFormulasToCalculate=value}getTotalFormulasToCalculate(){return this._totalFormulasToCalculate}setCompletedFormulasCount(value){this._completedFormulasCount=value}getCompletedFormulasCount(){return this._completedFormulasCount}setFormulaCycleIndex(index){this._formulaCycleIndex=index}getFormulaCycleIndex(){return this._formulaCycleIndex}markedAsSuccessfullyExecuted(){this._functionsExecutedState=3}markedAsNoFunctionsExecuted(){this._functionsExecutedState=2}markedAsStopFunctionsExecuted(){this._functionsExecutedState=1}markedAsInitialFunctionsExecuted(){this._functionsExecutedState=0}stopExecution(){this._stopState=!0,this.setFormulaExecuteStage(0)}isStopExecution(){return this._stopState}setFormulaExecuteStage(type){this._formulaExecuteStage=type}getFormulaExecuteStage(){return this._formulaExecuteStage}reset(){this._formulaExecuteStage=0,this._runtimeData={},this._runtimeOtherData={},this._unitArrayFormulaRange={},this._runtimeArrayFormulaCellData={},this._runtimeClearArrayFormulaCellData={},this._functionDefinitionPrivacyVar.clear(),this.markedAsInitialFunctionsExecuted(),this._stopState=!1,this._isCycleDependency=!1,this._totalFormulasToCalculate=0,this._completedFormulasCount=0}clearReferenceAndNumberformatCache(){clearNumberFormatTypeCache(),clearReferenceToRangeCache()}setCurrent(row,column,rowCount,columnCount,sheetId,unitId){this._currentRow=row,this._currentColumn=column,this._currentRowCount=rowCount,this._currentColumnCount=columnCount,this._currentSubUnitId=sheetId,this._currentUnitId=unitId}clearFunctionDefinitionPrivacyVar(){this._functionDefinitionPrivacyVar.clear()}registerFunctionDefinitionPrivacyVar(lambdaId,lambdaVar){this._functionDefinitionPrivacyVar.set(lambdaId,lambdaVar)}getFunctionDefinitionPrivacyVar(lambdaId){return this._functionDefinitionPrivacyVar.get(lambdaId)}setRuntimeOtherData(formulaId,functionVariant){const subUnitId=this._currentSubUnitId,unitId=this._currentUnitId;this._runtimeOtherData[unitId]===void 0&&(this._runtimeOtherData[unitId]={});const unitData=this._runtimeOtherData[unitId];unitData[subUnitId]===void 0&&(unitData[subUnitId]={});const subComponentData=unitData[subUnitId];let cellDatas=[];if(functionVariant.isReferenceObject()||functionVariant.isValueObject()&&functionVariant.isArray()){const objectValueRefOrArray=functionVariant,{startRow,startColumn}=objectValueRefOrArray.getRangePosition();objectValueRefOrArray.iterator((valueObject,rowIndex,columnIndex)=>{const value=objectValueToCellValue(valueObject),row=rowIndex-startRow,column=columnIndex-startColumn;cellDatas[row]==null&&(cellDatas[row]=[]),cellDatas[row][column]=value})}else cellDatas=[[objectValueToCellValue(functionVariant)]];subComponentData[formulaId]=cellDatas}setRuntimeData(functionVariant){const row=this._currentRow,column=this._currentColumn,rowCount=this._currentRowCount,columnCount=this.currentColumnCount,sheetId=this._currentSubUnitId,unitId=this._currentUnitId;this._runtimeData[unitId]==null&&(this._runtimeData[unitId]={});const unitData=this._runtimeData[unitId];unitData[sheetId]==null&&(unitData[sheetId]=new core.ObjectMatrix),this._unitArrayFormulaRange[unitId]==null&&(this._unitArrayFormulaRange[unitId]={});const arrayFormulaRange=this._unitArrayFormulaRange[unitId];let arrayData=new core.ObjectMatrix;arrayFormulaRange[sheetId]&&(arrayData=new core.ObjectMatrix(arrayFormulaRange[sheetId])),this._runtimeArrayFormulaCellData[unitId]===void 0&&(this._runtimeArrayFormulaCellData[unitId]={});const runtimeArrayFormulaCellData=this._runtimeArrayFormulaCellData[unitId];runtimeArrayFormulaCellData[sheetId]==null&&(runtimeArrayFormulaCellData[sheetId]=new core.ObjectMatrix),this._runtimeClearArrayFormulaCellData[unitId]===void 0&&(this._runtimeClearArrayFormulaCellData[unitId]={});const clearArrayFormulaCellData=this._runtimeClearArrayFormulaCellData[unitId];clearArrayFormulaCellData[sheetId]==null&&(clearArrayFormulaCellData[sheetId]=new core.ObjectMatrix);const sheetData=unitData[sheetId],runtimeArrayUnitData=runtimeArrayFormulaCellData[sheetId],clearArrayUnitData=clearArrayFormulaCellData[sheetId];if(functionVariant.isReferenceObject()||functionVariant.isValueObject()&&functionVariant.isArray()){const objectValueRefOrArray=functionVariant,{startRow,startColumn,endRow,endColumn}=objectValueRefOrArray.getRangePosition();if(startRow===endRow&&startColumn===endColumn){const firstCell=objectValueRefOrArray.getFirstCell(),valueObject=objectValueToCellValue(firstCell);sheetData.setValue(row,column,valueObject),clearArrayUnitData.setValue(row,column,valueObject),CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column,firstCell.getValue(),row);return}const arrayRange={startRow:row,startColumn:column,endRow:endRow-startRow+row,endColumn:endColumn-startColumn+column};if(arrayData.setValue(row,column,arrayRange),arrayFormulaRange[sheetId]=arrayData.getData(),this._checkIfArrayFormulaRangeHasData(unitId,sheetId,row,column,arrayRange)||this._checkIfArrayFormulaExceeded(rowCount,columnCount,arrayRange)){const errorObject=objectValueToCellValue(ErrorValueObject.create(ErrorType$1.SPILL));sheetData.setValue(row,column,errorObject),clearArrayUnitData.setValue(row,column,errorObject),CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column,ErrorType$1.SPILL,row);const unitData2=this._currentConfigService.getUnitData();objectValueRefOrArray.iterator((_,rowIndex,columnIndex)=>{var _a2,_b2;const currentRow=rowIndex-startRow+row,currentColumn=columnIndex-startColumn+column,cell=(_b2=(_a2=unitData2[unitId])==null?void 0:_a2[sheetId])==null?void 0:_b2.cellData.getValue(currentRow,currentColumn);if(rowIndex===startRow&&columnIndex===startColumn)runtimeArrayUnitData.setValue(row,column,errorObject);else if(cell!=null)cell.v==null&&(cell.v=""),runtimeArrayUnitData.setValue(currentRow,currentColumn,cell);else{if(this._isInOtherArrayFormulaRange(unitId,sheetId,row,column,currentRow,currentColumn))return!0;runtimeArrayUnitData.setValue(currentRow,currentColumn,{v:""})}})}else{const spillError=ErrorValueObject.create(ErrorType$1.SPILL);objectValueRefOrArray.iterator((valueObject,rowIndex,columnIndex)=>{CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column-startColumn+columnIndex,valueObject?valueObject.getValue():0,row-startRow+rowIndex);const value=objectValueToCellValue(valueObject);if(rowIndex===startRow&&columnIndex===startColumn){if(valueObject!=null&&valueObject.isError()&&valueObject.isEqualType(spillError))return clearArrayUnitData.setValue(row,column,{}),sheetData.setValue(row,column,{...objectValueToCellValue(spillError)}),!1;sheetData.setValue(row,column,{...value})}const currentRow=rowIndex-startRow+row,currentColumn=columnIndex-startColumn+column;runtimeArrayUnitData.setValue(currentRow,currentColumn,value)})}}else{const valueObject=objectValueToCellValue(functionVariant);sheetData.setValue(row,column,valueObject),CELL_INVERTED_INDEX_CACHE.set(unitId,sheetId,column,functionVariant.getValue(),row),clearArrayUnitData.setValue(row,column,valueObject)}}getUnitData(){return this._runtimeData}getUnitArrayFormula(){return this._unitArrayFormulaRange}getRuntimeOtherData(){return this._runtimeOtherData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}getRuntimeClearArrayFormulaCellData(){return this._runtimeClearArrayFormulaCellData}getRuntimeFeatureRange(){return this._runtimeFeatureRange}setRuntimeFeatureRange(featureId,featureRange){this._runtimeFeatureRange[featureId]=featureRange}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(featureId,featureData){this._runtimeFeatureCellData[featureId]=featureData}getAllRuntimeData(){return{unitData:this.getUnitData(),arrayFormulaRange:this.getUnitArrayFormula(),unitOtherData:this.getRuntimeOtherData(),functionsExecutedState:this._functionsExecutedState,arrayFormulaCellData:this.getRuntimeArrayFormulaCellData(),clearArrayFormulaCellData:this.getRuntimeClearArrayFormulaCellData(),runtimeFeatureRange:this.getRuntimeFeatureRange(),runtimeFeatureCellData:this.getRuntimeFeatureCellData()}}getRuntimeState(){return{totalFormulasToCalculate:this.getTotalFormulasToCalculate(),completedFormulasCount:this.getCompletedFormulasCount(),totalArrayFormulasToCalculate:this.getTotalArrayFormulasToCalculate(),completedArrayFormulasCount:this.getCompletedArrayFormulasCount(),stage:this.getFormulaExecuteStage(),formulaCycleIndex:this.getFormulaCycleIndex()}}_checkIfArrayFormulaRangeHasData(formulaUnitId,formulaSheetId,formulaRow,formulaColumn,arrayRange){var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2,_i2,_j2,_k2;const{startRow,startColumn,endRow,endColumn}=arrayRange,unitData=this._currentConfigService.getUnitData(),arrayData=this._currentConfigService.getArrayFormulaCellData();(_c2=(_b2=(_a2=this._unitArrayFormulaRange[formulaUnitId])==null?void 0:_a2[formulaSheetId])==null?void 0:_b2[formulaRow])==null||_c2[formulaColumn];for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++){if(r===formulaRow&&formulaColumn===c)continue;const cell=(_f2=(_e2=(_d2=this._runtimeData)==null?void 0:_d2[formulaUnitId])==null?void 0:_e2[formulaSheetId])==null?void 0:_f2.getValue(r,c);(_h2=(_g2=arrayData==null?void 0:arrayData[formulaUnitId])==null?void 0:_g2[formulaSheetId])==null||_h2.getValue(r,c);const currentCell=(_k2=(_j2=(_i2=unitData==null?void 0:unitData[formulaUnitId])==null?void 0:_i2[formulaSheetId])==null?void 0:_j2.cellData)==null?void 0:_k2.getValue(r,c),featureCell=this._getRuntimeFeatureCellValue(r,c,formulaSheetId,formulaUnitId);if(!core.isNullCell(cell)||this._isInOtherArrayFormulaRange(formulaUnitId,formulaSheetId,formulaRow,formulaColumn,r,c)||!core.isNullCell(currentCell)||!core.isNullCell(featureCell))return!0}return!1}_getRuntimeFeatureCellValue(row,column,sheetId,unitId){return getRuntimeFeatureCell(row,column,sheetId,unitId,this._runtimeFeatureCellData)}_arrayCellHasData(cell){return cell==null?!1:cell.v!==void 0}_isInOtherArrayFormulaRange(formulaUnitId,formulaSheetId,formulaRow,formulaColumn,r,c){var _a2;const arrayFormulaRange=(_a2=this._currentConfigService.getArrayFormulaRange()[formulaUnitId])==null?void 0:_a2[formulaSheetId];if(arrayFormulaRange==null)return!1;let isCellOverlapping=!1;return new core.ObjectMatrix(arrayFormulaRange).forValue((rangeRow,rangeCol,range)=>{var _a3,_b2;if(rangeRow===formulaRow&&rangeCol===formulaColumn)return;const isOverlapping=this._isInArrayFormulaRange(range,r,c),cell=(_b2=(_a3=this._runtimeData[formulaUnitId])==null?void 0:_a3[formulaSheetId])==null?void 0:_b2.getValue(rangeRow,rangeCol);isOverlapping&&(cell==null?void 0:cell.v)!==ErrorType$1.SPILL&&(isCellOverlapping=!0)}),isCellOverlapping}_isInArrayFormulaRange(range,r,c){if(range==null)return!1;const{startRow,startColumn,endRow,endColumn}=range;return r>=startRow&&r<=endRow&&c>=startColumn&&c<=endColumn}_checkIfArrayFormulaExceeded(rowCount,columnCount,arrayRange){return arrayRange.endRow>=rowCount||arrayRange.endColumn>=columnCount}_isInDirtyRange(unitId,sheetId,row,column){const dirtyRanges=this._currentConfigService.getDirtyRanges();return dirtyRanges.length===0?!0:isInDirtyRange(dirtyRanges,unitId,sheetId,row,column)}},__name(_e,"FormulaRuntimeService"),_e),exports2.FormulaRuntimeService=__decorateClass$j([__decorateParam$j(0,IFormulaCurrentConfigService)],exports2.FormulaRuntimeService);const IFormulaRuntimeService=core.createIdentifier("univer.formula.runtime.service");var NodeType=(NodeType2=>(NodeType2.REFERENCE="ReferenceNode",NodeType2.VALUE="ValueNode",NodeType2.OPERATOR="OperatorNode",NodeType2.FUNCTION="FunctionNode",NodeType2.LAMBDA="LambdaNode",NodeType2.LAMBDA_PARAMETER="LambdaNodeParameter",NodeType2.ERROR="ErrorNode",NodeType2.BASE="Base",NodeType2.ROOT="Root",NodeType2.UNION="UnionNode",NodeType2.PREFIX="PrefixNode",NodeType2.SUFFIX="SuffixNode",NodeType2.NULL="NullNode",NodeType2))(NodeType||{});const NODE_ORDER_MAP=new Map([["ReferenceNode",7],["ValueNode",9],["OperatorNode",8],["FunctionNode",6],["LambdaNode",1],["LambdaNodeParameter",2],["Root",10],["UnionNode",3],["PrefixNode",4],["SuffixNode",5]]),_BaseAstNode=class _BaseAstNode{constructor(_token){__publicField(this,"_children",[]);__publicField(this,"_definedNames",[]);__publicField(this,"_parent");__publicField(this,"_valueObject");__publicField(this,"_calculateState",!1);__publicField(this,"_async",!1);__publicField(this,"_address",!1);__publicField(this,"_isForcedCalculateFunction",!1);this._token=_token}dispose(){var _a2;this._children.forEach(node=>{node.dispose()}),(_a2=this._valueObject)==null||_a2.dispose(),this._parent=null}get nodeType(){return NodeType.BASE}isAsync(){return this._async}isAddress(){return this._address}isForcedCalculateFunction(){return this._isForcedCalculateFunction}setAsync(){this._async=!0}setAddress(){this._address=!0}getParent(){return this._parent}setParent(node){this._parent=node,node.addChildren(this)}setForcedCalculateFunction(){this._isForcedCalculateFunction=!0}getChildren(){return this._children}addChildren(...astNode){this._children.push(...astNode)}getToken(){return this._token}setValue(value){this._valueObject=value}getValue(){return this._valueObject}isCalculated(){return this._calculateState}setCalculated(){this._calculateState=!0}execute(){}setNotEmpty(state=!0){}async executeAsync(){return Promise.resolve(AstNodePromiseType.SUCCESS)}serialize(){const token=this.getToken(),children=this.getChildren(),childrenSerialization=[],childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];childrenSerialization.push(item.serialize())}const result={token,nodeType:this.nodeType};return childrenCount>0&&(result.children=childrenSerialization),result}hasDefinedName(definedName){return this._definedNames.includes(definedName)}setDefinedNames(definedNames){this._definedNames=definedNames}};__name(_BaseAstNode,"BaseAstNode");let BaseAstNode=_BaseAstNode;const _ErrorNode=class _ErrorNode extends BaseAstNode{constructor(errorType){super(errorType);__publicField(this,"_errorValueObject");this._errorValueObject=ErrorValueObject.create(errorType)}get nodeType(){return NodeType.ERROR}static create(errorType){return new _ErrorNode(errorType)}getValue(){return this._errorValueObject}};__name(_ErrorNode,"ErrorNode");let ErrorNode=_ErrorNode;const DEFAULT_AST_NODE_FACTORY_Z_INDEX=100,_BaseAstNodeFactory=class _BaseAstNodeFactory{get zIndex(){return 0}dispose(){}create(param,currentRow,currentColumn){let token;return param instanceof LexerNode?token=param.getToken():token=param,new BaseAstNode(token)}};__name(_BaseAstNodeFactory,"BaseAstNodeFactory");let BaseAstNodeFactory=_BaseAstNodeFactory;const _AstRootNode=class _AstRootNode extends BaseAstNode{get nodeType(){return NodeType.ROOT}execute(){const children=this.getChildren();if(children.length>1){this.setValue(ErrorValueObject.create(ErrorType$1.VALUE));return}const node=children[0];node==null?this.setValue(ErrorValueObject.create(ErrorType$1.VALUE)):this.setValue(node.getValue())}};__name(_AstRootNode,"AstRootNode");let AstRootNode=_AstRootNode;const _AstRootNodeFactory=class _AstRootNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.ROOT)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;if(param.getToken()===DEFAULT_TOKEN_TYPE_ROOT)return new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT)}};__name(_AstRootNodeFactory,"AstRootNodeFactory");let AstRootNodeFactory=_AstRootNodeFactory;const IFunctionService=core.createIdentifier("univer.formula-function.service"),_FunctionService=class _FunctionService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_functionExecutors",new Map);__publicField(this,"_functionDescriptions",new Map)}dispose(){this._functionExecutors.clear(),this._functionDescriptions.clear()}registerExecutors(...functions){for(let i=0;i<functions.length;i++){const func=functions[i];this._functionExecutors.set(func.name,func)}}getExecutors(){return this._functionExecutors}getExecutor(functionToken){return this._functionExecutors.get(functionToken)}hasExecutor(functionToken){return this._functionExecutors.has(functionToken)}unregisterExecutors(...functionTokens){for(let i=0;i<functionTokens.length;i++){const functionToken=functionTokens[i];this._functionExecutors.delete(functionToken)}}registerDescriptions(...descriptions){for(let i=0;i<descriptions.length;i++){const description=descriptions[i];this._functionDescriptions.set(description.functionName,description)}return core.toDisposable(()=>{for(let i=0;i<descriptions.length;i++){const description=descriptions[i];this._functionDescriptions.delete(description.functionName)}})}getDescriptions(){return this._functionDescriptions}getDescription(functionToken){return this._functionDescriptions.get(functionToken)}hasDescription(functionToken){return this._functionDescriptions.has(functionToken)}unregisterDescriptions(...functionTokens){for(let i=0;i<functionTokens.length;i++){const functionToken=functionTokens[i];this._functionDescriptions.delete(functionToken)}}};__name(_FunctionService,"FunctionService");let FunctionService=_FunctionService;var FUNCTION_NAMES_META=(FUNCTION_NAMES_META2=>(FUNCTION_NAMES_META2.COMPARE="COMPARE",FUNCTION_NAMES_META2.DIVIDED="DIVIDED",FUNCTION_NAMES_META2.MINUS="MINUS",FUNCTION_NAMES_META2.MULTIPLY="MULTIPLY",FUNCTION_NAMES_META2.PLUS="PLUS",FUNCTION_NAMES_META2.UNION="UNION",FUNCTION_NAMES_META2.CUBE="CUBE",FUNCTION_NAMES_META2))(FUNCTION_NAMES_META||{}),__defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$i(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$i(target,key,result),result},"__decorateClass$i"),__decorateParam$i=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$i");const _PrefixNode=class _PrefixNode extends BaseAstNode{constructor(_accessor,_operatorString,_functionExecutor){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.PREFIX}execute(){let value=this.getChildren()[0].getValue(),result;if(value==null)throw new Error("object is null");this._operatorString===prefixToken.MINUS?(value.isReferenceObject()&&(value=value.toArrayValueObject()),result=this._functionExecutor.calculate(NumberValueObject.create(0),value)):this._operatorString===prefixToken.AT?result=this._handlerAT(value):result=ErrorValueObject.create(ErrorType$1.VALUE),this.setValue(result)}_handlerAT(value){if(!value.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const currentValue=value;if(currentValue.isCell())return ErrorValueObject.create(ErrorType$1.VALUE);const runtimeService=this._accessor.get(IFormulaRuntimeService),currentRow=runtimeService.currentRow||0,currentColumn=runtimeService.currentColumn||0,rangePos=currentValue.getRangePosition(),{startRow,startColumn,endRow,endColumn}=rangePos;return endColumn!==startColumn&&endRow!==startRow||startRow===endRow&&startColumn===endColumn?ErrorValueObject.create(ErrorType$1.VALUE):endRow===startRow&&currentColumn>=startColumn&&currentColumn<=endColumn?currentValue.getCellByColumn(currentColumn):startColumn===endColumn&&currentRow>=startRow&&currentRow<=endRow?currentValue.getCellByRow(currentRow):currentValue.isTable()?currentValue.getCellByPosition(currentRow):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_PrefixNode,"PrefixNode");let PrefixNode=_PrefixNode;exports2.PrefixNodeFactory=(_f=class extends BaseAstNodeFactory{constructor(_functionService,_injector){super(),this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.PREFIX)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const token=param.getToken(),tokenTrim=token.trim();if(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let functionName="";if(tokenTrim===prefixToken.MINUS)functionName=FUNCTION_NAMES_META.MINUS;else return tokenTrim===prefixToken.AT?new PrefixNode(this._injector,tokenTrim):void 0;const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new PrefixNode(this._injector,tokenTrim,functionExecutor):(console.error(`No function ${token}`),ErrorNode.create(ErrorType$1.NAME))}},__name(_f,"PrefixNodeFactory"),_f),exports2.PrefixNodeFactory=__decorateClass$i([__decorateParam$i(0,IFunctionService),__decorateParam$i(1,core.Inject(core.Injector))],exports2.PrefixNodeFactory),new RegExp(prefixToken.MINUS,"g"),new RegExp(prefixToken.AT,"g");function prefixHandler(tokenTrimParam,functionService,injector){let minusPrefixNode,atPrefixNode,tokenTrim=tokenTrimParam;const prefix=tokenTrim.slice(0,2);let sliceLength=0;if(prefix[0]===prefixToken.MINUS){const functionExecutor=functionService.getExecutor(FUNCTION_NAMES_META.MINUS);minusPrefixNode=new PrefixNode(injector,prefixToken.MINUS,functionExecutor),sliceLength++}return prefix[0]===prefixToken.AT&&(atPrefixNode=new PrefixNode(injector,prefixToken.AT),minusPrefixNode&&atPrefixNode.setParent(minusPrefixNode),sliceLength++),sliceLength>0&&(tokenTrim=tokenTrim.slice(sliceLength)),{tokenTrim,minusPrefixNode,atPrefixNode}}__name(prefixHandler,"prefixHandler");var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h");const _FunctionNode=class _FunctionNode extends BaseAstNode{constructor(token,_functionExecutor,_currentConfigService,_runtimeService,_definedNamesService){super(token),this._functionExecutor=_functionExecutor,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._definedNamesService=_definedNamesService,this._functionExecutor.isAsync()&&this.setAsync(),this._functionExecutor.isAddress()&&this.setAddress()}get nodeType(){return NodeType.FUNCTION}async executeAsync(){const variants=[],children=this.getChildren(),childrenCount=children.length;this._compatibility();for(let i=0;i<childrenCount;i++){const object=children[i].getValue();object!=null&&(object.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?variants.push(object.toArrayValueObject()):variants.push(object))}const resultVariant=this._calculate(variants);let result;return resultVariant.isAsyncObject()||resultVariant.isAsyncArrayObject()?result=await resultVariant.getValue():result=resultVariant,this._setRefData(result),this.setValue(result),Promise.resolve(AstNodePromiseType.SUCCESS)}execute(){const variants=[],children=this.getChildren(),childrenCount=children.length;this._compatibility();for(let i=0;i<childrenCount;i++){const object=children[i].getValue();object!=null&&(object.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?variants.push(object.toArrayValueObject()):variants.push(object))}const resultVariant=this._calculate(variants);this._setRefData(resultVariant),this.setValue(resultVariant)}_compatibility(){this._lookupCompatibility()}_lookupCompatibility(){const children=this.getChildren(),childrenCount=children.length;if(!this._functionExecutor.needsExpandParams||childrenCount!==3)return;const lookupVectorOrArray=children[1].getValue(),resultVector=children[2].getValue();if(!(lookupVectorOrArray!=null&&lookupVectorOrArray.isReferenceObject())&&!(resultVector!=null&&resultVector.isReferenceObject()))return;const lookupVectorOrArrayRange=lookupVectorOrArray.getRangeData(),resultVectorRange=resultVector.getRangeData(),{startRow,startColumn,endRow,endColumn}=lookupVectorOrArrayRange,lookupCountRow=endRow-startRow+1,lookupCountColumn=endColumn-startColumn+1,{startRow:reStartRow,startColumn:reStartColumn,endRow:reEndRow,endColumn:reEndColumn}=resultVectorRange,resultCountRow=reEndRow-reStartRow+1,resultCountColumn=reEndColumn-reStartColumn+1;lookupCountRow!==resultCountRow&&(resultVectorRange.endRow+=lookupCountRow-resultCountRow),lookupCountColumn!==resultCountColumn&&(resultVectorRange.endColumn+=lookupCountColumn-resultCountColumn)}_calculate(variants){var _a2;const{minParams,maxParams}=this._functionExecutor;if(minParams!==-1&&maxParams!==-1&&(variants.length<minParams||variants.length>maxParams))return ErrorValueObject.create(ErrorType$1.NA);let resultVariant;if(this._setRefInfo(),this._functionExecutor.isCustom()){const resultVariantCustom=this._functionExecutor.calculateCustom(...variants.map(variant=>variant.isArray()?variant.toValue():variant.getValue()));if(typeof resultVariantCustom!="object"||resultVariantCustom==null)resultVariant=ValueObjectFactory.create(resultVariantCustom);else{const arrayValues=transformToValueObject(resultVariantCustom);resultVariant=ArrayValueObject.create({calculateValueList:arrayValues,rowCount:arrayValues.length,columnCount:((_a2=arrayValues[0])==null?void 0:_a2.length)||0,unitId:"",sheetId:"",row:-1,column:-1})}}else this._functionExecutor.isAddress()&&this._setDefinedNamesForFunction(),resultVariant=this._functionExecutor.calculate(...variants);return resultVariant}_setDefinedNamesForFunction(){const editorUnitId=this._currentConfigService.getExecuteUnitId();if(editorUnitId==null)return;const definedNames=this._definedNamesService.getDefinedNameMap(editorUnitId);definedNames!=null&&this._functionExecutor.setDefinedNames(definedNames)}_setRefInfo(){const{currentUnitId,currentSubUnitId,currentRow,currentColumn}=this._runtimeService;this._functionExecutor.setRefInfo(currentUnitId,currentSubUnitId,currentRow,currentColumn)}_setRefData(variant){if(!variant.isReferenceObject())return;const referenceObject=variant;referenceObject.setForcedSheetId(this._currentConfigService.getSheetNameMap()),referenceObject.setUnitData(this._currentConfigService.getUnitData()),referenceObject.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()),referenceObject.setRuntimeData(this._runtimeService.getUnitData()),referenceObject.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()),referenceObject.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData())}};__name(_FunctionNode,"FunctionNode");let FunctionNode=_FunctionNode;const _ErrorFunctionNode=class _ErrorFunctionNode extends BaseAstNode{constructor(token="Error"){super(token)}get nodeType(){return NodeType.FUNCTION}async executeAsync(){return this.setValue(ErrorValueObject.create(ErrorType$1.NAME)),Promise.resolve(AstNodePromiseType.SUCCESS)}execute(){this.setValue(ErrorValueObject.create(ErrorType$1.NAME))}};__name(_ErrorFunctionNode,"ErrorFunctionNode");let ErrorFunctionNode=_ErrorFunctionNode;exports2.FunctionNodeFactory=(_g=class extends BaseAstNodeFactory{constructor(_functionService,_currentConfigService,_runtimeService,_definedNamesService,_injector){super(),this._functionService=_functionService,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._definedNamesService=_definedNamesService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.FUNCTION)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(token){const functionExecutor=this._functionService.getExecutor(token);return functionExecutor?new FunctionNode(token,functionExecutor,this._currentConfigService,this._runtimeService,this._definedNamesService):(console.error(`No function ${token}`),ErrorNode.create(ErrorType$1.NAME))}checkAndCreateNodeType(param){if(typeof param=="string")return;const token=param.getToken(),{tokenTrim,minusPrefixNode,atPrefixNode}=prefixHandler(token.trim(),this._functionService,this._injector);if(!Number.isNaN(Number(tokenTrim))&&!this._isParentUnionNode(param))return ErrorNode.create(ErrorType$1.VALUE);const tokenTrimUpper=tokenTrim.toUpperCase();if(this._functionService.hasExecutor(tokenTrimUpper)){const functionNode=this.create(tokenTrimUpper);return atPrefixNode?functionNode.setParent(atPrefixNode):minusPrefixNode&&functionNode.setParent(minusPrefixNode),functionNode}}_isParentUnionNode(param){var _a2,_b2;return((_b2=(_a2=param.getParent())==null?void 0:_a2.getParent())==null?void 0:_b2.getToken())===matchToken.COLON}},__name(_g,"FunctionNodeFactory"),_g),exports2.FunctionNodeFactory=__decorateClass$h([__decorateParam$h(0,IFunctionService),__decorateParam$h(1,IFormulaCurrentConfigService),__decorateParam$h(2,IFormulaRuntimeService),__decorateParam$h(3,IDefinedNamesService),__decorateParam$h(4,core.Inject(core.Injector))],exports2.FunctionNodeFactory);var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g");exports2.Interpreter=(_h=class extends core.Disposable{constructor(_runtimeService){super(),this._runtimeService=_runtimeService}async executeAsync(nodeData){if(!nodeData)return Promise.resolve(ErrorValueObject.create(ErrorType$1.VALUE));const node=nodeData.node,refOffsetX=nodeData.refOffsetX,refOffsetY=nodeData.refOffsetY;await this._executeAsync(node,refOffsetX,refOffsetY);const value=node.getValue();return value==null?Promise.resolve(ErrorValueObject.create(ErrorType$1.VALUE)):Promise.resolve(value)}execute(nodeData){if(!nodeData)return ErrorValueObject.create(ErrorType$1.VALUE);const node=nodeData.node,refOffsetX=nodeData.refOffsetX,refOffsetY=nodeData.refOffsetY;this._execute(node,refOffsetX,refOffsetY);const value=node.getValue();return value==null?ErrorValueObject.create(ErrorType$1.VALUE):value}executePreCalculateNode(node){return node.execute(),node.getValue()}checkAsyncNode(node){const result=[];this._checkAsyncNode(node,result);for(let i=0,len=result.length;i<len;i++)if(result[i]===!0)return!0;return!1}_checkAsyncNode(node,resultList){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];resultList.push(item.isAsync()),this._checkAsyncNode(item,resultList)}}async _executeAsync(node,refOffsetX=0,refOffsetY=0){if(this._runtimeService.isStopExecution())return Promise.resolve(AstNodePromiseType.ERROR);const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken().toUpperCase()===DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&item.isEmptyParamFunction()){item.execute();continue}await this._executeAsync(item,refOffsetX,refOffsetY)}return node.nodeType===NodeType.REFERENCE&&node.setRefOffset(refOffsetX,refOffsetY),node.nodeType===NodeType.FUNCTION&&node.isAsync()?await node.executeAsync():node.execute(),Promise.resolve(AstNodePromiseType.SUCCESS)}_execute(node,refOffsetX=0,refOffsetY=0){if(this._runtimeService.isStopExecution())return AstNodePromiseType.ERROR;const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken().toUpperCase()===DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME&&item.isEmptyParamFunction()){item.execute();continue}this._execute(item,refOffsetX,refOffsetY)}return node.nodeType===NodeType.REFERENCE&&node.setRefOffset(refOffsetX,refOffsetY),node.execute(),AstNodePromiseType.SUCCESS}},__name(_h,"Interpreter"),_h),exports2.Interpreter=__decorateClass$g([__decorateParam$g(0,IFormulaRuntimeService)],exports2.Interpreter);function isFirstChildParameter(lexerNode){return lexerNode instanceof LexerNode?lexerNode.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER:!1}__name(isFirstChildParameter,"isFirstChildParameter");function isChildRunTimeParameter(lexerNode){return lexerNode instanceof LexerNode?lexerNode.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER:!1}__name(isChildRunTimeParameter,"isChildRunTimeParameter");function updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar){const children=functionStatementNode.getChildren(),childrenCount=children.length,firstChild=children[0];for(let i=0;i<childrenCount;i++){const node=children[i];if(!(isFirstChildParameter(firstChild)&&i!==0))if(node instanceof LexerNode)updateLambdaStatement(node,lambdaId,currentLambdaPrivacyVar);else{const token=node.trim();if(currentLambdaPrivacyVar.has(token)){const newNode=new LexerNode;newNode.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER),newNode.setLambdaId(lambdaId),newNode.setLambdaPrivacyVar(currentLambdaPrivacyVar),newNode.setLambdaParameter(token),children[i]=newNode}}}}__name(updateLambdaStatement,"updateLambdaStatement");function getCellValue(cell){if(cell===null)return 0;if(cell!=null&&cell.p){const body=cell==null?void 0:cell.p.body;if(body==null)return 0;const data=body.dataStream;return core.BuildTextUtils.transform.getPlainText(data)}return(cell==null?void 0:cell.v)||0}__name(getCellValue,"getCellValue");const FORMULA_CACHE_LRU_COUNT$1=1e5,FORMULA_REF_TO_ARRAY_CACHE=new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT$1),_BaseReferenceObject=class _BaseReferenceObject extends ObjectClassType{constructor(_token){super();__publicField(this,"_forcedSheetId","");__publicField(this,"_forcedSheetName","");__publicField(this,"_defaultSheetId","");__publicField(this,"_rangeData",{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1});__publicField(this,"_unitData",{});__publicField(this,"_unitStylesData",{});__publicField(this,"_defaultUnitId","");__publicField(this,"_forcedUnitId","");__publicField(this,"_runtimeData",{});__publicField(this,"_arrayFormulaCellData",{});__publicField(this,"_runtimeArrayFormulaCellData",{});__publicField(this,"_runtimeFeatureCellData",{});__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._token=_token}dispose(){this._unitData={},this._unitStylesData={},this._runtimeData={}}getToken(){return this._token}setToken(token){this._token=token}isExceedRange(){const{startRow,endRow,startColumn,endColumn}=this.getRangePosition();return startRow<0||startColumn<0||endRow>=this.getActiveSheetRowCount()||endColumn>=this.getActiveSheetColumnCount()}setRefOffset(x=0,y=0){this._refOffsetX=x,this._refOffsetY=y}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}getRangePosition(){let{startRow,startColumn,endRow,endColumn}=core.moveRangeByOffset(this._rangeData,this._refOffsetX,this._refOffsetY);return Number.isNaN(startRow)&&(startRow=0),Number.isNaN(startColumn)&&(startColumn=0),Number.isNaN(endRow)&&(endRow=this.getActiveSheetRowCount()-1),Number.isNaN(endColumn)&&(endColumn=this.getActiveSheetColumnCount()-1),{startRow,endRow,startColumn,endColumn}}isReferenceObject(){return!0}iterator(callback){const{startRow,endRow,startColumn,endColumn}=this.getRangePosition();if(this._checkIfWorksheetMiss())return callback(ErrorValueObject.create(ErrorType$1.VALUE),startRow,startColumn);const unitId=this._forcedUnitId||this._defaultUnitId,sheetId=this._forcedSheetId||this._defaultSheetId;for(let r=startRow;r<=endRow;r++)for(let c=startColumn;c<=endColumn;c++){if(r<0||c<0)return callback(ErrorValueObject.create(ErrorType$1.REF),r,c);const cell=this.getCellData(r,c);let result=!1;if(core.isNullCell(cell)){result=callback(null,r,c);continue}let resultObjectValue=this.getCellValueObject(cell);if(r===startRow&&c===startColumn){const pattern=this.getCellPattern(unitId,sheetId,r,c);if(pattern&&resultObjectValue.isNumber()){const value=Number(resultObjectValue.getValue());resultObjectValue=NumberValueObject.create(value,pattern)}}if(result=callback(resultObjectValue,r,c),result===!1)return}}getFirstCell(){const{startRow,startColumn}=this.getRangePosition(),cell=this.getCellData(startRow,startColumn);if(!cell)return NumberValueObject.create(0);let cellValueObject=this.getCellValueObject(cell);const unitId=this._forcedUnitId||this._defaultUnitId,sheetId=this._forcedSheetId||this._defaultSheetId,pattern=this.getCellPattern(unitId,sheetId,startRow,startColumn);if(pattern&&cellValueObject.isNumber()){const value=Number(cellValueObject.getValue());cellValueObject=NumberValueObject.create(value,pattern)}return cellValueObject}getRangeData(){return this._rangeData}setRangeData(range){this._rangeData=range}getUnitId(){return this._forcedUnitId&&this._forcedUnitId.length>0?this._forcedUnitId:this._defaultUnitId}getSheetId(){return this._forcedSheetId&&this._forcedSheetId.length>0?this._forcedSheetId:this._defaultSheetId}setForcedUnitIdDirect(unitId){unitId.length>0&&(this._forcedUnitId=unitId)}getForcedUnitId(){return this._forcedUnitId}setForcedSheetId(sheetNameMap){var _a2;this._forcedSheetId=(_a2=sheetNameMap[this.getUnitId()])==null?void 0:_a2[this._forcedSheetName]}setForcedSheetIdDirect(sheetId){this._forcedSheetId=sheetId}getForcedSheetId(){return this._forcedSheetId}setForcedSheetName(sheetName){sheetName.length>0&&(this._forcedSheetName=sheetName)}getForcedSheetName(){return this._forcedSheetName}setDefaultSheetId(sheetId){this._defaultSheetId=sheetId}getDefaultSheetId(){return this._defaultSheetId}setDefaultUnitId(unitId){this._defaultUnitId=unitId}getDefaultUnitId(){return this._defaultUnitId}getUnitData(){return this._unitData}setUnitData(unitData){this._unitData=unitData}getUnitStylesData(){return this._unitStylesData}setUnitStylesData(unitStylesData){this._unitStylesData=unitStylesData}getRuntimeData(){return this._runtimeData}setRuntimeData(runtimeData){this._runtimeData=runtimeData}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(unitData){this._arrayFormulaCellData=unitData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}setRuntimeArrayFormulaCellData(unitData){this._runtimeArrayFormulaCellData=unitData}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(unitData){this._runtimeFeatureCellData=unitData}getActiveSheetRowCount(){var _a2;return((_a2=this.getCurrentActiveSheetData())==null?void 0:_a2.rowCount)||0}getActiveSheetColumnCount(){var _a2;return((_a2=this.getCurrentActiveSheetData())==null?void 0:_a2.columnCount)||0}getRowCount(){return this._rangeData.endRow-this._rangeData.startRow+1}getColumnCount(){return this._rangeData.endColumn-this._rangeData.startColumn+1}getRowData(){var _a2;return((_a2=this.getCurrentActiveSheetData())==null?void 0:_a2.rowData)||{}}getColumnData(){var _a2;return((_a2=this.getCurrentActiveSheetData())==null?void 0:_a2.columnData)||{}}isCell(){return!1}isColumn(){return!1}isRow(){return!1}isRange(){return!1}isTable(){return!1}unionBy(referenceObject){return ErrorValueObject.create(ErrorType$1.REF)}unionRange(rangeData1,rangeData2){return{startRow:-1,startColumn:-1,endRow:-1,endColumn:-1}}getCellValueObject(cell){const value=getCellValue(cell);if(ERROR_TYPE_SET.has(value))return ErrorValueObject.create(value);if(cell.t===core.CellValueType.NUMBER){const pattern=this._getPatternByCell(cell);return createNumberValueObjectByRawValue(value,pattern)}return cell.t===core.CellValueType.STRING||cell.t===core.CellValueType.FORCE_STRING?StringValueObject.create(value.toString()):cell.t===core.CellValueType.BOOLEAN?createBooleanValueObjectByRawValue(value):ValueObjectFactory.create(value)}_getPatternByCell(cell){var _a2;const styles=this._unitStylesData[this.getUnitId()];if(!styles)return"";const style=styles.getStyleByCell(cell);return((_a2=style==null?void 0:style.n)==null?void 0:_a2.pattern)||""}getCellByRow(row){return this.getCellByPosition(row)}getCellByColumn(column){return this.getCellByPosition(void 0,column)}getCurrentActiveSheetData(){var _a2;return(_a2=this._unitData[this.getUnitId()])==null?void 0:_a2[this.getSheetId()]}getCurrentStylesData(){return this._unitStylesData[this.getUnitId()]}getCurrentRuntimeSheetData(){var _a2,_b2;return(_b2=(_a2=this._runtimeData)==null?void 0:_a2[this.getUnitId()])==null?void 0:_b2[this.getSheetId()]}getCurrentActiveArrayFormulaCellData(){var _a2,_b2;return(_b2=(_a2=this._arrayFormulaCellData)==null?void 0:_a2[this.getUnitId()])==null?void 0:_b2[this.getSheetId()]}getCurrentRuntimeActiveArrayFormulaCellData(){var _a2,_b2;return(_b2=(_a2=this._runtimeArrayFormulaCellData)==null?void 0:_a2[this.getUnitId()])==null?void 0:_b2[this.getSheetId()]}getCellData(row,column){const activeSheetData=this.getCurrentActiveSheetData(),activeRuntimeData=this.getCurrentRuntimeSheetData(),activeArrayFormulaCellData=this.getCurrentActiveArrayFormulaCellData(),activeRuntimeArrayFormulaCellData=this.getCurrentRuntimeActiveArrayFormulaCellData();return(activeRuntimeData==null?void 0:activeRuntimeData.getValue(row,column))||(activeRuntimeArrayFormulaCellData==null?void 0:activeRuntimeArrayFormulaCellData.getValue(row,column))||this.getRuntimeFeatureCellValue(row,column)||(activeArrayFormulaCellData==null?void 0:activeArrayFormulaCellData.getValue(row,column))||(activeSheetData==null?void 0:activeSheetData.cellData.getValue(row,column))}getRuntimeFeatureCellValue(row,column){return getRuntimeFeatureCell(row,column,this.getSheetId(),this.getUnitId(),this._runtimeFeatureCellData)}getCellByPosition(rowRaw,columnRaw){let row=rowRaw,column=columnRaw;row||(row=this._rangeData.startRow),column||(column=this._rangeData.startColumn);const cell=this.getCellData(row,column);return cell?this.getCellValueObject(cell):ErrorValueObject.create(ErrorType$1.VALUE)}getCellPattern(unitId,sheetId,row,column){var _a2,_b2,_c2,_d2;const currentStyles=this._unitStylesData[unitId];if(!currentStyles)return"";const currentCell=(_c2=(_b2=(_a2=this._unitData[unitId])==null?void 0:_a2[sheetId])==null?void 0:_b2.cellData)==null?void 0:_c2.getValue(row,column);if(!currentCell)return"";const style=currentStyles.getStyleByCell(currentCell);return((_d2=style==null?void 0:style.n)==null?void 0:_d2.pattern)||""}toArrayValueObject(useCache=!0){var _a2;const{startRow,endRow,startColumn,endColumn}=this.getRangePosition(),key=`${this.getUnitId()}_${this.getSheetId()}_${startRow}_${endRow}_${startColumn}_${endColumn}`,array=FORMULA_REF_TO_ARRAY_CACHE.get(key);if(array&&useCache)return array;const rowSize=endRow-startRow+1,columnSize=endColumn-startColumn+1;if(rowSize<0||columnSize<0)return this._getBlankArrayValueObject();const arrayValueList=new Array(rowSize);this.iterator((valueObject,rowIndex,columnIndex)=>{const row=rowIndex-startRow,column=columnIndex-startColumn;arrayValueList[row]||(arrayValueList[row]=new Array(columnSize)),valueObject==null&&(valueObject=NullValueObject.create()),arrayValueList[row][column]=valueObject});const arrayValueObjectData={calculateValueList:arrayValueList,rowCount:arrayValueList.length,columnCount:((_a2=arrayValueList[0])==null?void 0:_a2.length)||0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:startRow,column:startColumn},arrayValueObject=ArrayValueObject.create(arrayValueObjectData);return useCache&&FORMULA_REF_TO_ARRAY_CACHE.set(key,arrayValueObject),arrayValueObject}toUnitRange(){return{range:this.getRangePosition(),sheetId:this.getSheetId(),unitId:this.getUnitId()}}_checkIfWorksheetMiss(){return(this._forcedSheetId==null||this._forcedSheetId.length===0)&&this._forcedSheetName.length>0}_getBlankArrayValueObject(){const arrayValueObjectData={calculateValueList:[],rowCount:0,columnCount:0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:0,column:0};return ArrayValueObject.create(arrayValueObjectData)}};__name(_BaseReferenceObject,"BaseReferenceObject");let BaseReferenceObject=_BaseReferenceObject;const _AsyncObject=class _AsyncObject extends ObjectClassType{constructor(_promise){super(),this._promise=_promise}isAsyncObject(){return!0}async getValue(){return this._promise}};__name(_AsyncObject,"AsyncObject");let AsyncObject=_AsyncObject;const _AsyncArrayObject=class _AsyncArrayObject extends ObjectClassType{constructor(_promiseList){super(),this._promiseList=_promiseList}isAsyncArrayObject(){return!0}async getValue(){var _a2;const variants=[];for(let r=0;r<this._promiseList.length;r++){const promiseCells=this._promiseList[r];variants[r]==null&&(variants[r]=[]);for(let c=0;c<promiseCells.length;c++){const promiseCell=promiseCells[c];promiseCell.isAsyncObject()?variants[r][c]=await promiseCell.getValue():variants[r][c]=promiseCell}}const arrayValueObjectData={calculateValueList:variants,rowCount:variants.length,columnCount:((_a2=variants[0])==null?void 0:_a2.length)||0,unitId:"",sheetId:"",row:0,column:0};return ArrayValueObject.create(arrayValueObjectData)}};__name(_AsyncArrayObject,"AsyncArrayObject");let AsyncArrayObject=_AsyncArrayObject;function getAstNodeTopParent(node){let parent=node;for(;parent!=null&&parent.getParent();)parent=parent.getParent();return parent}__name(getAstNodeTopParent,"getAstNodeTopParent");function generateExecuteAstNodeData(node,refOffsetX=0,refOffsetY=0){return{node,refOffsetX,refOffsetY}}__name(generateExecuteAstNodeData,"generateExecuteAstNodeData");function getRootLexerHasValueNode(node){if(!node)return;if(node.getToken()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER)return node;const parameterNode=node,currentLambdaPrivacyVar=parameterNode.getCurrentLambdaPrivacyVar(),lambdaParameter=parameterNode.getLambdaParameter();if(!currentLambdaPrivacyVar)return;const chainNode=currentLambdaPrivacyVar.get(lambdaParameter);return chainNode==null&&node.getValue()?node:getRootLexerHasValueNode(chainNode)}__name(getRootLexerHasValueNode,"getRootLexerHasValueNode");const _LambdaValueObjectObject=class _LambdaValueObjectObject extends BaseValueObject{constructor(_lambdaNode,_interpreter,_lambdaPrivacyVarKeys){super(0);__publicField(this,"_lambdaPrivacyValueMap",new Map);this._lambdaNode=_lambdaNode,this._interpreter=_interpreter,this._lambdaPrivacyVarKeys=_lambdaPrivacyVarKeys,this._lambdaPrivacyValueMap.clear()}static create(lambdaNode,interpreter,lambdaPrivacyVarKeys){return new _LambdaValueObjectObject(lambdaNode,interpreter,lambdaPrivacyVarKeys)}isLambda(){return!0}execute(...variants){const paramCount=this._lambdaPrivacyVarKeys.length;if(variants.length!==paramCount)return ErrorValueObject.create(ErrorType$1.VALUE);this._setLambdaPrivacyValueMap(variants),this._setLambdaNodeValue(this._lambdaNode),this._lambdaNode.setNotEmpty(!1);let value;if(this._interpreter.checkAsyncNode(this._lambdaNode))value=new AsyncObject(this._interpreter.executeAsync(generateExecuteAstNodeData(this._lambdaNode)));else{const o=this._interpreter.execute(generateExecuteAstNodeData(this._lambdaNode));o.isReferenceObject()?value=o.toArrayValueObject():value=o}return this._lambdaNode.setNotEmpty(!0),value}_setLambdaNodeValue(node){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER){const lambdaParameter=item.getLambdaParameter(),value=this._lambdaPrivacyValueMap.get(lambdaParameter);if(value)item.setValue(value);else{const currentLambdaPrivacyVar=item.getCurrentLambdaPrivacyVar(),node2=getRootLexerHasValueNode(currentLambdaPrivacyVar.get(lambdaParameter));node2!=null&&item.setValue(node2.getValue())}continue}this._setLambdaNodeValue(item)}}_setLambdaPrivacyValueMap(variants){for(let i=0;i<variants.length;i++){const variant=variants[i],key=this._lambdaPrivacyVarKeys[i];this._lambdaPrivacyValueMap.set(key,variant)}}getLambdaPrivacyVarKeys(){return this._lambdaPrivacyVarKeys}};__name(_LambdaValueObjectObject,"LambdaValueObjectObject");let LambdaValueObjectObject=_LambdaValueObjectObject;var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f");const _LambdaNode=class _LambdaNode extends BaseAstNode{constructor(token,_lambdaId,_interpreter,_lambdaPrivacyVarKeys){super(token);__publicField(this,"_isNotEmpty",!0);this._lambdaId=_lambdaId,this._interpreter=_interpreter,this._lambdaPrivacyVarKeys=_lambdaPrivacyVarKeys}get nodeType(){return NodeType.LAMBDA}setNotEmpty(state=!1){this._isNotEmpty=state}isEmptyParamFunction(){return this.getChildren().length<2&&this._isNotEmpty}isFunctionParameter(){return this._lambdaId===null}getLambdaId(){return this._lambdaId}execute(){if(this.isEmptyParamFunction())this.setValue(LambdaValueObjectObject.create(this,this._interpreter,this._lambdaPrivacyVarKeys));else{const children=this.getChildren(),childrenCount=children.length;this.setValue(children[childrenCount-1].getValue())}}};__name(_LambdaNode,"LambdaNode");let LambdaNode=_LambdaNode;exports2.LambdaNodeFactory=(_i=class extends BaseAstNodeFactory{constructor(_runtimeService,_interpreter){super(),this._runtimeService=_runtimeService,this._interpreter=_interpreter}get zIndex(){return NODE_ORDER_MAP.get(NodeType.LAMBDA)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){const children=param.getChildren(),lambdaVar=children[0];let parameterArray=children.slice(1,-1);const functionStatementNode=children[children.length-1];if(!(lambdaVar instanceof LexerNode&&functionStatementNode instanceof LexerNode))return ErrorNode.create(ErrorType$1.NAME);if(lambdaVar.getToken()===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){const lambdaVarChildren=lambdaVar.getChildren();if(parameterArray.length!==lambdaVarChildren.length)return ErrorNode.create(ErrorType$1.VALUE)}else parameterArray=children.slice(0,-1);const lambdaId=core.Tools.generateRandomId(8),currentLambdaPrivacyVar=new Map;for(let i=0;i<parameterArray.length;i++){const parameter=parameterArray[i];if(parameter instanceof LexerNode){const variant=parameter.getChildren()[0];parameter.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_OMIT_PARAMETER),currentLambdaPrivacyVar.set(variant.trim(),void 0)}else return ErrorNode.create(ErrorType$1.VALUE)}return this._runtimeService.registerFunctionDefinitionPrivacyVar(lambdaId,currentLambdaPrivacyVar),this._updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar),new LambdaNode(param.getToken(),lambdaId,this._interpreter,[...currentLambdaPrivacyVar.keys()])}checkAndCreateNodeType(param){if(!(!(param instanceof LexerNode)||param.getToken().trim().toUpperCase()!==DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME))return this.create(param)}_updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar){updateLambdaStatement(functionStatementNode,lambdaId,currentLambdaPrivacyVar)}},__name(_i,"LambdaNodeFactory"),_i),exports2.LambdaNodeFactory=__decorateClass$f([__decorateParam$f(0,IFormulaRuntimeService),__decorateParam$f(1,core.Inject(exports2.Interpreter))],exports2.LambdaNodeFactory);function getRootLexerNode(node){if(!node)return;if(node.getToken()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER)return node;const parameterNode=node,currentLambdaPrivacyVar=parameterNode.getCurrentLambdaPrivacyVar(),lambdaParameter=parameterNode.getLambdaParameter();if(currentLambdaPrivacyVar)return getRootLexerNode(currentLambdaPrivacyVar.get(lambdaParameter))}__name(getRootLexerNode,"getRootLexerNode");const _LambdaParameterNode=class _LambdaParameterNode extends BaseAstNode{constructor(token,_lambdaParameter,_currentLambdaPrivacyVar){super(token),this._lambdaParameter=_lambdaParameter,this._currentLambdaPrivacyVar=_currentLambdaPrivacyVar}getLambdaParameter(){return this._lambdaParameter}getCurrentLambdaPrivacyVar(){return this._currentLambdaPrivacyVar}get nodeType(){return NodeType.LAMBDA_PARAMETER}execute(){const node=getRootLexerNode(this._currentLambdaPrivacyVar.get(this._lambdaParameter));if(node)this.setValue(node.getValue());else{const value=this.getValue();(value==null||value.isError())&&this.setValue(ErrorValueObject.create(ErrorType$1.NAME))}}};__name(_LambdaParameterNode,"LambdaParameterNode");let LambdaParameterNode=_LambdaParameterNode;const _LambdaParameterNodeFactory=class _LambdaParameterNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.LAMBDA_PARAMETER)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){const currentLambdaPrivacyVar=param.getFunctionDefinitionPrivacyVar(),lambdaParameter=param.getLambdaParameter();return currentLambdaPrivacyVar?new LambdaParameterNode(param.getToken(),lambdaParameter,currentLambdaPrivacyVar):new ErrorNode(ErrorType$1.NAME)}checkAndCreateNodeType(param){if(!(!(param instanceof LexerNode)||param.getToken().trim()!==DEFAULT_TOKEN_TYPE_LAMBDA_RUNTIME_PARAMETER))return this.create(param)}};__name(_LambdaParameterNodeFactory,"LambdaParameterNodeFactory");let LambdaParameterNodeFactory=_LambdaParameterNodeFactory;const _NullNode=class _NullNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.NULL}execute(){this.setValue(NullValueObject.create())}};__name(_NullNode,"NullNode");let NullNode=_NullNode;var FUNCTION_NAMES_MATH=(FUNCTION_NAMES_MATH2=>(FUNCTION_NAMES_MATH2.ABS="ABS",FUNCTION_NAMES_MATH2.ACOS="ACOS",FUNCTION_NAMES_MATH2.ACOSH="ACOSH",FUNCTION_NAMES_MATH2.ACOT="ACOT",FUNCTION_NAMES_MATH2.ACOTH="ACOTH",FUNCTION_NAMES_MATH2.AGGREGATE="AGGREGATE",FUNCTION_NAMES_MATH2.ARABIC="ARABIC",FUNCTION_NAMES_MATH2.ASIN="ASIN",FUNCTION_NAMES_MATH2.ASINH="ASINH",FUNCTION_NAMES_MATH2.ATAN="ATAN",FUNCTION_NAMES_MATH2.ATAN2="ATAN2",FUNCTION_NAMES_MATH2.ATANH="ATANH",FUNCTION_NAMES_MATH2.BASE="BASE",FUNCTION_NAMES_MATH2.CEILING="CEILING",FUNCTION_NAMES_MATH2.CEILING_MATH="CEILING.MATH",FUNCTION_NAMES_MATH2.CEILING_PRECISE="CEILING.PRECISE",FUNCTION_NAMES_MATH2.COMBIN="COMBIN",FUNCTION_NAMES_MATH2.COMBINA="COMBINA",FUNCTION_NAMES_MATH2.COS="COS",FUNCTION_NAMES_MATH2.COSH="COSH",FUNCTION_NAMES_MATH2.COT="COT",FUNCTION_NAMES_MATH2.COTH="COTH",FUNCTION_NAMES_MATH2.CSC="CSC",FUNCTION_NAMES_MATH2.CSCH="CSCH",FUNCTION_NAMES_MATH2.DECIMAL="DECIMAL",FUNCTION_NAMES_MATH2.DEGREES="DEGREES",FUNCTION_NAMES_MATH2.EVEN="EVEN",FUNCTION_NAMES_MATH2.EXP="EXP",FUNCTION_NAMES_MATH2.FACT="FACT",FUNCTION_NAMES_MATH2.FACTDOUBLE="FACTDOUBLE",FUNCTION_NAMES_MATH2.FLOOR="FLOOR",FUNCTION_NAMES_MATH2.FLOOR_MATH="FLOOR.MATH",FUNCTION_NAMES_MATH2.FLOOR_PRECISE="FLOOR.PRECISE",FUNCTION_NAMES_MATH2.GCD="GCD",FUNCTION_NAMES_MATH2.INT="INT",FUNCTION_NAMES_MATH2.ISO_CEILING="ISO.CEILING",FUNCTION_NAMES_MATH2.LCM="LCM",FUNCTION_NAMES_MATH2.LET="LET",FUNCTION_NAMES_MATH2.LN="LN",FUNCTION_NAMES_MATH2.LOG="LOG",FUNCTION_NAMES_MATH2.LOG10="LOG10",FUNCTION_NAMES_MATH2.MDETERM="MDETERM",FUNCTION_NAMES_MATH2.MINVERSE="MINVERSE",FUNCTION_NAMES_MATH2.MMULT="MMULT",FUNCTION_NAMES_MATH2.MOD="MOD",FUNCTION_NAMES_MATH2.MROUND="MROUND",FUNCTION_NAMES_MATH2.MULTINOMIAL="MULTINOMIAL",FUNCTION_NAMES_MATH2.MUNIT="MUNIT",FUNCTION_NAMES_MATH2.ODD="ODD",FUNCTION_NAMES_MATH2.PI="PI",FUNCTION_NAMES_MATH2.POWER="POWER",FUNCTION_NAMES_MATH2.PRODUCT="PRODUCT",FUNCTION_NAMES_MATH2.QUOTIENT="QUOTIENT",FUNCTION_NAMES_MATH2.RADIANS="RADIANS",FUNCTION_NAMES_MATH2.RAND="RAND",FUNCTION_NAMES_MATH2.RANDARRAY="RANDARRAY",FUNCTION_NAMES_MATH2.RANDBETWEEN="RANDBETWEEN",FUNCTION_NAMES_MATH2.ROMAN="ROMAN",FUNCTION_NAMES_MATH2.ROUND="ROUND",FUNCTION_NAMES_MATH2.ROUNDDOWN="ROUNDDOWN",FUNCTION_NAMES_MATH2.ROUNDUP="ROUNDUP",FUNCTION_NAMES_MATH2.SEC="SEC",FUNCTION_NAMES_MATH2.SECH="SECH",FUNCTION_NAMES_MATH2.SERIESSUM="SERIESSUM",FUNCTION_NAMES_MATH2.SEQUENCE="SEQUENCE",FUNCTION_NAMES_MATH2.SIGN="SIGN",FUNCTION_NAMES_MATH2.SIN="SIN",FUNCTION_NAMES_MATH2.SINH="SINH",FUNCTION_NAMES_MATH2.SQRT="SQRT",FUNCTION_NAMES_MATH2.SQRTPI="SQRTPI",FUNCTION_NAMES_MATH2.SUBTOTAL="SUBTOTAL",FUNCTION_NAMES_MATH2.SUM="SUM",FUNCTION_NAMES_MATH2.SUMIF="SUMIF",FUNCTION_NAMES_MATH2.SUMIFS="SUMIFS",FUNCTION_NAMES_MATH2.SUMPRODUCT="SUMPRODUCT",FUNCTION_NAMES_MATH2.SUMSQ="SUMSQ",FUNCTION_NAMES_MATH2.SUMX2MY2="SUMX2MY2",FUNCTION_NAMES_MATH2.SUMX2PY2="SUMX2PY2",FUNCTION_NAMES_MATH2.SUMXMY2="SUMXMY2",FUNCTION_NAMES_MATH2.TAN="TAN",FUNCTION_NAMES_MATH2.TANH="TANH",FUNCTION_NAMES_MATH2.TRUNC="TRUNC",FUNCTION_NAMES_MATH2))(FUNCTION_NAMES_MATH||{}),FUNCTION_NAMES_TEXT=(FUNCTION_NAMES_TEXT2=>(FUNCTION_NAMES_TEXT2.ASC="ASC",FUNCTION_NAMES_TEXT2.ARRAYTOTEXT="ARRAYTOTEXT",FUNCTION_NAMES_TEXT2.BAHTTEXT="BAHTTEXT",FUNCTION_NAMES_TEXT2.CHAR="CHAR",FUNCTION_NAMES_TEXT2.CLEAN="CLEAN",FUNCTION_NAMES_TEXT2.CODE="CODE",FUNCTION_NAMES_TEXT2.CONCAT="CONCAT",FUNCTION_NAMES_TEXT2.CONCATENATE="CONCATENATE",FUNCTION_NAMES_TEXT2.DBCS="DBCS",FUNCTION_NAMES_TEXT2.DOLLAR="DOLLAR",FUNCTION_NAMES_TEXT2.EXACT="EXACT",FUNCTION_NAMES_TEXT2.FIND="FIND",FUNCTION_NAMES_TEXT2.FINDB="FINDB",FUNCTION_NAMES_TEXT2.FIXED="FIXED",FUNCTION_NAMES_TEXT2.LEFT="LEFT",FUNCTION_NAMES_TEXT2.LEFTB="LEFTB",FUNCTION_NAMES_TEXT2.LEN="LEN",FUNCTION_NAMES_TEXT2.LENB="LENB",FUNCTION_NAMES_TEXT2.LOWER="LOWER",FUNCTION_NAMES_TEXT2.MID="MID",FUNCTION_NAMES_TEXT2.MIDB="MIDB",FUNCTION_NAMES_TEXT2.NUMBERVALUE="NUMBERVALUE",FUNCTION_NAMES_TEXT2.PHONETIC="PHONETIC",FUNCTION_NAMES_TEXT2.PROPER="PROPER",FUNCTION_NAMES_TEXT2.REGEXEXTRACT="REGEXEXTRACT",FUNCTION_NAMES_TEXT2.REGEXMATCH="REGEXMATCH",FUNCTION_NAMES_TEXT2.REGEXREPLACE="REGEXREPLACE",FUNCTION_NAMES_TEXT2.REPLACE="REPLACE",FUNCTION_NAMES_TEXT2.REPLACEB="REPLACEB",FUNCTION_NAMES_TEXT2.REPT="REPT",FUNCTION_NAMES_TEXT2.RIGHT="RIGHT",FUNCTION_NAMES_TEXT2.RIGHTB="RIGHTB",FUNCTION_NAMES_TEXT2.SEARCH="SEARCH",FUNCTION_NAMES_TEXT2.SEARCHB="SEARCHB",FUNCTION_NAMES_TEXT2.SUBSTITUTE="SUBSTITUTE",FUNCTION_NAMES_TEXT2.T="T",FUNCTION_NAMES_TEXT2.TEXT="TEXT",FUNCTION_NAMES_TEXT2.TEXTAFTER="TEXTAFTER",FUNCTION_NAMES_TEXT2.TEXTBEFORE="TEXTBEFORE",FUNCTION_NAMES_TEXT2.TEXTJOIN="TEXTJOIN",FUNCTION_NAMES_TEXT2.TEXTSPLIT="TEXTSPLIT",FUNCTION_NAMES_TEXT2.TRIM="TRIM",FUNCTION_NAMES_TEXT2.UNICHAR="UNICHAR",FUNCTION_NAMES_TEXT2.UNICODE="UNICODE",FUNCTION_NAMES_TEXT2.UPPER="UPPER",FUNCTION_NAMES_TEXT2.VALUE="VALUE",FUNCTION_NAMES_TEXT2.VALUETOTEXT="VALUETOTEXT",FUNCTION_NAMES_TEXT2.CALL="CALL",FUNCTION_NAMES_TEXT2.EUROCONVERT="EUROCONVERT",FUNCTION_NAMES_TEXT2.REGISTER_ID="REGISTER.ID",FUNCTION_NAMES_TEXT2))(FUNCTION_NAMES_TEXT||{}),__defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");const _OperatorNode=class _OperatorNode extends BaseAstNode{constructor(_operatorString,_functionExecutor){super(_operatorString),this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.OPERATOR}execute(){var _a2,_b2;const children=this.getChildren();this._functionExecutor.name===FUNCTION_NAMES_META.COMPARE&&this._functionExecutor.setCompareType(this.getToken());let object1=(_a2=children[0])==null?void 0:_a2.getValue(),object2=(_b2=children[1])==null?void 0:_b2.getValue();const token=this.getToken();if((object1==null||object2==null)&&token!==operatorToken.MINUS&&token!==operatorToken.PLUS){this.setValue(ErrorValueObject.create(ErrorType$1.VALUE));return}object1==null&&(object1=NullValueObject.create()),object2==null&&(object2=NullValueObject.create()),object1.isReferenceObject()&&(object1=object1.toArrayValueObject()),object2.isReferenceObject()&&(object2=object2.toArrayValueObject()),this.setValue(this._functionExecutor.calculate(object1,object2))}};__name(_OperatorNode,"OperatorNode");let OperatorNode=_OperatorNode;exports2.OperatorNodeFactory=(_j=class extends BaseAstNodeFactory{constructor(_functionService){super(),this._functionService=_functionService}get zIndex(){return NODE_ORDER_MAP.get(NodeType.OPERATOR)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){let functionName="";const tokenTrim=param;tokenTrim===operatorToken.PLUS?functionName=FUNCTION_NAMES_META.PLUS:tokenTrim===operatorToken.MINUS?functionName=FUNCTION_NAMES_META.MINUS:tokenTrim===operatorToken.MULTIPLY?functionName=FUNCTION_NAMES_META.MULTIPLY:tokenTrim===operatorToken.DIVIDED?functionName=FUNCTION_NAMES_META.DIVIDED:tokenTrim===operatorToken.CONCATENATE?functionName=FUNCTION_NAMES_TEXT.CONCATENATE:tokenTrim===operatorToken.POWER?functionName=FUNCTION_NAMES_MATH.POWER:OPERATOR_TOKEN_COMPARE_SET.has(tokenTrim)&&(functionName=FUNCTION_NAMES_META.COMPARE);const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new OperatorNode(tokenTrim,functionExecutor):(console.error(`No function ${param}`),ErrorNode.create(ErrorType$1.NAME))}checkAndCreateNodeType(param){if(param instanceof LexerNode)return;const tokenTrim=param.trim();if(!(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')&&OPERATOR_TOKEN_SET.has(tokenTrim))return this.create(tokenTrim)}},__name(_j,"OperatorNodeFactory"),_j),exports2.OperatorNodeFactory=__decorateClass$e([__decorateParam$e(0,IFunctionService)],exports2.OperatorNodeFactory);const _SuperTableService=class _SuperTableService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_tableMap",new Map);__publicField(this,"_tableOptionMap",new Map)}dispose(){this._tableMap.clear(),this._tableOptionMap.clear()}remove(unitId,tableName){var _a2;(_a2=this._tableMap.get(unitId))==null||_a2.delete(tableName)}getTableMap(unitId){return this._tableMap.get(unitId)}getTableOptionMap(){return this._tableOptionMap}registerTable(unitId,tableName,reference){var _a2;this._tableMap.get(unitId)==null&&this._tableMap.set(unitId,new Map),(_a2=this._tableMap.get(unitId))==null||_a2.set(tableName,reference)}registerTableOptionMap(tableOption,tableOptionType){this._tableOptionMap.set(tableOption,tableOptionType)}};__name(_SuperTableService,"SuperTableService");let SuperTableService=_SuperTableService;const ISuperTableService=core.createIdentifier("univer.formula.super-table.service"),_RangeReferenceObject=class _RangeReferenceObject extends BaseReferenceObject{constructor(range,forcedSheetId,forcedUnitId){super(""),this.setRangeData(range),forcedSheetId&&this.setForcedSheetIdDirect(forcedSheetId),forcedUnitId&&this.setForcedUnitIdDirect(forcedUnitId)}isRange(){return!0}};__name(_RangeReferenceObject,"RangeReferenceObject");let RangeReferenceObject=_RangeReferenceObject;const _CellReferenceObject=class _CellReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheetWithCache(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName),this.setRangeData(grid.range)}isCell(){return!0}unionBy(referenceObject){if(!referenceObject.isCell())return ErrorValueObject.create(ErrorType$1.REF);const cellReferenceObject=referenceObject,newRangeData=this.unionRange(this.getRangeData(),cellReferenceObject.getRangeData());return this._createRange(newRangeData)}unionRange(rangeData1,rangeData2){const startRow1=rangeData1.startRow,startColumn1=rangeData1.startColumn,startRow2=rangeData2.startRow,startColumn2=rangeData2.startColumn,range={startRow:-1,startColumn:-1,endRow:-1,endColumn:-1};return startRow1>startRow2?(range.startRow=startRow2,range.endRow=startRow1):(range.startRow=startRow1,range.endRow=startRow2),startColumn1>startColumn2?(range.startColumn=startColumn2,range.endColumn=startColumn1):(range.startColumn=startColumn1,range.endColumn=startColumn2),rangeData1.startAbsoluteRefType&&(range.startAbsoluteRefType=rangeData1.startAbsoluteRefType),rangeData2.startAbsoluteRefType&&(range.endAbsoluteRefType=rangeData2.startAbsoluteRefType),range}_createRange(newRangeData){const rangeReferenceObject=new RangeReferenceObject(newRangeData,this.getForcedSheetId(),this.getForcedUnitId());rangeReferenceObject.setUnitData(this.getUnitData()),rangeReferenceObject.setDefaultSheetId(this.getDefaultSheetId()),rangeReferenceObject.setDefaultUnitId(this.getDefaultUnitId()),rangeReferenceObject.setRuntimeData(this.getRuntimeData()),rangeReferenceObject.setUnitStylesData(this.getUnitStylesData()),rangeReferenceObject.setArrayFormulaCellData(this.getArrayFormulaCellData()),rangeReferenceObject.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()),rangeReferenceObject.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());const{x,y}=this.getRefOffset();rangeReferenceObject.setRefOffset(x,y);const forceSheetId=this.getForcedSheetId();rangeReferenceObject.setForcedSheetName(this.getForcedSheetName()),forceSheetId!=null&&rangeReferenceObject.setForcedSheetIdDirect(forceSheetId);const forcedUnitId=this.getForcedUnitId();return forcedUnitId&&rangeReferenceObject.setForcedUnitIdDirect(forcedUnitId),rangeReferenceObject}};__name(_CellReferenceObject,"CellReferenceObject");let CellReferenceObject=_CellReferenceObject;const _ColumnReferenceObject=class _ColumnReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheetWithCache(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName);const range={startColumn:grid.range.startColumn,startRow:Number.NaN,endColumn:-1,endRow:Number.NaN};this.setRangeData(range)}isColumn(){return!0}unionBy(referenceObject){if(!referenceObject.isColumn())return ErrorValueObject.create(ErrorType$1.REF);const columnReferenceObject=referenceObject;if(columnReferenceObject.getForcedSheetName()!==void 0&&columnReferenceObject.getForcedSheetName()!=="")return ErrorValueObject.create(ErrorType$1.REF);const currentRangeData=this.getRangeData(),newColumnRange=columnReferenceObject.getRangeData(),newColumn=newColumnRange.startColumn;if(newColumn>=currentRangeData.startColumn&&newColumn<=currentRangeData.endColumn)return this;const column=currentRangeData.startColumn;return newColumn>column?currentRangeData.endColumn=newColumn:(currentRangeData.startColumn=newColumn,currentRangeData.endColumn=column),newColumnRange.startAbsoluteRefType&&(currentRangeData.endAbsoluteRefType=newColumnRange.startAbsoluteRefType),currentRangeData.rangeType=core.RANGE_TYPE.COLUMN,this.setToken(`${this.getToken()}${matchToken.COLON}${columnReferenceObject.getToken()}`),this}};__name(_ColumnReferenceObject,"ColumnReferenceObject");let ColumnReferenceObject=_ColumnReferenceObject;const _RowReferenceObject=class _RowReferenceObject extends BaseReferenceObject{constructor(token){super(token);const grid=deserializeRangeWithSheetWithCache(token);this.setForcedUnitIdDirect(grid.unitId),this.setForcedSheetName(grid.sheetName);const range={startColumn:Number.NaN,startRow:grid.range.startRow,endColumn:Number.NaN,endRow:-1};this.setRangeData(range)}isRow(){return!0}unionBy(referenceObject){if(!referenceObject.isRow())return ErrorValueObject.create(ErrorType$1.REF);const rowReferenceObject=referenceObject;if(rowReferenceObject.getForcedSheetName()!==void 0&&rowReferenceObject.getForcedSheetName()!=="")return ErrorValueObject.create(ErrorType$1.REF);const currentRangeData=this.getRangeData(),newRowRange=rowReferenceObject.getRangeData(),newRow=newRowRange.startRow;if(newRow>=currentRangeData.startRow&&newRow<=currentRangeData.endRow)return this;const row=currentRangeData.startRow;return newRow>row?currentRangeData.endRow=newRow:(currentRangeData.startRow=newRow,currentRangeData.endRow=row),newRowRange.startAbsoluteRefType&&(currentRangeData.endAbsoluteRefType=newRowRange.startAbsoluteRefType),currentRangeData.rangeType=core.RANGE_TYPE.ROW,this.setToken(`${this.getToken()}${matchToken.COLON}${rowReferenceObject.getToken()}`),this}};__name(_RowReferenceObject,"RowReferenceObject");let RowReferenceObject=_RowReferenceObject;var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d");const _ReferenceNode=class _ReferenceNode extends BaseAstNode{constructor(_accessor,_operatorString,_referenceObject,_isPrepareMerge=!1){super(_operatorString);__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._accessor=_accessor,this._operatorString=_operatorString,this._referenceObject=_referenceObject,this._isPrepareMerge=_isPrepareMerge}get nodeType(){return NodeType.REFERENCE}execute(){const currentConfigService=this._accessor.get(IFormulaCurrentConfigService),runtimeService=this._accessor.get(IFormulaRuntimeService);this._referenceObject.setDefaultUnitId(runtimeService.currentUnitId),this._referenceObject.setDefaultSheetId(runtimeService.currentSubUnitId),this._referenceObject.setForcedSheetId(currentConfigService.getSheetNameMap()),this._referenceObject.setUnitData(currentConfigService.getUnitData()),this._referenceObject.setArrayFormulaCellData(currentConfigService.getArrayFormulaCellData()),this._referenceObject.setRuntimeData(runtimeService.getUnitData()),this._referenceObject.setUnitStylesData(currentConfigService.getUnitStylesData()),this._referenceObject.setRuntimeArrayFormulaCellData(runtimeService.getRuntimeArrayFormulaCellData()),this._referenceObject.setRuntimeFeatureCellData(runtimeService.getRuntimeFeatureCellData());const{x,y}=this.getRefOffset();this._referenceObject.setRefOffset(x,y),!this._isPrepareMerge&&this._referenceObject.isExceedRange()?this.setValue(ErrorValueObject.create(ErrorType$1.NAME)):this.setValue(this._referenceObject)}setRefOffset(x=0,y=0){this._refOffsetX=x,this._refOffsetY=y}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}};__name(_ReferenceNode,"ReferenceNode");let ReferenceNode=_ReferenceNode;exports2.ReferenceNodeFactory=(_k=class extends BaseAstNodeFactory{constructor(_superTableService,_formulaRuntimeService,_functionService,_injector){super(),this._superTableService=_superTableService,this._formulaRuntimeService=_formulaRuntimeService,this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.REFERENCE)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){var _a2,_b2;let isLexerNode=!1,tokenTrimPre,isPrepareMerge=!1;param instanceof LexerNode?(isLexerNode=!0,tokenTrimPre=param.getToken().trim(),((_b2=(_a2=param.getParent())==null?void 0:_a2.getParent())==null?void 0:_b2.getToken().trim())===matchToken.COLON&&(isPrepareMerge=!0)):tokenTrimPre=param.trim();const{tokenTrim,minusPrefixNode,atPrefixNode}=prefixHandler(tokenTrimPre,this._functionService,this._injector);if(!isLexerNode&&tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let node;if(regexTestSingeRange(tokenTrim)?node=new ReferenceNode(this._injector,tokenTrim,new CellReferenceObject(tokenTrim),isPrepareMerge):isLexerNode&&this._checkParentIsUnionOperator(param)&&(regexTestSingleRow(tokenTrim)?node=new ReferenceNode(this._injector,tokenTrim,new RowReferenceObject(tokenTrim),isPrepareMerge):regexTestSingleColumn(tokenTrim)&&(node=new ReferenceNode(this._injector,tokenTrim,new ColumnReferenceObject(tokenTrim),isPrepareMerge))),node)return atPrefixNode?node.setParent(atPrefixNode):minusPrefixNode&&node.setParent(minusPrefixNode),node}_checkParentIsUnionOperator(param){var _a2,_b2;return((_b2=(_a2=param.getParent())==null?void 0:_a2.getParent())==null?void 0:_b2.getToken().trim())===matchToken.COLON}},__name(_k,"ReferenceNodeFactory"),_k),exports2.ReferenceNodeFactory=__decorateClass$d([__decorateParam$d(0,ISuperTableService),__decorateParam$d(1,IFormulaRuntimeService),__decorateParam$d(2,IFunctionService),__decorateParam$d(3,core.Inject(core.Injector))],exports2.ReferenceNodeFactory);var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c");const _SuffixNode=class _SuffixNode extends BaseAstNode{constructor(_accessor,_operatorString,_functionExecutor){super(_operatorString),this._accessor=_accessor,this._operatorString=_operatorString,this._functionExecutor=_functionExecutor}get nodeType(){return NodeType.SUFFIX}execute(){let value=this.getChildren()[0].getValue(),result;if(value==null)throw new Error("object is null");if(this._operatorString===suffixToken.PERCENTAGE){if(value.isReferenceObject()&&(value=value.toArrayValueObject()),result=this._functionExecutor.calculate(value,NumberValueObject.create(100)),result.isNumber()){const value2=Number(result.getValue());result=NumberValueObject.create(value2,"0.00%")}}else this._operatorString===suffixToken.POUND?result=this._handlerPound(value):result=ErrorValueObject.create(ErrorType$1.VALUE);this.setValue(result)}_handlerPound(value){var _a2,_b2,_c2,_d2;if(!value.isReferenceObject()||!value.isCell())return ErrorValueObject.create(ErrorType$1.VALUE);const currentConfigService=this._accessor.get(IFormulaCurrentConfigService),lexer=this._accessor.get(exports2.Lexer),cellValue=value,range=cellValue.getRangePosition(),unitId=cellValue.getUnitId(),sheetId=cellValue.getSheetId(),formulaData=currentConfigService.getFormulaData(),formulaString=(_d2=(_c2=(_b2=(_a2=formulaData==null?void 0:formulaData[unitId])==null?void 0:_a2[sheetId])==null?void 0:_b2[range.startRow])==null?void 0:_c2[range.startColumn])==null?void 0:_d2.f;return formulaString&&lexer.treeBuilder(formulaString),ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_SuffixNode,"SuffixNode");let SuffixNode=_SuffixNode;exports2.SuffixNodeFactory=(_l=class extends BaseAstNodeFactory{constructor(_functionService,_injector){super(),this._functionService=_functionService,this._injector=_injector}get zIndex(){return NODE_ORDER_MAP.get(NodeType.SUFFIX)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const tokenTrim=param.getToken().trim();if(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')return;let functionName="";if(tokenTrim===suffixToken.PERCENTAGE)functionName=FUNCTION_NAMES_META.DIVIDED;else return tokenTrim===suffixToken.POUND?new SuffixNode(this._injector,tokenTrim):void 0;const functionExecutor=this._functionService.getExecutor(functionName);return functionExecutor?new SuffixNode(this._injector,tokenTrim,functionExecutor):(console.error(`No function ${param}`),ErrorNode.create(ErrorType$1.NAME))}},__name(_l,"SuffixNodeFactory"),_l),exports2.SuffixNodeFactory=__decorateClass$c([__decorateParam$c(0,IFunctionService),__decorateParam$c(1,core.Inject(core.Injector))],exports2.SuffixNodeFactory);var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b");const _UnionNode=class _UnionNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.UNION}execute(){const children=this.getChildren(),leftNode=children[0].getValue(),rightNode=children[1].getValue();if(leftNode==null||rightNode==null)throw new Error("leftNode and rightNode");let result;this._operatorString===matchToken.COLON?result=this._unionFunction(leftNode,rightNode):result=ErrorValueObject.create(ErrorType$1.NAME),this.setValue(result)}_unionFunction(variant1,variant2){return variant1.isError()||variant2.isError()||!variant1.isReferenceObject()||!variant2.isReferenceObject()?ErrorValueObject.create(ErrorType$1.REF):(variant1=variant1,variant2=variant2,variant1.isCell()&&variant2.isCell()||variant1.isRow()&&variant2.isRow()||variant1.isColumn()&&variant2.isColumn()?variant1.unionBy(variant2):ErrorValueObject.create(ErrorType$1.NAME))}};__name(_UnionNode,"UnionNode");let UnionNode=_UnionNode;exports2.UnionNodeFactory=(_m=class extends BaseAstNodeFactory{constructor(_functionService){super(),this._functionService=_functionService}get zIndex(){return NODE_ORDER_MAP.get(NodeType.UNION)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}create(param){return new UnionNode(param)}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return;const tokenTrim=param.getToken().trim();if(!(tokenTrim.charAt(0)==='"'&&tokenTrim.charAt(tokenTrim.length-1)==='"')&&tokenTrim===matchToken.COLON)return this.create(tokenTrim)}},__name(_m,"UnionNodeFactory"),_m),exports2.UnionNodeFactory=__decorateClass$b([__decorateParam$b(0,IFunctionService)],exports2.UnionNodeFactory);const _ValueNode=class _ValueNode extends BaseAstNode{constructor(_operatorString){super(_operatorString),this._operatorString=_operatorString}get nodeType(){return NodeType.VALUE}execute(){this.setValue(ValueObjectFactory.create(this._operatorString))}};__name(_ValueNode,"ValueNode");let ValueNode=_ValueNode;const _ValueNodeFactory=class _ValueNodeFactory extends BaseAstNodeFactory{get zIndex(){return NODE_ORDER_MAP.get(NodeType.VALUE)||DEFAULT_AST_NODE_FACTORY_Z_INDEX}_checkValueNode(token){if(Number.isNaN(Number(token))){const tokenTrim=token.trim(),startToken=tokenTrim.charAt(0),endToken=tokenTrim.charAt(tokenTrim.length-1);if(ERROR_TYPE_SET.has(tokenTrim))return this.create(tokenTrim);if(startToken==='"'&&endToken==='"')return this.create(tokenTrim);if(startToken==="{"&&endToken==="}")return this.create(tokenTrim);const tokenTrimUpper=tokenTrim.toUpperCase();if(tokenTrimUpper===BooleanValue.TRUE||tokenTrimUpper===BooleanValue.FALSE)return this.create(tokenTrimUpper)}else return this.create(token)}create(param){return new ValueNode(param)}checkAndCreateNodeType(param){if(!(param instanceof LexerNode))return this._checkValueNode(param)}};__name(_ValueNodeFactory,"ValueNodeFactory");let ValueNodeFactory=_ValueNodeFactory;var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$a(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$a(target,key,result),result},"__decorateClass$a"),__decorateParam$a=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$a");exports2.AstTreeBuilder=(_n=class extends core.Disposable{constructor(_runtimeService,_astRootNodeFactory,_functionNodeFactory,_lambdaNodeFactory,_lambdaParameterNodeFactory,_operatorNodeFactory,_prefixNodeFactory,_referenceNodeFactory,_suffixNodeFactory,_unionNodeFactory,_valueNodeFactory){super();__publicField(this,"_astNodeFactoryList",[]);__publicField(this,"_refOffsetX",0);__publicField(this,"_refOffsetY",0);this._runtimeService=_runtimeService,this._astRootNodeFactory=_astRootNodeFactory,this._functionNodeFactory=_functionNodeFactory,this._lambdaNodeFactory=_lambdaNodeFactory,this._lambdaParameterNodeFactory=_lambdaParameterNodeFactory,this._operatorNodeFactory=_operatorNodeFactory,this._prefixNodeFactory=_prefixNodeFactory,this._referenceNodeFactory=_referenceNodeFactory,this._suffixNodeFactory=_suffixNodeFactory,this._unionNodeFactory=_unionNodeFactory,this._valueNodeFactory=_valueNodeFactory,this._initializeAstNode()}dispose(){this._astNodeFactoryList.forEach(nodeFactory=>{nodeFactory.dispose()}),this._astNodeFactoryList=[]}parse(lexerNode){const astNode=new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT),node=this._parse(lexerNode,astNode);return lexerNode.hasDefinedNames()&&(node==null||node.setDefinedNames(lexerNode.getDefinedNames())),node}_lambdaParameterHandler(lexerNode,parent){if(parent.getLambdaId==null)return ErrorNode.create(ErrorType$1.VALUE);const lambdaId=parent.getLambdaId(),parentAstNode=new AstRootNode(DEFAULT_TOKEN_TYPE_ROOT),currentLambdaPrivacyVar=this._runtimeService.getFunctionDefinitionPrivacyVar(lambdaId);if(!currentLambdaPrivacyVar)return!1;const currentLambdaPrivacyVarKeys=[...currentLambdaPrivacyVar.keys()],children=lexerNode.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item instanceof LexerNode){updateLambdaStatement(item,lambdaId,currentLambdaPrivacyVar),this._parse(item,parentAstNode);const valueNode=parentAstNode.getChildren()[i];valueNode!=null&&currentLambdaPrivacyVar.set(currentLambdaPrivacyVarKeys[i],valueNode)}else return!1}return parentAstNode.setParent(parent),parent}_changeLetToLambda(letLexerNode){const letChildren=letLexerNode.getChildren(),letChildrenCount=letChildren.length;if(letChildrenCount%2!==1||letChildrenCount===0)return;const newLambdaNode=new LexerNode;newLambdaNode.setToken(DEFAULT_TOKEN_LAMBDA_FUNCTION_NAME);const newLambdaParameterNode=new LexerNode;newLambdaParameterNode.setToken(DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER);const copyChildren=[...letChildren];for(let i=0;i<letChildrenCount;i++){const child=copyChildren[i];if(!(child instanceof LexerNode))return;i%2===0?child.changeToParent(newLambdaNode):child.changeToParent(newLambdaParameterNode)}newLambdaNode.addChildrenFirst(newLambdaParameterNode),newLambdaParameterNode.setParent(newLambdaNode);const parent=letLexerNode.getParent();return parent==null||parent.replaceChild(letLexerNode,newLambdaNode),newLambdaNode}_parse(lexerNode,parent){const children=lexerNode.getChildren(),childrenCount=children.length,calculateStack=[];let currentAstNode=null;const token=lexerNode.getToken().trim().toUpperCase();if(token===DEFAULT_TOKEN_LET_FUNCTION_NAME){const resultNode=this._changeLetToLambda(lexerNode);return resultNode!=null?this._parse(resultNode,parent):ErrorNode.create(ErrorType$1.ERROR)}if(token===DEFAULT_TOKEN_TYPE_PARAMETER){if(currentAstNode=parent,childrenCount===0)return new NullNode(DEFAULT_TOKEN_TYPE_ROOT).setParent(parent),currentAstNode}else{if(token===DEFAULT_TOKEN_TYPE_LAMBDA_PARAMETER){let resultNode=this._lambdaParameterHandler(lexerNode,parent);return resultNode===!1&&(resultNode=ErrorNode.create(ErrorType$1.ERROR)),resultNode}if(currentAstNode=this._checkAstNode(lexerNode),currentAstNode==null)return ErrorNode.create(ErrorType$1.NAME)}const firstChild=children[0];for(let i=0;i<childrenCount;i++){const item=children[i];if(isFirstChildParameter(firstChild)){if(i!==0&&i!==childrenCount-1)continue}else if(isChildRunTimeParameter(item)&&i!==childrenCount-1)continue;let astNode=null;if(item instanceof LexerNode){if(astNode=this._parse(item,currentAstNode),astNode===currentAstNode)continue}else astNode=this._checkAstNode(item);if(astNode==null)return ErrorNode.create(ErrorType$1.NAME);if(astNode=getAstNodeTopParent(astNode),astNode==null)return;switch(astNode.nodeType){case NodeType.FUNCTION:{const token2=astNode.getToken().trim().toUpperCase();FORCED_RECALCULATION_FUNCTION_NAME.has(token2)&&astNode.setForcedCalculateFunction(),calculateStack.push(astNode);break}case NodeType.LAMBDA:calculateStack.push(astNode);break;case NodeType.LAMBDA_PARAMETER:calculateStack.push(astNode);break;case NodeType.OPERATOR:{const parameterNode1=calculateStack.pop(),parameterNode2=calculateStack.pop();parameterNode2&&parameterNode2.setParent(astNode),parameterNode1&&parameterNode1.setParent(astNode),calculateStack.push(astNode);break}case NodeType.REFERENCE:calculateStack.push(astNode);break;case NodeType.ROOT:calculateStack.push(astNode);break;case NodeType.UNION:calculateStack.push(astNode);break;case NodeType.VALUE:calculateStack.push(astNode);break;case NodeType.PREFIX:calculateStack.push(astNode);break;case NodeType.SUFFIX:calculateStack.push(astNode);break}}const calculateStackCount=calculateStack.length;for(let i=0;i<calculateStackCount;i++)calculateStack[i].setParent(currentAstNode);return currentAstNode}_checkAstNode(item){let astNode=null;const astNodeFactoryListCount=this._astNodeFactoryList.length;for(let x=0;x<astNodeFactoryListCount&&(astNode=this._astNodeFactoryList[x].checkAndCreateNodeType(item),astNode==null);x++);return astNode==null?new ErrorFunctionNode:astNode}_initializeAstNode(){this._astNodeFactoryList=[this._astRootNodeFactory,this._functionNodeFactory,this._lambdaNodeFactory,this._lambdaParameterNodeFactory,this._operatorNodeFactory,this._prefixNodeFactory,this._referenceNodeFactory,this._suffixNodeFactory,this._unionNodeFactory,this._valueNodeFactory].sort(core.sortRules)}},__name(_n,"AstTreeBuilder"),_n),exports2.AstTreeBuilder=__decorateClass$a([__decorateParam$a(0,IFormulaRuntimeService),__decorateParam$a(1,core.Inject(AstRootNodeFactory)),__decorateParam$a(2,core.Inject(exports2.FunctionNodeFactory)),__decorateParam$a(3,core.Inject(exports2.LambdaNodeFactory)),__decorateParam$a(4,core.Inject(LambdaParameterNodeFactory)),__decorateParam$a(5,core.Inject(exports2.OperatorNodeFactory)),__decorateParam$a(6,core.Inject(exports2.PrefixNodeFactory)),__decorateParam$a(7,core.Inject(exports2.ReferenceNodeFactory)),__decorateParam$a(8,core.Inject(exports2.SuffixNodeFactory)),__decorateParam$a(9,core.Inject(exports2.UnionNodeFactory)),__decorateParam$a(10,core.Inject(ValueNodeFactory))],exports2.AstTreeBuilder);const _DependencyManagerService=class _DependencyManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_otherFormulaData",{});__publicField(this,"_featureFormulaData",{});__publicField(this,"_formulaData",{});__publicField(this,"_dependencyRTreeCache",new core.RTree);__publicField(this,"_dependencyTreeIdLast",0)}dispose(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={},this._dependencyRTreeCache.dispose(),this._restDependencyTreeId()}getAllTree(){const trees=[],resetAndPush=__name(item=>{item&&(item.resetState(),trees.push(item))},"resetAndPush");for(const unitKey in this._otherFormulaData){const unit=this._otherFormulaData[unitKey];if(unit)for(const sheetKey in unit){const sheet=unit[sheetKey];for(const formulaKey in sheet)sheet[formulaKey]!=null&&resetAndPush(sheet[formulaKey])}}for(const unitKey in this._featureFormulaData){const unit=this._featureFormulaData[unitKey];if(unit)for(const sheetKey in unit){const sheet=unit[sheetKey];for(const featureKey in sheet)sheet[featureKey]!=null&&resetAndPush(sheet[featureKey])}}for(const unitKey in this._formulaData){const unit=this._formulaData[unitKey];if(unit)for(const sheetKey in unit)unit[sheetKey].forValue((row,col,item)=>{if(item==null)return!0;resetAndPush(item)})}return trees}buildDependencyTree(shouldBeBuildTrees,dependencyTrees=[]){const allTrees=this.getAllTree();return shouldBeBuildTrees.length===0?(this._buildReverseDependency(allTrees,dependencyTrees),allTrees):(this._buildDependencyTree(allTrees,shouldBeBuildTrees),this._buildReverseDependency(allTrees,shouldBeBuildTrees),allTrees)}searchDependency(search){return this._dependencyRTreeCache.bulkSearch(search)}_buildDependencyTree(allTrees,shouldBeBuildTrees){const shouldBeBuildTreeMap=new Map;for(let i=0;i<shouldBeBuildTrees.length;i++){const tree=shouldBeBuildTrees[i];shouldBeBuildTreeMap.set(tree.treeId,tree)}for(let i=0;i<allTrees.length;i++){const tree=allTrees[i],RTreeItem=tree.toRTreeItem(),searchResults=this._dependencyRTreeCache.search(RTreeItem);for(let j=0;j<searchResults.length;j++){const searchResult=searchResults[j],shouldBeBuildTree=shouldBeBuildTreeMap.get(searchResult.id);shouldBeBuildTree&&tree!==shouldBeBuildTree&&!shouldBeBuildTree.hasChildren(tree)&&shouldBeBuildTree.pushChildren(tree)}}shouldBeBuildTreeMap.clear()}_buildReverseDependency(allTrees,dependencyTrees){const allTreeMap=new Map;for(let i=0;i<allTrees.length;i++){const tree=allTrees[i];allTreeMap.set(tree.treeId,tree)}for(let i=0;i<dependencyTrees.length;i++){const tree=dependencyTrees[i],RTreeItem=tree.toRTreeItem(),searchResults=this._dependencyRTreeCache.search(RTreeItem);for(let j=0;j<searchResults.length;j++){const searchResult=searchResults[j],allTree=allTreeMap.get(searchResult.id);allTree&&tree!==allTree&&!allTree.hasChildren(tree)&&allTree.pushChildren(tree)}}allTreeMap.clear()}clearDependencyForTree(shouldBeClearTree){if(shouldBeClearTree==null)return;const parents=shouldBeClearTree.parents,children=shouldBeClearTree.children;parents.forEach(parent=>{parent.children.delete(shouldBeClearTree)}),children.forEach(child=>{child.parents.delete(shouldBeClearTree)});const parentsArray=[...parents],childrenArray=[...children];this._buildDependencyTree(parentsArray,childrenArray),this._buildReverseDependency(parentsArray,childrenArray),shouldBeClearTree.dispose()}reset(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={},this._dependencyRTreeCache.clear(),this._restDependencyTreeId()}addOtherFormulaDependency(unitId,sheetId,formulaId,dependencyTree){this._otherFormulaData[unitId]||(this._otherFormulaData[unitId]={}),this._otherFormulaData[unitId][sheetId]||(this._otherFormulaData[unitId][sheetId]={}),this._otherFormulaData[unitId][sheetId][formulaId]=dependencyTree}removeOtherFormulaDependency(unitId,sheetId,formulaIds){this._otherFormulaData[unitId]&&this._otherFormulaData[unitId][sheetId]&&formulaIds.forEach(formulaId=>{const deleteTree=this._otherFormulaData[unitId][sheetId][formulaId];this._removeDependencyRTreeCache(deleteTree),this.clearDependencyForTree(deleteTree),delete this._otherFormulaData[unitId][sheetId][formulaId]})}getOtherFormulaDependency(unitId,sheetId,formulaId){var _a2,_b2;return(_b2=(_a2=this._otherFormulaData[unitId])==null?void 0:_a2[sheetId])==null?void 0:_b2[formulaId]}hasOtherFormulaDependency(unitId,sheetId,formulaId){var _a2,_b2;return((_b2=(_a2=this._otherFormulaData[unitId])==null?void 0:_a2[sheetId])==null?void 0:_b2[formulaId])!=null}clearOtherFormulaDependency(unitId,sheetId){if(sheetId&&this._otherFormulaData[unitId]&&this._otherFormulaData[unitId][sheetId])this._removeDependencyRTreeCacheById(unitId,sheetId),Object.values(this._otherFormulaData[unitId][sheetId]).forEach(formula=>{this.clearDependencyForTree(formula)}),this._otherFormulaData[unitId][sheetId]={};else if(this._otherFormulaData[unitId]){const unitOtherData=this._otherFormulaData[unitId];Object.keys(unitOtherData).forEach(sheetId2=>{sheetId2!=null&&(this._removeDependencyRTreeCacheById(unitId,sheetId2),Object.values(unitOtherData[sheetId2]).forEach(formula=>{this.clearDependencyForTree(formula)}))}),this._otherFormulaData[unitId]=null}}addFeatureFormulaDependency(unitId,sheetId,featureId,dependencyTree){this._featureFormulaData[unitId]||(this._featureFormulaData[unitId]={}),this._featureFormulaData[unitId][sheetId]||(this._featureFormulaData[unitId][sheetId]={}),this._featureFormulaData[unitId][sheetId][featureId]=dependencyTree}removeFeatureFormulaDependency(unitId,sheetId,featureIds){this._featureFormulaData[unitId]&&this._featureFormulaData[unitId][sheetId]&&featureIds.forEach(featureId=>{const deleteTree=this._featureFormulaData[unitId][sheetId][featureId];this._removeDependencyRTreeCache(deleteTree),this.clearDependencyForTree(deleteTree),delete this._featureFormulaData[unitId][sheetId][featureId]})}clearFeatureFormulaDependency(unitId,sheetId){if(sheetId&&this._featureFormulaData[unitId]&&this._featureFormulaData[unitId][sheetId])this._removeDependencyRTreeCacheById(unitId,sheetId),Object.values(this._featureFormulaData[unitId][sheetId]).forEach(feature=>{this._removeDependencyRTreeCache(feature),this.clearDependencyForTree(feature)}),this._featureFormulaData[unitId][sheetId]={};else if(this._featureFormulaData[unitId]){const unitFeatureData=this._featureFormulaData[unitId];Object.keys(unitFeatureData).forEach(sheetId2=>{sheetId2!=null&&(this._removeDependencyRTreeCacheById(unitId,sheetId2),Object.values(unitFeatureData[sheetId2]).forEach(feature=>{this.clearDependencyForTree(feature)}))}),this._featureFormulaData[unitId]=null}}getFeatureFormulaDependency(unitId,sheetId,featureId){var _a2,_b2;return(_b2=(_a2=this._featureFormulaData[unitId])==null?void 0:_a2[sheetId])==null?void 0:_b2[featureId]}addFormulaDependency(unitId,sheetId,row,column,dependencyTree){this._formulaData[unitId]||(this._formulaData[unitId]={}),this._formulaData[unitId][sheetId]||(this._formulaData[unitId][sheetId]=new core.ObjectMatrix),this._formulaData[unitId][sheetId].setValue(row,column,dependencyTree)}removeFormulaDependency(unitId,sheetId,row,column){if(this._formulaData[unitId]&&this._formulaData[unitId][sheetId]){const deleteTree=this._formulaData[unitId][sheetId].getValue(row,column);this._removeDependencyRTreeCache(deleteTree),this.clearDependencyForTree(deleteTree),this._formulaData[unitId][sheetId].realDeleteValue(row,column)}}clearFormulaDependency(unitId,sheetId){if(sheetId&&this._formulaData[unitId]&&this._formulaData[unitId][sheetId])this._removeDependencyRTreeCacheById(unitId,sheetId),this._formulaData[unitId][sheetId].forValue((row,column,item)=>{this.clearDependencyForTree(item)}),this._formulaData[unitId][sheetId].reset();else if(this._formulaData[unitId]){const unitFormulaData=this._formulaData[unitId];Object.keys(unitFormulaData).forEach(sheetId2=>{sheetId2!=null&&(this._removeDependencyRTreeCacheById(unitId,sheetId2),unitFormulaData[sheetId2].forValue((row,column,item)=>{this.clearDependencyForTree(item)}))}),this._formulaData[unitId]=null}}clearDependencyAll(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={},this._dependencyRTreeCache.clear(),this._restDependencyTreeId()}getFormulaDependency(unitId,sheetId,row,column){var _a2,_b2;return(_b2=(_a2=this._formulaData[unitId])==null?void 0:_a2[sheetId])==null?void 0:_b2.getValue(row,column)}addDependencyRTreeCache(tree){this._dependencyRTreeCache.bulkInsert(tree.rangeList.map(range=>({...range,id:tree.treeId})))}_restDependencyTreeId(){this._dependencyTreeIdLast=0}getLastTreeId(){const id=this._dependencyTreeIdLast;return this._dependencyTreeIdLast++,id}_removeDependencyRTreeCacheById(unitId,sheetId){this._dependencyRTreeCache.removeById(unitId,sheetId)}_removeDependencyRTreeCache(tree){tree!=null&&this._dependencyRTreeCache.bulkRemove(tree.rangeList.map(range=>({...range,id:tree.treeId})))}removeFormulaDependencyByDefinedName(unitId,definedName){this._formulaData[unitId]&&Object.values(this._formulaData[unitId]).forEach(sheet=>{sheet.forValue((row,column,tree)=>{var _a2;(_a2=tree==null?void 0:tree.nodeData)!=null&&_a2.node.hasDefinedName(definedName)&&(this._removeDependencyRTreeCache(tree),this.clearDependencyForTree(tree),sheet.realDeleteValue(row,column))})})}};__name(_DependencyManagerService,"DependencyManagerService");let DependencyManagerService=_DependencyManagerService;const IDependencyManagerService=core.createIdentifier("univer.formula.dependency-manager.service"),_FeatureCalculationManagerService=class _FeatureCalculationManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_referenceExecutorMap",new Map);__publicField(this,"_onChanged$",new rxjs.Subject);__publicField(this,"onChanged$",this._onChanged$.asObservable())}dispose(){this._referenceExecutorMap.clear()}remove(unitId,subUnitId,featureIds){featureIds.forEach(featureId=>{var _a2,_b2;(_b2=(_a2=this._referenceExecutorMap.get(unitId))==null?void 0:_a2.get(subUnitId))==null||_b2.delete(featureId)}),this._onChanged$.next({unitId,subUnitId,featureIds})}get(unitId,subUnitId,featureId){var _a2,_b2;return(_b2=(_a2=this._referenceExecutorMap.get(unitId))==null?void 0:_a2.get(subUnitId))==null?void 0:_b2.get(featureId)}has(unitId,subUnitId,featureId){var _a2,_b2;return!!((_b2=(_a2=this._referenceExecutorMap.get(unitId))==null?void 0:_a2.get(subUnitId))!=null&&_b2.has(featureId))}register(unitId,subUnitId,featureId,referenceExecutor){let unitMap=this._referenceExecutorMap.get(unitId);unitMap||(unitMap=new Map,this._referenceExecutorMap.set(unitId,unitMap));let subUnitMap=unitMap.get(subUnitId);subUnitMap||(subUnitMap=new Map,unitMap.set(subUnitId,subUnitMap)),this._onChanged$.next({unitId,subUnitId,featureIds:[featureId]}),subUnitMap.set(featureId,referenceExecutor)}getReferenceExecutorMap(){return this._referenceExecutorMap}};__name(_FeatureCalculationManagerService,"FeatureCalculationManagerService");let FeatureCalculationManagerService=_FeatureCalculationManagerService;const IFeatureCalculationManagerService=core.createIdentifier("univer.formula.feature-calculation-manager.service"),_OtherFormulaManagerService=class _OtherFormulaManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_otherFormulaData",{})}dispose(){this._otherFormulaData={}}remove(searchParam){var _a2,_b2,_c2;const{unitId,subUnitId,formulaId}=searchParam;(_c2=(_b2=(_a2=this._otherFormulaData)==null?void 0:_a2[unitId])==null?void 0:_b2[subUnitId])==null||delete _c2[formulaId]}get(searchParam){var _a2,_b2;const{unitId,subUnitId,formulaId}=searchParam;return(_b2=(_a2=this._otherFormulaData[unitId])==null?void 0:_a2[subUnitId])==null?void 0:_b2[formulaId]}has(searchParam){var _a2,_b2;const{unitId,subUnitId,formulaId}=searchParam;return((_b2=(_a2=this._otherFormulaData[unitId])==null?void 0:_a2[subUnitId])==null?void 0:_b2[formulaId])!=null}register(insertParam){const{unitId,subUnitId,formulaId,item}=insertParam;this._otherFormulaData[unitId]||(this._otherFormulaData[unitId]={}),this._otherFormulaData[unitId][subUnitId]||(this._otherFormulaData[unitId][subUnitId]={}),this._otherFormulaData[unitId][subUnitId][formulaId]=item}batchRegister(formulaData){Object.keys(formulaData).forEach(unitId=>{const subUnits=formulaData[unitId];if(subUnits==null)return!0;Object.keys(subUnits).forEach(subUnitId=>{const subUnit=subUnits[subUnitId];if(subUnit==null)return!0;Object.keys(subUnit).forEach(formulaId=>{const item=subUnit[formulaId];if(item==null)return!0;this.register({unitId,subUnitId,formulaId,item})})})})}batchRemove(formulaData){Object.keys(formulaData).forEach(unitId=>{const subUnits=formulaData[unitId];if(subUnits==null)return!0;Object.keys(subUnits).forEach(subUnitId=>{const subUnit=subUnits[subUnitId];if(subUnit==null)return!0;Object.keys(subUnit).forEach(formulaId=>{this.remove({unitId,subUnitId,formulaId})})})})}getOtherFormulaData(){return this._otherFormulaData}};__name(_OtherFormulaManagerService,"OtherFormulaManagerService");let OtherFormulaManagerService=_OtherFormulaManagerService;const IOtherFormulaManagerService=core.createIdentifier("univer.formula.other-formula-manager.service"),_FormulaDependencyTree=class _FormulaDependencyTree{constructor(treeId){__publicField(this,"treeId","");__publicField(this,"nodeData");__publicField(this,"children",new Set);__publicField(this,"parents",new Set);__publicField(this,"formula","");__publicField(this,"row",-1);__publicField(this,"column",-1);__publicField(this,"rowCount",Number.NEGATIVE_INFINITY);__publicField(this,"columnCount",Number.NEGATIVE_INFINITY);__publicField(this,"subUnitId","");__publicField(this,"unitId","");__publicField(this,"rangeList",[]);__publicField(this,"formulaId");__publicField(this,"featureId");__publicField(this,"isCache",!1);__publicField(this,"getDirtyData");__publicField(this,"_state",0);treeId!=null?this.treeId=treeId:this.treeId=core.generateRandomId(8)}dispose(){var _a2;this.children=new Set,this.rangeList=[],this.parents=new Set,(_a2=this.nodeData)==null||_a2.node.dispose(),this.nodeData=null}disposeWithChildren(){this.children.forEach(tree=>{tree.disposeWithChildren()}),this.dispose()}resetState(){this._state=0}setAdded(){this._state=1}isAdded(){return this._state===1}setSkip(){this._state=2}isSkip(){return this._state===2}inRangeData(range){const startRow=range.startRow,startColumn=range.startColumn,endRow=range.endRow,endColumn=range.endColumn;return!(this.row<startRow||this.row>endRow||this.column<startColumn||this.column>endColumn)}dependencySheetName(dirtyUnitSheetNameMap){var _a2;if(this.rangeList.length===0||dirtyUnitSheetNameMap==null)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],{unitId,sheetId}=unitRange;if(((_a2=dirtyUnitSheetNameMap[unitId])==null?void 0:_a2[sheetId])!=null)return!0}return!1}isExcludeRange(unitExcludedCell){var _a2;if(this.rangeList.length===0)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],{unitId,sheetId,range}=unitRange,excludedCell=(_a2=unitExcludedCell==null?void 0:unitExcludedCell[unitId])==null?void 0:_a2[sheetId];let{startRow:rangeStartRow,endRow:rangeEndRow,startColumn:rangeStartColumn,endColumn:rangeEndColumn}=range;Number.isNaN(rangeStartRow)&&(rangeStartRow=0),Number.isNaN(rangeStartColumn)&&(rangeStartColumn=0),Number.isNaN(rangeEndRow)&&(rangeEndRow=Number.POSITIVE_INFINITY),Number.isNaN(rangeEndColumn)&&(rangeEndColumn=Number.POSITIVE_INFINITY);let isInclude=!1;if(excludedCell==null||excludedCell.forValue((row,column)=>{if(row>=rangeStartRow&&row<=rangeEndRow&&column>=rangeStartColumn&&column<=rangeEndColumn)return isInclude=!0,!1}),isInclude)return!0}return!1}pushChildren(tree){this.children.add(tree),tree._pushParent(this)}pushRangeList(ranges){this.rangeList.push(...ranges)}hasChildren(tree){return this.children.has(tree)}toRTreeItem(){return{unitId:this.unitId,sheetId:this.subUnitId,range:{startRow:this.row,startColumn:this.column,endRow:this.row,endColumn:this.column},id:this.treeId}}dependency(dependenceTree){if(this.rangeList.length===0)return!1;for(let r=0,len=this.rangeList.length;r<len;r++){const unitRange=this.rangeList[r],unitId=unitRange.unitId,sheetId=unitRange.sheetId,range=unitRange.range;if(dependenceTree.unitId===unitId&&dependenceTree.subUnitId===sheetId&&dependenceTree.inRangeData(range))return!0}return!1}_pushParent(tree){this.parents.add(tree)}};__name(_FormulaDependencyTree,"FormulaDependencyTree");let FormulaDependencyTree=_FormulaDependencyTree;var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9");const FORMULA_CACHE_LRU_COUNT=1e5;function generateRandomDependencyTreeId(dependencyManagerService){return(dependencyManagerService.getLastTreeId()||0).toString()}__name(generateRandomDependencyTreeId,"generateRandomDependencyTreeId"),exports2.FormulaDependencyGenerator=(_o=class extends core.Disposable{constructor(_currentConfigService,_runtimeService,_otherFormulaManagerService,_featureCalculationManagerService,_interpreter,_astTreeBuilder,_lexer,_dependencyManagerService){super();__publicField(this,"_formulaASTCache",new FormulaAstLRU(FORMULA_CACHE_LRU_COUNT));__publicField(this,"_updateRangeFlattenCache",new Map);this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._otherFormulaManagerService=_otherFormulaManagerService,this._featureCalculationManagerService=_featureCalculationManagerService,this._interpreter=_interpreter,this._astTreeBuilder=_astTreeBuilder,this._lexer=_lexer,this._dependencyManagerService=_dependencyManagerService}dispose(){this._formulaASTCache.clear()}async generate(){this._updateRangeFlatten();const formulaData=this._currentConfigService.getFormulaData(),otherFormulaData=this._otherFormulaManagerService.getOtherFormulaData(),clearDependencyTreeCache=this._currentConfigService.getClearDependencyTreeCache();clearDependencyTreeCache!=null&&Object.keys(clearDependencyTreeCache).forEach(unitId=>{unitId!=null&&Object.keys(clearDependencyTreeCache[unitId]).forEach(subUnitId=>{subUnitId!=null&&(this._dependencyManagerService.clearOtherFormulaDependency(unitId,subUnitId),this._dependencyManagerService.clearFeatureFormulaDependency(unitId,subUnitId),this._dependencyManagerService.clearFormulaDependency(unitId,subUnitId))})});const unitData=this._currentConfigService.getUnitData(),treeList=await this._generateTreeList(formulaData,otherFormulaData,unitData),updateTreeList=this._getUpdateTreeListAndMakeDependency(treeList);let finalTreeList=this._calculateRunList(updateTreeList);return this._dependencyFeatureCalculation(finalTreeList)&&(finalTreeList.forEach(tree=>{tree.resetState()}),finalTreeList=this._calculateRunList(finalTreeList)),this._checkIsCycleDependency(finalTreeList)&&this._runtimeService.enableCycleDependency(),Promise.resolve(finalTreeList)}_isCyclicUtil(node,visited,recursionStack){if(!visited.has(node)){visited.add(node),recursionStack.add(node);for(const child of node.children)if(!visited.has(child)&&this._isCyclicUtil(child,visited,recursionStack)||recursionStack.has(child))return!0}return recursionStack.delete(node),!1}_checkIsCycleDependency(treeList){const visited=new Set,recursionStack=new Set;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(this._isCyclicUtil(tree,visited,recursionStack)===!0)return!0}return!1}async _generateTreeList(formulaData,otherFormulaData,unitData){const formulaDataKeys=Object.keys(formulaData),otherFormulaDataKeys=Object.keys(otherFormulaData),treeList=[],formulaRefCache=new Map;this._currentConfigService.isForceCalculate()&&(this._dependencyManagerService.reset(),this._formulaASTCache.clear()),this._registerFormulas(formulaDataKeys,formulaData,unitData,treeList,formulaRefCache),this._registerOtherFormulas(otherFormulaData,otherFormulaDataKeys,treeList,formulaRefCache),this._registerFeatureFormulas(treeList);for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];this._runtimeService.setCurrent(tree.row,tree.column,tree.rowCount,tree.columnCount,tree.subUnitId,tree.unitId);const{unitId,formula,nodeData}=tree;if(nodeData==null)continue;const{refOffsetX,refOffsetY}=nodeData;let applyCacheRange=!1;if(refOffsetX!==0||refOffsetY!==0){const refTreeNode=formulaRefCache.get(`${unitId}${formula}`);refTreeNode&&refTreeNode.rangeList.length>0&&(tree.pushRangeList(this._moveRangeList(refTreeNode,refOffsetX,refOffsetY)),applyCacheRange=!0)}if(!applyCacheRange){const rangeList=await this._getRangeListByNode(nodeData);tree.pushRangeList(rangeList)}tree.isCache||this._dependencyManagerService.addDependencyRTreeCache(tree)}return formulaRefCache.clear(),treeList}_moveRangeList(tree,refOffsetX,refOffsetY){const rangeList=tree.rangeList,newRangeList=[];for(let i=0,len=rangeList.length;i<len;i++){const range=rangeList[i],newRange={unitId:tree.unitId,sheetId:tree.subUnitId,range:{...range.range}};newRange.range.startRow+=refOffsetY,newRange.range.endRow+=refOffsetY,newRange.range.startColumn+=refOffsetX,newRange.range.endColumn+=refOffsetX,newRangeList.push(newRange)}return newRangeList}_registerFeatureFormulas(treeList){this._featureCalculationManagerService.getReferenceExecutorMap().forEach((subUnitMap,_)=>{subUnitMap.forEach((featureMap2,_2)=>{featureMap2.forEach((params,featureId)=>{const treeCache=this._dependencyManagerService.getFeatureFormulaDependency(params.unitId,params.subUnitId,featureId);if(treeCache){treeCache.isCache=!0;return}treeList.push(this._getFeatureFormulaTree(featureId,params))})})})}_getFeatureFormulaTree(featureId,params){const{unitId,subUnitId,dependencyRanges,getDirtyData}=params,FDtree=new FormulaDependencyTree(generateRandomDependencyTreeId(this._dependencyManagerService));return FDtree.unitId=unitId,FDtree.subUnitId=subUnitId,FDtree.getDirtyData=getDirtyData,FDtree.featureId=featureId,FDtree.rangeList=dependencyRanges,this._dependencyManagerService.addFeatureFormulaDependency(unitId,subUnitId,featureId,FDtree),FDtree}_registerOtherFormulas(otherFormulaData,otherFormulaDataKeys,treeList,formulaRefCache){for(const unitId of otherFormulaDataKeys){const subComponentData=otherFormulaData[unitId];if(subComponentData==null)continue;const subComponentKeys=Object.keys(subComponentData);for(const subUnitId of subComponentKeys){const subFormulaData=subComponentData[subUnitId];if(subFormulaData==null)continue;const subFormulaDataKeys=Object.keys(subFormulaData);for(const subFormulaDataId of subFormulaDataKeys){const treeCache=this._dependencyManagerService.getOtherFormulaDependency(unitId,subUnitId,subFormulaDataId),formulaDataItem=subFormulaData[subFormulaDataId],{f:formulaString,x=0,y=0}=formulaDataItem;if(treeCache){treeCache.isCache=!0,x===0&&y===0&&formulaRefCache.set(`${unitId}${formulaString}`,treeCache);continue}const nodeData=this._generateAstNode(unitId,formulaString,x,y),FDtree=new FormulaDependencyTree(generateRandomDependencyTreeId(this._dependencyManagerService));FDtree.nodeData=nodeData,FDtree.formula=formulaString,FDtree.unitId=unitId,FDtree.subUnitId=subUnitId,FDtree.formulaId=subFormulaDataId,x===0&&y===0&&formulaRefCache.set(`${unitId}${formulaString}`,FDtree),this._dependencyManagerService.addOtherFormulaDependency(unitId,subUnitId,subFormulaDataId,FDtree),treeList.push(FDtree)}}}}_registerFormulas(formulaDataKeys,formulaData,unitData,treeList,formulaRefCache){for(const unitId of formulaDataKeys){const sheetData=formulaData[unitId];if(sheetData==null)continue;const sheetDataKeys=Object.keys(sheetData);for(const sheetId of sheetDataKeys)new core.ObjectMatrix(sheetData[sheetId]||{}).forValue((row,column,formulaDataItem)=>{if(formulaDataItem==null)return!0;const{f:formulaString,x=0,y=0}=formulaDataItem,treeCache=this._dependencyManagerService.getFormulaDependency(unitId,sheetId,row,column);if(treeCache)return treeCache.isCache=!0,x===0&&y===0&&formulaRefCache.set(`${unitId}${formulaString}`,treeCache),!0;const nodeData=this._generateAstNode(unitId,formulaString,x,y),FDtree=new FormulaDependencyTree(generateRandomDependencyTreeId(this._dependencyManagerService)),sheetItem=unitData[unitId][sheetId];FDtree.nodeData=nodeData,FDtree.formula=formulaString,FDtree.unitId=unitId,FDtree.subUnitId=sheetId,FDtree.row=row,FDtree.column=column,FDtree.rowCount=sheetItem.rowCount,FDtree.columnCount=sheetItem.columnCount,x===0&&y===0&&formulaRefCache.set(`${unitId}${formulaString}`,FDtree),this._dependencyManagerService.addFormulaDependency(unitId,sheetId,row,column,FDtree),treeList.push(FDtree)})}}_updateRangeFlatten(){const forceCalculate=this._currentConfigService.isForceCalculate(),dirtyRanges=this._currentConfigService.getDirtyRanges();if(!forceCalculate){this._updateRangeFlattenCache.clear();for(let i=0;i<dirtyRanges.length;i++){const gridRange=dirtyRanges[i],range=gridRange.range,sheetId=gridRange.sheetId,unitId=gridRange.unitId;this._addFlattenCache(unitId,sheetId,range)}}}_generateAstNode(unitId,formulaString,refOffsetX=0,refOffsetY=0){let astNode=this._formulaASTCache.get(`${unitId}${formulaString}`);if(astNode&&!this._isDirtyDefinedForNode(astNode))return generateExecuteAstNodeData(astNode,refOffsetX,refOffsetY);const lexerNode=this._lexer.treeBuilder(formulaString);if(ERROR_TYPE_SET.has(lexerNode))return{node:ErrorNode.create(lexerNode),refOffsetX,refOffsetY};if(astNode=this._astTreeBuilder.parse(lexerNode),astNode==null)throw new Error("astNode is null");return this._formulaASTCache.set(`${unitId}${formulaString}`,astNode),generateExecuteAstNodeData(astNode,refOffsetX,refOffsetY)}_addFlattenCache(unitId,sheetId,range){let unitMatrix=this._updateRangeFlattenCache.get(unitId);unitMatrix==null&&(unitMatrix=new Map,this._updateRangeFlattenCache.set(unitId,unitMatrix));let ranges=unitMatrix.get(sheetId);ranges==null&&(ranges=[],unitMatrix.set(sheetId,ranges)),ranges.push(range)}_isPreCalculateNode(node){return node.nodeType===NodeType.UNION||node.nodeType===NodeType.PREFIX&&node.getToken()===prefixToken.AT||node.nodeType===NodeType.SUFFIX&&node.getToken()===suffixToken.POUND}_nodeTraversalRef(node,result){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(this._isPreCalculateNode(item)){result.push(item);continue}else item.nodeType===NodeType.REFERENCE&&result.push(item);this._nodeTraversalRef(item,result)}}_nodeTraversalReferenceFunction(node,result){const children=node.getChildren(),childrenCount=children.length;for(let i=0;i<childrenCount;i++){const item=children[i];if(item.nodeType===NodeType.FUNCTION&&item.isAddress()){result.push(item);continue}this._nodeTraversalReferenceFunction(item,result)}}async _executeNode(node,refOffsetX=0,refOffsetY=0){let value;const nodeData={node,refOffsetX,refOffsetY};return this._interpreter.checkAsyncNode(node)?value=await this._interpreter.executeAsync(nodeData):value=this._interpreter.execute(nodeData),value}async _getRangeListByNode(nodeData){const preCalculateNodeList=[],referenceFunctionList=[],refOffsetX=nodeData.refOffsetX,refOffsetY=nodeData.refOffsetY;this._nodeTraversalRef(nodeData.node,preCalculateNodeList),this._nodeTraversalReferenceFunction(nodeData.node,referenceFunctionList);const rangeList=[];for(let i=0,len=preCalculateNodeList.length;i<len;i++){const node=preCalculateNodeList[i],gridRange=(await this._executeNode(node,refOffsetX,refOffsetY)).toUnitRange();rangeList.push(gridRange)}for(let i=0,len=referenceFunctionList.length;i<len;i++){const node=referenceFunctionList[i],gridRange=(await this._executeNode(node,refOffsetX,refOffsetY)).toUnitRange();rangeList.push(gridRange)}return rangeList}_isDirtyDefinedForNode(node){const definedNameMap=this._currentConfigService.getDirtyDefinedNameMap(),executeUnitId=this._currentConfigService.getExecuteUnitId();if(executeUnitId!=null&&definedNameMap[executeUnitId]!=null){const names=Object.keys(definedNameMap[executeUnitId]);for(let i=0,len=names.length;i<len;i++){const name=names[i];if(node.hasDefinedName(name))return!0}}return!1}_getUpdateTreeListAndMakeDependency(treeList){const newTreeList=[],existTree=new Set,forceCalculate=this._currentConfigService.isForceCalculate(),allTree=this._dependencyManagerService.buildDependencyTree(treeList),dirtyRanges=this._currentConfigService.getDirtyRanges(),treeIds=this._dependencyManagerService.searchDependency(dirtyRanges);for(let i=0,len=allTree.length;i<len;i++){const tree=allTree[i];(forceCalculate||tree.dependencySheetName(this._currentConfigService.getDirtyNameMap())||treeIds.has(tree.treeId)&&!tree.isExcludeRange(this._currentConfigService.getExcludedRange())||this._includeTree(tree))&&!existTree.has(tree)&&(newTreeList.push(tree),existTree.add(tree))}return newTreeList}_dependencyFeatureCalculation(newTreeList){const featureMap=this._featureCalculationManagerService.getReferenceExecutorMap();if(featureMap.size===0)return;this._clearFeatureCalculationNode(newTreeList);let hasFeatureCalculation=!1;return featureMap.forEach((subUnitMap,_)=>{subUnitMap.forEach((featureMap2,_2)=>{featureMap2.forEach((params,featureId)=>{const{unitId,subUnitId,getDirtyData}=params,allDependency=getDirtyData(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData()),dirtyRanges=this._convertDirtyRangesToUnitRange(allDependency.dirtyRanges),intersectTrees=this._intersectFeatureCalculation(dirtyRanges,newTreeList,{unitId,subUnitId,featureId});if(intersectTrees.length>0){let featureTree=this._getExistTreeList({unitId,subUnitId,featureId},newTreeList);featureTree==null&&(featureTree=this._getFeatureFormulaTree(featureId,params),newTreeList.push(featureTree)),featureTree.parents=new Set,intersectTrees.forEach(tree=>{tree.hasChildren(featureTree)||tree.pushChildren(featureTree)}),hasFeatureCalculation=!0}})})}),hasFeatureCalculation}_clearFeatureCalculationNode(newTreeList){const featureMap=this._featureCalculationManagerService.getReferenceExecutorMap();newTreeList.forEach(tree=>{var _a2,_b2,_c2,_d2;const newChildren=new Set;for(const child of tree.children)child.featureId&&(_b2=(_a2=featureMap.get(tree.unitId))==null?void 0:_a2.get(tree.subUnitId))!=null&&_b2.has(child.featureId)||newChildren.add(child);tree.children=newChildren;const newParents=new Set;for(const parent of tree.parents)parent.featureId&&(_d2=(_c2=featureMap.get(tree.unitId))==null?void 0:_c2.get(tree.subUnitId))!=null&&_d2.has(parent.featureId)||newParents.add(parent);tree.parents=newParents})}_getExistTreeList(param,treeList){const{unitId,subUnitId,featureId}=param;for(let i=0,len=treeList.length;i<len;i++){const tree=treeList[i];if(tree.unitId===unitId&&tree.subUnitId===subUnitId&&tree.featureId===featureId)return tree}}_convertDirtyRangesToUnitRange(dirtyRanges){const unitRange=[];for(const unitId in dirtyRanges){const unitMap=dirtyRanges[unitId];for(const subUnitId in unitMap){const ranges=unitMap[subUnitId];for(const range of ranges)unitRange.push({unitId,sheetId:subUnitId,range})}}return unitRange}_intersectFeatureCalculation(dirtyRanges,newTreeList,param){const dependencyTree=[],treeIds=this._dependencyManagerService.searchDependency(dirtyRanges);for(let i=0,len=newTreeList.length;i<len;i++){const tree=newTreeList[i];if(tree.unitId===param.unitId&&tree.subUnitId===param.subUnitId&&tree.featureId===param.featureId)continue;treeIds.has(tree.treeId)&&dependencyTree.push(tree)}return dependencyTree}_includeTreeFeature(tree){var _a2,_b2;const unitId=tree.unitId,subUnitId=tree.subUnitId,featureId=tree.featureId;if(featureId!=null){const featureMap=this._currentConfigService.getDirtyUnitFeatureMap();if(((_b2=(_a2=featureMap==null?void 0:featureMap[unitId])==null?void 0:_a2[subUnitId])==null?void 0:_b2[featureId])!=null)return!0}return!1}_includeOtherFormula(tree){var _a2,_b2;const unitId=tree.unitId,subUnitId=tree.subUnitId,formulaId=tree.formulaId;if(formulaId!=null){const otherFormulaMap=this._currentConfigService.getDirtyUnitOtherFormulaMap();if(((_b2=(_a2=otherFormulaMap==null?void 0:otherFormulaMap[unitId])==null?void 0:_a2[subUnitId])==null?void 0:_b2[formulaId])!=null)return!0}return!1}_includeDefinedName(tree){var _a2;const node=(_a2=tree.nodeData)==null?void 0:_a2.node;return!!(node!=null&&this._isDirtyDefinedForNode(node))}_detectForcedRecalculationNode(tree){var _a2;const node=(_a2=tree.nodeData)==null?void 0:_a2.node;return node==null?!1:this._detectForcedRecalculationNodeRecursion(node)}_detectForcedRecalculationNodeRecursion(node){if(node.isForcedCalculateFunction())return!0;const children=node.getChildren();for(let i=0,len=children.length;i<len;i++){const child=children[i];if(this._detectForcedRecalculationNodeRecursion(child))return!0}return!1}_includeTree(tree){var _a2,_b2,_c2;const unitId=tree.unitId,subUnitId=tree.subUnitId;if(this._detectForcedRecalculationNode(tree)===!0||this._includeTreeFeature(tree)===!0||this._includeOtherFormula(tree)===!0||this._includeDefinedName(tree)===!0)return!0;const excludedCell=(_b2=(_a2=this._currentConfigService.getExcludedRange())==null?void 0:_a2[unitId])==null?void 0:_b2[subUnitId];let isExclude=!1;if(excludedCell==null||excludedCell.forValue((row,column)=>{if(tree.row===row&&tree.column===column)return isExclude=!0,!1}),isExclude)return!1;if(((_c2=this._currentConfigService.getDirtyNameMap()[unitId])==null?void 0:_c2[subUnitId])!=null)return!0;if(!this._updateRangeFlattenCache.has(unitId))return!1;const sheetRangeMap=this._updateRangeFlattenCache.get(unitId);if(!sheetRangeMap.has(subUnitId))return!1;const ranges=sheetRangeMap.get(subUnitId);for(const range of ranges)if(tree.inRangeData(range))return!0;return!1}_calculateRunList(treeList){const stack=treeList,formulaRunList=[],cacheStack=[];for(;stack.length>0;){const tree=stack.pop();if(!(tree===void 0||tree.isSkip())){if(tree.isAdded()){formulaRunList.push(tree),tree.setSkip();continue}cacheStack.length=0;for(const parentTree of tree.parents)parentTree.isAdded()||tree.isSkip()||cacheStack.push(parentTree);cacheStack.length===0?(formulaRunList.push(tree),tree.setSkip()):(tree.setAdded(),stack.push(tree,...cacheStack))}}return formulaRunList.reverse()}},__name(_o,"FormulaDependencyGenerator"),_o),exports2.FormulaDependencyGenerator=__decorateClass$9([__decorateParam$9(0,IFormulaCurrentConfigService),__decorateParam$9(1,IFormulaRuntimeService),__decorateParam$9(2,IOtherFormulaManagerService),__decorateParam$9(3,IFeatureCalculationManagerService),__decorateParam$9(4,core.Inject(exports2.Interpreter)),__decorateParam$9(5,core.Inject(exports2.AstTreeBuilder)),__decorateParam$9(6,core.Inject(exports2.Lexer)),__decorateParam$9(7,IDependencyManagerService)],exports2.FormulaDependencyGenerator);var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8");const DEFAULT_CYCLE_REFERENCE_COUNT=1;exports2.CalculateFormulaService=(_p=class extends core.Disposable{constructor(_configService,_lexer,_currentConfigService,_runtimeService,_formulaDependencyGenerator,_interpreter,_astTreeBuilder){super();__publicField(this,"_executionStartListener$",new rxjs.Subject);__publicField(this,"executionStartListener$",this._executionStartListener$.asObservable());__publicField(this,"_executionCompleteListener$",new rxjs.Subject);__publicField(this,"executionCompleteListener$",this._executionCompleteListener$.asObservable());__publicField(this,"_executionInProgressListener$",new rxjs.Subject);__publicField(this,"executionInProgressListener$",this._executionInProgressListener$.asObservable());this._configService=_configService,this._lexer=_lexer,this._currentConfigService=_currentConfigService,this._runtimeService=_runtimeService,this._formulaDependencyGenerator=_formulaDependencyGenerator,this._interpreter=_interpreter,this._astTreeBuilder=_astTreeBuilder}stopFormulaExecution(){this._runtimeService.stopExecution()}setRuntimeFeatureCellData(featureId,featureData){this._runtimeService.setRuntimeFeatureCellData(featureId,featureData)}setRuntimeFeatureRange(featureId,featureRange){this._runtimeService.setRuntimeFeatureRange(featureId,featureRange)}async execute(formulaDatasetConfig){this._executionStartListener$.next(!0),this._currentConfigService.load(formulaDatasetConfig),this._runtimeService.reset();const cycleReferenceCount=this._configService.getConfig("CYCLE_REFERENCE_COUNT")||DEFAULT_CYCLE_REFERENCE_COUNT;for(let i=0;i<cycleReferenceCount&&(this._runtimeService.setFormulaCycleIndex(i),await this._execute(),FORMULA_REF_TO_ARRAY_CACHE.clear(),!!this._runtimeService.isCycleDependency());i++);this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CALCULATION_COMPLETED),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()),CELL_INVERTED_INDEX_CACHE.clear()}async _execute(){const executeState=await this._apply();if(executeState==null)return;const{arrayFormulaRange,runtimeFeatureRange}=executeState,{dirtyRanges,excludedCell}=this._getArrayFormulaDirtyRangeAndExcludedRange(arrayFormulaRange,runtimeFeatureRange);return dirtyRanges==null||dirtyRanges.length===0||(this._currentConfigService.loadDirtyRangesAndExcludedCell(dirtyRanges,excludedCell),await this._apply(!0)),!0}_getArrayFormulaDirtyRangeAndExcludedRange(arrayFormulaRange,runtimeFeatureRange){const dirtyRanges=[],excludedCell={};return Object.keys(arrayFormulaRange).forEach(unitId=>{const sheetArrayFormulaRange=arrayFormulaRange[unitId];if(sheetArrayFormulaRange==null)return!0;Object.keys(sheetArrayFormulaRange).forEach(sheetId=>{const cellValue=new core.ObjectMatrix(sheetArrayFormulaRange[sheetId]);if(cellValue==null)return!0;const newCellData=new core.ObjectMatrix;cellValue.forValue((row,column,range)=>{newCellData.setValue(row,column,!0),dirtyRanges.push({unitId,sheetId,range})}),excludedCell[unitId]==null&&(excludedCell[unitId]={}),excludedCell[unitId][sheetId]=newCellData})}),Object.keys(runtimeFeatureRange).forEach(featureId=>{const arrayRange=runtimeFeatureRange[featureId];Object.keys(arrayRange).forEach(unitId=>{const sheetArrayFormulaRange=arrayRange[unitId];if(sheetArrayFormulaRange==null)return!0;Object.keys(sheetArrayFormulaRange).forEach(sheetId=>{const ranges=sheetArrayFormulaRange[sheetId];if(ranges==null)return!0;for(const range of ranges)dirtyRanges.push({unitId,sheetId,range})})})}),{dirtyRanges,excludedCell}}async _apply(isArrayFormulaState=!1){isArrayFormulaState?this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_DEPENDENCY_ARRAY_FORMULA):this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_DEPENDENCY),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());const treeList=await this._formulaDependencyGenerator.generate(),interpreter=this._interpreter;isArrayFormulaState?(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_CALCULATION_ARRAY_FORMULA),this._runtimeService.setTotalArrayFormulasToCalculate(treeList.length)):(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.START_CALCULATION),this._runtimeService.setTotalFormulasToCalculate(treeList.length)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());let pendingTasks=[];for(let i=0,len=treeList.length;i<len;i++){if(await new Promise(resolve=>{const calCancelTask=core.requestImmediateMacroTask(resolve);pendingTasks.push(calCancelTask)}),this._runtimeService.isStopExecution()){this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.IDLE),this._runtimeService.markedAsStopFunctionsExecuted(),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData());return}const tree=treeList[i],nodeData=tree.nodeData,getDirtyData=tree.getDirtyData;let value;if(nodeData==null&&getDirtyData==null)throw new Error("AstNode or executor is null");if(this._runtimeService.setCurrent(tree.row,tree.column,tree.rowCount,tree.columnCount,tree.subUnitId,tree.unitId),getDirtyData!=null&&tree.featureId!=null){const{runtimeCellData,dirtyRanges}=getDirtyData(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData());this._runtimeService.setRuntimeFeatureCellData(tree.featureId,runtimeCellData),this._runtimeService.setRuntimeFeatureRange(tree.featureId,dirtyRanges)}else nodeData!=null&&(interpreter.checkAsyncNode(nodeData.node)?value=await interpreter.executeAsync(nodeData):value=interpreter.execute(nodeData),tree.formulaId!=null?this._runtimeService.setRuntimeOtherData(tree.formulaId,value):this._runtimeService.setRuntimeData(value));isArrayFormulaState?(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CURRENTLY_CALCULATING_ARRAY_FORMULA),this._runtimeService.setCompletedArrayFormulasCount(i+1)):(this._runtimeService.setFormulaExecuteStage(FormulaExecuteStageType.CURRENTLY_CALCULATING),this._runtimeService.setCompletedFormulasCount(i+1)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState())}return pendingTasks.forEach(cancel=>cancel()),pendingTasks=[],treeList.length>0?this._runtimeService.markedAsSuccessfullyExecuted():isArrayFormulaState||this._runtimeService.markedAsNoFunctionsExecuted(),this._runtimeService.clearReferenceAndNumberformatCache(),this._runtimeService.getAllRuntimeData()}calculate(formulaString,transformSuffix=!0){const lexerNode=this._lexer.treeBuilder(formulaString,transformSuffix);if(Object.values(ErrorType$1).includes(lexerNode))return ErrorNode.create(lexerNode);const astNode=this._astTreeBuilder.parse(lexerNode);astNode==null||astNode.serialize()}},__name(_p,"CalculateFormulaService"),_p),exports2.CalculateFormulaService=__decorateClass$8([__decorateParam$8(0,core.IConfigService),__decorateParam$8(1,core.Inject(exports2.Lexer)),__decorateParam$8(2,IFormulaCurrentConfigService),__decorateParam$8(3,IFormulaRuntimeService),__decorateParam$8(4,core.Inject(exports2.FormulaDependencyGenerator)),__decorateParam$8(5,core.Inject(exports2.Interpreter)),__decorateParam$8(6,core.Inject(exports2.AstTreeBuilder))],exports2.CalculateFormulaService);var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$7(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$7(target,key,result),result},"__decorateClass$7"),__decorateParam$7=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$7");exports2.CalculateController=(_q=class extends core.Disposable{constructor(_commandService,_calculateFormulaService,_formulaDataModel){super(),this._commandService=_commandService,this._calculateFormulaService=_calculateFormulaService,this._formulaDataModel=_formulaDataModel,this._initialize()}_initialize(){this._commandExecutedListener(),this._initialExecuteFormulaListener(),this._initialExecuteFormulaProcessListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetFormulaCalculationStopMutation.id)this._calculateFormulaService.stopFormulaExecution();else if(command.id===SetFormulaDataMutation.id){const formulaData=command.params.formulaData;this._formulaDataModel.mergeFormulaData(formulaData)}else if(command.id===SetFormulaCalculationStartMutation.id){const params=command.params;if(params.forceCalculation===!0)this._calculate(!0);else{const{dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap,clearDependencyTreeCache}=params;this._calculate(!1,dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap,clearDependencyTreeCache)}}else if(command.id===SetArrayFormulaDataMutation.id){const params=command.params;if(params==null)return;const{arrayFormulaRange,arrayFormulaCellData}=params;this._formulaDataModel.setArrayFormulaRange(arrayFormulaRange),this._formulaDataModel.setArrayFormulaCellData(arrayFormulaCellData)}}))}async _calculate(forceCalculate=!1,dirtyRanges=[],dirtyNameMap={},dirtyDefinedNameMap={},dirtyUnitFeatureMap={},dirtyUnitOtherFormulaMap={},clearDependencyTreeCache={}){if(dirtyRanges.length===0&&Object.keys(dirtyNameMap).length===0&&Object.keys(dirtyDefinedNameMap).length===0&&Object.keys(dirtyUnitFeatureMap).length===0&&Object.keys(dirtyUnitOtherFormulaMap).length===0&&forceCalculate===!1)return;const formulaData=this._formulaDataModel.getFormulaData(),arrayFormulaCellData=this._formulaDataModel.getArrayFormulaCellData(),arrayFormulaRange=this._formulaDataModel.getArrayFormulaRange();this._calculateFormulaService.execute({formulaData,arrayFormulaCellData,arrayFormulaRange,forceCalculate,dirtyRanges,dirtyNameMap,dirtyDefinedNameMap,dirtyUnitFeatureMap,dirtyUnitOtherFormulaMap,clearDependencyTreeCache})}_initialExecuteFormulaListener(){this._calculateFormulaService.executionCompleteListener$.subscribe(data=>{const functionsExecutedState=data.functionsExecutedState;switch(functionsExecutedState){case FormulaExecutedStateType.NOT_EXECUTED:break;case FormulaExecutedStateType.STOP_EXECUTION:break;case FormulaExecutedStateType.SUCCESS:this._applyResult(data);break;case FormulaExecutedStateType.INITIAL:break}this._commandService.executeCommand(SetFormulaCalculationNotificationMutation.id,{functionsExecutedState},{onlyLocal:!0})})}_initialExecuteFormulaProcessListener(){this._calculateFormulaService.executionInProgressListener$.subscribe(data=>{this._commandService.executeCommand(SetFormulaCalculationNotificationMutation.id,{stageInfo:data},{onlyLocal:!0})})}async _applyResult(data){const{unitData,unitOtherData,arrayFormulaRange,arrayFormulaCellData,clearArrayFormulaCellData}=data;if(!unitData){console.error("No sheetData from Formula Engine!");return}arrayFormulaRange&&(this._formulaDataModel.clearPreviousArrayFormulaCellData(clearArrayFormulaCellData),this._formulaDataModel.mergeArrayFormulaCellData(arrayFormulaCellData),this._formulaDataModel.mergeArrayFormulaRange(arrayFormulaRange),this._commandService.executeCommand(SetArrayFormulaDataMutation.id,{arrayFormulaRange:this._formulaDataModel.getArrayFormulaRange(),arrayFormulaCellData:this._formulaDataModel.getArrayFormulaCellData()},{onlyLocal:!0})),this._commandService.executeCommand(SetFormulaCalculationResultMutation.id,{unitData:convertRuntimeToUnitData(unitData),unitOtherData},{onlyLocal:!0})}},__name(_q,"CalculateController"),_q),exports2.CalculateController=__decorateClass$7([__decorateParam$7(0,core.ICommandService),__decorateParam$7(1,core.Inject(exports2.CalculateFormulaService)),__decorateParam$7(2,core.Inject(exports2.FormulaDataModel))],exports2.CalculateController);var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6");exports2.SetDefinedNameController=(_r=class extends core.Disposable{constructor(_commandService,_definedNamesService){super(),this._commandService=_commandService,this._definedNamesService=_definedNamesService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetDefinedNameMutation.id){const params=command.params;if(params==null)return;const{id,unitId,name,formulaOrRefString,comment,hidden,localSheetId}=params;this._definedNamesService.registerDefinedName(unitId,{id,name:name.trim(),formulaOrRefString:formulaOrRefString.trim(),comment:comment==null?void 0:comment.trim(),hidden,localSheetId})}else if(command.id===RemoveDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,id}=params;this._definedNamesService.removeDefinedName(unitId,id)}}))}},__name(_r,"SetDefinedNameController"),_r),exports2.SetDefinedNameController=__decorateClass$6([__decorateParam$6(0,core.ICommandService),__decorateParam$6(1,IDefinedNamesService)],exports2.SetDefinedNameController);const $relativeRegex=/[\[\]]/g;function handleR1C1(rowOrColumnString,current){if($relativeRegex.test(rowOrColumnString)){const index=Number(rowOrColumnString.replace($relativeRegex,""));return current+index}return Number(rowOrColumnString)-1}__name(handleR1C1,"handleR1C1");function singleReference(refBody,currentRow=0,currentColumn=0){refBody=refBody.toLocaleUpperCase();const refBodyArray=refBody.split(/[RC]/),rowString=refBodyArray[1],columnString=refBodyArray[2],row=handleR1C1(rowString,currentRow),column=handleR1C1(columnString,currentColumn);return{row,column,absoluteRefType:core.AbsoluteRefType.NONE}}__name(singleReference,"singleReference");function deserializeRangeForR1C1(refString,currentRow=0,currentColumn=0){const{refBody,sheetName,unitId}=handleRefStringInfo(refString),colonIndex=refBody.indexOf(":");if(colonIndex===-1){const grid=singleReference(refBody,currentRow,currentColumn),row=grid.row,column=grid.column,absoluteRefType=grid.absoluteRefType;return{unitId,sheetName,range:{startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absoluteRefType,endAbsoluteRefType:absoluteRefType}}}const refStartString=refBody.substring(0,colonIndex),refEndString=refBody.substring(colonIndex+1),startGrid=singleReference(refStartString,currentRow,currentColumn),endGrid=singleReference(refEndString,currentRow,currentColumn),startRow=startGrid.row,startColumn=startGrid.column,endRow=endGrid.row,endColumn=endGrid.column;return{unitId,sheetName,range:{startRow,startColumn,endRow,endColumn,startAbsoluteRefType:startGrid.absoluteRefType,endAbsoluteRefType:endGrid.absoluteRefType}}}__name(deserializeRangeForR1C1,"deserializeRangeForR1C1");function serializeRangeToR1C1(range){const startRowRef=getR1C1Ref(range.startRow,range.startAbsoluteRefType,!0),startColumnRef=getR1C1Ref(range.startColumn,range.startAbsoluteRefType,!1),endRowRef=getR1C1Ref(range.endRow,range.endAbsoluteRefType,!0),endColumnRef=getR1C1Ref(range.endColumn,range.endAbsoluteRefType,!1);return startRowRef===endRowRef&&startColumnRef===endColumnRef?`R${startRowRef}C${startColumnRef}`:`R${startRowRef}C${startColumnRef}:R${endRowRef}C${endColumnRef}`}__name(serializeRangeToR1C1,"serializeRangeToR1C1");function getR1C1Ref(index,absoluteRefType=core.AbsoluteRefType.ALL,isRow){switch(index+=1,absoluteRefType){case core.AbsoluteRefType.ALL:return`${index}`;case core.AbsoluteRefType.ROW:return isRow?`${index}`:`[${index}]`;case core.AbsoluteRefType.COLUMN:return isRow?`[${index}]`:`${index}`;case core.AbsoluteRefType.NONE:return`[${index}]`}}__name(getR1C1Ref,"getR1C1Ref");const functionArray=[];var FUNCTION_NAMES_ARRAY=(FUNCTION_NAMES_ARRAY2=>FUNCTION_NAMES_ARRAY2)(FUNCTION_NAMES_ARRAY||{});const _BaseFunction=class _BaseFunction{constructor(_name){__publicField(this,"_unitId");__publicField(this,"_subUnitId");__publicField(this,"_row",-1);__publicField(this,"_column",-1);__publicField(this,"_definedNames");__publicField(this,"needsExpandParams",!1);__publicField(this,"needsReferenceObject",!1);__publicField(this,"minParams",-1);__publicField(this,"maxParams",-1);this._name=_name}get name(){return this._name}get unitId(){return this._unitId}get subUnitId(){return this._subUnitId}get row(){return this._row}get column(){return this._column}dispose(){}getDefinedName(name){var _a2;const nameMap=this._definedNames;return nameMap==null?null:(_a2=Array.from(Object.values(nameMap)).filter(value=>value.name===name))==null?void 0:_a2[0]}setDefinedNames(definedNames){this._definedNames=definedNames}isAsync(){return!1}isAddress(){return!1}isCustom(){return!1}setRefInfo(unitId,subUnitId,row,column){this._unitId=unitId,this._subUnitId=subUnitId,this._row=row,this._column=column}calculateCustom(...arg){return null}calculate(...arg){return ErrorValueObject.create(ErrorType$1.VALUE)}checkArrayType(variant){return variant.isReferenceObject()||variant.isValueObject()&&variant.isArray()}getIndexNumValue(indexNum,defaultValue=1){let _indexNum=indexNum;if(_indexNum.isArray()&&(_indexNum=_indexNum.getFirstCell()),_indexNum.isBoolean())return _indexNum.getValue()===!1?ErrorValueObject.create(ErrorType$1.VALUE):defaultValue;if(_indexNum.isString()){const colIndexNumV=Number(_indexNum.getValue());return Number.isNaN(colIndexNumV)?ErrorValueObject.create(ErrorType$1.REF):colIndexNumV}else if(_indexNum.isNumber())return _indexNum.getValue();return ErrorValueObject.create(ErrorType$1.VALUE)}getZeroOrOneByOneDefault(logicValueObject){if(logicValueObject==null)return 1;let logicValue=1;if(logicValueObject.isArray()&&(logicValueObject=logicValueObject.getFirstCell()),logicValueObject.isBoolean())logicValueObject.getValue()===!1&&(logicValue=0);else{if(logicValueObject.isString())return;logicValueObject.isNumber()&&logicValueObject.getValue()===0&&(logicValue=0)}return logicValue}getMatchTypeValue(logicValueObject){if(logicValueObject==null)return 1;let logicValue=1;if(logicValueObject.isArray()&&(logicValueObject=logicValueObject.getFirstCell()),logicValueObject.isBoolean())logicValueObject.getValue()===!1&&(logicValue=0);else{if(logicValueObject.isString())return;if(logicValueObject.isNumber()){const logicV=logicValueObject.getValue();logicV<=0&&(logicValue=logicV)}}return logicValue}binarySearch(value,searchArray,resultArray,searchType,matchType){const rowOrColumn=searchArray.binarySearch(value,searchType,matchType);if(rowOrColumn==null)return ErrorValueObject.create(ErrorType$1.NA);let resultValue;return resultArray.getRowCount()===1?resultValue=resultArray.get(0,rowOrColumn)||NullValueObject.create():resultValue=resultArray.get(rowOrColumn,0)||NullValueObject.create(),resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}_getOneFirstByRaw(array){return array.length===0?ErrorValueObject.create(ErrorType$1.NA):array[0][0]||ErrorValueObject.create(ErrorType$1.NA)}_getOneLastByRaw(array){return array.length===0?ErrorValueObject.create(ErrorType$1.NA):array[array.length-1][array[0].length-1]||ErrorValueObject.create(ErrorType$1.NA)}equalSearch(value,searchArray,resultArray,isFirst=!0){const resultArrayValue=resultArray.pickRaw(searchArray.isEqual(value));return isFirst?this._getOneFirstByRaw(resultArrayValue):this._getOneLastByRaw(resultArrayValue)}fuzzySearch(value,searchArray,resultArray,isFirst=!0){const resultArrayValue=resultArray.pickRaw(searchArray.compare(value,compareToken.EQUALS));return isFirst?this._getOneFirstByRaw(resultArrayValue):this._getOneLastByRaw(resultArrayValue)}orderSearch(value,searchArray,resultArray,searchType=ArrayOrderSearchType.MIN,isDesc=!1){const position=searchArray.orderSearch(value,searchType,isDesc);if(position==null)return ErrorValueObject.create(ErrorType$1.NA);const resultValue=resultArray.get(position.row,position.column)||NullValueObject.create();return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}binarySearchExpand(value,searchArray,resultArray,axis=0,searchType,matchType){const rowOrColumn=searchArray.binarySearch(value,searchType,matchType);return rowOrColumn==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([rowOrColumn,rowOrColumn+1]):resultArray.slice(void 0,[rowOrColumn,rowOrColumn+1])}equalSearchExpand(value,searchArray,resultArray,isFirst=!0,axis=0){const matchObject=searchArray.isEqual(value);let position;return isFirst?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}fuzzySearchExpand(value,searchArray,resultArray,isFirst=!0,axis=0){const matchObject=searchArray.compare(value,compareToken.EQUALS);let position;return isFirst?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}orderSearchExpand(value,searchArray,resultArray,searchType=ArrayOrderSearchType.MIN,isDesc=!1,axis=0){const position=searchArray.orderSearch(value,searchType,isDesc);return position==null?ErrorValueObject.create(ErrorType$1.NA):axis===0?resultArray.slice([position.row,position.row+1]):resultArray.slice(void 0,[position.column,position.column+1])}flattenArray(variants,ignoreLogicalValuesAndText=!0){const flattenValues=[];flattenValues[0]=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean()||variant.isNull())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){let errorValue;if(variant.iterator(valueObject=>{if(valueObject==null||valueObject.isNull()||ignoreLogicalValuesAndText&&(valueObject.isString()||valueObject.isBoolean()))return!0;if(valueObject=this._includingLogicalValuesAndText(valueObject),valueObject.isError())return errorValue=valueObject,!1;flattenValues[0].push(valueObject)}),errorValue!=null&&errorValue.isError())return errorValue}else flattenValues[0].push(variant)}return createNewArray(flattenValues,1,flattenValues[0].length)}_includingLogicalValuesAndText(valueObject){if(valueObject.isBoolean()&&(valueObject=convertTonNumber(valueObject)),valueObject.isString()){const value=Number(valueObject.getValue());valueObject=NumberValueObject.create(Number.isNaN(value)?0:value)}return valueObject}createReferenceObject(reference,range){const unitId=reference.getForcedUnitId(),sheetId=reference.getForcedSheetId()||"",sheetName=reference.getForcedSheetName(),token=serializeRangeToRefString({unitId,sheetName,range});let referenceObject;return regexTestSingeRange(token)?referenceObject=new CellReferenceObject(token):regexTestSingleRow(token)?referenceObject=new RowReferenceObject(token):regexTestSingleColumn(token)?referenceObject=new ColumnReferenceObject(token):referenceObject=new RangeReferenceObject(range,sheetId,unitId),this._setReferenceDefault(reference,referenceObject)}_setReferenceDefault(reference,object){return this.unitId==null||this.subUnitId==null?ErrorValueObject.create(ErrorType$1.REF):(object.setDefaultUnitId(this.unitId),object.setDefaultSheetId(this.subUnitId),object.setUnitData(reference.getUnitData()),object.setRuntimeData(reference.getRuntimeData()),object.setArrayFormulaCellData(reference.getArrayFormulaCellData()),object.setRuntimeArrayFormulaCellData(reference.getRuntimeArrayFormulaCellData()),object)}};__name(_BaseFunction,"BaseFunction");let BaseFunction=_BaseFunction;var BESSEL;(BESSEL2=>{const W=.636619772;function _horner(arr,v){let z=0;for(let i=0;i<arr.length;++i)z=v*z+arr[i];return z}__name(_horner,"_horner");function _bessel_iter(x,n,f0,f1,sign2){if(n===0)return f0;if(n===1)return f1;const tdx=2/x;let _f0=f0,_f1=f1,f2=f1;for(let o=1;o<n;++o)f2=_f1*o*tdx+sign2*_f0,_f0=_f1,_f1=f2;return f2}__name(_bessel_iter,"_bessel_iter");function _bessel_wrap(bessel0,bessel1,nonzero,sign2){return __name(function(x,n){if(nonzero){if(x===0)return nonzero===1?-1/0:1/0;if(x<0)return Number.NaN}if(n===0)return bessel0(x);if(n===1)return bessel1(x);if(n<0)return Number.NaN;const _n2=n|0,b0=bessel0(x),b1=bessel1(x);return _bessel_iter(x,_n2,b0,b1,sign2)},"bessel")}__name(_bessel_wrap,"_bessel_wrap"),BESSEL2.besselj=(()=>{const b0_a1a=[-184.9052456,77392.33017,-1121442418e-2,6516196407e-1,-13362590354,57568490574],b0_a2a=[1,267.8532712,59272.64853,9494680718e-3,1029532985,57568490411],b0_a1b=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],b0_a2b=[-934935152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function bessel0(x){let a=0,a1=0,a2=0,y=x*x;if(x<8)a1=_horner(b0_a1a,y),a2=_horner(b0_a2a,y),a=a1/a2;else{const xx=x-.785398164;y=64/y,a1=_horner(b0_a1b,y),a2=_horner(b0_a2b,y),a=Math.sqrt(W/x)*(Math.cos(xx)*a1-Math.sin(xx)*a2*8/x)}return a}__name(bessel0,"bessel0");const b1_a1a=[-30.16036606,15704.4826,-2972611439e-3,2423968531e-1,-7895059235,72362614232],b1_a2a=[1,376.9991397,99447.43394,1858330474e-2,2300535178,144725228442],b1_a1b=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],b1_a2b=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function bessel1(x){let a=0,a1=0,a2=0,y=x*x;const xx=Math.abs(x)-2.356194491;return Math.abs(x)<8?(a1=x*_horner(b1_a1a,y),a2=_horner(b1_a2a,y),a=a1/a2):(y=64/y,a1=_horner(b1_a1b,y),a2=_horner(b1_a2b,y),a=Math.sqrt(W/Math.abs(x))*(Math.cos(xx)*a1-Math.sin(xx)*a2*8/Math.abs(x)),x<0&&(a=-a)),a}return __name(bessel1,"bessel1"),__name(function besselj2(x,n){const _n2=Math.round(n);if(!Number.isFinite(x))return Number.isNaN(x)?x:0;if(_n2<0)return(_n2%2?-1:1)*besselj2(x,-_n2);if(x<0)return(_n2%2?-1:1)*besselj2(-x,_n2);if(_n2===0)return bessel0(x);if(_n2===1)return bessel1(x);if(x===0)return 0;let ret=0;if(x>_n2)ret=_bessel_iter(x,_n2,bessel0(x),bessel1(x),-1);else{const m=2*Math.floor((_n2+Math.floor(Math.sqrt(40*_n2)))/2);let jsum=!1,bjp=0,sum2=0,bj=1,bjm=0;const tox=2/x;for(let j=m;j>0;j--)if(bjm=j*tox*bj-bjp,bjp=bj,bj=bjm,Math.abs(bj)>1e10&&(bj*=1e-10,bjp*=1e-10,ret*=1e-10,sum2*=1e-10),jsum&&(sum2+=bj),jsum=!jsum,j===_n2&&(ret=bjp),m-j>100&&ret===0)return Number.NaN;sum2=2*sum2-bj,ret/=sum2}return ret},"besselj2")})(),BESSEL2.bessely=(()=>{const b0_a1a=[228.4622733,-86327.92757,1087988129e-2,-5123598036e-1,7062834065,-2957821389],b0_a2a=[1,226.1030244,47447.2647,7189466438e-3,7452499648e-1,40076544269],b0_a1b=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],b0_a2b=[-934945152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function bessel0(x){let a=0,a1=0,a2=0,y=x*x;const xx=x-.785398164;return x<8?(a1=_horner(b0_a1a,y),a2=_horner(b0_a2a,y),a=a1/a2+W*(0,BESSEL2.besselj)(x,0)*Math.log(x)):(y=64/y,a1=_horner(b0_a1b,y),a2=_horner(b0_a2b,y),a=Math.sqrt(W/x)*(Math.sin(xx)*a1+Math.cos(xx)*a2*8/x)),a}__name(bessel0,"bessel0");const b1_a1a=[8511.937935,-4237922726e-3,7349264551e-1,-51534381390,127527439e4,-4900604943e3],b1_a2a=[1,354.9632885,102042.605,2245904002e-2,3733650367,424441966400,249958057e5],b1_a1b=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],b1_a2b=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function bessel1(x){let a=0,a1=0,a2=0,y=x*x;const xx=x-2.356194491;return x<8?(a1=x*_horner(b1_a1a,y),a2=_horner(b1_a2a,y),a=a1/a2+W*((0,BESSEL2.besselj)(x,1)*Math.log(x)-1/x)):(y=64/y,a1=_horner(b1_a1b,y),a2=_horner(b1_a2b,y),a=Math.sqrt(W/x)*(Math.sin(xx)*a1+Math.cos(xx)*a2*8/x)),a}return __name(bessel1,"bessel1"),_bessel_wrap(bessel0,bessel1,1,-1)})(),BESSEL2.besseli=(()=>{const b0_a=[.0045813,.0360768,.2659732,1.2067492,3.0899424,3.5156229,1],b0_b=[.00392377,-.01647633,.02635537,-.02057706,.00916281,-.00157565,.00225319,.01328592,.39894228];function bessel0(x){return x<=3.75?_horner(b0_a,x*x/(3.75*3.75)):Math.exp(Math.abs(x))/Math.sqrt(Math.abs(x))*_horner(b0_b,3.75/Math.abs(x))}__name(bessel0,"bessel0");const b1_a=[32411e-8,.00301532,.02658733,.15084934,.51498869,.87890594,.5],b1_b=[-.00420059,.01787654,-.02895312,.02282967,-.01031555,.00163801,-.00362018,-.03988024,.39894228];function bessel1(x){return x<3.75?x*_horner(b1_a,x*x/(3.75*3.75)):(x<0?-1:1)*Math.exp(Math.abs(x))/Math.sqrt(Math.abs(x))*_horner(b1_b,3.75/Math.abs(x))}return __name(bessel1,"bessel1"),__name(function besseli2(x,n){const _n2=Math.round(n);if(_n2===0)return bessel0(x);if(_n2===1)return bessel1(x);if(_n2<0)return Number.NaN;if(Math.abs(x)===0)return 0;if(x===1/0)return 1/0;let ret=0,j;const tox=2/Math.abs(x);let bip=0,bi=1,bim=0;const m=2*Math.round((_n2+Math.round(Math.sqrt(40*_n2)))/2);for(j=m;j>0;j--)if(bim=j*tox*bi+bip,bip=bi,bi=bim,Math.abs(bi)>1e10&&(bi*=1e-10,bip*=1e-10,ret*=1e-10),j===_n2&&(ret=bip),m-j>100&&ret===0)return Number.NaN;return ret*=besseli2(x,0)/bi,x<0&&_n2%2?-ret:ret},"besseli2")})(),BESSEL2.besselk=(()=>{const b0_a=[74e-7,1075e-7,.00262698,.0348859,.23069756,.4227842,-.57721566],b0_b=[53208e-8,-.0025154,.00587872,-.01062446,.02189568,-.07832358,1.25331414];function bessel0(x){return x<=2?-Math.log(x/2)*(0,BESSEL2.besseli)(x,0)+_horner(b0_a,x*x/4):Math.exp(-x)/Math.sqrt(x)*_horner(b0_b,2/x)}__name(bessel0,"bessel0");const b1_a=[-4686e-8,-.00110404,-.01919402,-.18156897,-.67278579,.15443144,1],b1_b=[-68245e-8,.00325614,-.00780353,.01504268,-.0365562,.23498619,1.25331414];function bessel1(x){return x<=2?Math.log(x/2)*(0,BESSEL2.besseli)(x,1)+1/x*_horner(b1_a,x*x/4):Math.exp(-x)/Math.sqrt(x)*_horner(b1_b,2/x)}return __name(bessel1,"bessel1"),_bessel_wrap(bessel0,bessel1,2,1)})()})(BESSEL||(BESSEL={}));function isValidBinaryNumber(number){return/^[01]{1,10}$/.test(number)}__name(isValidBinaryNumber,"isValidBinaryNumber");function isValidOctalNumber(number){return/^[0-7]{1,10}$/.test(number)}__name(isValidOctalNumber,"isValidOctalNumber");function isValidHexadecimalNumber(number){return/^[0-9A-Fa-f]{1,10}$/.test(number)}__name(isValidHexadecimalNumber,"isValidHexadecimalNumber");function erf(x){if(x===0)return 0;const cof=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,15626441722e-18,-85238095915e-18,6529054439e-18,5059343495e-18,-991364156e-18,-227365122e-18,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18];let _x2=x,isNeg=!1;_x2<0&&(_x2=-_x2,isNeg=!0);const t=2/(2+_x2),ty=4*t-2;let d=0,dd=0,tmp;for(let j=cof.length-1;j>0;j--)tmp=d,d=ty*d-dd+cof[j],dd=tmp;const res=t*Math.exp(-_x2*_x2+.5*(cof[0]+ty*d)-dd);return isNeg?res-1:1-res}__name(erf,"erf");function erfc(x){return 1-erf(x)}__name(erfc,"erfc");function erfcINV(p){if(p>=2)return-100;if(p<=0)return 100;const _p2=p<1?p:2-p,temp=Math.sqrt(-2*Math.log(_p2/2));let x=-.70711*((2.30753+temp*.27061)/(1+temp*(.99229+temp*.04481))-temp);for(let j=0;j<2;j++){const err=erfc(x)-_p2;x+=err/(1.1283791670955126*Math.exp(-x*x)-x*err)}return p<1?x:-x}__name(erfcINV,"erfcINV");function calculateFactorial(n,step=1){let _n2=Math.floor(n);if(n<0)return Number.NaN;let result=1;for(;_n2>1&&Number.isFinite(result);)result*=_n2,_n2-=step;return result}__name(calculateFactorial,"calculateFactorial");function calculateCombin(n,k){const t=Math.min(n-k,k);let result=1;for(let i=1;i<=t&&Number.isFinite(result);i++)result*=n-i+1,result/=i;return result}__name(calculateCombin,"calculateCombin");function calculateGcd(a,b){let _a2=Math.floor(a),_b2=Math.floor(b);for(;_b2!==0;){const t=_b2;_b2=_a2%_b2,_a2=t}return _a2}__name(calculateGcd,"calculateGcd");function calculateLcm(a,b){const den=calculateGcd(a,b);return den===0?0:Math.abs(a*b)/den}__name(calculateLcm,"calculateLcm");function calculateMdeterm(matrix){const n=matrix.length;if(n===1)return matrix[0][0];if(n===2)return matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0];let det=0;for(let col=0;col<n;col++)det+=(col%2===0?1:-1)*matrix[0][col]*calculateMdeterm(minor(matrix,0,col));return det}__name(calculateMdeterm,"calculateMdeterm");function calculateMinverse(matrix){const det=calculateMdeterm(matrix);return det===0?null:matrix.length===1?[[1/det]]:adjoint(matrix).map(row=>row.map(value=>value/det))}__name(calculateMinverse,"calculateMinverse");function minor(matrix,row,col){return matrix.filter((_,r)=>r!==row).map(row2=>row2.filter((_,c)=>c!==col))}__name(minor,"minor");function adjoint(matrix){const n=matrix.length,adj=Array.from({length:n},()=>new Array(n).fill(0));for(let i=0;i<n;i++)for(let j=0;j<n;j++){const sign2=(i+j)%2===0?1:-1;adj[j][i]=sign2*calculateMdeterm(minor(matrix,i,j))}return adj}__name(adjoint,"adjoint");function betaCDF(x,alpha,beta){return x<=0?0:x>=1?1:incompleteBetaFunction(x,alpha,beta)}__name(betaCDF,"betaCDF");function betaPDF(x,alpha,beta){return x<=0||x>=1?0:alpha===1&&beta===1?1:alpha<512&&beta<512?x**(alpha-1)*(1-x)**(beta-1)/betaFunction(alpha,beta):Math.exp((alpha-1)*Math.log(x)+(beta-1)*Math.log(1-x)-betaFunctionNaturalLogarithm(alpha,beta))}__name(betaPDF,"betaPDF");function betaINV(probability,alpha,beta){if(probability<=0)return 0;if(probability>=1)return 1;const EPSILON=1e-8;let x;if(alpha>=1&&beta>=1){const p=probability<.5?probability:1-probability,temp=Math.sqrt(-2*Math.log(p));x=(2.30753+temp*.27061)/(1+temp*(.99229+temp*.04481))-temp,probability<.5&&(x=-x);const temp1=(x*x-3)/6,temp2=2/(1/(2*alpha-1)+1/(2*beta-1)),temp3=x*Math.sqrt(temp1+temp2)/temp2-(1/(2*beta-1)-1/(2*alpha-1))*(temp1+5/6-2/(3*temp2));x=alpha/(alpha+beta*Math.exp(2*temp3))}else{const temp1=Math.exp(alpha*Math.log(alpha/(alpha+beta)))/alpha,temp2=Math.exp(beta*Math.log(beta/(alpha+beta)))/beta,temp3=temp1+temp2;probability<temp1/temp3?x=(alpha*temp3*probability)**(1/alpha):x=1-(beta*temp3*(1-probability))**(1/beta)}const betalnNeg=-betaFunctionNaturalLogarithm(alpha,beta);let ibeta,t,u;for(let j=0;j<10;j++){if(x===0||x===1)return x;if(ibeta=incompleteBetaFunction(x,alpha,beta)-probability,t=Math.exp((alpha-1)*Math.log(x)+(beta-1)*Math.log(1-x)+betalnNeg),u=ibeta/t,x-=t=u/(1-.5*Math.min(1,u*((alpha-1)/x-(beta-1)/(1-x)))),x<=0&&(x=.5*(x+t)),x>=1&&(x=.5*(x+t+1)),Math.abs(t)<EPSILON*x&&j>0)break}return x}__name(betaINV,"betaINV");function incompleteBetaFunction(x,alpha,beta){const bt=x===0||x===1?0:Math.exp(logGamma(alpha+beta)-logGamma(alpha)-logGamma(beta)+alpha*Math.log(x)+beta*Math.log(1-x));return x<(alpha+1)/(alpha+beta+2)?bt*betaContinuedFraction(x,alpha,beta)/alpha:1-bt*betaContinuedFraction(1-x,beta,alpha)/beta}__name(incompleteBetaFunction,"incompleteBetaFunction");function betaContinuedFraction(x,alpha,beta){let d=1-(alpha+beta)*x/(alpha+1);Math.abs(d)<1e-8&&(d=1e-8),d=1/d;let c=1,h=d;for(let m=1;m<=100;m++){let temp=m*(beta-m)*x/((alpha-1+m*2)*(alpha+m*2));if(d=1+temp*d,Math.abs(d)<1e-8&&(d=1e-8),c=1+temp/c,Math.abs(c)<1e-8&&(c=1e-8),d=1/d,h*=d*c,temp=-(alpha+m)*(alpha+beta+m)*x/((alpha+m*2)*(alpha+1+m*2)),d=1+temp*d,Math.abs(d)<1e-8&&(d=1e-8),c=1+temp/c,Math.abs(c)<1e-8&&(c=1e-8),d=1/d,h*=d*c,Math.abs(d*c-1)<1e-8)break}return h}__name(betaContinuedFraction,"betaContinuedFraction");function betaFunction(alpha,beta){return alpha+beta>170?Math.exp(betaFunctionNaturalLogarithm(alpha,beta)):gammaFunction(alpha)*gammaFunction(beta)/gammaFunction(alpha+beta)}__name(betaFunction,"betaFunction");function betaFunctionNaturalLogarithm(alpha,beta){return logGamma(alpha)+logGamma(beta)-logGamma(alpha+beta)}__name(betaFunctionNaturalLogarithm,"betaFunctionNaturalLogarithm");function logGamma(x){const coefficients=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18];let y=x,tmp=x+5.5;tmp-=(x+.5)*Math.log(tmp);let ser=1.000000000190015;for(let j=0;j<6;j++)y+=1,ser+=coefficients[j]/y;return-tmp+Math.log(2.5066282746310007*ser/x)}__name(logGamma,"logGamma");function gammaFunction(x){const p=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],q=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535];let fact=0,y=x;if(x>171.6243769536076)return 1/0;if(y<=0){const resMod=y%1+36e-17;if(resMod)fact=(y&1?-1:1)*Math.PI/Math.sin(Math.PI*resMod),y=1-y;else return 1/0}const yi=y;let n=0,z;y<1?z=y++:z=(y-=n=(y|0)-1)-1;let xnum=0,xden=0;for(let i=0;i<8;++i)xnum=(xnum+p[i])*z,xden=xden*z+q[i];let res=xnum/xden+1;if(yi<y)res/=yi;else if(yi>y)for(let i=0;i<n;++i)res*=y,y++;return fact&&(res=fact/res),res}__name(gammaFunction,"gammaFunction");function binomialCDF(x,trials,probability){if(x<0)return 0;if(x>=trials)return 1;if(probability<0||probability>1||trials<=0)return Number.NaN;let result=0;for(let i=0;i<=x;i++)result+=binomialPDF(i,trials,probability);return result}__name(binomialCDF,"binomialCDF");function binomialPDF(x,trials,probability){return probability===0||probability===1?trials*probability===x?1:0:calculateCombin(trials,x)*probability**x*(1-probability)**(trials-x)}__name(binomialPDF,"binomialPDF");function chisquareCDF(x,degFreedom){return x<=0?0:lowRegGamma(degFreedom/2,x/2)}__name(chisquareCDF,"chisquareCDF");function chisquarePDF(x,degFreedom){return x<0?0:x===0&&degFreedom===2?.5:Math.exp((degFreedom/2-1)*Math.log(x)-x/2-degFreedom/2*Math.log(2)-logGamma(degFreedom/2))}__name(chisquarePDF,"chisquarePDF");function chisquareINV(probability,degFreedom){return probability<=0?0:probability>=1?1/0:2*lowRegGammaInverse(probability,degFreedom/2)}__name(chisquareINV,"chisquareINV");function lowRegGamma(a,x){if(x<0||a<=0)return Number.NaN;const MAX_ITER=Math.min(-~(Math.log(a>=1?a:1/a)*8.5+a*.4+17),1e4),aln=logGamma(a),exp2=Math.exp(-x+a*Math.log(x)-aln);let _a2=a,sum2=1/a,del=sum2;if(x<a+1){if(exp2===0)return 0;for(let i=1;i<=MAX_ITER;i++)sum2+=del*=x/++_a2;return sum2*exp2}if(exp2===0)return 1;let b=x+1-a,c=1/1e-30,d=1/b,h=d;for(let i=1;i<=MAX_ITER;i++){const temp=-i*(i-a);b+=2,d=temp*d+b,c=b+temp/c,d=1/d,h*=d*c}return 1-h*exp2}__name(lowRegGamma,"lowRegGamma");function lowRegGammaInverse(p,a){if(p<=0)return 0;if(p>=1)return Math.max(100,a+100*Math.sqrt(a));let x;if(a>1){const _p2=p<.5?p:1-p,temp=Math.sqrt(-2*Math.log(_p2));x=(2.30753+temp*.27061)/(1+temp*(.99229+temp*.04481))-temp,p<.5&&(x=-x),x=Math.max(.001,a*(1-1/(9*a)-x/(3*Math.sqrt(a)))**3)}else{const temp=1-a*(.253+a*.12);p<temp?x=(p/temp)**(1/a):x=1-Math.log(1-(p-temp)/(1-temp))}const EPSILON=1e-8,aln=logGamma(a);let err,t;for(let j=0;j<12;j++){if(x<=0)return 0;if(err=lowRegGamma(a,x)-p,a>1?t=Math.exp((a-1)*(Math.log(a-1)-1)-aln)*Math.exp(-(x-(a-1))+(a-1)*(Math.log(x)-Math.log(a-1))):t=Math.exp(-x+(a-1)*Math.log(x)-aln),t!==0&&(t=err/t/(1-.5*Math.min(1,err/t*((a-1)/x-1)))),x-=t,x<=0&&(x=.5*(x+t)),Math.abs(t)<EPSILON*x)break}return x}__name(lowRegGammaInverse,"lowRegGammaInverse");function studentTINV(probability,degFreedom){let x=betaINV(2*Math.min(probability,1-probability),.5*degFreedom,.5);return x=Math.sqrt(degFreedom*(1-x)/x),probability>.5?x:-x}__name(studentTINV,"studentTINV");function exponentialCDF(x,lambda){return x<0?0:1-Math.exp(-lambda*x)}__name(exponentialCDF,"exponentialCDF");function exponentialPDF(x,lambda){return x<0?0:lambda*Math.exp(-lambda*x)}__name(exponentialPDF,"exponentialPDF");function centralFCDF(x,degFreedom1,degFreedom2){return x<0?0:incompleteBetaFunction(degFreedom1*x/(degFreedom1*x+degFreedom2),degFreedom1/2,degFreedom2/2)}__name(centralFCDF,"centralFCDF");function centralFPDF(x,degFreedom1,degFreedom2){if(x<0)return 0;if(x===0&&degFreedom1<2)return 1/0;if(x===0&&degFreedom1===2)return 1;let result=1/betaFunction(degFreedom1/2,degFreedom2/2);return result*=(degFreedom1/degFreedom2)**(degFreedom1/2),result*=x**(degFreedom1/2-1),result*=(1+degFreedom1/degFreedom2*x)**(-(degFreedom1+degFreedom2)/2),result}__name(centralFPDF,"centralFPDF");function centralFINV(probability,degFreedom1,degFreedom2){return probability<=0?0:probability>=1?1/0:degFreedom2/(degFreedom1*(1/betaINV(probability,degFreedom1/2,degFreedom2/2)-1))}__name(centralFINV,"centralFINV");function forecastLinear(x,knownYs,knownXs){const n=knownYs.length;let knownYsSum=0,knownXsSum=0;for(let i=0;i<n;i++)knownYsSum+=knownYs[i],knownXsSum+=knownXs[i];const knownYsMean=knownYsSum/n,knownXsMean=knownXsSum/n;let num=0,den=0;for(let i=0;i<n;i++)num+=(knownYs[i]-knownYsMean)*(knownXs[i]-knownXsMean),den+=(knownXs[i]-knownXsMean)**2;if(den===0)return 1/0;const b=num/den;return knownYsMean-b*knownXsMean+b*x}__name(forecastLinear,"forecastLinear");function normalCDF(x,mean,standardDev){return .5*(1+erf((x-mean)/Math.sqrt(2*standardDev*standardDev)))}__name(normalCDF,"normalCDF");function normalPDF(x,mean,standardDev){return Math.exp(-.5*Math.log(2*Math.PI)-Math.log(standardDev)-(x-mean)**2/(2*standardDev*standardDev))}__name(normalPDF,"normalPDF");function normalINV(probability,mean,standardDev){return-1.4142135623730951*standardDev*erfcINV(2*probability)+mean}__name(normalINV,"normalINV");function getTwoArrayNumberValues(array1,array2,count,array1ColumnCount,array2ColumnCount){const array1Values=[],array2Values=[];let noCalculate=!0;for(let i=0;i<count;i++){const array1RowIndex=Math.floor(i/array1ColumnCount),array1ColumnIndex=i%array1ColumnCount,array2RowIndex=Math.floor(i/array2ColumnCount),array2ColumnIndex=i%array2ColumnCount,array1Object=array1.isArray()?array1.get(array1RowIndex,array1ColumnIndex):array1,array2Object=array2.isArray()?array2.get(array2RowIndex,array2ColumnIndex):array2;if(array1Object.isError())return{isError:!0,errorObject:array1Object,array1Values,array2Values,noCalculate};if(array2Object.isError())return{isError:!0,errorObject:array2Object,array1Values,array2Values,noCalculate};if(array1Object.isNull()||array2Object.isNull()||array1Object.isBoolean()||array2Object.isBoolean())continue;const array1Value=array1Object.getValue(),array2Value=array2Object.getValue();!core.isRealNum(array1Value)||!core.isRealNum(array2Value)||(array1Values.push(+array1Value),array2Values.push(+array2Value),noCalculate=!1)}return{isError:!1,errorObject:null,array1Values,array2Values,noCalculate}}__name(getTwoArrayNumberValues,"getTwoArrayNumberValues");function checkVariantErrorIsArray(variant){let _variant=variant;if(variant.isArray()){const rowCount=variant.getRowCount(),columnCount=variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=variant.get(0,0)}return _variant.isError(),_variant}__name(checkVariantErrorIsArray,"checkVariantErrorIsArray");function checkVariantsErrorIsArray(...variants){for(let i=0;i<variants.length;i++){const variant=checkVariantErrorIsArray(variants[i]);if(variant.isError())return{isError:!0,errorObject:variant};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsArray,"checkVariantsErrorIsArray");function checkVariantsErrorIsArrayOrBoolean(...variants){for(let i=0;i<variants.length;i++){const variant=checkVariantErrorIsArray(variants[i]);if(variant.isError())return{isError:!0,errorObject:variant};if(variant.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsArrayOrBoolean,"checkVariantsErrorIsArrayOrBoolean");function checkVariantsErrorIsNullorArrayOrBoolean(...variants){for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isError())return{isError:!0,errorObject:variant};if(variant.isNull())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.NA)};if(variant=checkVariantErrorIsArray(variants[i]),variant.isError())return{isError:!0,errorObject:variant};if(variant.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsNullorArrayOrBoolean,"checkVariantsErrorIsNullorArrayOrBoolean");function checkVariantsErrorIsStringToNumber(...variants){for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return{isError:!0,errorObject:variant};variants[i]=variant}return{isError:!1,variants}}__name(checkVariantsErrorIsStringToNumber,"checkVariantsErrorIsStringToNumber");const _BetaInv=class _BetaInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(probability,alpha,beta,A,B){let _A=A!=null?A:NumberValueObject.create(0),_B=B!=null?B:NumberValueObject.create(1);_A.isNull()&&(_A=NumberValueObject.create(0)),_B.isNull()&&(_B=NumberValueObject.create(1));const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,alpha.isArray()?alpha.getRowCount():1,beta.isArray()?beta.getRowCount():1,_A.isArray()?_A.getRowCount():1,_B.isArray()?_B.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,alpha.isArray()?alpha.getColumnCount():1,beta.isArray()?beta.getColumnCount():1,_A.isArray()?_A.getColumnCount():1,_B.isArray()?_B.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),betaArray=expandArrayValueObject(maxRowLength,maxColumnLength,beta,ErrorValueObject.create(ErrorType$1.NA)),AArray=expandArrayValueObject(maxRowLength,maxColumnLength,_A,ErrorValueObject.create(ErrorType$1.NA)),BArray=expandArrayValueObject(maxRowLength,maxColumnLength,_B,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const alphaObject=alphaArray.get(rowIndex,columnIndex),betaObject=betaArray.get(rowIndex,columnIndex),AObject=AArray.get(rowIndex,columnIndex),BObject=BArray.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,alphaObject,betaObject,AObject,BObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,alphaObject,betaObject,AObject,BObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,alphaObject,betaObject,AObject,BObject);if(isError)return errorObject;const[_probabilityObject,_alphaObject,_betaObject,_AObject,_BObject]=variants,probabilityValue=+_probabilityObject.getValue(),alphaValue=+_alphaObject.getValue(),betaValue=+_betaObject.getValue(),AValue=+_AObject.getValue(),BValue=+_BObject.getValue();if(alphaValue<=0||betaValue<=0||probabilityValue<=0||probabilityValue>=1||AValue>=BValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=betaINV(probabilityValue,alphaValue,betaValue)*(BValue-AValue)+AValue;return NumberValueObject.create(result)}};__name(_BetaInv,"BetaInv");let BetaInv=_BetaInv;const _BinomDist=class _BinomDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(numberS,trials,probabilityS,cumulative){const maxRowLength=Math.max(numberS.isArray()?numberS.getRowCount():1,trials.isArray()?trials.getRowCount():1,probabilityS.isArray()?probabilityS.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(numberS.isArray()?numberS.getColumnCount():1,trials.isArray()?trials.getColumnCount():1,probabilityS.isArray()?probabilityS.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),numberSArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberS,ErrorValueObject.create(ErrorType$1.NA)),trialsArray=expandArrayValueObject(maxRowLength,maxColumnLength,trials,ErrorValueObject.create(ErrorType$1.NA)),probabilitySArray=expandArrayValueObject(maxRowLength,maxColumnLength,probabilityS,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberSArray.mapValue((numberSObject,rowIndex,columnIndex)=>{const trialsObject=trialsArray.get(rowIndex,columnIndex),probabilitySObject=probabilitySArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(numberSObject,trialsObject,probabilitySObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(numberSObject,trialsObject,probabilitySObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(numberSObject,trialsObject,probabilitySObject,cumulativeObject);if(isError)return errorObject;const[_numberSObject,_trialsObject,_probabilitySObject,_cumulativeObject]=variants,numberSValue=Math.floor(+_numberSObject.getValue()),trialsValue=Math.floor(+_trialsObject.getValue()),probabilitySValue=+_probabilitySObject.getValue(),cumulativeValue=+_cumulativeObject.getValue();if(numberSValue<0||numberSValue>trialsValue||probabilitySValue<0||probabilitySValue>1)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=binomialCDF(numberSValue,trialsValue,probabilitySValue):result=binomialPDF(numberSValue,trialsValue,probabilitySValue),NumberValueObject.create(result)}};__name(_BinomDist,"BinomDist");let BinomDist=_BinomDist;const _BinomInv=class _BinomInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(trials,probabilityS,alpha){const maxRowLength=Math.max(trials.isArray()?trials.getRowCount():1,probabilityS.isArray()?probabilityS.getRowCount():1,alpha.isArray()?alpha.getRowCount():1),maxColumnLength=Math.max(trials.isArray()?trials.getColumnCount():1,probabilityS.isArray()?probabilityS.getColumnCount():1,alpha.isArray()?alpha.getColumnCount():1),trialsArray=expandArrayValueObject(maxRowLength,maxColumnLength,trials,ErrorValueObject.create(ErrorType$1.NA)),probabilitySArray=expandArrayValueObject(maxRowLength,maxColumnLength,probabilityS,ErrorValueObject.create(ErrorType$1.NA)),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),resultArray=trialsArray.mapValue((trialsObject,rowIndex,columnIndex)=>{const probabilitySObject=probabilitySArray.get(rowIndex,columnIndex),alphaObject=alphaArray.get(rowIndex,columnIndex);return this._handleSignleObject(trialsObject,probabilitySObject,alphaObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(trialsObject,probabilitySObject,alphaObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(trialsObject,probabilitySObject,alphaObject);if(isError)return errorObject;const[_trialsObject,_probabilitySObject,_alphaObject]=variants,trialsValue=Math.floor(+_trialsObject.getValue()),probabilitySValue=+_probabilitySObject.getValue(),alphaValue=+_alphaObject.getValue();if(trialsValue<0||probabilitySValue<=0||probabilitySValue>=1||alphaValue<=0||alphaValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);let result=0;for(;result<=trialsValue&&!(binomialCDF(result,trialsValue,probabilitySValue)>=alphaValue);)result++;return NumberValueObject.create(result)}};__name(_BinomInv,"BinomInv");let BinomInv=_BinomInv;const _ChisqDistRt=class _ChisqDistRt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,degFreedom){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,degFreedom.isArray()?degFreedom.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,degFreedom.isArray()?degFreedom.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),degFreedomArray=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const degFreedomObject=degFreedomArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,degFreedomObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,degFreedomObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,degFreedomObject);if(isError)return errorObject;const[_xObject,_degFreedomObject]=variants,xValue=+_xObject.getValue(),degFreedomValue=Math.floor(+_degFreedomObject.getValue());if(xValue<0||degFreedomValue<1||degFreedomValue>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=1-chisquareCDF(xValue,degFreedomValue);return NumberValueObject.create(result)}};__name(_ChisqDistRt,"ChisqDistRt");let ChisqDistRt=_ChisqDistRt;const _ChisqInvRt=class _ChisqInvRt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(probability,degFreedom){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,degFreedom.isArray()?degFreedom.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,degFreedom.isArray()?degFreedom.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),degFreedomArray=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const degFreedomObject=degFreedomArray.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,degFreedomObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,degFreedomObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,degFreedomObject);if(isError)return errorObject;const[_probabilityObject,_degFreedomObject]=variants,probabilityValue=+_probabilityObject.getValue(),degFreedomValue=Math.floor(+_degFreedomObject.getValue());if(probabilityValue<0||probabilityValue>1||degFreedomValue<1)return ErrorValueObject.create(ErrorType$1.NUM);const result=chisquareINV(1-probabilityValue,degFreedomValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_ChisqInvRt,"ChisqInvRt");let ChisqInvRt=_ChisqInvRt;const _ChisqTest=class _ChisqTest extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(actualRange,expectedRange){const actualRangeRowCount=actualRange.isArray()?actualRange.getRowCount():1,actualRangeColumnCount=actualRange.isArray()?actualRange.getColumnCount():1,expectedRangeRowCount=expectedRange.isArray()?expectedRange.getRowCount():1,expectedRangeColumnCount=expectedRange.isArray()?expectedRange.getColumnCount():1;let _actualRange=actualRange;if(actualRange.isArray()&&actualRangeRowCount===1&&actualRangeColumnCount===1&&(_actualRange=actualRange.get(0,0)),_actualRange.isError())return _actualRange;let _expectedRange=expectedRange;if(expectedRange.isArray()&&expectedRangeRowCount===1&&expectedRangeColumnCount===1&&(_expectedRange=expectedRange.get(0,0)),_expectedRange.isError())return _expectedRange;if(actualRangeRowCount*actualRangeColumnCount===1||expectedRangeRowCount*expectedRangeColumnCount===1)return _actualRange.isNull()||_expectedRange.isNull()?ErrorValueObject.create(ErrorType$1.VALUE):ErrorValueObject.create(ErrorType$1.NA);if(actualRangeRowCount*actualRangeColumnCount!==expectedRangeRowCount*expectedRangeColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(actualRange,expectedRange,actualRangeRowCount*actualRangeColumnCount,actualRangeColumnCount,expectedRangeColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values,actualRangeRowCount,actualRangeColumnCount)}_getResult(actualRangeValues,expectedRangeValues,actualRangeRowCount,actualRangeColumnCount){let sumxmy2=0;for(let i=0;i<actualRangeValues.length;i++){if(expectedRangeValues[i]===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);sumxmy2+=(actualRangeValues[i]-expectedRangeValues[i])**2/expectedRangeValues[i]}let df=(actualRangeRowCount-1)*(actualRangeColumnCount-1);actualRangeRowCount===1?df=actualRangeColumnCount-1:actualRangeColumnCount===1&&(df=actualRangeRowCount-1);const result=1-chisquareCDF(sumxmy2,df);return NumberValueObject.create(result)}};__name(_ChisqTest,"ChisqTest");let ChisqTest=_ChisqTest;const _ConfidenceNorm=class _ConfidenceNorm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(alpha,standardDev,size){const maxRowLength=Math.max(alpha.isArray()?alpha.getRowCount():1,standardDev.isArray()?standardDev.getRowCount():1,size.isArray()?size.getRowCount():1),maxColumnLength=Math.max(alpha.isArray()?alpha.getColumnCount():1,standardDev.isArray()?standardDev.getColumnCount():1,size.isArray()?size.getColumnCount():1),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),standardDevArray=expandArrayValueObject(maxRowLength,maxColumnLength,standardDev,ErrorValueObject.create(ErrorType$1.NA)),sizeArray=expandArrayValueObject(maxRowLength,maxColumnLength,size,ErrorValueObject.create(ErrorType$1.NA)),resultArray=alphaArray.mapValue((alphaObject,rowIndex,columnIndex)=>{const standardDevObject=standardDevArray.get(rowIndex,columnIndex),sizeObject=sizeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(alphaObject,standardDevObject,sizeObject);if(isError)return errorObject;const[_alphaObject,_standardDevObject,_sizeObject]=variants,alphaValue=+_alphaObject.getValue(),standardDevValue=+_standardDevObject.getValue(),sizeValue=Math.floor(+_sizeObject.getValue());if(alphaValue<=0||alphaValue>=1||standardDevValue<=0||sizeValue<1)return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.abs(normalINV(alphaValue/2,0,1)*standardDevValue/Math.sqrt(sizeValue));return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_ConfidenceNorm,"ConfidenceNorm");let ConfidenceNorm=_ConfidenceNorm;const _CovarianceP=class _CovarianceP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const array1RowCount=array1.isArray()?array1.getRowCount():1,array1ColumnCount=array1.isArray()?array1.getColumnCount():1,array2RowCount=array2.isArray()?array2.getRowCount():1,array2ColumnCount=array2.isArray()?array2.getColumnCount():1;let _array1=array1;if(array1.isArray()&&array1RowCount===1&&array1ColumnCount===1&&(_array1=array1.get(0,0)),_array1.isError())return _array1;let _array2=array2;if(array2.isArray()&&array2RowCount===1&&array2ColumnCount===1&&(_array2=array2.get(0,0)),_array2.isError())return _array2;if((array1RowCount*array1ColumnCount===1||array2RowCount*array2ColumnCount===1)&&(_array1.isNull()||_array2.isNull()))return ErrorValueObject.create(ErrorType$1.VALUE);if(array1RowCount*array1ColumnCount!==array2RowCount*array2ColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(array1,array2,array1RowCount*array1ColumnCount,array1ColumnCount,array2ColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values)}_getResult(array1Values,array2Values){if(array1Values.length===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const n=array1Values.length;let array1Sum=0,array2Sum=0;for(let i=0;i<n;i++)array1Sum+=array1Values[i],array2Sum+=array2Values[i];const array1Mean=array1Sum/n,array2Mean=array2Sum/n;let numerator=0;for(let i=0;i<n;i++){const array1Diff=array1Values[i]-array1Mean,array2Diff=array2Values[i]-array2Mean;numerator+=array1Diff*array2Diff}return NumberValueObject.create(numerator/n)}};__name(_CovarianceP,"CovarianceP");let CovarianceP=_CovarianceP;const _ExponDist=class _ExponDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(x,lambda,cumulative){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,lambda.isArray()?lambda.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,lambda.isArray()?lambda.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),lambdaArray=expandArrayValueObject(maxRowLength,maxColumnLength,lambda,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const lambdaObject=lambdaArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,lambdaObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,lambdaObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,lambdaObject,cumulativeObject);if(isError)return errorObject;const[_xObject,_lambdaObject,_cumulativeObject]=variants,xValue=+_xObject.getValue(),lambdaValue=+_lambdaObject.getValue(),cumulativeValue=+_cumulativeObject.getValue();if(xValue<0||lambdaValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=exponentialCDF(xValue,lambdaValue):result=exponentialPDF(xValue,lambdaValue),NumberValueObject.create(result)}};__name(_ExponDist,"ExponDist");let ExponDist=_ExponDist;const _FDistRt=class _FDistRt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(x,degFreedom1,degFreedom2){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,degFreedom1.isArray()?degFreedom1.getRowCount():1,degFreedom2.isArray()?degFreedom2.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,degFreedom1.isArray()?degFreedom1.getColumnCount():1,degFreedom2.isArray()?degFreedom2.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),degFreedom1Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom1,ErrorValueObject.create(ErrorType$1.NA)),degFreedom2Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const degFreedom1Object=degFreedom1Array.get(rowIndex,columnIndex),degFreedom2Object=degFreedom2Array.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,degFreedom1Object,degFreedom2Object)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,degFreedom1Object,degFreedom2Object){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,degFreedom1Object,degFreedom2Object);if(isError)return errorObject;const[_xObject,_degFreedom1Object,_degFreedom2Object]=variants,xValue=+_xObject.getValue(),degFreedom1Value=Math.floor(+_degFreedom1Object.getValue()),degFreedom2Value=Math.floor(+_degFreedom2Object.getValue());if(xValue<0||degFreedom1Value<1||degFreedom1Value>10**10||degFreedom2Value<1||degFreedom2Value>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=1-centralFCDF(xValue,degFreedom1Value,degFreedom2Value);return NumberValueObject.create(result)}};__name(_FDistRt,"FDistRt");let FDistRt=_FDistRt;const _FInvRt=class _FInvRt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(probability,degFreedom1,degFreedom2){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,degFreedom1.isArray()?degFreedom1.getRowCount():1,degFreedom2.isArray()?degFreedom2.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,degFreedom1.isArray()?degFreedom1.getColumnCount():1,degFreedom2.isArray()?degFreedom2.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),degFreedom1Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom1,ErrorValueObject.create(ErrorType$1.NA)),degFreedom2Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const degFreedom1Object=degFreedom1Array.get(rowIndex,columnIndex),degFreedom2Object=degFreedom2Array.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,degFreedom1Object,degFreedom2Object)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,degFreedom1Object,degFreedom2Object){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,degFreedom1Object,degFreedom2Object);if(isError)return errorObject;const[_probabilityObject,_degFreedom1Object,_degFreedom2Object]=variants,probabilityValue=+_probabilityObject.getValue(),degFreedom1Value=Math.floor(+_degFreedom1Object.getValue()),degFreedom2Value=Math.floor(+_degFreedom2Object.getValue());if(probabilityValue<0||probabilityValue>1||degFreedom1Value<1||degFreedom1Value>10**10||degFreedom2Value<1||degFreedom2Value>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=centralFINV(1-probabilityValue,degFreedom1Value,degFreedom2Value);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_FInvRt,"FInvRt");let FInvRt=_FInvRt;const _FTest=class _FTest extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const{isError:isError_array1,errorObject:errorObject_array1,variance:variance_array1,ns1:ns1_array1}=this._getValues(array1);if(isError_array1)return errorObject_array1;const{isError:isError_array2,errorObject:errorObject_array2,variance:variance_array2,ns1:ns1_array2}=this._getValues(array2);if(isError_array2)return errorObject_array2;let result=2*(1-centralFCDF(variance_array1/variance_array2,ns1_array1,ns1_array2));return result>1&&(result=2-result),NumberValueObject.create(result)}_getValues(array){let variance=0,ns1=0;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;if(arrayRowCount===1&&arrayColumnCount===1){const _array=array.isArray()?array.get(0,0):array;return _array.isError()?{isError:!0,errorObject:_array,variance,ns1}:_array.isNull()?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),variance,ns1}:{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO),variance,ns1}}const values=[];let sum2=0;for(let r=0;r<arrayRowCount;r++)for(let c=0;c<arrayColumnCount;c++){const valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return{isError:!0,errorObject:valueObject,variance,ns1};if(valueObject.isNull()||valueObject.isBoolean())continue;const value=valueObject.getValue();core.isRealNum(value)&&(values.push(+value),sum2+=+value)}if(values.length<=1)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO),variance,ns1};const mean=sum2/values.length;let sumSquares=0;for(let i=0;i<values.length;i++)sumSquares+=(values[i]-mean)**2;return ns1=values.length-1,variance=sumSquares/ns1,variance===0?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO),variance,ns1}:{isError:!1,errorObject:null,variance,ns1}}};__name(_FTest,"FTest");let FTest=_FTest;const _NormDist=class _NormDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(x,mean,standardDev,cumulative){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,mean.isArray()?mean.getRowCount():1,standardDev.isArray()?standardDev.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,mean.isArray()?mean.getColumnCount():1,standardDev.isArray()?standardDev.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),meanArray=expandArrayValueObject(maxRowLength,maxColumnLength,mean,ErrorValueObject.create(ErrorType$1.NA)),standardDevArray=expandArrayValueObject(maxRowLength,maxColumnLength,standardDev,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const meanObject=meanArray.get(rowIndex,columnIndex),standardDevObject=standardDevArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,meanObject,standardDevObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,meanObject,standardDevObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,meanObject,standardDevObject,cumulativeObject);if(isError)return errorObject;const[_xObject,_meanObject,_standardDevObject,_cumulativeObject]=variants,xValue=+_xObject.getValue(),meanValue=+_meanObject.getValue(),standardDevValue=+_standardDevObject.getValue(),cumulativeValue=+_cumulativeObject.getValue();if(standardDevValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=normalCDF(xValue,meanValue,standardDevValue):result=normalPDF(xValue,meanValue,standardDevValue),NumberValueObject.create(result)}};__name(_NormDist,"NormDist");let NormDist=_NormDist;const _NormInv=class _NormInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(probability,mean,standardDev){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,mean.isArray()?mean.getRowCount():1,standardDev.isArray()?standardDev.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,mean.isArray()?mean.getColumnCount():1,standardDev.isArray()?standardDev.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),meanArray=expandArrayValueObject(maxRowLength,maxColumnLength,mean,ErrorValueObject.create(ErrorType$1.NA)),standardDevArray=expandArrayValueObject(maxRowLength,maxColumnLength,standardDev,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const meanObject=meanArray.get(rowIndex,columnIndex),standardDevObject=standardDevArray.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,meanObject,standardDevObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,meanObject,standardDevObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,meanObject,standardDevObject);if(isError)return errorObject;const[_probabilityObject,_meanObject,_standardDevObject]=variants,probabilityValue=+_probabilityObject.getValue(),meanValue=+_meanObject.getValue(),standardDevValue=+_standardDevObject.getValue();if(probabilityValue<=0||probabilityValue>=1||standardDevValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);const result=normalINV(probabilityValue,meanValue,standardDevValue);return NumberValueObject.create(result)}};__name(_NormInv,"NormInv");let NormInv=_NormInv;const _NormSInv=class _NormSInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(probability){if(probability.isArray()){const resultArray=probability.mapValue(probabilityObject=>this._handleSignleObject(probabilityObject));return probability.getRowCount()===1&&probability.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSignleObject(probability)}_handleSignleObject(probabilityObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject);if(isError)return errorObject;const[_probabilityObject]=variants,probabilityValue=+_probabilityObject.getValue();if(probabilityValue<=0||probabilityValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=normalINV(probabilityValue,0,1);return NumberValueObject.create(result)}};__name(_NormSInv,"NormSInv");let NormSInv=_NormSInv;const _StdevP=class _StdevP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.std()}};__name(_StdevP,"StdevP");let StdevP=_StdevP;const _StdevS=class _StdevS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.std(1)}};__name(_StdevS,"StdevS");let StdevS=_StdevS;const _VarP=class _VarP extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.var()}};__name(_VarP,"VarP");let VarP=_VarP;const _VarS=class _VarS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants);return flattenArray.isError()?flattenArray:flattenArray.var(1)}};__name(_VarS,"VarS");let VarS=_VarS;const _Betadist=class _Betadist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(x,alpha,beta,A,B){let _A=A!=null?A:NumberValueObject.create(0),_B=B!=null?B:NumberValueObject.create(1);_A.isNull()&&(_A=NumberValueObject.create(0)),_B.isNull()&&(_B=NumberValueObject.create(1));const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,alpha.isArray()?alpha.getRowCount():1,beta.isArray()?beta.getRowCount():1,_A.isArray()?_A.getRowCount():1,_B.isArray()?_B.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,alpha.isArray()?alpha.getColumnCount():1,beta.isArray()?beta.getColumnCount():1,_A.isArray()?_A.getColumnCount():1,_B.isArray()?_B.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),betaArray=expandArrayValueObject(maxRowLength,maxColumnLength,beta,ErrorValueObject.create(ErrorType$1.NA)),AArray=expandArrayValueObject(maxRowLength,maxColumnLength,_A,ErrorValueObject.create(ErrorType$1.NA)),BArray=expandArrayValueObject(maxRowLength,maxColumnLength,_B,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const alphaObject=alphaArray.get(rowIndex,columnIndex),betaObject=betaArray.get(rowIndex,columnIndex),AObject=AArray.get(rowIndex,columnIndex),BObject=BArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,alphaObject,betaObject,AObject,BObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,alphaObject,betaObject,AObject,BObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,alphaObject,betaObject,AObject,BObject);if(isError)return errorObject;const[_xObject,_alphaObject,_betaObject,_AObject,_BObject]=variants,xValue=+_xObject.getValue(),alphaValue=+_alphaObject.getValue(),betaValue=+_betaObject.getValue(),AValue=+_AObject.getValue(),BValue=+_BObject.getValue();if(alphaValue<=0||betaValue<=0||xValue<AValue||xValue>BValue||AValue===BValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=betaCDF((xValue-AValue)/(BValue-AValue),alphaValue,betaValue);return NumberValueObject.create(result)}};__name(_Betadist,"Betadist");let Betadist=_Betadist;var FUNCTION_NAMES_COMPATIBILITY=(FUNCTION_NAMES_COMPATIBILITY2=>(FUNCTION_NAMES_COMPATIBILITY2.BETADIST="BETADIST",FUNCTION_NAMES_COMPATIBILITY2.BETAINV="BETAINV",FUNCTION_NAMES_COMPATIBILITY2.BINOMDIST="BINOMDIST",FUNCTION_NAMES_COMPATIBILITY2.CHIDIST="CHIDIST",FUNCTION_NAMES_COMPATIBILITY2.CHIINV="CHIINV",FUNCTION_NAMES_COMPATIBILITY2.CHITEST="CHITEST",FUNCTION_NAMES_COMPATIBILITY2.CONFIDENCE="CONFIDENCE",FUNCTION_NAMES_COMPATIBILITY2.COVAR="COVAR",FUNCTION_NAMES_COMPATIBILITY2.CRITBINOM="CRITBINOM",FUNCTION_NAMES_COMPATIBILITY2.EXPONDIST="EXPONDIST",FUNCTION_NAMES_COMPATIBILITY2.FDIST="FDIST",FUNCTION_NAMES_COMPATIBILITY2.FINV="FINV",FUNCTION_NAMES_COMPATIBILITY2.FTEST="FTEST",FUNCTION_NAMES_COMPATIBILITY2.GAMMADIST="GAMMADIST",FUNCTION_NAMES_COMPATIBILITY2.GAMMAINV="GAMMAINV",FUNCTION_NAMES_COMPATIBILITY2.HYPGEOMDIST="HYPGEOMDIST",FUNCTION_NAMES_COMPATIBILITY2.LOGINV="LOGINV",FUNCTION_NAMES_COMPATIBILITY2.LOGNORMDIST="LOGNORMDIST",FUNCTION_NAMES_COMPATIBILITY2.MODE="MODE",FUNCTION_NAMES_COMPATIBILITY2.NEGBINOMDIST="NEGBINOMDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMDIST="NORMDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMINV="NORMINV",FUNCTION_NAMES_COMPATIBILITY2.NORMSDIST="NORMSDIST",FUNCTION_NAMES_COMPATIBILITY2.NORMSINV="NORMSINV",FUNCTION_NAMES_COMPATIBILITY2.PERCENTILE="PERCENTILE",FUNCTION_NAMES_COMPATIBILITY2.PERCENTRANK="PERCENTRANK",FUNCTION_NAMES_COMPATIBILITY2.POISSON="POISSON",FUNCTION_NAMES_COMPATIBILITY2.QUARTILE="QUARTILE",FUNCTION_NAMES_COMPATIBILITY2.RANK="RANK",FUNCTION_NAMES_COMPATIBILITY2.STDEV="STDEV",FUNCTION_NAMES_COMPATIBILITY2.STDEVP="STDEVP",FUNCTION_NAMES_COMPATIBILITY2.TDIST="TDIST",FUNCTION_NAMES_COMPATIBILITY2.TINV="TINV",FUNCTION_NAMES_COMPATIBILITY2.TTEST="TTEST",FUNCTION_NAMES_COMPATIBILITY2.VAR="VAR",FUNCTION_NAMES_COMPATIBILITY2.VARP="VARP",FUNCTION_NAMES_COMPATIBILITY2.WEIBULL="WEIBULL",FUNCTION_NAMES_COMPATIBILITY2.ZTEST="ZTEST",FUNCTION_NAMES_COMPATIBILITY2))(FUNCTION_NAMES_COMPATIBILITY||{});const _Normsdist=class _Normsdist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(z){if(z.isArray()){const resultArray=z.mapValue(zObject=>this._handleSignleObject(zObject));return z.getRowCount()===1&&z.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSignleObject(z)}_handleSignleObject(zObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(zObject);if(isError)return errorObject;const[_zObject]=variants,zValue=+_zObject.getValue(),result=normalCDF(zValue,0,1);return NumberValueObject.create(result)}};__name(_Normsdist,"Normsdist");let Normsdist=_Normsdist;const _Rank=class _Rank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(number,ref,order){let _number=number;_number.isReferenceObject()&&(_number=_number.toArrayValueObject());const{refHasError,refErrorObject,refNumbers}=this._checkRefReferenceObject(ref);let _order=order!=null?order:NumberValueObject.create(0);_order.isReferenceObject()&&(_order=_order.toArrayValueObject());const maxRowLength=Math.max(_number.isArray()?_number.getRowCount():1,_order.isArray()?_order.getRowCount():1),maxColumnLength=Math.max(_number.isArray()?_number.getColumnCount():1,_order.isArray()?_order.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,_number,ErrorValueObject.create(ErrorType$1.NA)),orderArray=expandArrayValueObject(maxRowLength,maxColumnLength,_order,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const orderObject=orderArray.get(rowIndex,columnIndex);if(!number.isReferenceObject()&&number.isNull())return ErrorValueObject.create(ErrorType$1.NA);if(refHasError)return refErrorObject;if(orderObject.isError())return orderObject;const numberValue=+numberObject.getValue(),orderValue=+orderObject.getValue();if(Number.isNaN(numberValue)||Number.isNaN(orderValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=refNumbers.sort((a,b)=>orderValue?a-b:b-a).indexOf(numberValue);return result===-1?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(result+1)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_checkRefReferenceObject(ref){let refHasError=!1,refErrorObject=ErrorValueObject.create(ErrorType$1.NA);const refNumbers=[];return ref.isReferenceObject()?(ref.toArrayValueObject().iterator(refObject=>{const _refObject=refObject;if(_refObject.isError())return refHasError=!0,refErrorObject=_refObject,!1;if(_refObject.isNull()||_refObject.isBoolean())return!0;const refValue=+_refObject.getValue();if(Number.isNaN(refValue))return!0;refNumbers.push(refValue)}),{refHasError,refErrorObject,refNumbers}):{refHasError:!0,refErrorObject,refNumbers}}};__name(_Rank,"Rank");let Rank=_Rank;const functionCompatibility=[[Betadist,FUNCTION_NAMES_COMPATIBILITY.BETADIST],[BetaInv,FUNCTION_NAMES_COMPATIBILITY.BETAINV],[BinomDist,FUNCTION_NAMES_COMPATIBILITY.BINOMDIST],[ChisqDistRt,FUNCTION_NAMES_COMPATIBILITY.CHIDIST],[ChisqInvRt,FUNCTION_NAMES_COMPATIBILITY.CHIINV],[ChisqTest,FUNCTION_NAMES_COMPATIBILITY.CHITEST],[ConfidenceNorm,FUNCTION_NAMES_COMPATIBILITY.CONFIDENCE],[CovarianceP,FUNCTION_NAMES_COMPATIBILITY.COVAR],[BinomInv,FUNCTION_NAMES_COMPATIBILITY.CRITBINOM],[ExponDist,FUNCTION_NAMES_COMPATIBILITY.EXPONDIST],[FDistRt,FUNCTION_NAMES_COMPATIBILITY.FDIST],[FInvRt,FUNCTION_NAMES_COMPATIBILITY.FINV],[FTest,FUNCTION_NAMES_COMPATIBILITY.FTEST],[NormDist,FUNCTION_NAMES_COMPATIBILITY.NORMDIST],[NormInv,FUNCTION_NAMES_COMPATIBILITY.NORMINV],[Normsdist,FUNCTION_NAMES_COMPATIBILITY.NORMSDIST],[NormSInv,FUNCTION_NAMES_COMPATIBILITY.NORMSINV],[Rank,FUNCTION_NAMES_COMPATIBILITY.RANK],[StdevS,FUNCTION_NAMES_COMPATIBILITY.STDEV],[StdevP,FUNCTION_NAMES_COMPATIBILITY.STDEVP],[VarS,FUNCTION_NAMES_COMPATIBILITY.VAR],[VarP,FUNCTION_NAMES_COMPATIBILITY.VARP]],functionCube=[];var FUNCTION_NAMES_CUBE=(FUNCTION_NAMES_CUBE2=>(FUNCTION_NAMES_CUBE2.CUBEKPIMEMBER="CUBEKPIMEMBER",FUNCTION_NAMES_CUBE2.CUBEMEMBER="CUBEMEMBER",FUNCTION_NAMES_CUBE2.CUBEMEMBERPROPERTY="CUBEMEMBERPROPERTY",FUNCTION_NAMES_CUBE2.CUBERANKEDMEMBER="CUBERANKEDMEMBER",FUNCTION_NAMES_CUBE2.CUBESET="CUBESET",FUNCTION_NAMES_CUBE2.CUBESETCOUNT="CUBESETCOUNT",FUNCTION_NAMES_CUBE2.CUBEVALUE="CUBEVALUE",FUNCTION_NAMES_CUBE2))(FUNCTION_NAMES_CUBE||{});const _CustomFunction=class _CustomFunction extends BaseFunction{isCustom(){return!0}};__name(_CustomFunction,"CustomFunction");let CustomFunction=_CustomFunction;const functionDatabase=[];var FUNCTION_NAMES_DATABASE=(FUNCTION_NAMES_DATABASE2=>(FUNCTION_NAMES_DATABASE2.DAVERAGE="DAVERAGE",FUNCTION_NAMES_DATABASE2.DCOUNT="DCOUNT",FUNCTION_NAMES_DATABASE2.DCOUNTA="DCOUNTA",FUNCTION_NAMES_DATABASE2.DGET="DGET",FUNCTION_NAMES_DATABASE2.DMAX="DMAX",FUNCTION_NAMES_DATABASE2.DMIN="DMIN",FUNCTION_NAMES_DATABASE2.DPRODUCT="DPRODUCT",FUNCTION_NAMES_DATABASE2.DSTDEV="DSTDEV",FUNCTION_NAMES_DATABASE2.DSTDEVP="DSTDEVP",FUNCTION_NAMES_DATABASE2.DSUM="DSUM",FUNCTION_NAMES_DATABASE2.DVAR="DVAR",FUNCTION_NAMES_DATABASE2.DVARP="DVARP",FUNCTION_NAMES_DATABASE2))(FUNCTION_NAMES_DATABASE||{}),FUNCTION_NAMES_DATE=(FUNCTION_NAMES_DATE2=>(FUNCTION_NAMES_DATE2.DATE="DATE",FUNCTION_NAMES_DATE2.DATEDIF="DATEDIF",FUNCTION_NAMES_DATE2.DATEVALUE="DATEVALUE",FUNCTION_NAMES_DATE2.DAY="DAY",FUNCTION_NAMES_DATE2.DAYS="DAYS",FUNCTION_NAMES_DATE2.DAYS360="DAYS360",FUNCTION_NAMES_DATE2.EDATE="EDATE",FUNCTION_NAMES_DATE2.EOMONTH="EOMONTH",FUNCTION_NAMES_DATE2.HOUR="HOUR",FUNCTION_NAMES_DATE2.ISOWEEKNUM="ISOWEEKNUM",FUNCTION_NAMES_DATE2.MINUTE="MINUTE",FUNCTION_NAMES_DATE2.MONTH="MONTH",FUNCTION_NAMES_DATE2.NETWORKDAYS="NETWORKDAYS",FUNCTION_NAMES_DATE2.NETWORKDAYS_INTL="NETWORKDAYS.INTL",FUNCTION_NAMES_DATE2.NOW="NOW",FUNCTION_NAMES_DATE2.SECOND="SECOND",FUNCTION_NAMES_DATE2.TIME="TIME",FUNCTION_NAMES_DATE2.TIMEVALUE="TIMEVALUE",FUNCTION_NAMES_DATE2.TODAY="TODAY",FUNCTION_NAMES_DATE2.WEEKDAY="WEEKDAY",FUNCTION_NAMES_DATE2.WEEKNUM="WEEKNUM",FUNCTION_NAMES_DATE2.WORKDAY="WORKDAY",FUNCTION_NAMES_DATE2.WORKDAY_INTL="WORKDAY.INTL",FUNCTION_NAMES_DATE2.YEAR="YEAR",FUNCTION_NAMES_DATE2.YEARFRAC="YEARFRAC",FUNCTION_NAMES_DATE2))(FUNCTION_NAMES_DATE||{});const DEFAULT_DATE_FORMAT="yyyy/mm/dd;@",DEFAULT_NOW_FORMAT="yyyy/mm/dd hh:mm",DEFAULT_TIME_FORMAT="h:mm A/P";function excelDateSerial(date){const baseDate=new Date(Date.UTC(1900,0,1)),leapDayDate=new Date(Date.UTC(1900,1,28)),dateInUTC=Date.UTC(date.getFullYear(),date.getMonth(),date.getDate());let dayDifference=(dateInUTC-baseDate.getTime())/(1e3*3600*24);return dateInUTC>leapDayDate.getTime()&&(dayDifference+=1),Math.floor(dayDifference)+1}__name(excelDateSerial,"excelDateSerial");function excelDateTimeSerial(date){const baseDate=new Date(Date.UTC(1900,0,1,0,0,0)),leapDayDate=new Date(Date.UTC(1900,1,28,0,0,0));let dayDifference=(date.getTime()-baseDate.getTime())/(1e3*3600*24);return date>leapDayDate&&(dayDifference+=1),dayDifference+1}__name(excelDateTimeSerial,"excelDateTimeSerial");function excelSerialToDate(serial){const baseDate=new Date(Date.UTC(1900,0,1)),leapDayDate=new Date(Date.UTC(1900,1,28));let dayDifference=Math.floor(serial)-1;return dayDifference>(leapDayDate.getTime()-baseDate.getTime())/(1e3*3600*24)&&(dayDifference-=1),new Date(baseDate.getTime()+dayDifference*(1e3*3600*24))}__name(excelSerialToDate,"excelSerialToDate");function excelSerialToDateTime(serial){const baseDate=new Date(Date.UTC(1900,0,1,0,0,0)),leapDayDate=new Date(Date.UTC(1900,1,28,0,0,0));let dayDifference=serial-1;return dayDifference>(leapDayDate.getTime()-baseDate.getTime())/(1e3*3600*24)&&(dayDifference-=1),dayDifference<0&&(dayDifference=serial),new Date(baseDate.getTime()+dayDifference*(1e3*3600*24))}__name(excelSerialToDateTime,"excelSerialToDateTime");function isValidDateStr(dateStr){if(!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(dateStr))return!1;const normalizedDateStr=dateStr.replace(/-/g,"/").replace(/T.+/,""),dateWithTime=new Date(`${normalizedDateStr}`);if(Number.isNaN(dateWithTime.getTime()))return!1;const year=dateWithTime.getFullYear(),month=(dateWithTime.getMonth()+1).toString().padStart(2,"0"),day=dateWithTime.getDate().toString().padStart(2,"0"),reconstructedDateStr=`${year}-${month}-${day}`;return dateStr.replace(/\//g,"-").split("-").map(v=>v.padStart(2,"0")).join("-")===reconstructedDateStr}__name(isValidDateStr,"isValidDateStr");function parseFormattedDate(value){return core.numfmt.parseDate(value)}__name(parseFormattedDate,"parseFormattedDate");function parseFormattedValue(value){return core.numfmt.parseValue(value)}__name(parseFormattedValue,"parseFormattedValue");function parseFormattedTime(value){return core.numfmt.parseTime(value)}__name(parseFormattedTime,"parseFormattedTime");function isDate(format){return core.numfmt.isDate(format)}__name(isDate,"isDate");const weekendNumberMap={1:[6,0],2:[0,1],3:[1,2],4:[2,3],5:[3,4],6:[4,5],7:[5,6],11:[0],12:[1],13:[2],14:[3],15:[4],16:[5],17:[6]};function isValidWeekend(weekend){return!!(typeof weekend=="string"&&/^[0|1]{7}/.test(weekend)||weekendNumberMap[Number(weekend)])}__name(isValidWeekend,"isValidWeekend");function getWeekendArray(weekend){if(!isValidWeekend(weekend))return[];if(typeof weekend=="string"&&/^[0|1]{7}/.test(weekend)){const result=[];for(let i=1;i<=weekend.length;i++)`${weekend[i-1]}`=="1"&&(i===weekend.length?result.push(0):result.push(i));return result}return weekendNumberMap[Number(weekend)]||[]}__name(getWeekendArray,"getWeekendArray");function countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekend=1,holidays){const weekendArray=getWeekendArray(weekend),start=Math.floor(startDateSerialNumber),end=Math.floor(endDateSerialNumber),startSerialNumber=end>start?start:end;let workingDays=0;const daysDiff=Math.abs(Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber))+1;for(let i=0;i<daysDiff;i++){const currentDateSerialNumber=startSerialNumber+i;if(holidays&&holidays.length>0&&holidays.some(item=>Math.floor(item)===currentDateSerialNumber))continue;const weekDay=getWeekDayByDateSerialNumber(currentDateSerialNumber);weekendArray.includes(weekDay)||workingDays++}return end>start?workingDays:-workingDays}__name(countWorkingDays,"countWorkingDays");function getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekend=1,holidays){const weekendArray=getWeekendArray(weekend),_startDateSerialNumber=Math.floor(startDateSerialNumber);let targetDateSerialNumber=_startDateSerialNumber,days=Math.abs(workingDays);for(let i=1;i<=days;i++){const currentDateSerialNumber=workingDays<0?_startDateSerialNumber-i:_startDateSerialNumber+i;if(currentDateSerialNumber<0)return ErrorValueObject.create(ErrorType$1.NUM);if(holidays&&holidays.length>0&&holidays.some(item=>Math.floor(item)===currentDateSerialNumber)){days++;continue}const weekDay=getWeekDayByDateSerialNumber(currentDateSerialNumber);if(weekendArray.includes(weekDay)){days++;continue}targetDateSerialNumber=currentDateSerialNumber}return targetDateSerialNumber}__name(getDateSerialNumberByWorkingDays,"getDateSerialNumberByWorkingDays");function getDateSerialNumberByObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){let dateSerial;if(parseFormattedDate(`${dateValue}`))dateSerial=parseFormattedDate(`${dateValue}`).v;else if(parseFormattedTime(`${dateValue}`))dateSerial=parseFormattedTime(`${dateValue}`).v;else if(core.isRealNum(dateValue))dateSerial=+dateValue;else return ErrorValueObject.create(ErrorType$1.VALUE);return dateSerial instanceof Date&&(dateSerial=excelDateTimeSerial(dateSerial)),+dateSerial<0||+dateSerial>2958465?ErrorValueObject.create(ErrorType$1.NUM):+dateSerial}else{const dateSerial=+serialNumberObject.getValue();return dateSerial<0||dateSerial>2958465?ErrorValueObject.create(ErrorType$1.NUM):dateSerial}}__name(getDateSerialNumberByObject,"getDateSerialNumberByObject");function getWeekDayByDateSerialNumber(dateSerialNumber){const isDate19000229=Math.floor(dateSerialNumber)===60;let date=excelSerialToDate(dateSerialNumber);const dateTime=new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate())).getTime(),leapDayDateTime=new Date(Date.UTC(1900,1,28)).getTime();return!isDate19000229&&dateTime<=leapDayDateTime&&(date=new Date(dateTime-24*3600*1e3)),new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate())).getUTCDay()}__name(getWeekDayByDateSerialNumber,"getWeekDayByDateSerialNumber");function getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis){switch(basis){case 0:return getDaysByNASD(startDateSerialNumber,endDateSerialNumber);case 1:return getDaysByActual(startDateSerialNumber,endDateSerialNumber);case 2:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:360};case 3:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:365};case 4:return getDaysByEuropean(startDateSerialNumber,endDateSerialNumber);default:return{days:Math.abs(endDateSerialNumber-startDateSerialNumber),yearDays:365}}}__name(getTwoDateDaysByBasis,"getTwoDateDaysByBasis");function getDaysByNASD(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth()+1:1;let startDay=startDateSerialNumber>0?startDateDate.getUTCDate():0,endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,endMonth=endDateSerialNumber>0?endDateDate.getUTCMonth()+1:1,endDay=endDateSerialNumber>0?endDateDate.getUTCDate():0;startMonth===2?excelSerialToDate(startDateSerialNumber+1).getUTCMonth()+1===3&&(startDay=30):startDay===31&&(startDay=30),endDay===31&&(startDay<30?(endDateDate=excelSerialToDate(endDateSerialNumber+1),endYear=endDateDate.getUTCFullYear(),endMonth=endDateDate.getUTCMonth()+1,endDay=endDateDate.getUTCDate()):endDay=30);const daysInYears=(endYear-startYear)*360,daysInStartMonth=endDateSerialNumber>=startDateSerialNumber?30-startDay:-startDay,daysInEndMonth=endDateSerialNumber>=startDateSerialNumber?endDay:endDay-30,daysInMidMonths=(endDateSerialNumber>=startDateSerialNumber?endMonth-startMonth-1:endMonth-startMonth+1)*30;return{days:Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths),yearDays:360}}__name(getDaysByNASD,"getDaysByNASD");function getDaysByActual(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,totalDays=Math.abs(endDateSerialNumber-startDateSerialNumber),totalYear=Math.abs(endYear-startYear)+1;let startYearFirstDaySerialNumber,endYearLastDaySerialNumber;if(endYear<startYear){const startYearFirstDay=new Date(Date.UTC(endYear,0,1)),endYearLastDay=new Date(Date.UTC(startYear,11,31));startYearFirstDaySerialNumber=excelDateSerial(startYearFirstDay),endYearLastDaySerialNumber=excelDateSerial(endYearLastDay),endYear===1900&&(startYearFirstDaySerialNumber+=1)}else{const startYearFirstDay=new Date(Date.UTC(startYear,0,1)),endYearLastDay=new Date(Date.UTC(endYear,11,31));startYearFirstDaySerialNumber=excelDateSerial(startYearFirstDay),endYearLastDaySerialNumber=excelDateSerial(endYearLastDay),startYear===1900&&(startYearFirstDaySerialNumber+=1)}return{days:totalDays,yearDays:(endYearLastDaySerialNumber-startYearFirstDaySerialNumber+1)/totalYear}}__name(getDaysByActual,"getDaysByActual");function getDaysByEuropean(startDateSerialNumber,endDateSerialNumber){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth()+1:1;let startDay=startDateSerialNumber>0?startDateDate.getUTCDate():0;const endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateSerialNumber>0?endDateDate.getUTCFullYear():1900,endMonth=endDateSerialNumber>0?endDateDate.getUTCMonth()+1:1;let endDay=endDateSerialNumber>0?endDateDate.getUTCDate():0;startDay===31&&(startDay=30),endDay===31&&(endDay=30);const daysInYears=(endYear-startYear)*360,daysInStartMonth=endDateSerialNumber>=startDateSerialNumber?30-startDay:-startDay,daysInEndMonth=endDateSerialNumber>=startDateSerialNumber?endDay:endDay-30,daysInMidMonths=(endDateSerialNumber>=startDateSerialNumber?endMonth-startMonth-1:endMonth-startMonth+1)*30;return{days:Math.abs(daysInYears+daysInStartMonth+daysInEndMonth+daysInMidMonths),yearDays:360}}__name(getDaysByEuropean,"getDaysByEuropean");function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}__name(isLeapYear,"isLeapYear");function isLeapYear1900(year){return year%4===0&&year%100!==0||year%400===0||year===1900}__name(isLeapYear1900,"isLeapYear1900");const daysInMonthL=[31,29,31,30,31,30,31,31,30,31,30,31],daysInMonthR=[31,28,31,30,31,30,31,31,30,31,30,31];function getDaysInMonth(year,month){return isLeapYear(year)?daysInMonthL[month]:daysInMonthR[month]}__name(getDaysInMonth,"getDaysInMonth");function getDaysInYear(year){return isLeapYear1900(year)?366:365}__name(getDaysInYear,"getDaysInYear");function getNormalYearDaysByBasis(dateSerialNumber,basis){switch(basis){case 0:case 2:case 4:return 360;case 1:return getDaysInYear(excelSerialToDate(dateSerialNumber).getUTCFullYear());case 3:return 365;default:return-1}}__name(getNormalYearDaysByBasis,"getNormalYearDaysByBasis");function lastDayOfMonth(year,month,day){return getDaysInMonth(year,month)===day}__name(lastDayOfMonth,"lastDayOfMonth");function dateAddMonths(date,months){let year=date.getUTCFullYear(),month=date.getUTCMonth();const day=date.getUTCDate();return lastDayOfMonth(year,month,day)?(date.setUTCDate(1),date.setUTCMonth(date.getUTCMonth()+months),year=date.getUTCFullYear(),month=date.getUTCMonth(),date.setUTCDate(getDaysInMonth(year,month))):date.setUTCMonth(date.getUTCMonth()+months),date}__name(dateAddMonths,"dateAddMonths");const _DateFunction=class _DateFunction extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(year,month,day){if(year.isError())return year;if(month.isError())return month;if(day.isError())return day;const maxRowLength=Math.max(year.isArray()?year.getRowCount():1,month.isArray()?month.getRowCount():1,day.isArray()?day.getRowCount():1),maxColumnLength=Math.max(year.isArray()?year.getColumnCount():1,month.isArray()?month.getColumnCount():1,day.isArray()?day.getColumnCount():1),yearArray=expandArrayValueObject(maxRowLength,maxColumnLength,year),monthArray=expandArrayValueObject(maxRowLength,maxColumnLength,month),dayArray=expandArrayValueObject(maxRowLength,maxColumnLength,day);return yearArray.map((yearValueObject,rowIndex,columnIndex)=>{const monthValueObject=monthArray.get(rowIndex,columnIndex)||NullValueObject.create(),dayValueObject=dayArray.get(rowIndex,columnIndex)||NullValueObject.create();if(yearValueObject.isError())return yearValueObject;if(monthValueObject.isError())return monthValueObject;if(dayValueObject.isError())return dayValueObject;if(yearValueObject.isString()||monthValueObject.isString()||dayValueObject.isString())return ErrorValueObject.create(ErrorType$1.VALUE);let yearValue=+yearValueObject.getValue();const monthValue=Math.floor(+monthValueObject.getValue()),dayValue=+dayValueObject.getValue();if(yearValue<0||yearValue>9999)return ErrorValueObject.create(ErrorType$1.NUM);yearValue>=0&&yearValue<1899&&(yearValue+=1900);const date=new Date(yearValue,monthValue-1,dayValue),currentSerial=excelDateSerial(date);return currentSerial<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)})}};__name(_DateFunction,"DateFunction");let DateFunction=_DateFunction;const _Datedif=class _Datedif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(startDate,endDate,unit){let _startDate=startDate,_endDate=endDate,_unit=unit;if(_startDate.isArray()&&(_startDate=_startDate.get(0,0)),_endDate.isArray()&&(_endDate=_endDate.get(0,0)),_unit.isArray()&&(_unit=_unit.get(0,0)),_startDate.isError())return _startDate;if(_endDate.isError())return _endDate;if(_unit.isError())return _unit;const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);return typeof endDateSerialNumber!="number"?endDateSerialNumber:endDateSerialNumber<startDateSerialNumber||!_unit.isString()?ErrorValueObject.create(ErrorType$1.NUM):this._getResultByUnit(startDateSerialNumber,endDateSerialNumber,_unit)}_getResultByUnit(startDateSerialNumber,endDateSerialNumber,unit){const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateDate.getUTCFullYear(),startMonth=startDateDate.getUTCMonth()+1,startDay=startDateDate.getUTCDate(),endDateDate=excelSerialToDate(endDateSerialNumber),endYear=endDateDate.getUTCFullYear(),endMonth=endDateDate.getUTCMonth()+1,endDay=endDateDate.getUTCDate(),unitValue=`${unit.getValue()}`.toLocaleUpperCase();let diff=0,newDate;switch(unitValue){case"Y":diff=endYear-startYear,(endMonth<startMonth||endMonth===startMonth&&endDay<startDay)&&(diff-=1);break;case"M":diff=(endYear-startYear)*12+endMonth-startMonth,endDay<startDay&&(diff-=1);break;case"D":diff=Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber);break;case"MD":diff=endDay-startDay,endDay<startDay&&(newDate=new Date(Date.UTC(endYear,endMonth-1,0)),diff+=getDaysInMonth(newDate.getUTCFullYear(),newDate.getUTCMonth()));break;case"YM":diff=endMonth-startMonth,(endMonth<startMonth||endMonth===startMonth&&endDay<startDay)&&(diff+=12),endDay<startDay&&(diff-=1);break;case"YD":newDate=new Date(Date.UTC(startYear,endMonth-1,endDay)),(endMonth<startMonth||endMonth===startMonth&&endDay<startDay)&&(newDate=new Date(Date.UTC(startYear+1,endMonth-1,endDay))),diff=Math.floor(excelDateSerial(newDate))-Math.floor(startDateSerialNumber);break;default:return ErrorValueObject.create(ErrorType$1.NUM)}return NumberValueObject.create(diff)}};__name(_Datedif,"Datedif");let Datedif=_Datedif;const _Datevalue=class _Datevalue extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(dateText){return dateText.isError()?dateText:dateText.isArray()?dateText.map(dateTextObject=>this._handleSingleObject(dateTextObject)):this._handleSingleObject(dateText)}_handleSingleObject(dateTextObject){if(dateTextObject.isString()){const value=`${dateTextObject.getValue()}`,parsedDate=parseFormattedValue(value);if(parsedDate){let{v,z}=parsedDate;if(z&&isDate(z))return v instanceof Date&&(v=excelDateTimeSerial(v)),NumberValueObject.create(Math.trunc(+v))}}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Datevalue,"Datevalue");let Datevalue=_Datevalue;const _Day=class _Day extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+serialNumberObject.getValue();if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(0);date=excelSerialToDate(dateSerial)}const month=date.getDate();return NumberValueObject.create(month)}};__name(_Day,"Day");let Day=_Day;const _Days=class _Days extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(endDate,startDate){if(endDate.isError())return endDate;if(startDate.isError())return startDate;const maxRowLength=Math.max(endDate.isArray()?endDate.getRowCount():1,startDate.isArray()?startDate.getRowCount():1),maxColumnLength=Math.max(endDate.isArray()?endDate.getColumnCount():1,startDate.isArray()?startDate.getColumnCount():1),endDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,endDate),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate),resultArray=endDateArray.map((endDateObject,rowIndex,columnIndex)=>{const startDateObject=startDateArray.get(rowIndex,columnIndex);if(endDateObject.isError())return endDateObject;if(startDateObject.isError())return startDateObject;const endDateSerialNumber=getDateSerialNumberByObject(endDateObject);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;const startDateSerialNumber=getDateSerialNumberByObject(startDateObject);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const result=Math.floor(endDateSerialNumber)-Math.floor(startDateSerialNumber);return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Days,"Days");let Days=_Days;const _Days360=class _Days360 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,method){const _method=method!=null?method:BooleanValueObject.create(!1);if(startDate.isError())return startDate;if(endDate.isError())return endDate;if(_method.isError())return _method;const maxRowLength=Math.max(startDate.isArray()?startDate.getRowCount():1,endDate.isArray()?endDate.getRowCount():1,_method.isArray()?_method.getRowCount():1),maxColumnLength=Math.max(startDate.isArray()?startDate.getColumnCount():1,endDate.isArray()?endDate.getColumnCount():1,_method.isArray()?_method.getColumnCount():1),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate,ErrorValueObject.create(ErrorType$1.NA)),endDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,endDate,ErrorValueObject.create(ErrorType$1.NA)),methodArray=expandArrayValueObject(maxRowLength,maxColumnLength,_method,ErrorValueObject.create(ErrorType$1.NA)),resultArray=startDateArray.map((startDateObject,rowIndex,columnIndex)=>{const endDateObject=endDateArray.get(rowIndex,columnIndex);let methodObject=methodArray.get(rowIndex,columnIndex);if(startDateObject.isError())return startDateObject;const startDateSerialNumber=getDateSerialNumberByObject(startDateObject);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;if(endDateObject.isError())return endDateObject;const endDateSerialNumber=getDateSerialNumberByObject(endDateObject);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(methodObject.isString()&&(methodObject=methodObject.convertToNumberObjectValue()),methodObject.isError())return methodObject;const methodValue=+methodObject.getValue(),{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,methodValue?4:0),result=endDateSerialNumber>=startDateSerialNumber?days:-days;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Days360,"Days360");let Days360=_Days360;const _Edate=class _Edate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(startDate,months){if(startDate.isError())return startDate;if(months.isError())return months;const maxRowLength=Math.max(startDate.isArray()?startDate.getRowCount():1,months.isArray()?months.getRowCount():1),maxColumnLength=Math.max(startDate.isArray()?startDate.getColumnCount():1,months.isArray()?months.getColumnCount():1),startDateArray=expandArrayValueObject(maxRowLength,maxColumnLength,startDate),monthsArray=expandArrayValueObject(maxRowLength,maxColumnLength,months);return startDateArray.map((startDateObject,rowIndex,columnIndex)=>{const monthsValueObject=monthsArray.get(rowIndex,columnIndex)||NullValueObject.create();if(startDateObject.isError())return startDateObject;if(monthsValueObject.isError())return monthsValueObject;if(startDateObject.isString()||startDateObject.isBoolean()||monthsValueObject.isString()||monthsValueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerial=+startDateObject.getValue();if(startDateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);const monthsValue=Math.floor(+monthsValueObject.getValue()),_startDate=excelSerialToDate(startDateSerial),year=_startDate.getUTCFullYear(),month=_startDate.getUTCMonth()+monthsValue,day=_startDate.getUTCDate(),resultDate=new Date(Date.UTC(year,month,day)),currentSerial=excelDateSerial(resultDate);return NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)})}};__name(_Edate,"Edate");let Edate=_Edate;const _Eomonth=class _Eomonth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(startDate,months){let _startDate=startDate,_months=months;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_months.isArray()){const rowCount=_months.getRowCount(),columnCount=_months.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_months=_months.get(0,0)}if(_startDate.isError())return _startDate;if(_months.isError())return _months;const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;if(_months.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateDate=excelSerialToDate(startDateSerialNumber),startYear=startDateSerialNumber>0?startDateDate.getUTCFullYear():1900,startMonth=startDateSerialNumber>0?startDateDate.getUTCMonth():0,monthsValue=Math.floor(+_months.getValue());if(Number.isNaN(monthsValue))return ErrorValueObject.create(ErrorType$1.VALUE);const targetDate=new Date(Date.UTC(startYear,startMonth+monthsValue+1,0)),result=excelDateSerial(targetDate);return NumberValueObject.create(result)}};__name(_Eomonth,"Eomonth");let Eomonth=_Eomonth;const _Hour=class _Hour extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const hours=excelSerialToDateTime(dateSerialNumber).getUTCHours();return NumberValueObject.create(hours)}};__name(_Hour,"Hour");let Hour=_Hour;const _Isoweeknum=class _Isoweeknum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(date){return date.isError()?date:date.isArray()?date.map(dateObject=>dateObject.isError()?dateObject:this._handleSingleObject(dateObject)):this._handleSingleObject(date)}_handleSingleObject(date){const dateSerialNumber=getDateSerialNumberByObject(date);if(typeof dateSerialNumber!="number")return dateSerialNumber;const currentDate=excelSerialToDate(dateSerialNumber),currentYear=dateSerialNumber>0?currentDate.getUTCFullYear():1900;let yearStart=new Date(Date.UTC(currentYear,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearWeekStartSerialNumber;yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay),dateSerialNumber<yearWeekStartSerialNumber&&(yearStart=new Date(Date.UTC(currentYear-1,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay));const result=Math.ceil((dateSerialNumber-yearWeekStartSerialNumber+1)/7);return NumberValueObject.create(result)}};__name(_Isoweeknum,"Isoweeknum");let Isoweeknum=_Isoweeknum;const _Minute=class _Minute extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const minutes=excelSerialToDateTime(dateSerialNumber).getUTCMinutes();return NumberValueObject.create(minutes)}};__name(_Minute,"Minute");let Minute=_Minute;const _Month=class _Month extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+serialNumberObject.getValue();if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(1);date=excelSerialToDate(dateSerial)}const month=date.getUTCMonth()+1;return NumberValueObject.create(month)}};__name(_Month,"Month");let Month=_Month;const _Networkdays=class _Networkdays extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,holidays){let _startDate=startDate,_endDate=endDate;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_endDate.isArray()){const rowCount=_endDate.getRowCount(),columnCount=_endDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_endDate=_endDate.get(0,0)}if(_endDate.isError())return _endDate;if(holidays!=null&&holidays.isError())return holidays;if(_startDate.isBoolean()||_endDate.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(holidays)return this._getResultByHolidays(startDateSerialNumber,endDateSerialNumber,holidays);const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber);return NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,endDateSerialNumber,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,1,holidaysValueArray);return NumberValueObject.create(result)}};__name(_Networkdays,"Networkdays");let Networkdays=_Networkdays;const _NetworkdaysIntl=class _NetworkdaysIntl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(startDate,endDate,weekend,holidays){return startDate.isError()?startDate:endDate.isError()?endDate:weekend!=null&&weekend.isError()?weekend:holidays!=null&&holidays.isError()?holidays:weekend!=null&&weekend.isArray()?weekend.map(weekendItem=>this._handleSingleObject(startDate,endDate,weekendItem,holidays)):this._handleSingleObject(startDate,endDate,weekend,holidays)}_handleSingleObject(startDate,endDate,weekend,holidays){let _startDate=startDate,_endDate=endDate;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_endDate.isArray()){const rowCount=_endDate.getRowCount(),columnCount=_endDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_endDate=_endDate.get(0,0)}if(_endDate.isError())return _endDate;let weekendValue=1;if(weekend){if(weekendValue=weekend.getValue(),weekend.isBoolean()&&(weekendValue=+weekendValue),weekend.isString()&&!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.NUM)}if(_startDate.isBoolean()||_endDate.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;if(holidays)return this._getResultByHolidays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidays);const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekendValue);return NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=countWorkingDays(startDateSerialNumber,endDateSerialNumber,weekendValue,holidaysValueArray);return NumberValueObject.create(result)}};__name(_NetworkdaysIntl,"NetworkdaysIntl");let NetworkdaysIntl=_NetworkdaysIntl;const _Now=class _Now extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){const now=new Date,utcNow=new Date(Date.UTC(now.getFullYear(),now.getMonth(),now.getDate(),now.getHours(),now.getMinutes(),now.getSeconds())),currentSerial=excelDateTimeSerial(utcNow);return NumberValueObject.create(currentSerial,DEFAULT_NOW_FORMAT)}};__name(_Now,"Now");let Now=_Now;const _Second=class _Second extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isError()?serialNumber:serialNumber.isArray()?serialNumber.map(serialNumberObject=>serialNumberObject.isError()?serialNumberObject:this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(dateSerialNumber===0)return NumberValueObject.create(0);const seconds=excelSerialToDateTime(dateSerialNumber).getUTCSeconds();return NumberValueObject.create(seconds)}};__name(_Second,"Second");let Second=_Second;const _Time=class _Time extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(hour,minute,second){if(hour.isError())return hour;if(minute.isError())return minute;if(second.isError())return second;const maxRowLength=Math.max(hour.isArray()?hour.getRowCount():1,minute.isArray()?minute.getRowCount():1,second.isArray()?second.getRowCount():1),maxColumnLength=Math.max(hour.isArray()?hour.getColumnCount():1,minute.isArray()?minute.getColumnCount():1,second.isArray()?second.getColumnCount():1),hourArray=expandArrayValueObject(maxRowLength,maxColumnLength,hour),minuteArray=expandArrayValueObject(maxRowLength,maxColumnLength,minute),secondArray=expandArrayValueObject(maxRowLength,maxColumnLength,second);return hourArray.map((hourValueObject,rowIndex,columnIndex)=>this._calculateTime(hourValueObject,minuteArray,secondArray,rowIndex,columnIndex))}_calculateTime(hourValueObject,minuteArray,secondArray,rowIndex,columnIndex){let _hourValueObject=hourValueObject,minuteValueObject=minuteArray.get(rowIndex,columnIndex)||NullValueObject.create(),secondValueObject=secondArray.get(rowIndex,columnIndex)||NullValueObject.create();if((_hourValueObject.isString()||_hourValueObject.isBoolean())&&(_hourValueObject=_hourValueObject.convertToNumberObjectValue()),(minuteValueObject.isString()||minuteValueObject.isBoolean())&&(minuteValueObject=minuteValueObject.convertToNumberObjectValue()),(secondValueObject.isString()||secondValueObject.isBoolean())&&(secondValueObject=secondValueObject.convertToNumberObjectValue()),_hourValueObject.isError())return _hourValueObject;if(minuteValueObject.isError())return minuteValueObject;if(secondValueObject.isError())return secondValueObject;let hourValue=Math.floor(+_hourValueObject.getValue()),minuteValue=Math.floor(+minuteValueObject.getValue()),secondValue=Math.floor(+secondValueObject.getValue());if(hourValue<0||minuteValue<0||secondValue<0||hourValue>32767||minuteValue>32767||secondValue>32767)return ErrorValueObject.create(ErrorType$1.NUM);minuteValue+=Math.floor(secondValue/60),secondValue%=60,hourValue+=Math.floor(minuteValue/60),minuteValue%=60,hourValue%=24;const fractionOfDay=(hourValue*3600+minuteValue*60+secondValue)/86400;return NumberValueObject.create(fractionOfDay,DEFAULT_TIME_FORMAT)}};__name(_Time,"Time");let Time=_Time;const _Timevalue=class _Timevalue extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(timeText){return timeText.isError()?timeText:timeText.isArray()?timeText.map(timeTextObject=>this._handleSingleObject(timeTextObject)):this._handleSingleObject(timeText)}_handleSingleObject(timeTextObject){if(timeTextObject.isString()){const value=`${timeTextObject.getValue()}`,parsedTime=parseFormattedValue(value);if(parsedTime){let{v,z}=parsedTime;if(z&&isDate(z))return v instanceof Date&&(v=excelDateTimeSerial(v)),NumberValueObject.create(getFractionalPart(+v))}}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Timevalue,"Timevalue");let Timevalue=_Timevalue;const _Today=class _Today extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){const currentSerial=excelDateSerial(new Date);return NumberValueObject.create(currentSerial,DEFAULT_DATE_FORMAT)}};__name(_Today,"Today");let Today=_Today;const _Weekday=class _Weekday extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2);__publicField(this,"_returnTypeMap",{1:[1,2,3,4,5,6,7],2:[7,1,2,3,4,5,6],3:[6,0,1,2,3,4,5],11:[7,1,2,3,4,5,6],12:[6,7,1,2,3,4,5],13:[5,6,7,1,2,3,4],14:[4,5,6,7,1,2,3],15:[3,4,5,6,7,1,2],16:[2,3,4,5,6,7,1],17:[1,2,3,4,5,6,7]})}calculate(serialNumber,returnType){const _returnType=returnType!=null?returnType:NumberValueObject.create(1);if(serialNumber.isError())return serialNumber;if(_returnType.isError())return _returnType;const maxRowLength=Math.max(serialNumber.isArray()?serialNumber.getRowCount():1,_returnType.isArray()?_returnType.getRowCount():1),maxColumnLength=Math.max(serialNumber.isArray()?serialNumber.getColumnCount():1,_returnType.isArray()?_returnType.getColumnCount():1),serialNumberArray=expandArrayValueObject(maxRowLength,maxColumnLength,serialNumber,ErrorValueObject.create(ErrorType$1.NA)),returnTypeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_returnType,ErrorValueObject.create(ErrorType$1.NA)),resultArray=serialNumberArray.map((serialNumberObject,rowIndex,columnIndex)=>{const returnTypeObject=returnTypeArray.get(rowIndex,columnIndex);return this._handleSingleObject(serialNumberObject,returnTypeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSingleObject(serialNumberObject,returnTypeObject){let _returnTypeObject=returnTypeObject;if(serialNumberObject.isError())return serialNumberObject;if(_returnTypeObject.isError())return _returnTypeObject;const dateSerialNumber=getDateSerialNumberByObject(serialNumberObject);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(_returnTypeObject.isString()&&(_returnTypeObject=_returnTypeObject.convertToNumberObjectValue(),_returnTypeObject.isError()))return _returnTypeObject;const returnTypeValue=Math.floor(+_returnTypeObject.getValue());if(!this._returnTypeMap[returnTypeValue])return ErrorValueObject.create(ErrorType$1.NUM);const weekDay=getWeekDayByDateSerialNumber(dateSerialNumber),result=this._returnTypeMap[returnTypeValue][weekDay];return NumberValueObject.create(result)}};__name(_Weekday,"Weekday");let Weekday=_Weekday;const _Weeknum=class _Weeknum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2);__publicField(this,"_returnTypeMap",{1:0,2:1,11:1,12:2,13:3,14:4,15:5,16:6,17:0,21:4})}calculate(serialNumber,returnType){let _serialNumber=serialNumber,_returnType=returnType!=null?returnType:NumberValueObject.create(1);if(_serialNumber.isArray()){const rowCount=_serialNumber.getRowCount(),columnCount=_serialNumber.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_serialNumber=_serialNumber.get(0,0)}if(_serialNumber.isError())return _serialNumber;if(_returnType.isArray()){const rowCount=_returnType.getRowCount(),columnCount=_returnType.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_returnType=_returnType.get(0,0)}if(_returnType.isError())return _returnType;if(_serialNumber.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const dateSerialNumber=getDateSerialNumberByObject(_serialNumber);if(typeof dateSerialNumber!="number")return dateSerialNumber;if(_returnType.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const returnTypeValue=Math.floor(+_returnType.getValue());return Number.isNaN(returnTypeValue)?ErrorValueObject.create(ErrorType$1.VALUE):returnTypeValue in this._returnTypeMap?this._getResult(dateSerialNumber,returnTypeValue):ErrorValueObject.create(ErrorType$1.NUM)}_getResult(dateSerialNumber,returnTypeValue){const currentDate=excelSerialToDate(dateSerialNumber),currentYear=dateSerialNumber>0?currentDate.getUTCFullYear():1900;let yearStart=new Date(Date.UTC(currentYear,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearWeekStartSerialNumber;if(returnTypeValue===21)yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay),dateSerialNumber<yearWeekStartSerialNumber&&(yearStart=new Date(Date.UTC(currentYear-1,0,1)),yearStartSerialNumber=excelDateSerial(yearStart),yearStartWeekDay=getWeekDayByDateSerialNumber(yearStartSerialNumber),yearStartWeekDay<1?yearWeekStartSerialNumber=yearStartSerialNumber+1:yearStartWeekDay<=4?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-1):yearWeekStartSerialNumber=yearStartSerialNumber+(11-yearStartWeekDay));else{const weekDay=this._returnTypeMap[returnTypeValue];yearStartWeekDay<weekDay?yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay+7-weekDay):yearWeekStartSerialNumber=yearStartSerialNumber-(yearStartWeekDay-weekDay)}const result=Math.ceil((dateSerialNumber-yearWeekStartSerialNumber+1)/7);return NumberValueObject.create(result)}};__name(_Weeknum,"Weeknum");let Weeknum=_Weeknum;const _Workday=class _Workday extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,days,holidays){let _startDate=startDate,_days=days;if(_startDate.isArray()){const rowCount=_startDate.getRowCount(),columnCount=_startDate.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_startDate=_startDate.get(0,0)}if(_startDate.isError())return _startDate;if(_days.isArray()){const rowCount=_days.getRowCount(),columnCount=_days.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_days=_days.get(0,0)}if(_days.isError())return _days;if(holidays!=null&&holidays.isError())return holidays;if(_startDate.isBoolean()||_days.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const workingDays=+_days.getValue();if(Number.isNaN(workingDays))return ErrorValueObject.create(ErrorType$1.VALUE);if(holidays)return this._getResultByHolidays(startDateSerialNumber,workingDays,holidays);const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays);return typeof result!="number"?result:NumberValueObject.create(result)}_getResultByHolidays(startDateSerialNumber,workingDays,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,1,holidaysValueArray);return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_Workday,"Workday");let Workday=_Workday;const _WorkdayIntl=class _WorkdayIntl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(startDate,days,weekend,holidays){return startDate.isError()?startDate:days.isError()?days:weekend!=null&&weekend.isError()?weekend:holidays!=null&&holidays.isError()?holidays:weekend!=null&&weekend.isArray()?weekend.map(weekendItem=>this._handleSingleObject(startDate,days,weekendItem,holidays)):this._handleSingleObject(startDate,days,weekend,holidays)}_handleSingleObject(startDate,days,weekend,holidays){const _weekend=weekend!=null?weekend:NumberValueObject.create(1),_startDate=this._checkArrayError(startDate);if(_startDate.isError())return _startDate;const _days=this._checkArrayError(days);if(_days.isError())return _days;if(_startDate.isBoolean()||_days.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const workingDays=+days.getValue();if(Number.isNaN(workingDays))return ErrorValueObject.create(ErrorType$1.VALUE);let weekendValue=_weekend.getValue();if(_weekend.isBoolean()&&(weekendValue=+weekendValue),_weekend.isString()&&(!isValidWeekend(weekendValue)||weekendValue==="1111111"))return ErrorValueObject.create(ErrorType$1.VALUE);if(!isValidWeekend(weekendValue))return ErrorValueObject.create(ErrorType$1.NUM);if(holidays)return this._getResultByHolidays(startDateSerialNumber,workingDays,weekendValue,holidays);const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekendValue);return typeof result!="number"?result:NumberValueObject.create(result)}_checkArrayError(variant){let _variant=variant;if(_variant.isArray()){const rowCount=_variant.getRowCount(),columnCount=_variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=_variant.get(0,0)}return _variant.isError(),_variant}_getResultByHolidays(startDateSerialNumber,workingDays,weekendValue,holidays){const holidaysValueArray=[];if(holidays!=null&&holidays.isArray()){const rowCount=holidays.getRowCount(),columnCount=holidays.getColumnCount();for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){const cell=holidays.get(r,c);if(cell.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(cell);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}}else{if(holidays.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const holidaySerialNumber=getDateSerialNumberByObject(holidays);if(typeof holidaySerialNumber!="number")return holidaySerialNumber;holidaysValueArray.push(holidaySerialNumber)}const result=getDateSerialNumberByWorkingDays(startDateSerialNumber,workingDays,weekendValue,holidaysValueArray);return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_WorkdayIntl,"WorkdayIntl");let WorkdayIntl=_WorkdayIntl;const _Year=class _Year extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(serialNumber){return serialNumber.isArray()?serialNumber.map(serialNumberObject=>this._handleSingleObject(serialNumberObject)):this._handleSingleObject(serialNumber)}_handleSingleObject(serialNumberObject){if(serialNumberObject.isError())return serialNumberObject;let date;const dateValue=serialNumberObject.getValue();if(serialNumberObject.isString()){if(!isValidDateStr(`${dateValue}`))return ErrorValueObject.create(ErrorType$1.VALUE);date=new Date(`${dateValue}`)}else{const dateSerial=+dateValue;if(dateSerial<0)return ErrorValueObject.create(ErrorType$1.NUM);if(dateSerial===0)return NumberValueObject.create(1900);date=excelSerialToDate(dateSerial)}const year=date.getUTCFullYear();return NumberValueObject.create(year)}};__name(_Year,"Year");let Year=_Year;const _Yearfrac=class _Yearfrac extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(startDate,endDate,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);const _startDate=checkVariantErrorIsArray(startDate);if(_startDate.isError())return _startDate;const _endDate=checkVariantErrorIsArray(endDate);if(_endDate.isError())return _endDate;if(_basis=checkVariantErrorIsArray(_basis),_basis.isError())return _basis;if(_startDate.isBoolean()||_endDate.isBoolean()||_basis.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const startDateSerialNumber=getDateSerialNumberByObject(_startDate);if(typeof startDateSerialNumber!="number")return startDateSerialNumber;const endDateSerialNumber=getDateSerialNumberByObject(_endDate);if(typeof endDateSerialNumber!="number")return endDateSerialNumber;const basisValue=Math.floor(+_basis.getValue());if(Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(basisValue<0||basisValue>4)return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basisValue),result=days/yearDays;return NumberValueObject.create(result)}};__name(_Yearfrac,"Yearfrac");let Yearfrac=_Yearfrac;const functionDate=[[DateFunction,FUNCTION_NAMES_DATE.DATE],[Datedif,FUNCTION_NAMES_DATE.DATEDIF],[Datevalue,FUNCTION_NAMES_DATE.DATEVALUE],[Day,FUNCTION_NAMES_DATE.DAY],[Days,FUNCTION_NAMES_DATE.DAYS],[Days360,FUNCTION_NAMES_DATE.DAYS360],[Edate,FUNCTION_NAMES_DATE.EDATE],[Eomonth,FUNCTION_NAMES_DATE.EOMONTH],[Hour,FUNCTION_NAMES_DATE.HOUR],[Isoweeknum,FUNCTION_NAMES_DATE.ISOWEEKNUM],[Minute,FUNCTION_NAMES_DATE.MINUTE],[Month,FUNCTION_NAMES_DATE.MONTH],[Networkdays,FUNCTION_NAMES_DATE.NETWORKDAYS],[NetworkdaysIntl,FUNCTION_NAMES_DATE.NETWORKDAYS_INTL],[Now,FUNCTION_NAMES_DATE.NOW],[Second,FUNCTION_NAMES_DATE.SECOND],[Time,FUNCTION_NAMES_DATE.TIME],[Timevalue,FUNCTION_NAMES_DATE.TIMEVALUE],[Today,FUNCTION_NAMES_DATE.TODAY],[Weekday,FUNCTION_NAMES_DATE.WEEKDAY],[Weeknum,FUNCTION_NAMES_DATE.WEEKNUM],[Workday,FUNCTION_NAMES_DATE.WORKDAY],[WorkdayIntl,FUNCTION_NAMES_DATE.WORKDAY_INTL],[Year,FUNCTION_NAMES_DATE.YEAR],[Yearfrac,FUNCTION_NAMES_DATE.YEARFRAC]];var FUNCTION_NAMES_ENGINEERING=(FUNCTION_NAMES_ENGINEERING2=>(FUNCTION_NAMES_ENGINEERING2.BESSELI="BESSELI",FUNCTION_NAMES_ENGINEERING2.BESSELJ="BESSELJ",FUNCTION_NAMES_ENGINEERING2.BESSELK="BESSELK",FUNCTION_NAMES_ENGINEERING2.BESSELY="BESSELY",FUNCTION_NAMES_ENGINEERING2.BIN2DEC="BIN2DEC",FUNCTION_NAMES_ENGINEERING2.BIN2HEX="BIN2HEX",FUNCTION_NAMES_ENGINEERING2.BIN2OCT="BIN2OCT",FUNCTION_NAMES_ENGINEERING2.BITAND="BITAND",FUNCTION_NAMES_ENGINEERING2.BITLSHIFT="BITLSHIFT",FUNCTION_NAMES_ENGINEERING2.BITOR="BITOR",FUNCTION_NAMES_ENGINEERING2.BITRSHIFT="BITRSHIFT",FUNCTION_NAMES_ENGINEERING2.BITXOR="BITXOR",FUNCTION_NAMES_ENGINEERING2.COMPLEX="COMPLEX",FUNCTION_NAMES_ENGINEERING2.CONVERT="CONVERT",FUNCTION_NAMES_ENGINEERING2.DEC2BIN="DEC2BIN",FUNCTION_NAMES_ENGINEERING2.DEC2HEX="DEC2HEX",FUNCTION_NAMES_ENGINEERING2.DEC2OCT="DEC2OCT",FUNCTION_NAMES_ENGINEERING2.DELTA="DELTA",FUNCTION_NAMES_ENGINEERING2.ERF="ERF",FUNCTION_NAMES_ENGINEERING2.ERF_PRECISE="ERF.PRECISE",FUNCTION_NAMES_ENGINEERING2.ERFC="ERFC",FUNCTION_NAMES_ENGINEERING2.ERFC_PRECISE="ERFC.PRECISE",FUNCTION_NAMES_ENGINEERING2.GESTEP="GESTEP",FUNCTION_NAMES_ENGINEERING2.HEX2BIN="HEX2BIN",FUNCTION_NAMES_ENGINEERING2.HEX2DEC="HEX2DEC",FUNCTION_NAMES_ENGINEERING2.HEX2OCT="HEX2OCT",FUNCTION_NAMES_ENGINEERING2.IMABS="IMABS",FUNCTION_NAMES_ENGINEERING2.IMAGINARY="IMAGINARY",FUNCTION_NAMES_ENGINEERING2.IMARGUMENT="IMARGUMENT",FUNCTION_NAMES_ENGINEERING2.IMCONJUGATE="IMCONJUGATE",FUNCTION_NAMES_ENGINEERING2.IMCOS="IMCOS",FUNCTION_NAMES_ENGINEERING2.IMCOSH="IMCOSH",FUNCTION_NAMES_ENGINEERING2.IMCOT="IMCOT",FUNCTION_NAMES_ENGINEERING2.IMCSC="IMCSC",FUNCTION_NAMES_ENGINEERING2.IMCSCH="IMCSCH",FUNCTION_NAMES_ENGINEERING2.IMDIV="IMDIV",FUNCTION_NAMES_ENGINEERING2.IMEXP="IMEXP",FUNCTION_NAMES_ENGINEERING2.IMLN="IMLN",FUNCTION_NAMES_ENGINEERING2.IMLOG10="IMLOG10",FUNCTION_NAMES_ENGINEERING2.IMLOG2="IMLOG2",FUNCTION_NAMES_ENGINEERING2.IMPOWER="IMPOWER",FUNCTION_NAMES_ENGINEERING2.IMPRODUCT="IMPRODUCT",FUNCTION_NAMES_ENGINEERING2.IMREAL="IMREAL",FUNCTION_NAMES_ENGINEERING2.IMSEC="IMSEC",FUNCTION_NAMES_ENGINEERING2.IMSECH="IMSECH",FUNCTION_NAMES_ENGINEERING2.IMSIN="IMSIN",FUNCTION_NAMES_ENGINEERING2.IMSINH="IMSINH",FUNCTION_NAMES_ENGINEERING2.IMSQRT="IMSQRT",FUNCTION_NAMES_ENGINEERING2.IMSUB="IMSUB",FUNCTION_NAMES_ENGINEERING2.IMSUM="IMSUM",FUNCTION_NAMES_ENGINEERING2.IMTAN="IMTAN",FUNCTION_NAMES_ENGINEERING2.OCT2BIN="OCT2BIN",FUNCTION_NAMES_ENGINEERING2.OCT2DEC="OCT2DEC",FUNCTION_NAMES_ENGINEERING2.OCT2HEX="OCT2HEX",FUNCTION_NAMES_ENGINEERING2))(FUNCTION_NAMES_ENGINEERING||{});const _Besseli=class _Besseli extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besseli(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besseli,"Besseli");let Besseli=_Besseli;const _Besselj=class _Besselj extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besselj(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besselj,"Besselj");let Besselj=_Besselj;const _Besselk=class _Besselk extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.besselk(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Besselk,"Besselk");let Besselk=_Besselk;const _Bessely=class _Bessely extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(x,n){if(x.isNull()||n.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n);if(isError)return errorObject;const[xObject,nObject]=variants,xValue=+xObject.getValue(),nValue=Math.floor(+nObject.getValue());if(Number.isNaN(xValue)||Number.isNaN(nValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=BESSEL.bessely(xValue,nValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Bessely,"Bessely");let Bessely=_Bessely;const _Bin2dec=class _Bin2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;return numberValue.length===10&&numberValue.substring(0,1)==="1"?result=Number.parseInt(numberValue.substring(1),2)-512:result=Number.parseInt(numberValue,2),NumberValueObject.create(result)}};__name(_Bin2dec,"Bin2dec");let Bin2dec=_Bin2dec;const _Bin2hex=class _Bin2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue.length===10&&numberValue.substring(0,1)==="1")result=(0xfffffffe00+Number.parseInt(numberValue.substring(1),2)).toString(16);else if(result=Number.parseInt(numberValue,2).toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Bin2hex,"Bin2hex");let Bin2hex=_Bin2hex;const _Bin2oct=class _Bin2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidBinaryNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue.length===10&&numberValue.substring(0,1)==="1")result=(1073741312+Number.parseInt(numberValue.substring(1),2)).toString(8);else if(result=Number.parseInt(numberValue,2).toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Bin2oct,"Bin2oct");let Bin2oct=_Bin2oct;const _Bitand=class _Bitand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=number1Value&number2Value;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitand,"Bitand");let Bitand=_Bitand;const _Bitlshift=class _Bitlshift extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,shiftAmount){if(number.isError())return number;if(shiftAmount.isError())return shiftAmount;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,shiftAmount.isArray()?shiftAmount.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,shiftAmount.isArray()?shiftAmount.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),shiftAmountArray=expandArrayValueObject(maxRowLength,maxColumnLength,shiftAmount,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((itemObject,rowIndex,columnIndex)=>{let numberObject=itemObject;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;let shiftAmountObject=shiftAmountArray.get(rowIndex,columnIndex);if(shiftAmountObject.isString()&&(shiftAmountObject=shiftAmountObject.convertToNumberObjectValue()),shiftAmountObject.isError())return shiftAmountObject;const numberValue=+numberObject.getValue();let shiftAmountValue=+shiftAmountObject.getValue();if(numberValue<0||Math.floor(numberValue)!==numberValue||numberValue>0xffffffffffff||Math.abs(shiftAmountValue)>53)return ErrorValueObject.create(ErrorType$1.NUM);shiftAmountValue=Math.trunc(shiftAmountValue);const result=Number(shiftAmountValue>=0?BigInt(numberValue)<<BigInt(shiftAmountValue):BigInt(numberValue)>>BigInt(-shiftAmountValue));return result>0xffffffffffff?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitlshift,"Bitlshift");let Bitlshift=_Bitlshift;const _Bitor=class _Bitor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=Number(BigInt(number1Value)|BigInt(number2Value));return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitor,"Bitor");let Bitor=_Bitor;const _Bitrshift=class _Bitrshift extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,shiftAmount){if(number.isError())return number;if(shiftAmount.isError())return shiftAmount;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,shiftAmount.isArray()?shiftAmount.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,shiftAmount.isArray()?shiftAmount.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),shiftAmountArray=expandArrayValueObject(maxRowLength,maxColumnLength,shiftAmount,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((itemObject,rowIndex,columnIndex)=>{let numberObject=itemObject;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;let shiftAmountObject=shiftAmountArray.get(rowIndex,columnIndex);if(shiftAmountObject.isString()&&(shiftAmountObject=shiftAmountObject.convertToNumberObjectValue()),shiftAmountObject.isError())return shiftAmountObject;const numberValue=+numberObject.getValue();let shiftAmountValue=+shiftAmountObject.getValue();if(numberValue<0||Math.floor(numberValue)!==numberValue||numberValue>0xffffffffffff||Math.abs(shiftAmountValue)>53)return ErrorValueObject.create(ErrorType$1.NUM);shiftAmountValue=Math.trunc(shiftAmountValue);const result=Number(shiftAmountValue>=0?BigInt(numberValue)>>BigInt(shiftAmountValue):BigInt(numberValue)<<BigInt(-shiftAmountValue));return result>0xffffffffffff?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitrshift,"Bitrshift");let Bitrshift=_Bitrshift;const _Bitxor=class _Bitxor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number1,number2){if(number1.isError())return number1;if(number2.isError())return number2;const maxRowLength=Math.max(number1.isArray()?number1.getRowCount():1,number2.isArray()?number2.getRowCount():1),maxColumnLength=Math.max(number1.isArray()?number1.getColumnCount():1,number2.isArray()?number2.getColumnCount():1),number1Array=expandArrayValueObject(maxRowLength,maxColumnLength,number1,ErrorValueObject.create(ErrorType$1.NA)),number2Array=expandArrayValueObject(maxRowLength,maxColumnLength,number2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=number1Array.map((itemObject,rowIndex,columnIndex)=>{let number1Object=itemObject;if(number1Object.isString()&&(number1Object=number1Object.convertToNumberObjectValue()),number1Object.isError())return number1Object;let number2Object=number2Array.get(rowIndex,columnIndex);if(number2Object.isString()&&(number2Object=number2Object.convertToNumberObjectValue()),number2Object.isError())return number2Object;const number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(number1Value<0||number2Value<0||Math.floor(number1Value)!==number1Value||Math.floor(number2Value)!==number2Value||number1Value>0xffffffffffff||number2Value>0xffffffffffff)return ErrorValueObject.create(ErrorType$1.NUM);const result=number1Value^number2Value;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Bitxor,"Bitxor");let Bitxor=_Bitxor;Decimal$1.prototype.cos=function(){const num=this.toNumber();return new Decimal$1(Math.cos(num))};let Complex$1=(_s=class{constructor(inumber){__publicField(this,"_inumber","");__publicField(this,"_realNum",0);__publicField(this,"_iNum",0);__publicField(this,"_suffix","");__publicField(this,"_isError",!1);if(`${inumber}`.trim()===""){this._isError=!0;return}this._inumber=inumber,this._getImReal(),this._getImAginary(),this._getImSuffix()}static getComplex(realNum,iNum,suffix){const _realNum=new Decimal$1(realNum).toSignificantDigits(15).toNumber(),_iNum=new Decimal$1(iNum).toSignificantDigits(15).toNumber(),_suffix=suffix===""?"i":suffix;let result;if(_realNum===0&&_iNum===0)result=0;else if(_realNum===0)result=_iNum===1?_suffix:`${_iNum}${_suffix}`;else if(_iNum===0)result=_realNum;else{const sign2=_iNum>0?"+":"",suffixStr=_iNum===1?_suffix:`${_iNum}${_suffix}`;result=`${_realNum}${sign2}${suffixStr}`}return result}static createByComplexStr(realNum,iNum,suffix){const complexStr=_s.getComplex(realNum,iNum,suffix);return new _s(complexStr)}_getImReal(){if(this._inumber===0||this._inumber==="0"){this._realNum=0;return}const inumberStr=`${this._inumber}`;if(["i","+i","1i","+1i","-i","-1i","j","+j","1j","+1j","-j","-1j"].indexOf(inumberStr)>=0){this._realNum=0;return}let plus2=inumberStr.indexOf("+"),minus2=inumberStr.indexOf("-");plus2===0&&(plus2=inumberStr.indexOf("+",1)),minus2===0&&(minus2=inumberStr.indexOf("-",1));const last=inumberStr.substring(inumberStr.length-1,inumberStr.length),unit=last==="i"||last==="j";if(plus2>=0||minus2>=0){if(!unit){this._isError=!0;return}plus2>=0?Number.isNaN(+inumberStr.substring(0,plus2))||Number.isNaN(+inumberStr.substring(plus2+1,inumberStr.length-1))?this._isError=!0:this._realNum=+inumberStr.substring(0,plus2):Number.isNaN(+inumberStr.substring(0,minus2))||Number.isNaN(+inumberStr.substring(minus2+1,inumberStr.length-1))?this._isError=!0:this._realNum=+inumberStr.substring(0,minus2)}else unit?Number.isNaN(+inumberStr.substring(0,inumberStr.length-1))?this._isError=!0:this._realNum=0:Number.isNaN(+inumberStr)?this._isError=!0:this._realNum=+inumberStr}_getImAginary(){if(this._isError)return;if(this._inumber===0||this._inumber==="0"){this._iNum=0;return}let inumberStr=`${this._inumber}`;if(["i","j"].indexOf(inumberStr)>=0){this._iNum=1;return}inumberStr=inumberStr.replace("+i","+1i").replace("-i","-1i").replace("+j","+1j").replace("-j","-1j");let plus2=inumberStr.indexOf("+"),minus2=inumberStr.indexOf("-");plus2===0&&(plus2=inumberStr.indexOf("+",1)),minus2===0&&(minus2=inumberStr.indexOf("-",1));const last=inumberStr.substring(inumberStr.length-1,inumberStr.length),unit=last==="i"||last==="j";if(plus2>=0||minus2>=0){if(!unit){this._isError=!0;return}plus2>=0?Number.isNaN(+inumberStr.substring(0,plus2))||Number.isNaN(+inumberStr.substring(plus2+1,inumberStr.length-1))?this._isError=!0:this._iNum=+inumberStr.substring(plus2+1,inumberStr.length-1):Number.isNaN(+inumberStr.substring(0,minus2))||Number.isNaN(+inumberStr.substring(minus2+1,inumberStr.length-1))?this._isError=!0:this._iNum=-+inumberStr.substring(minus2+1,inumberStr.length-1)}else unit?Number.isNaN(+inumberStr.substring(0,inumberStr.length-1))?this._isError=!0:this._iNum=+inumberStr.substring(0,inumberStr.length-1):Number.isNaN(+inumberStr)?this._isError=!0:this._iNum=0}_getImSuffix(){const inumberStr=`${this._inumber}`,suffix=inumberStr.substring(inumberStr.length-1);this._suffix=suffix==="i"||suffix==="j"?suffix:""}getRealNum(){return this._realNum}getINum(){return this._iNum}getSuffix(){return this._suffix}isError(){return this._isError}toString(){return _s.getComplex(this._realNum,this._iNum,this._suffix)}isDifferentSuffixes(complex2){const suffix2=complex2.getSuffix();return this._suffix===""||suffix2===""?!1:this._suffix!==suffix2}Abs(){return Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))).toSignificantDigits(16).toNumber()}Argument(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2)));let result=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2)).toSignificantDigits(16).toNumber();return this._iNum<0&&(result=-result),result}Conjugate(){return _s.getComplex(this._realNum,-this._iNum,this._suffix)}Cos(){if(this._iNum){const realNum=Decimal$1.cos(this._realNum).mul(Decimal$1.cosh(this._iNum)).toNumber(),iNum=Decimal$1.sin(this._realNum).mul(Decimal$1.sinh(this._iNum)).negated().toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.cos(this._realNum).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}Cosh(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return this._isError=!0,"";if(this._iNum){const realNum=Decimal$1.cosh(this._realNum).mul(Decimal$1.cos(this._iNum)).toNumber(),iNum=Decimal$1.sinh(this._realNum).mul(Decimal$1.sin(this._iNum)).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.cosh(this._realNum).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}Cot(){if(this._iNum){const den=Decimal$1.cosh(this._iNum*2).sub(Decimal$1.cos(this._realNum*2)),realNum=Decimal$1.sin(this._realNum*2).div(den).toNumber(),iNum=Decimal$1.sinh(this._iNum*2).div(den).negated().toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.tan(this._realNum)).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}Csc(){if(this._iNum){const den=Decimal$1.cosh(this._iNum*2).sub(Decimal$1.cos(this._realNum*2)),realNum=Decimal$1.sin(this._realNum).mul(Decimal$1.cosh(this._iNum)).mul(2).div(den).toNumber(),iNum=Decimal$1.cos(this._realNum).mul(Decimal$1.sinh(this._iNum)).mul(-2).div(den).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.sin(this._realNum)).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}Csch(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return _s.getComplex(0,0,this._suffix);if(this._iNum){const den=Decimal$1.cosh(this._realNum*2).sub(Decimal$1.cos(this._iNum*2)),realNum=Decimal$1.sinh(this._realNum).mul(Decimal$1.cos(this._iNum)).mul(2).div(den).toNumber(),iNum=Decimal$1.cosh(this._realNum).mul(Decimal$1.sin(this._iNum)).mul(-2).div(den).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.sinh(this._realNum)).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}Div(complex2){const Decimal_realNum1=new Decimal$1(this._realNum),Decimal_iNum1=new Decimal$1(this._iNum),Decimal_realNum2=new Decimal$1(complex2.getRealNum()),Decimal_iNum2=new Decimal$1(complex2.getINum()),den=Decimal_realNum2.mul(Decimal_realNum2).add(Decimal_iNum2.mul(Decimal_iNum2)),realNum=Decimal_realNum1.mul(Decimal_realNum2).add(Decimal_iNum1.mul(Decimal_iNum2)).div(den).toNumber(),iNum=Decimal_iNum1.mul(Decimal_realNum2).sub(Decimal_realNum1.mul(Decimal_iNum2)).div(den).toNumber(),suffix=this._suffix===""?complex2.getSuffix():this._suffix;return _s.getComplex(realNum,iNum,suffix)}Exp(){if(!Number.isFinite(Math.exp(this._realNum)))return this._isError=!0,"";const realNum=Decimal$1.exp(this._realNum).mul(Decimal$1.cos(this._iNum)).toNumber(),iNum=Decimal$1.exp(this._realNum).mul(Decimal$1.sin(this._iNum)).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}Ln(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),realNum=Decimal$1.ln(abs2).toNumber(),iNum=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2)).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}Log10(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),Decimal_realNum1=Decimal$1.ln(abs2);let Decimal_iNum1=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2));this._iNum<0&&(Decimal_iNum1=Decimal_iNum1.negated());const Decimal_realNum2=Decimal$1.ln(10),Decimal_iNum2=new Decimal$1(0),den=Decimal_realNum2.mul(Decimal_realNum2).add(Decimal_iNum2.mul(Decimal_iNum2)),realNum=Decimal_realNum1.mul(Decimal_realNum2).add(Decimal_iNum1.mul(Decimal_iNum2)).div(den).toNumber(),iNum=Decimal_iNum1.mul(Decimal_realNum2).sub(Decimal_realNum1.mul(Decimal_iNum2)).div(den).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}Log2(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),Decimal_realNum1=Decimal$1.ln(abs2);let Decimal_iNum1=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2));this._iNum<0&&(Decimal_iNum1=Decimal_iNum1.negated());const Decimal_realNum2=Decimal$1.ln(2),Decimal_iNum2=new Decimal$1(0),den=Decimal_realNum2.mul(Decimal_realNum2).add(Decimal_iNum2.mul(Decimal_iNum2)),realNum=Decimal_realNum1.mul(Decimal_realNum2).add(Decimal_iNum1.mul(Decimal_iNum2)).div(den).toNumber(),iNum=Decimal_iNum1.mul(Decimal_realNum2).sub(Decimal_realNum1.mul(Decimal_iNum2)).div(den).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}Power(number){if(this._realNum===0&&this._iNum===0)return number>0?_s.getComplex(this._realNum,this._iNum,this._suffix):(this._isError=!0,"");let power=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),phi=Decimal$1.acos(new Decimal$1(this._realNum).div(power));this._iNum<0&&(phi=phi.negated()),power=Decimal$1.pow(power,number),phi=phi.mul(number);const realNum=Decimal$1.cos(phi).mul(power).toNumber(),iNum=Decimal$1.sin(phi).mul(power).toNumber();return!Number.isFinite(realNum)||!Number.isFinite(iNum)?(this._isError=!0,""):_s.getComplex(realNum,iNum,this._suffix)}Product(complex2){const Decimal_realNum1=new Decimal$1(this._realNum),Decimal_iNum1=new Decimal$1(this._iNum),Decimal_realNum2=new Decimal$1(complex2.getRealNum()),Decimal_iNum2=new Decimal$1(complex2.getINum()),realNum=Decimal_realNum1.mul(Decimal_realNum2).sub(Decimal_iNum1.mul(Decimal_iNum2)).toNumber(),iNum=Decimal_realNum1.mul(Decimal_iNum2).add(Decimal_iNum1.mul(Decimal_realNum2)).toNumber(),suffix=this._suffix===""?complex2.getSuffix():this._suffix;return _s.getComplex(realNum,iNum,suffix)}Sec(){if(this._iNum){const den=Decimal$1.cosh(this._iNum*2).add(Decimal$1.cos(this._realNum*2)),realNum=Decimal$1.cos(this._realNum).mul(Decimal$1.cosh(this._iNum)).mul(2).div(den).toNumber(),iNum=Decimal$1.sin(this._realNum).mul(Decimal$1.sinh(this._iNum)).mul(2).div(den).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.cos(this._realNum)).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}Sech(){if(!Number.isFinite(Math.sinh(this._realNum*2))||!Number.isFinite(Math.cosh(this._realNum*2)))return _s.getComplex(0,0,this._suffix);if(this._iNum){const den=Decimal$1.cosh(this._realNum*2).add(Decimal$1.cos(this._iNum*2)),realNum=Decimal$1.cosh(this._realNum).mul(Decimal$1.cos(this._iNum)).mul(2).div(den).toNumber(),iNum=Decimal$1.sinh(this._realNum).mul(Decimal$1.sin(this._iNum)).mul(-2).div(den).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=new Decimal$1(1).div(Decimal$1.cosh(this._realNum)).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}Sin(){if(this._iNum){const realNum=Decimal$1.sin(this._realNum).mul(Decimal$1.cosh(this._iNum)).toNumber(),iNum=Decimal$1.cos(this._realNum).mul(Decimal$1.sinh(this._iNum)).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.sin(this._realNum).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}Sinh(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return this._isError=!0,"";if(this._iNum){const realNum=Decimal$1.sinh(this._realNum).mul(Decimal$1.cos(this._iNum)).toNumber(),iNum=Decimal$1.cosh(this._realNum).mul(Decimal$1.sin(this._iNum)).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.sinh(this._realNum).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}Sqrt(){const abs2=Decimal$1.sqrt(Decimal$1.pow(this._realNum,2).add(Decimal$1.pow(this._iNum,2))),abs_sqrt=Decimal$1.sqrt(abs2);let arg=Decimal$1.acos(new Decimal$1(this._realNum).div(abs2));this._iNum<0&&(arg=arg.negated());const realNum=abs_sqrt.mul(Decimal$1.cos(arg.div(2).toNumber())).toNumber(),iNum=abs_sqrt.mul(Decimal$1.sin(arg.div(2))).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}Sub(complex2){const Decimal_realNum1=new Decimal$1(this._realNum),Decimal_iNum1=new Decimal$1(this._iNum),Decimal_realNum2=new Decimal$1(complex2.getRealNum()),Decimal_iNum2=new Decimal$1(complex2.getINum()),realNum=Decimal_realNum1.sub(Decimal_realNum2).toNumber(),iNum=Decimal_iNum1.sub(Decimal_iNum2).toNumber(),suffix=this._suffix===""?complex2.getSuffix():this._suffix;return _s.getComplex(realNum,iNum,suffix)}Sum(complex2){const Decimal_realNum1=new Decimal$1(this._realNum),Decimal_iNum1=new Decimal$1(this._iNum),Decimal_realNum2=new Decimal$1(complex2.getRealNum()),Decimal_iNum2=new Decimal$1(complex2.getINum()),realNum=Decimal_realNum1.add(Decimal_realNum2).toNumber(),iNum=Decimal_iNum1.add(Decimal_iNum2).toNumber(),suffix=this._suffix===""?complex2.getSuffix():this._suffix;return _s.getComplex(realNum,iNum,suffix)}Tan(){if(this._iNum){const den=Decimal$1.cos(this._realNum*2).add(Decimal$1.cosh(this._iNum*2)),realNum=Decimal$1.sin(this._realNum*2).div(den).toNumber(),iNum=Decimal$1.sinh(this._iNum*2).div(den).toNumber();return _s.getComplex(realNum,iNum,this._suffix)}else{const realNum=Decimal$1.tan(this._realNum).toNumber();return _s.getComplex(realNum,this._iNum,this._suffix)}}},__name(_s,"Complex"),_s);const _Complex=class _Complex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(realNum,iNum,suffix){const _suffix=suffix!=null?suffix:StringValueObject.create("i"),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(realNum,iNum,_suffix);if(isError)return errorObject;const[realNumObject,iNumObject,suffixObject]=variants,realNumValue=+realNumObject.getValue(),iNumValue=+iNumObject.getValue(),suffixValue=`${suffixObject.getValue()}`;if(Number.isNaN(realNumValue)||Number.isNaN(iNumValue)||suffixValue!=="i"&&suffixValue!=="j")return ErrorValueObject.create(ErrorType$1.VALUE);const result=Complex$1.getComplex(realNumValue,iNumValue,suffixValue);return typeof result=="number"?NumberValueObject.create(result):StringValueObject.create(result)}};__name(_Complex,"Complex");let Complex=_Complex;const _Convert=class _Convert extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"_units",[["a.u. of action","?",null,"action",!1,!1,105457168181818e-48],["a.u. of charge","e",null,"electric_charge",!1,!1,160217653141414e-33],["a.u. of energy","Eh",null,"energy",!1,!1,435974417757576e-32],["a.u. of length","a?",null,"length",!1,!1,529177210818182e-25],["a.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["a.u. of time","?/Eh",null,"time",!1,!1,241888432650516e-31],["admiralty knot","admkn",null,"speed",!1,!0,.514773333],["ampere","A",null,"electric_current",!0,!1,1],["ampere per meter","A/m",null,"magnetic_field_intensity",!0,!1,1],["ångström","Å",["ang"],"length",!1,!0,1e-10],["are","ar",null,"area",!1,!0,100],["astronomical unit","ua",null,"length",!1,!1,149597870691667e-25],["bar","bar",null,"pressure",!1,!1,1e5],["barn","b",null,"area",!1,!1,1e-28],["becquerel","Bq",null,"radioactivity",!0,!1,1],["bit","bit",["b"],"information",!1,!0,1],["btu","BTU",["btu"],"energy",!1,!0,1055.05585262],["byte","byte",null,"information",!1,!0,8],["candela","cd",null,"luminous_intensity",!0,!1,1],["candela per square metre","cd/m?",null,"luminance",!0,!1,1],["centigrade","C",["cel"],"temperature",!0,!1,1],["cubic ångström","ang3",["ang^3"],"volume",!1,!0,1e-30],["cubic foot","ft3",["ft^3"],"volume",!1,!0,.028316846592],["cubic inch","in3",["in^3"],"volume",!1,!0,16387064e-12],["cubic light-year","ly3",["ly^3"],"volume",!1,!0,846786664623715e-61],["cubic metre","m3",["m^3"],"volume",!0,!0,1],["cubic mile","mi3",["mi^3"],"volume",!1,!0,416818182544058e-5],["cubic nautical mile","Nmi3",["Nmi^3"],"volume",!1,!0,6352182208],["cubic Pica","Pica3",["Picapt3","Pica^3","Picapt^3"],"volume",!1,!0,758660370370369e-22],["cubic yard","yd3",["yd^3"],"volume",!1,!0,.764554857984],["cup","cup",null,"volume",!1,!0,.0002365882365],["dalton","Da",["u"],"mass",!1,!1,166053886282828e-41],["day","d",["day"],"time",!1,!0,86400],["degree","°",null,"angle",!1,!1,.0174532925199433],["dyne","dyn",["dy"],"force",!1,!0,1e-5],["electronvolt","eV",["ev"],"energy",!1,!0,1.60217656514141],["ell","ell",null,"length",!1,!0,1.143],["erg","erg",["e"],"energy",!1,!0,1e-7],["fahrenheit","F",["fah"],"temperature",!0,!1,1],["fluid ounce","oz",null,"volume",!1,!0,295735295625e-16],["foot","ft",null,"length",!1,!0,.3048],["foot-pound","flb",null,"energy",!1,!0,1.3558179483314],["gal","Gal",null,"acceleration",!1,!1,.01],["gallon","gal",null,"volume",!1,!0,.003785411784],["gauss","G",["ga"],"magnetic_flux_density",!1,!0,1],["grain","grain",null,"mass",!1,!0,647989e-10],["gram","g",null,"mass",!1,!0,.001],["gray","Gy",null,"absorbed_dose",!0,!1,1],["gross registered ton","GRT",["regton"],"volume",!1,!0,2.8316846592],["hectare","ha",null,"area",!1,!0,1e4],["henry","H",null,"inductance",!0,!1,1],["hertz","Hz",null,"frequency",!0,!1,1],["horsepower","HP",["h"],"power",!1,!0,745.69987158227],["horsepower-hour","HPh",["hh","hph"],"energy",!1,!0,2684519538e-3],["hour","h",["hr"],"time",!1,!0,3600],["imperial gallon (U.K.)","uk_gal",null,"volume",!1,!0,.00454609],["imperial hundredweight","lcwt",["uk_cwt","hweight"],"mass",!1,!0,50.802345],["imperial quart (U.K)","uk_qt",null,"volume",!1,!0,.0011365225],["imperial ton","brton",["uk_ton","LTON"],"mass",!1,!0,1016.046909],["inch","in",null,"length",!1,!0,.0254],["international acre","uk_acre",null,"area",!1,!0,4046.8564224],["IT calorie","cal",null,"energy",!1,!0,4.1868],["joule","J",null,"energy",!0,!0,1],["katal","kat",null,"catalytic_activity",!0,!1,1],["kelvin","K",["kel"],"temperature",!0,!0,1],["kilogram","kg",null,"mass",!0,!0,1],["knot","kn",null,"speed",!1,!0,.514444444444444],["light-year","ly",null,"length",!1,!0,9460730472580800],["litre","L",["l","lt"],"volume",!1,!0,.001],["lumen","lm",null,"luminous_flux",!0,!1,1],["lux","lx",null,"illuminance",!0,!1,1],["maxwell","Mx",null,"magnetic_flux",!1,!1,1e-18],["measurement ton","MTON",null,"volume",!1,!0,1.13267386368],["meter per hour","m/h",["m/hr"],"speed",!1,!0,.00027777777777778],["meter per second","m/s",["m/sec"],"speed",!0,!0,1],["meter per second squared","m?s??",null,"acceleration",!0,!1,1],["parsec","pc",["parsec"],"length",!1,!0,0x6da012f958ee1c],["meter squared per second","m?/s",null,"kinematic_viscosity",!0,!1,1],["metre","m",null,"length",!0,!0,1],["miles per hour","mph",null,"speed",!1,!0,.44704],["millimetre of mercury","mmHg",null,"pressure",!1,!1,133.322],["minute","?",null,"angle",!1,!1,.000290888208665722],["minute","min",["mn"],"time",!1,!0,60],["modern teaspoon","tspm",null,"volume",!1,!0,5e-6],["mole","mol",null,"amount_of_substance",!0,!1,1],["morgen","Morgen",null,"area",!1,!0,2500],["n.u. of action","?",null,"action",!1,!1,105457168181818e-48],["n.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["n.u. of speed","c?",null,"speed",!1,!1,299792458],["n.u. of time","?/(me?c??)",null,"time",!1,!1,128808866778687e-35],["nautical mile","M",["Nmi"],"length",!1,!0,1852],["newton","N",null,"force",!0,!0,1],["œrsted","Oe ",null,"magnetic_field_intensity",!1,!1,79.5774715459477],["ohm","Ω",null,"electric_resistance",!0,!1,1],["ounce mass","ozm",null,"mass",!1,!0,.028349523125],["pascal","Pa",null,"pressure",!0,!1,1],["pascal second","Pa?s",null,"dynamic_viscosity",!0,!1,1],["pferdestärke","PS",null,"power",!1,!0,735.49875],["phot","ph",null,"illuminance",!1,!1,1e-4],["pica (1/6 inch)","pica",null,"length",!1,!0,.00035277777777778],["pica (1/72 inch)","Pica",["Picapt"],"length",!1,!0,.00423333333333333],["poise","P",null,"dynamic_viscosity",!1,!1,.1],["pond","pond",null,"force",!1,!0,.00980665],["pound force","lbf",null,"force",!1,!0,4.4482216152605],["pound mass","lbm",null,"mass",!1,!0,.45359237],["quart","qt",null,"volume",!1,!0,.000946352946],["radian","rad",null,"angle",!0,!1,1],["rankine","Rank",null,"temperature",!1,!0,1],["reaumur","Reau",null,"temperature",!1,!0,1],["second","?",null,"angle",!1,!1,484813681109536e-20],["second","s",["sec"],"time",!0,!0,1],["short hundredweight","cwt",["shweight"],"mass",!1,!0,45.359237],["siemens","S",null,"electrical_conductance",!0,!1,1],["sievert","Sv",null,"equivalent_dose",!0,!1,1],["slug","sg",null,"mass",!1,!0,14.59390294],["square ångström","ang2",["ang^2"],"area",!1,!0,1e-20],["square foot","ft2",["ft^2"],"area",!1,!0,.09290304],["square inch","in2",["in^2"],"area",!1,!0,64516e-8],["square light-year","ly2",["ly^2"],"area",!1,!0,895054210748189e17],["square meter","m?",null,"area",!0,!0,1],["square mile","mi2",["mi^2"],"area",!1,!0,2589988110336e-6],["square nautical mile","Nmi2",["Nmi^2"],"area",!1,!0,3429904],["square Pica","Pica2",["Picapt2","Pica^2","Picapt^2"],"area",!1,!0,1792111111111e-17],["square yard","yd2",["yd^2"],"area",!1,!0,.83612736],["statute mile","mi",null,"length",!1,!0,1609.344],["steradian","sr",null,"solid_angle",!0,!1,1],["stilb","sb",null,"luminance",!1,!1,1e-4],["stokes","St",null,"kinematic_viscosity",!1,!1,1e-4],["stone","stone",null,"mass",!1,!0,6.35029318],["tablespoon","tbs",null,"volume",!1,!0,147868e-10],["teaspoon","tsp",null,"volume",!1,!0,492892e-11],["tesla","T",null,"magnetic_flux_density",!0,!0,1],["thermodynamic calorie","c",null,"energy",!1,!0,4.184],["ton","ton",null,"mass",!1,!0,907.18474],["tonne","t",null,"mass",!1,!1,1e3],["U.K. pint","uk_pt",null,"volume",!1,!0,.00056826125],["U.S. bushel","bushel",null,"volume",!1,!0,.03523907],["U.S. oil barrel","barrel",null,"volume",!1,!0,.158987295],["U.S. pint","pt",["us_pt"],"volume",!1,!0,.000473176473],["U.S. survey mile","survey_mi",null,"length",!1,!0,1609.347219],["U.S. survey/statute acre","us_acre",null,"area",!1,!0,4046.87261],["volt","V",null,"voltage",!0,!1,1],["watt","W",null,"power",!0,!0,1],["watt-hour","Wh",["wh"],"energy",!1,!0,3600],["weber","Wb",null,"magnetic_flux",!0,!1,1],["yard","yd",null,"length",!1,!0,.9144],["year","yr",null,"time",!1,!0,31557600]]);__publicField(this,"_binaryPrefixes",{Yi:["yobi",80,12089258196146292e8,"Yi","yotta"],Zi:["zebi",70,11805916207174113e5,"Zi","zetta"],Ei:["exbi",60,1152921504606847e3,"Ei","exa"],Pi:["pebi",50,0x4000000000000,"Pi","peta"],Ti:["tebi",40,1099511627776,"Ti","tera"],Gi:["gibi",30,1073741824,"Gi","giga"],Mi:["mebi",20,1048576,"Mi","mega"],ki:["kibi",10,1024,"ki","kilo"]});__publicField(this,"_unitPrefixes",{Y:["yotta",1e24,"Y"],Z:["zetta",1e21,"Z"],E:["exa",1e18,"E"],P:["peta",1e15,"P"],T:["tera",1e12,"T"],G:["giga",1e9,"G"],M:["mega",1e6,"M"],k:["kilo",1e3,"k"],h:["hecto",100,"h"],e:["dekao",10,"e"],d:["deci",.1,"d"],c:["centi",.01,"c"],m:["milli",.001,"m"],u:["micro",1e-6,"u"],n:["nano",1e-9,"n"],p:["pico",1e-12,"p"],f:["femto",1e-15,"f"],a:["atto",1e-18,"a"],z:["zepto",1e-21,"z"],y:["yocto",1e-24,"y"]})}calculate(number,fromUnit,toUnit){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number,fromUnit,toUnit);if(isError)return errorObject;const[numberObject,fromUnitObject,toUnitObject]=variants,numberValue=+numberObject.getValue(),fromUnitValue=`${fromUnitObject.getValue()}`,toUnitValue=`${toUnitObject.getValue()}`;if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);let from,fromMultiplier=1,to,toMultiplier=1;const{_from,_to}=this._lookupFromAndToUnits(fromUnitValue,toUnitValue);if(from=_from,to=_to,from===null){const{_from:_from2,_fromMultiplier}=this._lookupFromPrefix(fromUnitValue);from=_from2,fromMultiplier=_fromMultiplier}if(to===null){const{_to:_to2,_toMultiplier}=this._lookupToPrefix(toUnitValue);to=_to2,toMultiplier=_toMultiplier}if(from===null||to===null||from[3]!==to[3])return ErrorValueObject.create(ErrorType$1.NA);let result;return from[3]==="temperature"?(result=this._getTemperatureConversion(numberValue,from[1],to[1]),result=+result.toFixed(2)):result=numberValue*from[6]*fromMultiplier/(to[6]*toMultiplier),NumberValueObject.create(result)}_lookupFromAndToUnits(fromUnitValue,toUnitValue){let _from=null,_to=null,alt;for(let i=0;i<this._units.length;i++)alt=this._units[i][2]===null?[]:this._units[i][2],(this._units[i][1]===fromUnitValue||alt.indexOf(fromUnitValue)>=0)&&(_from=this._units[i]),(this._units[i][1]===toUnitValue||alt.indexOf(toUnitValue)>=0)&&(_to=this._units[i]);return{_from,_to}}_lookupFromPrefix(fromUnitValue){let _from=null,_fromMultiplier=1,baseFromUnit=fromUnitValue,alt;const fromBinaryPrefix=this._binaryPrefixes[fromUnitValue.substring(0,2)];let fromUnitPrefix=this._unitPrefixes[fromUnitValue.substring(0,1)];fromUnitValue.substring(0,2)==="da"&&(fromUnitPrefix=["dekao",10,"da"]),fromBinaryPrefix?(_fromMultiplier=fromBinaryPrefix[2],baseFromUnit=fromUnitValue.substring(2)):fromUnitPrefix&&(_fromMultiplier=fromUnitPrefix[1],baseFromUnit=fromUnitValue.substring(fromUnitPrefix[2].length));for(let j=0;j<this._units.length;j++)alt=this._units[j][2]===null?[]:this._units[j][2],(this._units[j][1]===baseFromUnit||alt.indexOf(baseFromUnit)>=0)&&(_from=this._units[j]);return{_from,_fromMultiplier}}_lookupToPrefix(toUnitValue){let _to=null,_toMultiplier=1,baseToUnit=toUnitValue,alt;const toBinaryPrefix=this._binaryPrefixes[toUnitValue.substring(0,2)];let toUnitPrefix=this._unitPrefixes[toUnitValue.substring(0,1)];toUnitValue.substring(0,2)==="da"&&(toUnitPrefix=["dekao",10,"da"]),toBinaryPrefix?(_toMultiplier=toBinaryPrefix[2],baseToUnit=toUnitValue.substring(2)):toUnitPrefix&&(_toMultiplier=toUnitPrefix[1],baseToUnit=toUnitValue.substring(toUnitPrefix[2].length));for(let k=0;k<this._units.length;k++)alt=this._units[k][2]===null?[]:this._units[k][2],(this._units[k][1]===baseToUnit||alt.indexOf(baseToUnit)>=0)&&(_to=this._units[k]);return{_to,_toMultiplier}}_getTemperatureConversion(number,from,to){switch(from){case"C":return this._centigradeConversion(number,to);case"F":return this._fahrenheitConversion(number,to);case"K":return this._kelvinConversion(number,to);case"Rank":return this._rankineConversion(number,to);case"Reau":return this._reaumurConversion(number,to);default:return number}}_centigradeConversion(number,to){switch(to){case"F":return number*9/5+32;case"K":return number+273.15;case"Rank":return(number+273.15)*9/5;case"Reau":return number*4/5;default:return number}}_fahrenheitConversion(number,to){switch(to){case"C":return(number-32)*5/9;case"K":return(number-32)*5/9+273.15;case"Rank":return number+459.67;case"Reau":return(number-32)*4/9;default:return number}}_kelvinConversion(number,to){switch(to){case"C":return number-273.15;case"F":return(number-273.15)*9/5+32;case"Rank":return number*9/5;case"Reau":return(number-273.15)*4/5;default:return number}}_rankineConversion(number,to){switch(to){case"C":return(number-491.67)*5/9;case"F":return number-459.67;case"K":return number*5/9;case"Reau":return(number-491.67)*4/9;default:return number}}_reaumurConversion(number,to){switch(to){case"C":return number*5/4;case"F":return number*9/4+32;case"K":return number*5/4+273.15;case"Rank":return number*9/4+491.67;default:return number}}};__name(_Convert,"Convert");let Convert=_Convert;const _Dec2bin=class _Dec2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,3}$/.test(`${numberValue}`)||numberValue<-512||numberValue>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0){const toStr=(512+numberValue).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=Number.parseInt(`${numberValue}`,10).toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Dec2bin,"Dec2bin");let Dec2bin=_Dec2bin;const _Dec2hex=class _Dec2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,12}$/.test(`${numberValue}`)||numberValue<-549755813888||numberValue>549755813887)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0)result=(1099511627776+numberValue).toString(16);else if(result=Number.parseInt(`${numberValue}`,10).toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Dec2hex,"Dec2hex");let Dec2hex=_Dec2hex;const _Dec2oct=class _Dec2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=Math.trunc(+numberObject.getValue());if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!/^-?[0-9]{1,9}$/.test(`${numberValue}`)||numberValue<-536870912||numberValue>536870911)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(numberValue<0)result=(1073741824+numberValue).toString(8);else if(result=Number.parseInt(`${numberValue}`,10).toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Dec2oct,"Dec2oct");let Dec2oct=_Dec2oct;const _Delta=class _Delta extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number1,number2){const _number2=number2!=null?number2:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number1,_number2);if(isError)return errorObject;const[number1Object,number2Object]=variants,number1Value=+number1Object.getValue(),number2Value=+number2Object.getValue();if(Number.isNaN(number1Value)||Number.isNaN(number2Value))return ErrorValueObject.create(ErrorType$1.VALUE);const result=number1Value===number2Value?1:0;return NumberValueObject.create(result)}};__name(_Delta,"Delta");let Delta=_Delta;const _Erf=class _Erf extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(lowerLimit,upperLimit){let result;if(upperLimit){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(lowerLimit,upperLimit);if(isError)return errorObject;const[lowerLimitObject,upperLimitObject]=variants,lowerLimitValue=+lowerLimitObject.getValue(),upperLimitValue=+upperLimitObject.getValue();if(Number.isNaN(lowerLimitValue)||Number.isNaN(upperLimitValue))return ErrorValueObject.create(ErrorType$1.VALUE);result=erf(upperLimitValue)-erf(lowerLimitValue)}else{const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(lowerLimit);if(isError)return errorObject;const[lowerLimitObject]=variants,lowerLimitValue=+lowerLimitObject.getValue();if(Number.isNaN(lowerLimitValue))return ErrorValueObject.create(ErrorType$1.VALUE);result=erf(lowerLimitValue)}return NumberValueObject.create(result)}};__name(_Erf,"Erf");let Erf=_Erf;const _ErfPrecise=class _ErfPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=erf(xValue);return NumberValueObject.create(result)}};__name(_ErfPrecise,"ErfPrecise");let ErfPrecise=_ErfPrecise;const _Erfc=class _Erfc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=erfc(xValue);return NumberValueObject.create(result)}};__name(_Erfc,"Erfc");let Erfc=_Erfc;const _ErfcPrecise=class _ErfcPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x);if(isError)return errorObject;const[xObject]=variants,xValue=+xObject.getValue();if(Number.isNaN(xValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=erfc(xValue);return NumberValueObject.create(result)}};__name(_ErfcPrecise,"ErfcPrecise");let ErfcPrecise=_ErfcPrecise;const _Gestep=class _Gestep extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,step){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);const _step=step!=null?step:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number,_step);if(isError)return errorObject;const[numberObject,stepObject]=variants,numberValue=+numberObject.getValue(),stepValue=+stepObject.getValue();if(Number.isNaN(numberValue)||Number.isNaN(stepValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=numberValue>=stepValue?1:0;return NumberValueObject.create(result)}};__name(_Gestep,"Gestep");let Gestep=_Gestep;const _Hex2bin=class _Hex2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const negative=numberValue.length===10&&numberValue.substring(0,1).toLocaleUpperCase()==="F",decimal=negative?Number.parseInt(numberValue,16)-1099511627776:Number.parseInt(numberValue,16);if(decimal<-512||decimal>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(negative){const toStr=(512+decimal).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=decimal.toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Hex2bin,"Hex2bin");let Hex2bin=_Hex2bin;const _Hex2dec=class _Hex2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result=Number.parseInt(numberValue,16);return result>=549755813888&&(result-=1099511627776),NumberValueObject.create(result)}};__name(_Hex2dec,"Hex2dec");let Hex2dec=_Hex2dec;const _Hex2oct=class _Hex2oct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidHexadecimalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const decimal=Number.parseInt(numberValue,16);if(decimal>536870911&&decimal<0xffe0000000)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(decimal>=0xffe0000000)result=(decimal-0xffc0000000).toString(8);else if(result=decimal.toString(8),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Hex2oct,"Hex2oct");let Hex2oct=_Hex2oct;const _Imabs=class _Imabs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Abs();return NumberValueObject.create(result)}};__name(_Imabs,"Imabs");let Imabs=_Imabs;const _Imaginary=class _Imaginary extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.getINum();return NumberValueObject.create(result)}};__name(_Imaginary,"Imaginary");let Imaginary=_Imaginary;const _Imargument=class _Imargument extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);if(complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=complex.Argument();return NumberValueObject.create(result)}};__name(_Imargument,"Imargument");let Imargument=_Imargument;const _Imconjugate=class _Imconjugate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Conjugate();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imconjugate,"Imconjugate");let Imconjugate=_Imconjugate;const _Imcos=class _Imcos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Cos();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcos,"Imcos");let Imcos=_Imcos;const _Imcosh=class _Imcosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Cosh();return complex.isError()?ErrorValueObject.create(ErrorType$1.NUM):typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcosh,"Imcosh");let Imcosh=_Imcosh;const _Imcot=class _Imcot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Cot();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcot,"Imcot");let Imcot=_Imcot;const _Imcsc=class _Imcsc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Csc();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcsc,"Imcsc");let Imcsc=_Imcsc;const _Imcsch=class _Imcsch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Csch();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imcsch,"Imcsch");let Imcsch=_Imcsch;const _Imdiv=class _Imdiv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(inumber1,inumber2){if(inumber1.isNull()||inumber2.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber1,inumber2);if(isError)return errorObject;const[inumber1Object,inumber2Object]=variants,inumber1Value=`${inumber1Object.getValue()}`,inumber2Value=`${inumber2Object.getValue()}`,complex1=new Complex$1(inumber1Value),complex2=new Complex$1(inumber2Value);if(complex1.isError()||complex2.isError()||complex1.isDifferentSuffixes(complex2)||complex2.getRealNum()===0&&complex2.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex1.Div(complex2);return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imdiv,"Imdiv");let Imdiv=_Imdiv;const _Imexp=class _Imexp extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Exp();return complex.isError()?ErrorValueObject.create(ErrorType$1.NUM):typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imexp,"Imexp");let Imexp=_Imexp;const _Imln=class _Imln extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Ln();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imln,"Imln");let Imln=_Imln;const _Imlog10=class _Imlog10 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Log10();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imlog10,"Imlog10");let Imlog10=_Imlog10;const _Imlog2=class _Imlog2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError()||complex.getRealNum()===0&&complex.getINum()===0)return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Log2();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imlog2,"Imlog2");let Imlog2=_Imlog2;const _Impower=class _Impower extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(inumber,number){if(inumber.isNull()||number.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber,number);if(isError)return errorObject;const[inumberObject,numberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const numberValue=+numberObject.getValue();if(Number.isNaN(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=complex.Power(numberValue);return complex.isError()?ErrorValueObject.create(ErrorType$1.NUM):typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Impower,"Impower");let Impower=_Impower;const _Improduct=class _Improduct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let result="";for(let i=0;i<variants.length;i++){if(result instanceof ErrorValueObject)return result;const variant=variants[i];if(variant.isArray()){let isError=!1,errorObject;if(variant.iterator(valueObject=>{if(result=this._handleSingleObject(valueObject,result),result instanceof ErrorValueObject)return isError=!0,errorObject=result,!1}),isError)return errorObject}else result=this._handleSingleObject(variant,result)}return result instanceof ErrorValueObject?result:typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}_handleSingleObject(variant,result){let _result=result;if(variant.isError())return variant;if(variant.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const value=`${variant.getValue()}`;if(typeof result!="number"&&!result){const complex=new Complex$1(value);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);_result=complex.toString()}else{const complex1=new Complex$1(result),complex2=new Complex$1(value);if(complex1.isError()||complex2.isError())return ErrorValueObject.create(ErrorType$1.NUM);if(complex1.isDifferentSuffixes(complex2))return ErrorValueObject.create(ErrorType$1.VALUE);_result=complex1.Product(complex2)}return _result}};__name(_Improduct,"Improduct");let Improduct=_Improduct;const _Imreal=class _Imreal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.getRealNum();return NumberValueObject.create(result)}};__name(_Imreal,"Imreal");let Imreal=_Imreal;const _Imsec=class _Imsec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Sec();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsec,"Imsec");let Imsec=_Imsec;const _Imsech=class _Imsech extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Sech();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsech,"Imsech");let Imsech=_Imsech;const _Imsin=class _Imsin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Sin();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsin,"Imsin");let Imsin=_Imsin;const _Imsinh=class _Imsinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Sinh();return complex.isError()?ErrorValueObject.create(ErrorType$1.NUM):typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsinh,"Imsinh");let Imsinh=_Imsinh;const _Imsqrt=class _Imsqrt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);if(complex.getRealNum()===0&&complex.getINum()===0)return NumberValueObject.create(0);const result=complex.Sqrt();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsqrt,"Imsqrt");let Imsqrt=_Imsqrt;const _Imsub=class _Imsub extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(inumber1,inumber2){if(inumber1.isNull()||inumber2.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber1,inumber2);if(isError)return errorObject;const[inumber1Object,inumber2Object]=variants,inumber1Value=`${inumber1Object.getValue()}`,inumber2Value=`${inumber2Object.getValue()}`,complex1=new Complex$1(inumber1Value),complex2=new Complex$1(inumber2Value);if(complex1.isError()||complex2.isError()||complex1.isDifferentSuffixes(complex2))return ErrorValueObject.create(ErrorType$1.NUM);const result=complex1.Sub(complex2);return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imsub,"Imsub");let Imsub=_Imsub;const _Imsum=class _Imsum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let result="";for(let i=0;i<variants.length;i++){if(result instanceof ErrorValueObject)return result;const variant=variants[i];if(variant.isArray()){let isError=!1,errorObject;if(variant.iterator(valueObject=>{if(result=this._handleSingleObject(valueObject,result),result instanceof ErrorValueObject)return isError=!0,errorObject=result,!1}),isError)return errorObject}else result=this._handleSingleObject(variant,result)}return result instanceof ErrorValueObject?result:typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}_handleSingleObject(variant,result){let _result=result;if(variant.isError())return variant;if(variant.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const value=`${variant.getValue()}`;if(typeof result!="number"&&!result){const complex=new Complex$1(value);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);_result=complex.toString()}else{const complex1=new Complex$1(result),complex2=new Complex$1(value);if(complex1.isError()||complex2.isError())return ErrorValueObject.create(ErrorType$1.NUM);if(complex1.isDifferentSuffixes(complex2))return ErrorValueObject.create(ErrorType$1.VALUE);_result=complex1.Sum(complex2)}return _result}};__name(_Imsum,"Imsum");let Imsum=_Imsum;const _Imtan=class _Imtan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(inumber){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(inumber);if(isError)return errorObject;const[inumberObject]=variants,inumberValue=`${inumberObject.getValue()}`,complex=new Complex$1(inumberValue);if(complex.isError())return ErrorValueObject.create(ErrorType$1.NUM);const result=complex.Tan();return typeof result=="number"||core.isRealNum(result)?NumberValueObject.create(+result):StringValueObject.create(result)}};__name(_Imtan,"Imtan");let Imtan=_Imtan;const _Oct2bin=class _Oct2bin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const negative=numberValue.length===10&&numberValue.substring(0,1)==="7",decimal=negative?Number.parseInt(numberValue,8)-1073741824:Number.parseInt(numberValue,8);if(decimal<-512||decimal>511)return ErrorValueObject.create(ErrorType$1.NUM);let result;if(negative){const toStr=(512+decimal).toString(2);result=`1${"0".repeat(9-toStr.length)}${toStr}`}else if(result=decimal.toString(2),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result)}};__name(_Oct2bin,"Oct2bin");let Oct2bin=_Oct2bin;const _Oct2dec=class _Oct2dec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);let result=Number.parseInt(numberValue,8);return result>=536870912&&(result-=1073741824),NumberValueObject.create(result)}};__name(_Oct2dec,"Oct2dec");let Oct2dec=_Oct2dec;const _Oct2hex=class _Oct2hex extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,places){if(number.isNull())return ErrorValueObject.create(ErrorType$1.NA);let placesValue=0;if(places){const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsArrayOrBoolean(places);if(isError2)return errorObject2;const[placesObject]=variants2;if(placesValue=Math.floor(+placesObject.getValue()),Number.isNaN(placesValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(placesValue<0||placesValue>10)return ErrorValueObject.create(ErrorType$1.NUM)}const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=`${numberObject.getValue()}`;if(!isValidOctalNumber(numberValue))return ErrorValueObject.create(ErrorType$1.NUM);const decimal=Number.parseInt(numberValue,8);let result;if(decimal>=536870912)result=`ff${(decimal+3221225472).toString(16)}`;else if(result=decimal.toString(16),places){if(placesValue<result.length)return ErrorValueObject.create(ErrorType$1.NUM);result="0".repeat(placesValue-result.length)+result}return StringValueObject.create(result.toLocaleUpperCase())}};__name(_Oct2hex,"Oct2hex");let Oct2hex=_Oct2hex;const functionEngineering=[[Besseli,FUNCTION_NAMES_ENGINEERING.BESSELI],[Besselj,FUNCTION_NAMES_ENGINEERING.BESSELJ],[Besselk,FUNCTION_NAMES_ENGINEERING.BESSELK],[Bessely,FUNCTION_NAMES_ENGINEERING.BESSELY],[Bin2dec,FUNCTION_NAMES_ENGINEERING.BIN2DEC],[Bin2hex,FUNCTION_NAMES_ENGINEERING.BIN2HEX],[Bin2oct,FUNCTION_NAMES_ENGINEERING.BIN2OCT],[Bitand,FUNCTION_NAMES_ENGINEERING.BITAND],[Bitlshift,FUNCTION_NAMES_ENGINEERING.BITLSHIFT],[Bitor,FUNCTION_NAMES_ENGINEERING.BITOR],[Bitrshift,FUNCTION_NAMES_ENGINEERING.BITRSHIFT],[Bitxor,FUNCTION_NAMES_ENGINEERING.BITXOR],[Complex,FUNCTION_NAMES_ENGINEERING.COMPLEX],[Convert,FUNCTION_NAMES_ENGINEERING.CONVERT],[Dec2bin,FUNCTION_NAMES_ENGINEERING.DEC2BIN],[Dec2hex,FUNCTION_NAMES_ENGINEERING.DEC2HEX],[Dec2oct,FUNCTION_NAMES_ENGINEERING.DEC2OCT],[Delta,FUNCTION_NAMES_ENGINEERING.DELTA],[Erf,FUNCTION_NAMES_ENGINEERING.ERF],[ErfPrecise,FUNCTION_NAMES_ENGINEERING.ERF_PRECISE],[Erfc,FUNCTION_NAMES_ENGINEERING.ERFC],[ErfcPrecise,FUNCTION_NAMES_ENGINEERING.ERFC_PRECISE],[Gestep,FUNCTION_NAMES_ENGINEERING.GESTEP],[Hex2bin,FUNCTION_NAMES_ENGINEERING.HEX2BIN],[Hex2dec,FUNCTION_NAMES_ENGINEERING.HEX2DEC],[Hex2oct,FUNCTION_NAMES_ENGINEERING.HEX2OCT],[Imabs,FUNCTION_NAMES_ENGINEERING.IMABS],[Imaginary,FUNCTION_NAMES_ENGINEERING.IMAGINARY],[Imargument,FUNCTION_NAMES_ENGINEERING.IMARGUMENT],[Imconjugate,FUNCTION_NAMES_ENGINEERING.IMCONJUGATE],[Imcos,FUNCTION_NAMES_ENGINEERING.IMCOS],[Imcosh,FUNCTION_NAMES_ENGINEERING.IMCOSH],[Imcot,FUNCTION_NAMES_ENGINEERING.IMCOT],[Imcsc,FUNCTION_NAMES_ENGINEERING.IMCSC],[Imcsch,FUNCTION_NAMES_ENGINEERING.IMCSCH],[Imdiv,FUNCTION_NAMES_ENGINEERING.IMDIV],[Imexp,FUNCTION_NAMES_ENGINEERING.IMEXP],[Imln,FUNCTION_NAMES_ENGINEERING.IMLN],[Imlog10,FUNCTION_NAMES_ENGINEERING.IMLOG10],[Imlog2,FUNCTION_NAMES_ENGINEERING.IMLOG2],[Impower,FUNCTION_NAMES_ENGINEERING.IMPOWER],[Improduct,FUNCTION_NAMES_ENGINEERING.IMPRODUCT],[Imreal,FUNCTION_NAMES_ENGINEERING.IMREAL],[Imsec,FUNCTION_NAMES_ENGINEERING.IMSEC],[Imsech,FUNCTION_NAMES_ENGINEERING.IMSECH],[Imsin,FUNCTION_NAMES_ENGINEERING.IMSIN],[Imsinh,FUNCTION_NAMES_ENGINEERING.IMSINH],[Imsqrt,FUNCTION_NAMES_ENGINEERING.IMSQRT],[Imsub,FUNCTION_NAMES_ENGINEERING.IMSUB],[Imsum,FUNCTION_NAMES_ENGINEERING.IMSUM],[Imtan,FUNCTION_NAMES_ENGINEERING.IMTAN],[Oct2bin,FUNCTION_NAMES_ENGINEERING.OCT2BIN],[Oct2dec,FUNCTION_NAMES_ENGINEERING.OCT2DEC],[Oct2hex,FUNCTION_NAMES_ENGINEERING.OCT2HEX]];var FUNCTION_NAMES_FINANCIAL=(FUNCTION_NAMES_FINANCIAL2=>(FUNCTION_NAMES_FINANCIAL2.ACCRINT="ACCRINT",FUNCTION_NAMES_FINANCIAL2.ACCRINTM="ACCRINTM",FUNCTION_NAMES_FINANCIAL2.AMORDEGRC="AMORDEGRC",FUNCTION_NAMES_FINANCIAL2.AMORLINC="AMORLINC",FUNCTION_NAMES_FINANCIAL2.COUPDAYBS="COUPDAYBS",FUNCTION_NAMES_FINANCIAL2.COUPDAYS="COUPDAYS",FUNCTION_NAMES_FINANCIAL2.COUPDAYSNC="COUPDAYSNC",FUNCTION_NAMES_FINANCIAL2.COUPNCD="COUPNCD",FUNCTION_NAMES_FINANCIAL2.COUPNUM="COUPNUM",FUNCTION_NAMES_FINANCIAL2.COUPPCD="COUPPCD",FUNCTION_NAMES_FINANCIAL2.CUMIPMT="CUMIPMT",FUNCTION_NAMES_FINANCIAL2.CUMPRINC="CUMPRINC",FUNCTION_NAMES_FINANCIAL2.DB="DB",FUNCTION_NAMES_FINANCIAL2.DDB="DDB",FUNCTION_NAMES_FINANCIAL2.DISC="DISC",FUNCTION_NAMES_FINANCIAL2.DOLLARDE="DOLLARDE",FUNCTION_NAMES_FINANCIAL2.DOLLARFR="DOLLARFR",FUNCTION_NAMES_FINANCIAL2.DURATION="DURATION",FUNCTION_NAMES_FINANCIAL2.EFFECT="EFFECT",FUNCTION_NAMES_FINANCIAL2.FV="FV",FUNCTION_NAMES_FINANCIAL2.FVSCHEDULE="FVSCHEDULE",FUNCTION_NAMES_FINANCIAL2.INTRATE="INTRATE",FUNCTION_NAMES_FINANCIAL2.IPMT="IPMT",FUNCTION_NAMES_FINANCIAL2.IRR="IRR",FUNCTION_NAMES_FINANCIAL2.ISPMT="ISPMT",FUNCTION_NAMES_FINANCIAL2.MDURATION="MDURATION",FUNCTION_NAMES_FINANCIAL2.MIRR="MIRR",FUNCTION_NAMES_FINANCIAL2.NOMINAL="NOMINAL",FUNCTION_NAMES_FINANCIAL2.NPER="NPER",FUNCTION_NAMES_FINANCIAL2.NPV="NPV",FUNCTION_NAMES_FINANCIAL2.ODDFPRICE="ODDFPRICE",FUNCTION_NAMES_FINANCIAL2.ODDFYIELD="ODDFYIELD",FUNCTION_NAMES_FINANCIAL2.ODDLPRICE="ODDLPRICE",FUNCTION_NAMES_FINANCIAL2.ODDLYIELD="ODDLYIELD",FUNCTION_NAMES_FINANCIAL2.PDURATION="PDURATION",FUNCTION_NAMES_FINANCIAL2.PMT="PMT",FUNCTION_NAMES_FINANCIAL2.PPMT="PPMT",FUNCTION_NAMES_FINANCIAL2.PRICE="PRICE",FUNCTION_NAMES_FINANCIAL2.PRICEDISC="PRICEDISC",FUNCTION_NAMES_FINANCIAL2.PRICEMAT="PRICEMAT",FUNCTION_NAMES_FINANCIAL2.PV="PV",FUNCTION_NAMES_FINANCIAL2.RATE="RATE",FUNCTION_NAMES_FINANCIAL2.RECEIVED="RECEIVED",FUNCTION_NAMES_FINANCIAL2.RRI="RRI",FUNCTION_NAMES_FINANCIAL2.SLN="SLN",FUNCTION_NAMES_FINANCIAL2.SYD="SYD",FUNCTION_NAMES_FINANCIAL2.TBILLEQ="TBILLEQ",FUNCTION_NAMES_FINANCIAL2.TBILLPRICE="TBILLPRICE",FUNCTION_NAMES_FINANCIAL2.TBILLYIELD="TBILLYIELD",FUNCTION_NAMES_FINANCIAL2.VDB="VDB",FUNCTION_NAMES_FINANCIAL2.XIRR="XIRR",FUNCTION_NAMES_FINANCIAL2.XNPV="XNPV",FUNCTION_NAMES_FINANCIAL2.YIELD="YIELD",FUNCTION_NAMES_FINANCIAL2.YIELDDISC="YIELDDISC",FUNCTION_NAMES_FINANCIAL2.YIELDMAT="YIELDMAT",FUNCTION_NAMES_FINANCIAL2))(FUNCTION_NAMES_FINANCIAL||{});function calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequency,basis){const coupDateSerialNumber=calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequency),{days}=getTwoDateDaysByBasis(coupDateSerialNumber,settlementSerialNumber,basis);return days}__name(calculateCoupdaybs,"calculateCoupdaybs");function calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequency,basis){let result;if(basis===1){const beforeSettlementDateSerialNumber=calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequency);let coupDate=excelSerialToDate(beforeSettlementDateSerialNumber);coupDate=dateAddMonths(coupDate,12/frequency);const afterSettlementDateSerialNumber=excelDateSerial(coupDate);beforeSettlementDateSerialNumber<0&&frequency===1?result=365:result=afterSettlementDateSerialNumber-beforeSettlementDateSerialNumber}else basis===3?result=365/frequency:result=360/frequency;return result}__name(calculateCoupdays,"calculateCoupdays");function calculateCoupncd(settlementSerialNumber,maturitySerialNumber,frequency){const settlementDate=excelSerialToDate(settlementSerialNumber);let coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate=dateAddMonths(coupDate,-12/frequency);return coupDate=dateAddMonths(coupDate,12/frequency),excelDateSerial(coupDate)}__name(calculateCoupncd,"calculateCoupncd");function calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency){let result=0;const settlementDate=excelSerialToDate(settlementSerialNumber);let coupDate=excelSerialToDate(maturitySerialNumber);for(;coupDate>settlementDate;)coupDate=dateAddMonths(coupDate,-12/frequency),result++;return result}__name(calculateCoupnum,"calculateCoupnum");function calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequency){const settlementDate=excelSerialToDate(settlementSerialNumber);let coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate=dateAddMonths(coupDate,-12/frequency);return excelDateSerial(coupDate)}__name(calculateCouppcd,"calculateCouppcd");function calculateDuration(settlementSerialNumber,maturitySerialNumber,coupon,yld,frequency,basis){const coupdaybs=calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequency,basis),coupdays=calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequency,basis),coupnum=calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency),coupdaysDiff=(coupdays-coupdaybs)/coupdays-1,_yld=yld/frequency+1,_coupon=coupon*100/frequency;let duration=0,den=0;for(let i=1;i<=coupnum;i++){const index2=i+coupdaysDiff,num2=_coupon/_yld**index2;duration+=index2*num2,den+=num2}const index=coupnum+coupdaysDiff,num=100/_yld**index;return duration+=index*num,den+=num,duration/den/frequency}__name(calculateDuration,"calculateDuration");function calculatePMT(rate,nper,pv,fv,type){let result;if(rate===0)result=(pv+fv)/nper;else{const term=(1+rate)**nper;result=type===1?(fv*rate/(term-1)+pv*rate/(1-1/term))/(1+rate):fv*rate/(term-1)+pv*rate/(1-1/term)}return-result}__name(calculatePMT,"calculatePMT");function calculateFV(rate,nper,pmt,pv,type){let result;if(rate===0)result=pv+pmt*nper;else{if(rate===-1&&nper===0)return Number.NaN;const term=(1+rate)**nper;result=type===1?pv*term+pmt*(1+rate)*(term-1)/rate:pv*term+pmt*(term-1)/rate}return-result}__name(calculateFV,"calculateFV");function calculateIPMT(rate,per,nper,pv,fv,type){const payment=calculatePMT(rate,nper,pv,fv,type);return(per===1?type===1?0:-pv:type===1?calculateFV(rate,per-2,payment,pv,1)-payment:calculateFV(rate,per-1,payment,pv,0))*rate}__name(calculateIPMT,"calculateIPMT");function calculateNpv(rate,values){let res=0;for(let i=1;i<=values.length;i++)res+=values[i-1]/(1+rate)**i;return res}__name(calculateNpv,"calculateNpv");function calculateOddFPrice(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis){const DFC=getPositiveDaysBetween(issueSerialNumber,firstCouponSerialNumber,basis),E=calculateCoupdays(settlementSerialNumber,firstCouponSerialNumber,frequency,basis);return DFC<E?calculateOddShortFirstCoupon(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis,DFC,E):calculateOddLongFirstCoupon(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis,E)}__name(calculateOddFPrice,"calculateOddFPrice");function calculateOddShortFirstCoupon(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis,DFC,E){let result=0;const N2=calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency),DSC=getPositiveDaysBetween(settlementSerialNumber,firstCouponSerialNumber,basis);result+=redemption/(1+yld/frequency)**(N2-1+DSC/E),result+=100*rate/frequency*DFC/E/(1+yld/frequency)**(DSC/E);for(let k=2;k<=N2;k++)result+=100*rate/frequency/(1+yld/frequency)**(k-1+DSC/E);const A=getPositiveDaysBetween(issueSerialNumber,settlementSerialNumber,basis);return result-=100*rate/frequency*A/E,result}__name(calculateOddShortFirstCoupon,"calculateOddShortFirstCoupon");function calculateOddLongFirstCoupon(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis,E){let result=0;const N2=calculateCoupnum(firstCouponSerialNumber,maturitySerialNumber,frequency),Nq=getCouponsNumber(firstCouponSerialNumber,settlementSerialNumber,12/frequency,!0);let DSC;if(basis===2||basis===3){const coupncd=calculateCoupncd(settlementSerialNumber,firstCouponSerialNumber,frequency);DSC=getPositiveDaysBetween(settlementSerialNumber,coupncd,basis)}else{const couppcd=calculateCouppcd(settlementSerialNumber,firstCouponSerialNumber,frequency),{days}=getTwoDateDaysByBasis(couppcd,settlementSerialNumber,basis);DSC=E-days}result+=redemption/(1+yld/frequency)**(N2+Nq+DSC/E);const NC=calculateCoupnum(issueSerialNumber,firstCouponSerialNumber,frequency);let lateCoupon=firstCouponSerialNumber,DCiDivNLiSum=0,AiDivNLiSum=0;for(let index=NC;index>=1;index--){const earlyCoupon=getDateSerialNumberByMonths(lateCoupon,-12/frequency,!1),NLi=basis===1?getPositiveDaysBetween(earlyCoupon,lateCoupon,basis):E,DCi=index>1?NLi:getPositiveDaysBetween(issueSerialNumber,lateCoupon,basis);DCiDivNLiSum+=DCi/NLi;const startDate=issueSerialNumber>earlyCoupon?issueSerialNumber:earlyCoupon,endDate=settlementSerialNumber<lateCoupon?settlementSerialNumber:lateCoupon,Ai=getPositiveDaysBetween(startDate,endDate,basis);AiDivNLiSum+=Ai/NLi,lateCoupon=earlyCoupon}result+=100*rate/frequency*DCiDivNLiSum/(1+yld/frequency)**(Nq+DSC/E);for(let k=1;k<=N2;k++)result+=100*rate/frequency/(1+yld/frequency)**(k+Nq+DSC/E);return result-=100*rate/frequency*AiDivNLiSum,result}__name(calculateOddLongFirstCoupon,"calculateOddLongFirstCoupon");function getPositiveDaysBetween(startDateSerialNumber,endDateSerialNumber,basis){const{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis);return startDateSerialNumber<endDateSerialNumber?days:0}__name(getPositiveDaysBetween,"getPositiveDaysBetween");function validDaysBetweenIsWholeFrequencyByTwoDate(date1SerialNumber,date2SerialNumber,frequency){const date1=excelSerialToDate(date1SerialNumber),date1Year=date1.getUTCFullYear(),date1Month=date1.getUTCMonth(),date1Day=date1.getUTCDate(),date1LastDayOfMonth=lastDayOfMonth(date1Year,date1Month,date1Day),date2=excelSerialToDate(date2SerialNumber),date2Year=date2.getUTCFullYear(),date2Month=date2.getUTCMonth(),date2Day=date2.getUTCDate(),date2LastDayOfMonth=lastDayOfMonth(date2Year,date2Month,date2Day);return!(date1Day!==date2Day&&!(date1LastDayOfMonth&&date2LastDayOfMonth)||Math.abs((date2Year-date1Year)*12+(date2Month-date1Month))%(12/frequency)!==0)}__name(validDaysBetweenIsWholeFrequencyByTwoDate,"validDaysBetweenIsWholeFrequencyByTwoDate");function validCouppcdIsGte0ByTwoDate(date1SerialNumber,date2SerialNumber,frequency){return calculateCouppcd(date1SerialNumber,date2SerialNumber,frequency)>=0}__name(validCouppcdIsGte0ByTwoDate,"validCouppcdIsGte0ByTwoDate");function getDateSerialNumberByMonths(serialNumber,months,returnLastDay){let date=excelSerialToDate(serialNumber);if(date=dateAddMonths(date,months),returnLastDay){const year=date.getUTCFullYear(),month=date.getUTCMonth(),daysInMonth=getDaysInMonth(year,month);date.setUTCDate(daysInMonth)}return excelDateSerial(date)}__name(getDateSerialNumberByMonths,"getDateSerialNumberByMonths");function getCouponsNumber(startDateSerialNumber,endDateSerialNumber,months,isWholeNumber){const startDate=excelSerialToDate(startDateSerialNumber),endDate=excelSerialToDate(endDateSerialNumber),startDateYear=startDate.getUTCFullYear(),startDateMonth=startDate.getUTCMonth(),startDateDay=startDate.getUTCDate(),endDateYear=endDate.getUTCFullYear(),endDateMonth=endDate.getUTCMonth(),endDateDay=endDate.getUTCDate(),endOfMonthTemp=lastDayOfMonth(startDateYear,startDateMonth,startDateDay),endOfMonth=!endOfMonthTemp&&startDateMonth!==1&&startDateDay>28&&startDateDay<getDaysInMonth(startDateYear,startDateMonth)?lastDayOfMonth(endDateYear,endDateMonth,endDateDay):endOfMonthTemp,newDateSerialNumber=getDateSerialNumberByMonths(endDateSerialNumber,0,endOfMonth);let coupons=+isWholeNumber-0+ +(endDateSerialNumber<newDateSerialNumber),frontDateSerialNumber=getDateSerialNumberByMonths(newDateSerialNumber,months,endOfMonth);for(;!(months>0?frontDateSerialNumber>=endDateSerialNumber:frontDateSerialNumber<=endDateSerialNumber);)frontDateSerialNumber=getDateSerialNumberByMonths(frontDateSerialNumber,months,endOfMonth),coupons++;return coupons}__name(getCouponsNumber,"getCouponsNumber");function getResultByGuessIterF(guess,iterF){let eps=1,nMC=0,x=guess,xN;for(;eps>1e-7&&nMC<500;){const den=(iterF(x+1e-7)-iterF(x-1e-7))/2e-7;xN=x-iterF(x)/den,nMC++,eps=Math.abs(xN-x),x=xN}return Number.isNaN(x)||Math.abs(x)===1/0||nMC===500?guessIsNaNorInfinity(guess,iterF):x}__name(getResultByGuessIterF,"getResultByGuessIterF");function guessIsNaNorInfinity(guess,iterF){const max2=Number.MAX_VALUE,min2=-1,step=1.6;let low=guess-.01<=min2?min2+1e-7:guess-.01,high=guess+.01>=max2?max2-1e-7:guess+.01,xBegin,xEnd,currentIter=0;if(guess<=min2||guess>=max2)return ErrorValueObject.create(ErrorType$1.NUM);for(let i=0;i<60;i++){xBegin=low<=min2?min2+1e-7:low,xEnd=high>=max2?max2-1e-7:high;const x=iterF(xBegin),y=iterF(xEnd);if(x*y<=0)break;if(x*y>0)low=xBegin+step*(xBegin-xEnd),high=xEnd+step*(xEnd-xBegin);else return ErrorValueObject.create(ErrorType$1.NUM);if(i===59)return ErrorValueObject.create(ErrorType$1.NUM)}xBegin=xBegin,xEnd=xEnd;let fXbegin=iterF(xBegin);const fXend=iterF(xEnd);let fXi,xI;if(Math.abs(fXbegin)<1e-7||Math.abs(fXend)<1e-7)return ErrorValueObject.create(ErrorType$1.NUM);do xI=xBegin+(xEnd-xBegin)/2,fXi=iterF(xI),fXbegin*fXi<0?xEnd=xI:xBegin=xI,fXbegin=iterF(xBegin),currentIter++;while(Math.abs(fXi)>1e-7&&currentIter<60);return xI}__name(guessIsNaNorInfinity,"guessIsNaNorInfinity");function calculatePrice(settlementSerialNumber,maturitySerialNumber,rate,yld,redemption,frequency,basis){const N2=calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency),E=calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequency,basis),A=calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequency,basis);if(N2===1){const DSR=E-A,T1=100*rate/frequency+redemption,T2=yld/frequency*DSR/E+1,T3=100*rate/frequency*A/E;return T1/T2-T3}const DSC=E-A;let result=redemption/(1+yld/frequency)**(N2-1+DSC/E);for(let k=1;k<=N2;k++)result+=100*rate/frequency/(1+yld/frequency)**(k-1+DSC/E);return result-=100*rate/frequency*A/E,result}__name(calculatePrice,"calculatePrice");function calculateDDB(cost,salvage,life,period,factor){let oldCost=0,fdl=factor/life;fdl>=1?(fdl=1,oldCost=period===1?cost:0):oldCost=cost*(1-fdl)**(period-1);const newCost=cost*(1-fdl)**period;let result=0;return newCost<salvage?result=oldCost-salvage:result=oldCost-newCost,result<0&&(result=0),result}__name(calculateDDB,"calculateDDB");const _Accrint=class _Accrint extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",8)}calculate(issue,firstInterest,settlement,rate,par,frequency,basis,calcMethod){const _basis=basis!=null?basis:NumberValueObject.create(0),_calcMethod=calcMethod!=null?calcMethod:BooleanValueObject.create(!0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(issue,firstInterest,settlement,rate,par,frequency,_basis);if(isError)return errorObject;const[issueObject,firstInterestObject,settlementObject,rateObject,parObject,frequencyObject,basisObject]=variants,issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const firstInterestSerialNumber=getDateSerialNumberByObject(firstInterestObject);if(typeof firstInterestSerialNumber!="number")return firstInterestSerialNumber;const settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const rateValue=+rateObject.getValue(),parValue=+parObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue()),calcMethodValue=+_calcMethod.getValue();return Number.isNaN(rateValue)||Number.isNaN(parValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue)||Number.isNaN(calcMethodValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||parValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(issueSerialNumber)>=Math.floor(settlementSerialNumber)?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(issueSerialNumber,firstInterestSerialNumber,settlementSerialNumber,rateValue,parValue,frequencyValue,basisValue,calcMethodValue)}_getResult(issueSerialNumber,firstInterestSerialNumber,settlementSerialNumber,rateValue,parValue,frequencyValue,basisValue,calcMethodValue){let couppcd=calculateCouppcd(issueSerialNumber,firstInterestSerialNumber,frequencyValue);if(couppcd<=0)return NumberValueObject.create(0);couppcd=calculateCouppcd(settlementSerialNumber,firstInterestSerialNumber,frequencyValue);const numMonths=12/frequencyValue,firstInterestDate=excelSerialToDate(firstInterestSerialNumber),firstInterestDateYear=firstInterestDate.getUTCFullYear(),firstInterestDateMonth=firstInterestDate.getUTCMonth(),firstInterestDateDay=firstInterestDate.getUTCDate(),lastDayOfMonthF=lastDayOfMonth(firstInterestDateYear,firstInterestDateMonth,firstInterestDateDay);let coupDateSerialNumber=getDateSerialNumberByMonths(firstInterestSerialNumber,-numMonths,lastDayOfMonthF);if(settlementSerialNumber>firstInterestSerialNumber&&calcMethodValue)for(coupDateSerialNumber=firstInterestSerialNumber;coupDateSerialNumber<settlementSerialNumber;)coupDateSerialNumber=getDateSerialNumberByMonths(coupDateSerialNumber,numMonths,lastDayOfMonthF);let firstDateSerialNumber=issueSerialNumber>coupDateSerialNumber?issueSerialNumber:coupDateSerialNumber,{days}=getTwoDateDaysByBasis(firstDateSerialNumber,settlementSerialNumber,basisValue);if(couppcd>=issueSerialNumber){const{days:DFS}=getTwoDateDaysByBasis(firstDateSerialNumber,settlementSerialNumber,basisValue?4:0);days=DFS}settlementSerialNumber<firstDateSerialNumber&&(days=-days);let coupdays=calculateCoupdays(coupDateSerialNumber,firstInterestSerialNumber,frequencyValue,basisValue),accruedDaysSum=days/coupdays,startDateSerialNumber=coupDateSerialNumber,endDateSerialNumber=issueSerialNumber;for(;startDateSerialNumber>issueSerialNumber;){endDateSerialNumber=startDateSerialNumber,startDateSerialNumber=getDateSerialNumberByMonths(startDateSerialNumber,-numMonths,lastDayOfMonthF),firstDateSerialNumber=issueSerialNumber>startDateSerialNumber?issueSerialNumber:startDateSerialNumber;const{days:DFE}=getTwoDateDaysByBasis(firstDateSerialNumber,endDateSerialNumber,basisValue);if(basisValue===0)endDateSerialNumber>=firstDateSerialNumber||issueSerialNumber<=startDateSerialNumber?days=DFE:days=-DFE,coupdays=calculateCoupdays(startDateSerialNumber,endDateSerialNumber,frequencyValue,basisValue);else if(days=endDateSerialNumber<firstDateSerialNumber?-DFE:DFE,basisValue===3)coupdays=365/frequencyValue;else{const{days:DSE}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basisValue);coupdays=endDateSerialNumber<startDateSerialNumber?-DSE:DSE}accruedDaysSum+=issueSerialNumber<=startDateSerialNumber?calcMethodValue?1:0:days/coupdays}const result=parValue*rateValue/frequencyValue*accruedDaysSum;return NumberValueObject.create(result)}};__name(_Accrint,"Accrint");let Accrint=_Accrint;const _Accrintm=class _Accrintm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(issue,settlement,rate,par,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(issue,settlement,rate,par,_basis);if(isError)return errorObject;const[issueObject,settlementObject,rateObject,parObject,basisObject]=variants,issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const rateValue=+rateObject.getValue(),parValue=+parObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(parValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<=0||parValue<=0||basisValue<0||basisValue>4||Math.floor(issueSerialNumber)>Math.floor(settlementSerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);if(Math.floor(issueSerialNumber)===Math.floor(settlementSerialNumber))return NumberValueObject.create(0);const{days,yearDays}=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue),result=parValue*rateValue*days/yearDays;return NumberValueObject.create(result)}};__name(_Accrintm,"Accrintm");let Accrintm=_Accrintm;const _Amorlinc=class _Amorlinc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",7)}calculate(cost,datePurchased,firstPeriod,salvage,period,rate,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(cost,datePurchased,firstPeriod,salvage,period,rate,_basis);if(isError)return errorObject;const[costObject,datePurchasedObject,firstPeriodObject,salvageObject,periodObject,rateObject,basisObject]=variants,datePurchasedSerialNumber=getDateSerialNumberByObject(datePurchasedObject);if(typeof datePurchasedSerialNumber!="number")return datePurchasedSerialNumber;const firstPeriodSerialNumber=getDateSerialNumberByObject(firstPeriodObject);if(typeof firstPeriodSerialNumber!="number")return firstPeriodSerialNumber;const costValue=+costObject.getValue(),salvageValue=+salvageObject.getValue();let periodValue=+periodObject.getValue();const rateValue=+rateObject.getValue(),basisValue=Math.floor(+basisObject.getValue());return Number.isNaN(costValue)||Number.isNaN(salvageValue)||Number.isNaN(periodValue)||Number.isNaN(rateValue)||Number.isNaN(basisValue)?ErrorValueObject.create(ErrorType$1.VALUE):costValue<=0||salvageValue<0||costValue<salvageValue||Math.floor(datePurchasedSerialNumber)>Math.floor(firstPeriodSerialNumber)||periodValue<0||rateValue<=0||![0,1,3,4].includes(basisValue)?ErrorValueObject.create(ErrorType$1.NUM):(periodValue>1?periodValue=Math.floor(periodValue):periodValue=Math.ceil(periodValue),this._getResult(costValue,datePurchasedSerialNumber,firstPeriodSerialNumber,salvageValue,periodValue,rateValue,basisValue))}_getResult(costValue,datePurchasedSerialNumber,firstPeriodSerialNumber,salvageValue,periodValue,rateValue,basisValue){const totalDepreciation=costValue-salvageValue,baseDepreciation=costValue*rateValue,{days,yearDays}=getTwoDateDaysByBasis(datePurchasedSerialNumber,firstPeriodSerialNumber,basisValue),firstPeriodYearsFraction=days/yearDays,life=Math.ceil(totalDepreciation/baseDepreciation-firstPeriodYearsFraction);if(life<0)return NumberValueObject.create(0);let result=baseDepreciation;return periodValue===0?result=baseDepreciation*firstPeriodYearsFraction:periodValue===life?result=totalDepreciation-baseDepreciation*(firstPeriodYearsFraction+periodValue-1):periodValue>life&&(result=0),NumberValueObject.create(result)}};__name(_Amorlinc,"Amorlinc");let Amorlinc=_Amorlinc;const _Coupdaybs=class _Coupdaybs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequencyValue,basisValue);return NumberValueObject.create(result)}};__name(_Coupdaybs,"Coupdaybs");let Coupdaybs=_Coupdaybs;const _Coupdays=class _Coupdays extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequencyValue,basisValue);return NumberValueObject.create(result)}};__name(_Coupdays,"Coupdays");let Coupdays=_Coupdays;const _Coupdaysnc=class _Coupdaysnc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const settlementDate=excelSerialToDate(settlementSerialNumber),coupDate=excelSerialToDate(maturitySerialNumber);for(coupDate.setUTCFullYear(settlementDate.getUTCFullYear()),coupDate<settlementDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>settlementDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequencyValue);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequencyValue);const coupDateSerialNumber=excelDateSerial(coupDate),{days}=getTwoDateDaysByBasis(settlementSerialNumber,coupDateSerialNumber,basisValue);return NumberValueObject.create(days)}};__name(_Coupdaysnc,"Coupdaysnc");let Coupdaysnc=_Coupdaysnc;const _Coupncd=class _Coupncd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCoupncd(settlementSerialNumber,maturitySerialNumber,frequencyValue);return NumberValueObject.create(result)}};__name(_Coupncd,"Coupncd");let Coupncd=_Coupncd;const _Coupnum=class _Coupnum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber)||calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequencyValue)<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequencyValue);return NumberValueObject.create(result)}};__name(_Coupnum,"Coupnum");let Coupnum=_Coupnum;const _Couppcd=class _Couppcd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(settlement,maturity,frequency,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);let result=calculateCouppcd(settlementSerialNumber,maturitySerialNumber,frequencyValue);return result<0&&(result=0),NumberValueObject.create(result)}};__name(_Couppcd,"Couppcd");let Couppcd=_Couppcd;const _Cumipmt=class _Cumipmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",6)}calculate(rate,nper,pv,startPeriod,endPeriod,type){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(rate,nper,pv,startPeriod,endPeriod,type);if(isError)return errorObject;const[rateObject,nperObject,pvObject,startPeriodObject,endPeriodObject,typeObject]=variants,rateValue=+rateObject.getValue(),nperValue=+nperObject.getValue(),pvValue=+pvObject.getValue(),startPeriodValue=+startPeriodObject.getValue(),endPeriodValue=+endPeriodObject.getValue(),typeValue=+typeObject.getValue();return Number.isNaN(rateValue)||Number.isNaN(nperValue)||Number.isNaN(pvValue)||Number.isNaN(startPeriodValue)||Number.isNaN(endPeriodValue)||Number.isNaN(typeValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||nperValue<=0||pvValue<=0||startPeriodValue<1||endPeriodValue<1||startPeriodValue>endPeriodValue||startPeriodValue>nperValue||endPeriodValue>nperValue||![0,1].includes(typeValue)?ErrorValueObject.create(ErrorType$1.NUM):Math.trunc(startPeriodValue)!==startPeriodValue&&Math.trunc(endPeriodValue)!==endPeriodValue&&Math.trunc(startPeriodValue)===Math.trunc(endPeriodValue)?NumberValueObject.create(0):this._getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue)}_getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue){const payment=calculatePMT(rateValue,nperValue,pvValue,0,typeValue);let result=0,_startPeriodValue=Math.ceil(startPeriodValue);_startPeriodValue===1&&(typeValue===0&&(result=-pvValue),_startPeriodValue++);let canNotCalculate=!1;for(let i=_startPeriodValue;i<=endPeriodValue;i++){const principal=typeValue===1?calculateFV(rateValue,i-2,payment,pvValue,1):calculateFV(rateValue,i-1,payment,pvValue,0);if(principal===0){canNotCalculate=!0;break}result+=typeValue===1?principal-payment:principal}return result*=rateValue,(result<payment*(endPeriodValue-startPeriodValue+1)||canNotCalculate)&&(result=payment*(endPeriodValue-startPeriodValue+1)),NumberValueObject.create(result)}};__name(_Cumipmt,"Cumipmt");let Cumipmt=_Cumipmt;const _Cumprinc=class _Cumprinc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",6)}calculate(rate,nper,pv,startPeriod,endPeriod,type){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(rate,nper,pv,startPeriod,endPeriod,type);if(isError)return errorObject;const[rateObject,nperObject,pvObject,startPeriodObject,endPeriodObject,typeObject]=variants,rateValue=+rateObject.getValue(),nperValue=+nperObject.getValue(),pvValue=+pvObject.getValue(),startPeriodValue=+startPeriodObject.getValue(),endPeriodValue=+endPeriodObject.getValue(),typeValue=+typeObject.getValue();return Number.isNaN(rateValue)||Number.isNaN(nperValue)||Number.isNaN(pvValue)||Number.isNaN(startPeriodValue)||Number.isNaN(endPeriodValue)||Number.isNaN(typeValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<=0||nperValue<=0||pvValue<=0||startPeriodValue<1||endPeriodValue<1||startPeriodValue>endPeriodValue||![0,1].includes(typeValue)?ErrorValueObject.create(ErrorType$1.NUM):Math.trunc(startPeriodValue)!==startPeriodValue&&Math.trunc(endPeriodValue)!==endPeriodValue&&Math.trunc(startPeriodValue)===Math.trunc(endPeriodValue)?NumberValueObject.create(0):this._getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue)}_getResult(rateValue,nperValue,pvValue,startPeriodValue,endPeriodValue,typeValue){const payment=calculatePMT(rateValue,nperValue,pvValue,0,typeValue);let result=0,_startPeriodValue=Math.ceil(startPeriodValue);_startPeriodValue===1&&(result=typeValue===0?payment+pvValue*rateValue:payment,_startPeriodValue++);for(let i=_startPeriodValue;i<=endPeriodValue;i++)result+=typeValue===1?payment-(calculateFV(rateValue,i-2,payment,pvValue,1)-payment)*rateValue:payment-calculateFV(rateValue,i-1,payment,pvValue,0)*rateValue;return NumberValueObject.create(result)}};__name(_Cumprinc,"Cumprinc");let Cumprinc=_Cumprinc;const _Db=class _Db extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(cost,salvage,life,period,month){let _month=month!=null?month:NumberValueObject.create(12);_month.isNull()&&(_month=NumberValueObject.create(12));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,period.isArray()?period.getRowCount():1,_month.isArray()?_month.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,period.isArray()?period.getColumnCount():1,_month.isArray()?_month.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),periodArray=expandArrayValueObject(maxRowLength,maxColumnLength,period,ErrorValueObject.create(ErrorType$1.NA)),monthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_month,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),periodObject=periodArray.get(rowIndex,columnIndex),monthObject=monthArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,periodObject,monthObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_periodObject,_monthObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue();let periodValue=+_periodObject.getValue();const monthValue=Math.floor(+_monthObject.getValue());return costValue<0||salvageValue<0||lifeValue<=0||periodValue<=0||Math.floor(periodValue)>Math.floor(lifeValue)||monthValue<1||monthValue>12?ErrorValueObject.create(ErrorType$1.NUM):(periodValue<1&&(periodValue=1),periodValue=Math.floor(periodValue),this._getResult(costValue,salvageValue,lifeValue,periodValue,monthValue,rowIndex,columnIndex))});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(costValue,salvageValue,lifeValue,periodValue,monthValue,rowIndex,columnIndex){const rate=+(1-(salvageValue/costValue)**(1/lifeValue)).toFixed(3),initial=costValue*rate*monthValue/12;let total=initial,current=0;const ceiling=periodValue===lifeValue?lifeValue-1:periodValue;for(let i=2;i<=ceiling;i++)current=(costValue-total)*rate,total+=current;let result;return periodValue===1?result=initial:periodValue===lifeValue?result=(costValue-total)*rate:result=current,Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)}};__name(_Db,"Db");let Db=_Db;const _Ddb=class _Ddb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(cost,salvage,life,period,factor){let _factor=factor!=null?factor:NumberValueObject.create(2);_factor.isNull()&&(_factor=NumberValueObject.create(2));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,period.isArray()?period.getRowCount():1,_factor.isArray()?_factor.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,period.isArray()?period.getColumnCount():1,_factor.isArray()?_factor.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),periodArray=expandArrayValueObject(maxRowLength,maxColumnLength,period,ErrorValueObject.create(ErrorType$1.NA)),factorArray=expandArrayValueObject(maxRowLength,maxColumnLength,_factor,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),periodObject=periodArray.get(rowIndex,columnIndex),factorObject=factorArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,periodObject,factorObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_periodObject,_factorObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue(),periodValue=+_periodObject.getValue(),factorValue=+_factorObject.getValue();if(costValue<0||salvageValue<0||lifeValue<=0||periodValue<=0||periodValue>lifeValue||factorValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateDDB(costValue,salvageValue,lifeValue,periodValue,factorValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ddb,"Ddb");let Ddb=_Ddb;const _Disc=class _Disc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,pr,redemption,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,pr,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,prObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(prValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue-prValue)/redemptionValue*(yearDays/days);return NumberValueObject.create(result)}};__name(_Disc,"Disc");let Disc=_Disc;const _Dollarde=class _Dollarde extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(fractionalDollar,fraction){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(fractionalDollar,fraction);if(isError)return errorObject;const[fractionalDollarObject,fractionObject]=variants,fractionalDollarValue=+fractionalDollarObject.getValue();let fractionValue=Math.floor(+fractionObject.getValue());if(Number.isNaN(fractionalDollarValue)||Number.isNaN(fractionValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(fractionValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(fractionValue>=0&&fractionValue<1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);fractionValue=Number.parseInt(`${fractionValue}`,10);let result=Number.parseInt(`${fractionalDollarValue}`,10);result+=fractionalDollarValue%1*10**Math.ceil(Math.log(fractionValue)/Math.LN10)/fractionValue;const power=10**(Math.ceil(Math.log(fractionValue)/Math.LN2)+1);return result=Math.round(result*power)/power,NumberValueObject.create(result)}};__name(_Dollarde,"Dollarde");let Dollarde=_Dollarde;const _Dollarfr=class _Dollarfr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(decimalDollar,fraction){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(decimalDollar,fraction);if(isError)return errorObject;const[decimalDollarObject,fractionObject]=variants,decimalDollarValue=+decimalDollarObject.getValue();let fractionValue=Math.floor(+fractionObject.getValue());if(Number.isNaN(decimalDollarValue)||Number.isNaN(fractionValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(fractionValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(fractionValue>=0&&fractionValue<1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);fractionValue=Number.parseInt(`${fractionValue}`,10);let result=Number.parseInt(`${decimalDollarValue}`,10);return result+=decimalDollarValue%1*10**-Math.ceil(Math.log(fractionValue)/Math.LN10)*fractionValue,NumberValueObject.create(result)}};__name(_Dollarfr,"Dollarfr");let Dollarfr=_Dollarfr;const _Duration=class _Duration extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",6)}calculate(settlement,maturity,coupon,yld,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,coupon,yld,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,couponObject,yldObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const couponValue=+couponObject.getValue(),yldValue=+yldObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(couponValue)||Number.isNaN(yldValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(couponValue<0||yldValue<0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber)||settlementSerialNumber<=0||maturitySerialNumber<=366)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateDuration(settlementSerialNumber,maturitySerialNumber,couponValue,yldValue,frequencyValue,basisValue);return NumberValueObject.create(result)}};__name(_Duration,"Duration");let Duration=_Duration;const _Effect=class _Effect extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(nominalRate,npery){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(nominalRate,npery);if(isError)return errorObject;const[nominalRateObject,nperyObject]=variants,nominalRateValue=+nominalRateObject.getValue();let nperyValue=Math.floor(+nperyObject.getValue());if(Number.isNaN(nominalRateValue)||Number.isNaN(nperyValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(nominalRateValue<=0||nperyValue<1)return ErrorValueObject.create(ErrorType$1.NUM);nperyValue=Number.parseInt(`${nperyValue}`,10);const result=(1+nominalRateValue/nperyValue)**nperyValue-1;return NumberValueObject.create(result)}};__name(_Effect,"Effect");let Effect=_Effect;const _Fv=class _Fv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,nper,pmt,pv,type){const _pv=pv!=null?pv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,_pv.isArray()?_pv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,_pv.isArray()?_pv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_pv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pmtObject,pvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pmtObject,_pvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),typeValue=+_typeObject.getValue(),result=calculateFV(rateValue,nperValue,pmtValue,pvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Fv,"Fv");let Fv=_Fv;const _Fvschedule=class _Fvschedule extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(principal,schedule){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(principal);if(isError)return errorObject;const[principalObject]=variants,principalValue=+principalObject.getValue();if(Number.isNaN(principalValue))return ErrorValueObject.create(ErrorType$1.VALUE);let result=principalValue;if(schedule.isArray()){const scheduleValues=schedule.getArrayValue().flat();for(let i=0;i<scheduleValues.length;i++){const scheduleObject=scheduleValues[i];if(scheduleObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const scheduleValue=+scheduleObject.getValue();if(Number.isNaN(scheduleValue))return ErrorValueObject.create(ErrorType$1.VALUE);result*=1+scheduleValue}}else{if(schedule.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const scheduleValue=+schedule.getValue();if(Number.isNaN(scheduleValue))return ErrorValueObject.create(ErrorType$1.VALUE);result*=1+scheduleValue}return NumberValueObject.create(result)}};__name(_Fvschedule,"Fvschedule");let Fvschedule=_Fvschedule;const _Intrate=class _Intrate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,investment,redemption,basis){const _basis=basis!=null?basis:NumberValueObject.create(0),{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(settlement,maturity,investment,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,investmentObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const investmentValue=+investmentObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(investmentValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(investmentValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);const{days,yearDays}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue-investmentValue)/investmentValue*(yearDays/days);return NumberValueObject.create(result)}};__name(_Intrate,"Intrate");let Intrate=_Intrate;const _Ipmt=class _Ipmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6)}calculate(rate,per,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(perValue<1||Math.floor(perValue)>Math.ceil(nperValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateIPMT(rateValue,perValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ipmt,"Ipmt");let Ipmt=_Ipmt;const _Irr=class _Irr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(values,guess){let _guess=guess!=null?guess:NumberValueObject.create(.1);return _guess.isNull()&&(_guess=NumberValueObject.create(.1)),_guess.isArray()?_guess.map((guessObject,rowIndex,columnIndex)=>this._handleSingleObject(values,guessObject,rowIndex,columnIndex)):this._handleSingleObject(values,_guess)}_handleSingleObject(values,guess,rowIndex=0,columnIndex=0){if(values.isError())return values;if(guess.isError())return guess;if(values.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(!values.isArray())return ErrorValueObject.create(ErrorType$1.NUM);const{_values,valuesHasError}=this._getValues(values);if(valuesHasError)return ErrorValueObject.create(ErrorType$1.VALUE);let _guess=guess;if(_guess.isString()&&(_guess=_guess.convertToNumberObjectValue(),_guess.isError()))return _guess;const guessValue=+_guess.getValue(),{positive,negative}=this._checkValues(_values);if(!positive||!negative)return ErrorValueObject.create(ErrorType$1.NUM);const result=getResultByGuessIterF(guessValue,rate=>calculateNpv(rate,_values));return typeof result!="number"?result:rowIndex===0&&columnIndex===0?NumberValueObject.create(result,"0%"):NumberValueObject.create(result)}_getValues(values){const _values=[];let valuesHasError=!1;return values.iterator(valueOject=>{const _valueOject=valueOject;if(_valueOject.isError())return valuesHasError=!0,!1;if(_valueOject.isNull()||_valueOject.isBoolean())return!0;const value=+_valueOject.getValue();if(Number.isNaN(value))return!0;_values.push(value)}),{_values,valuesHasError}}_checkValues(values){let positive=!1,negative=!1;for(let i=0;i<values.length;i++)values[i]>0&&(positive=!0),values[i]<0&&(negative=!0);return{positive,negative}}};__name(_Irr,"Irr");let Irr=_Irr;const _Ispmt=class _Ispmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(rate,per,nper,pv){const maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue();if(nperValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=pvValue*rateValue*(perValue/nperValue-1);return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ispmt,"Ispmt");let Ispmt=_Ispmt;const _Mduration=class _Mduration extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",6)}calculate(settlement,maturity,coupon,yld,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,coupon,yld,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,couponObject,yldObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const couponValue=+couponObject.getValue(),yldValue=+yldObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(couponValue)||Number.isNaN(yldValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(couponValue<0||yldValue<0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||Math.floor(settlementSerialNumber)>=Math.floor(maturitySerialNumber))return ErrorValueObject.create(ErrorType$1.NUM);let result=calculateDuration(settlementSerialNumber,maturitySerialNumber,couponValue,yldValue,frequencyValue,basisValue);return result/=1+yldValue/frequencyValue,NumberValueObject.create(result)}};__name(_Mduration,"Mduration");let Mduration=_Mduration;const _Mirr=class _Mirr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(values,financeRate,reinvestRate){const{_values,numberValues,positive,negative}=this._getValues(values),maxRowLength=Math.max(financeRate.isArray()?financeRate.getRowCount():1,reinvestRate.isArray()?reinvestRate.getRowCount():1),maxColumnLength=Math.max(financeRate.isArray()?financeRate.getColumnCount():1,reinvestRate.isArray()?reinvestRate.getColumnCount():1),financeRateArray=expandArrayValueObject(maxRowLength,maxColumnLength,financeRate,ErrorValueObject.create(ErrorType$1.NA)),reinvestRateArray=expandArrayValueObject(maxRowLength,maxColumnLength,reinvestRate,ErrorValueObject.create(ErrorType$1.NA)),resultArray=financeRateArray.map((financeRateObject,rowIndex,columnIndex)=>{const reinvestRateObject=reinvestRateArray.get(rowIndex,columnIndex);if(values.isError())return values;if(reinvestRateObject.isError())return reinvestRateObject;if(_values.isError())return _values;if(!positive||!negative)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const financeRateValue=+financeRateObject.getValue(),reinvestRateValue=+reinvestRateObject.getValue();if(Number.isNaN(financeRateValue)||Number.isNaN(reinvestRateValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(reinvestRateValue===-1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=this._getResult(numberValues,financeRateValue,reinvestRateValue);return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,"0%"):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getValues(values){let _values=values,_numberValues=[],_positive=!1,_negative=!1;if(!values.isError())if(values.isNull())_values=ErrorValueObject.create(ErrorType$1.VALUE);else if(!values.isArray())_values=ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);else{const{numberValues,valuesHasError,errorObject,positive,negative}=this._checkValues(values);valuesHasError&&(_values=errorObject),_numberValues=numberValues,_positive=positive,_negative=negative}return{_values,numberValues:_numberValues,positive:_positive,negative:_negative}}_checkValues(values){const numberValues=[];let valuesHasError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE),positive=!1,negative=!1;return values.iterator(valueOject=>{const _valueOject=valueOject;if(_valueOject.isError())return valuesHasError=!0,errorObject=_valueOject,!1;if(_valueOject.isNull()||_valueOject.isBoolean())return!0;const value=+_valueOject.getValue();if(Number.isNaN(value))return!0;value>0&&(positive=!0),value<0&&(negative=!0),numberValues.push(value)}),{numberValues,valuesHasError,errorObject,positive,negative}}_getResult(values,financeRate,reinvestRate){const n=values.length,negatives=[],positives=[];for(let i=0;i<n;i++)values[i]>0?positives.push(values[i]):values[i]<0&&negatives.push(values[i]);const npvR=this._npv(reinvestRate,values,"positive"),npvF=this._npv(financeRate,values,"negative"),num=-npvR*(1+reinvestRate)**n,den=npvF*(1+financeRate);return(num/den)**(1/(n-1))-1}_npv(rate,values,type){let res=0;for(let i=1;i<=values.length;i++){const value=values[i-1];(type==="positive"&&value>0||type==="negative"&&value<0)&&(res+=value/(1+rate)**i)}return res}};__name(_Mirr,"Mirr");let Mirr=_Mirr;const _Nominal=class _Nominal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(effectRate,npery){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(effectRate,npery);if(isError)return errorObject;const[effectRateObject,nperyObject]=variants,effectRateValue=+effectRateObject.getValue();let nperyValue=Math.floor(+nperyObject.getValue());if(Number.isNaN(effectRateValue)||Number.isNaN(nperyValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(effectRateValue<=0||nperyValue<1)return ErrorValueObject.create(ErrorType$1.NUM);nperyValue=Number.parseInt(`${nperyValue}`,10);const result=((effectRateValue+1)**(1/nperyValue)-1)*nperyValue;return NumberValueObject.create(result)}};__name(_Nominal,"Nominal");let Nominal=_Nominal;const _Nper=class _Nper extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,pmt,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,pmtObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_pmtObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();if(typeValue=typeValue?1:0,rateValue===0&&pmtValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);let result;if(rateValue===0)result=-(pvValue+fvValue)/pmtValue;else{const num=pmtValue*(1+rateValue*typeValue)-fvValue*rateValue,den=pvValue*rateValue+pmtValue*(1+rateValue*typeValue);result=Math.log(num/den)/Math.log(1+rateValue)}return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Nper,"Nper");let Nper=_Nper;const _Npv=class _Npv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(rate,...variants){if(rate.isError())return rate;const{isError,errorObject,values}=this._getValues(variants);return rate.isArray()?rate.map((rateObject,rowIndex,columnIndex)=>this._handleSingleObject(rateObject,isError,errorObject,values,rowIndex,columnIndex)):this._handleSingleObject(rate,isError,errorObject,values)}_handleSingleObject(rate,isError,errorObject,values,rowIndex=0,columnIndex=0){let _rate=rate;if(_rate.isString()&&(_rate=_rate.convertToNumberObjectValue()),_rate.isError())return _rate;if(isError)return errorObject;const rateValue=+rate.getValue(),result=calculateNpv(rateValue,values);return Number.isNaN(result)||Math.abs(result)===1/0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)}_getValues(variants){const values=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return{isError:!0,errorObject:variant};if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(variantOject=>{const _variantOject=variantOject;if(_variantOject.isError())return isError=!0,errorObject=_variantOject,!1;if(_variantOject.isNull()||_variantOject.isBoolean())return!0;const value=+_variantOject.getValue();if(Number.isNaN(value))return!0;values.push(value)}),isError)return{isError,errorObject}}else{const value=+variant.getValue();if(Number.isNaN(value))return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};values.push(value)}}return{isError:!1,values}}};__name(_Npv,"Npv");let Npv=_Npv;const _Oddfprice=class _Oddfprice extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",8);__publicField(this,"maxParams",9)}calculate(settlement,maturity,issue,firstCoupon,rate,yld,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,issue,firstCoupon,rate,yld,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,issueObject,firstCouponObject,rateObject,yldObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const firstCouponSerialNumber=getDateSerialNumberByObject(firstCouponObject);if(typeof firstCouponSerialNumber!="number")return firstCouponSerialNumber;const rateValue=+rateObject.getValue(),yldValue=+yldObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(yldValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||yldValue<0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||!this._validDate(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateOddFPrice(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rateValue,yldValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}_validDate(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber,frequencyValue){return this._getDateCorrectOrder(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber)&&validDaysBetweenIsWholeFrequencyByTwoDate(maturitySerialNumber,firstCouponSerialNumber,frequencyValue)&&validCouppcdIsGte0ByTwoDate(issueSerialNumber,maturitySerialNumber,frequencyValue)}_getDateCorrectOrder(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber){return Math.floor(maturitySerialNumber)>Math.floor(firstCouponSerialNumber)&&Math.floor(firstCouponSerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(issueSerialNumber)}};__name(_Oddfprice,"Oddfprice");let Oddfprice=_Oddfprice;const _Oddfyield=class _Oddfyield extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",8);__publicField(this,"maxParams",9)}calculate(settlement,maturity,issue,firstCoupon,rate,pr,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,issue,firstCoupon,rate,pr,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,issueObject,firstCouponObject,rateObject,prObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const firstCouponSerialNumber=getDateSerialNumberByObject(firstCouponObject);if(typeof firstCouponSerialNumber!="number")return firstCouponSerialNumber;const rateValue=+rateObject.getValue(),prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());return Number.isNaN(rateValue)||Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue)?ErrorValueObject.create(ErrorType$1.VALUE):rateValue<0||prValue<=0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||!this._validDate(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber,frequencyValue)?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rateValue,prValue,redemptionValue,frequencyValue,basisValue)}_validDate(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber,frequencyValue){return this._getDateCorrectOrder(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber)&&validDaysBetweenIsWholeFrequencyByTwoDate(maturitySerialNumber,firstCouponSerialNumber,frequencyValue)&&validCouppcdIsGte0ByTwoDate(issueSerialNumber,maturitySerialNumber,frequencyValue)}_getDateCorrectOrder(maturitySerialNumber,firstCouponSerialNumber,settlementSerialNumber,issueSerialNumber){return Math.floor(maturitySerialNumber)>Math.floor(firstCouponSerialNumber)&&Math.floor(firstCouponSerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(issueSerialNumber)}_getResult(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,pr,redemption,frequency,basis){const{days}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basis),guess=(rate*days*100-(pr-100))/((pr-100)*.25*(1+2*days)+days*100);function _iterF(yld){return pr-calculateOddFPrice(settlementSerialNumber,maturitySerialNumber,issueSerialNumber,firstCouponSerialNumber,rate,yld,redemption,frequency,basis)}__name(_iterF,"_iterF");const result=getResultByGuessIterF(guess,yld=>_iterF(yld));return typeof result!="number"?result:NumberValueObject.create(result)}};__name(_Oddfyield,"Oddfyield");let Oddfyield=_Oddfyield;const _Oddlprice=class _Oddlprice extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",7);__publicField(this,"maxParams",8)}calculate(settlement,maturity,lastInterest,rate,yld,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,lastInterest,rate,yld,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,lastInterestObject,rateObject,yldObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const lastInterestSerialNumber=getDateSerialNumberByObject(lastInterestObject);if(typeof lastInterestSerialNumber!="number")return lastInterestSerialNumber;const rateValue=+rateObject.getValue(),yldValue=+yldObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(yldValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||yldValue<0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||!this._validDate(maturitySerialNumber,settlementSerialNumber,lastInterestSerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=this._getResult(settlementSerialNumber,maturitySerialNumber,lastInterestSerialNumber,rateValue,yldValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}_validDate(maturitySerialNumber,settlementSerialNumber,lastInterestSerialNumber,frequencyValue){return Math.floor(maturitySerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(lastInterestSerialNumber)&&validCouppcdIsGte0ByTwoDate(lastInterestSerialNumber,maturitySerialNumber,frequencyValue)}_getResult(settlementSerialNumber,maturitySerialNumber,lastInterestSerialNumber,rate,yld,redemption,frequency,basis){const coupDateSerialNumber=this._getCoupDate(maturitySerialNumber,lastInterestSerialNumber,frequency),fAi=this._getFrac(lastInterestSerialNumber,settlementSerialNumber,coupDateSerialNumber,frequency,basis),fDCi=this._getFrac(lastInterestSerialNumber,maturitySerialNumber,coupDateSerialNumber,frequency,basis),fDSCi=this._getFrac(settlementSerialNumber,maturitySerialNumber,coupDateSerialNumber,frequency,basis);return(redemption*frequency+100*rate*(fDCi-fAi*(1+yld*fDSCi/frequency)))/(yld*fDSCi+frequency)}_getCoupDate(maturitySerialNumber,lastInterestSerialNumber,frequency){const maturityDate=excelSerialToDate(maturitySerialNumber),coupDate=excelSerialToDate(lastInterestSerialNumber);for(coupDate.setUTCFullYear(maturityDate.getUTCFullYear()),coupDate>maturityDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()-1);coupDate<maturityDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequency);return excelDateSerial(coupDate)}_getFrac(startDateSerialNumber,endDateSerialNumber,coupDateSerialNumber,frequency,basis){const startDate=excelSerialToDate(startDateSerialNumber),endDate=excelSerialToDate(endDateSerialNumber),coupDate=excelSerialToDate(coupDateSerialNumber);for(coupDate.setUTCFullYear(startDate.getUTCFullYear()),coupDate<startDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>startDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequency);let earlyCouponSerialNumber=excelDateSerial(coupDate);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequency);let lateCouponSerialNumber=excelDateSerial(coupDate);if(lateCouponSerialNumber>=endDateSerialNumber){const{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis),coupdays=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);return days/coupdays}const{days:daysF}=getTwoDateDaysByBasis(startDateSerialNumber,lateCouponSerialNumber,basis),coupdaysF=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);let result=daysF/coupdaysF;const earlyCoupon=excelSerialToDate(lateCouponSerialNumber),lateCoupon=excelSerialToDate(lateCouponSerialNumber);for(lateCoupon.setUTCMonth(lateCoupon.getUTCMonth()+12/frequency);lateCoupon<endDate;)earlyCoupon.setUTCMonth(earlyCoupon.getUTCMonth()+12/frequency),lateCoupon.setUTCMonth(lateCoupon.getUTCMonth()+12/frequency),result+=1;earlyCouponSerialNumber=excelDateSerial(earlyCoupon),lateCouponSerialNumber=excelDateSerial(lateCoupon);const{days:daysL}=getTwoDateDaysByBasis(earlyCouponSerialNumber,endDateSerialNumber,basis),coupdaysL=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);return result+=daysL/coupdaysL,result}};__name(_Oddlprice,"Oddlprice");let Oddlprice=_Oddlprice;const _Oddlyield=class _Oddlyield extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",8);__publicField(this,"maxParams",9)}calculate(settlement,maturity,lastInterest,rate,pr,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,lastInterest,rate,pr,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,lastInterestObject,rateObject,prObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const lastInterestSerialNumber=getDateSerialNumberByObject(lastInterestObject);if(typeof lastInterestSerialNumber!="number")return lastInterestSerialNumber;const rateValue=+rateObject.getValue(),prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||prValue<=0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||!this._validDate(maturitySerialNumber,settlementSerialNumber,lastInterestSerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=this._getResult(settlementSerialNumber,maturitySerialNumber,lastInterestSerialNumber,rateValue,prValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}_validDate(maturitySerialNumber,settlementSerialNumber,lastInterestSerialNumber,frequencyValue){return Math.floor(maturitySerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(lastInterestSerialNumber)&&validCouppcdIsGte0ByTwoDate(lastInterestSerialNumber,maturitySerialNumber,frequencyValue)}_getResult(settlementSerialNumber,maturitySerialNumber,lastInterestSerialNumber,rate,pr,redemption,frequency,basis){const coupDateSerialNumber=this._getCoupDate(maturitySerialNumber,lastInterestSerialNumber,frequency),fAi=this._getFrac(lastInterestSerialNumber,settlementSerialNumber,coupDateSerialNumber,frequency,basis),fDCi=this._getFrac(lastInterestSerialNumber,maturitySerialNumber,coupDateSerialNumber,frequency,basis),fDSCi=this._getFrac(settlementSerialNumber,maturitySerialNumber,coupDateSerialNumber,frequency,basis);return(frequency*(redemption-pr)+100*rate*(fDCi-fAi))/(fDSCi*pr+100*rate*fAi*fDSCi/frequency)}_getCoupDate(maturitySerialNumber,lastInterestSerialNumber,frequency){const maturityDate=excelSerialToDate(maturitySerialNumber),coupDate=excelSerialToDate(lastInterestSerialNumber);for(coupDate.setUTCFullYear(maturityDate.getUTCFullYear()),coupDate>maturityDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()-1);coupDate<maturityDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequency);return excelDateSerial(coupDate)}_getFrac(startDateSerialNumber,endDateSerialNumber,coupDateSerialNumber,frequency,basis){const startDate=excelSerialToDate(startDateSerialNumber),endDate=excelSerialToDate(endDateSerialNumber),coupDate=excelSerialToDate(coupDateSerialNumber);for(coupDate.setUTCFullYear(startDate.getUTCFullYear()),coupDate<startDate&&coupDate.setUTCFullYear(coupDate.getUTCFullYear()+1);coupDate>startDate;)coupDate.setUTCMonth(coupDate.getUTCMonth()-12/frequency);let earlyCouponSerialNumber=excelDateSerial(coupDate);coupDate.setUTCMonth(coupDate.getUTCMonth()+12/frequency);let lateCouponSerialNumber=excelDateSerial(coupDate);if(lateCouponSerialNumber>=endDateSerialNumber){const{days}=getTwoDateDaysByBasis(startDateSerialNumber,endDateSerialNumber,basis),coupdays=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);return days/coupdays}const{days:daysF}=getTwoDateDaysByBasis(startDateSerialNumber,lateCouponSerialNumber,basis),coupdaysF=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);let result=daysF/coupdaysF;const earlyCoupon=excelSerialToDate(lateCouponSerialNumber),lateCoupon=excelSerialToDate(lateCouponSerialNumber);for(lateCoupon.setUTCMonth(lateCoupon.getUTCMonth()+12/frequency);lateCoupon<endDate;)earlyCoupon.setUTCMonth(earlyCoupon.getUTCMonth()+12/frequency),lateCoupon.setUTCMonth(lateCoupon.getUTCMonth()+12/frequency),result+=1;earlyCouponSerialNumber=excelDateSerial(earlyCoupon),lateCouponSerialNumber=excelDateSerial(lateCoupon);const{days:daysL}=getTwoDateDaysByBasis(earlyCouponSerialNumber,endDateSerialNumber,basis),coupdaysL=calculateCoupdays(earlyCouponSerialNumber,lateCouponSerialNumber,frequency,basis);return result+=daysL/coupdaysL,result}};__name(_Oddlyield,"Oddlyield");let Oddlyield=_Oddlyield;const _Pduration=class _Pduration extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(rate,pv,fv){const maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,pv.isArray()?pv.getRowCount():1,fv.isArray()?fv.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,fv.isArray()?fv.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,fv,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,pvObject,fvObject);if(isError)return errorObject;const[_rateObject,_pvObject,_fvObject]=variants,rateValue=+_rateObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();if(rateValue<=-1)return ErrorValueObject.create(ErrorType$1.NUM);const result=(Math.log(fvValue)-Math.log(pvValue))/Math.log(1+rateValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pduration,"Pduration");let Pduration=_Pduration;const _Pmt=class _Pmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(rateValue<=-1)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePMT(rateValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pmt,"Pmt");let Pmt=_Pmt;const _Ppmt=class _Ppmt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6)}calculate(rate,per,nper,pv,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,per.isArray()?per.getRowCount():1,nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,per.isArray()?per.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const perObject=perArray.get(rowIndex,columnIndex),nperObject=nperArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,perObject,nperObject,pvObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_perObject,_nperObject,_pvObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),perValue=+_perObject.getValue(),nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue(),typeValue=+_typeObject.getValue();if(perValue<1||Math.floor(perValue)>Math.ceil(nperValue)||perValue-nperValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePMT(rateValue,nperValue,pvValue,fvValue,typeValue?1:0)-calculateIPMT(rateValue,perValue,nperValue,pvValue,fvValue,typeValue?1:0);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ppmt,"Ppmt");let Ppmt=_Ppmt;const _Price=class _Price extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",7)}calculate(settlement,maturity,rate,yld,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,rate,yld,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,rateObject,yldObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const rateValue=+rateObject.getValue(),yldValue=+yldObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(yldValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||yldValue<0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber||!validCouppcdIsGte0ByTwoDate(settlementSerialNumber,maturitySerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=calculatePrice(settlementSerialNumber,maturitySerialNumber,rateValue,yldValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}};__name(_Price,"Price");let Price=_Price;const _Pricedisc=class _Pricedisc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,discount,redemption,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,discount,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,discountObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const discountValue=+discountObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(discountValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(discountValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const{days:DSM,yearDays:B}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=redemptionValue-discountValue*redemptionValue*DSM/B;return NumberValueObject.create(result)}};__name(_Pricedisc,"Pricedisc");let Pricedisc=_Pricedisc;const _Pricemat=class _Pricemat extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",6)}calculate(settlement,maturity,issue,rate,yld,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,issue,rate,yld,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,issueObject,rateObject,yldObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const rateValue=+rateObject.getValue(),yldValue=+yldObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(yldValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);const isCorrectOrder=this._getDateCorrectOrder(maturitySerialNumber,settlementSerialNumber,issueSerialNumber);if(rateValue<0||yldValue<0||basisValue<0||basisValue>4||!isCorrectOrder)return ErrorValueObject.create(ErrorType$1.NUM);const B=getNormalYearDaysByBasis(settlementSerialNumber,basisValue),{days:DSM}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),{days:DIM}=getTwoDateDaysByBasis(issueSerialNumber,maturitySerialNumber,basisValue),{days:A}=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue),result=(100+DIM/B*rateValue*100)/(1+DSM/B*yldValue)-A/B*rateValue*100;return NumberValueObject.create(result)}_getDateCorrectOrder(maturitySerialNumber,settlementSerialNumber,issueSerialNumber){return Math.floor(maturitySerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(issueSerialNumber)}};__name(_Pricemat,"Pricemat");let Pricemat=_Pricemat;const _Pv=class _Pv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5)}calculate(rate,nper,pmt,fv,type){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),maxRowLength=Math.max(rate.isArray()?rate.getRowCount():1,nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1),maxColumnLength=Math.max(rate.isArray()?rate.getColumnCount():1,nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1),rateArray=expandArrayValueObject(maxRowLength,maxColumnLength,rate,ErrorValueObject.create(ErrorType$1.NA)),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rateArray.map((rateObject,rowIndex,columnIndex)=>{const nperObject=nperArray.get(rowIndex,columnIndex),pmtObject=pmtArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rateObject,nperObject,pmtObject,fvObject,typeObject);if(isError)return errorObject;const[_rateObject,_nperObject,_pmtObject,_fvObject,_typeObject]=variants,rateValue=+_rateObject.getValue(),nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();typeValue=typeValue?1:0;const result=rateValue===0?-pmtValue*nperValue-fvValue:((1-(1+rateValue)**nperValue)/rateValue*pmtValue*(1+rateValue*typeValue)-fvValue)/(1+rateValue)**nperValue;return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Pv,"Pv");let Pv=_Pv;const _Rate=class _Rate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(nper,pmt,pv,fv,type,guess){const _fv=fv!=null?fv:NumberValueObject.create(0),_type=type!=null?type:NumberValueObject.create(0),_guess=guess!=null?guess:NumberValueObject.create(.1),maxRowLength=Math.max(nper.isArray()?nper.getRowCount():1,pmt.isArray()?pmt.getRowCount():1,pv.isArray()?pv.getRowCount():1,_fv.isArray()?_fv.getRowCount():1,_type.isArray()?_type.getRowCount():1,_guess.isArray()?_guess.getRowCount():1),maxColumnLength=Math.max(nper.isArray()?nper.getColumnCount():1,pmt.isArray()?pmt.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,_fv.isArray()?_fv.getColumnCount():1,_type.isArray()?_type.getColumnCount():1,_guess.isArray()?_guess.getColumnCount():1),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pmtArray=expandArrayValueObject(maxRowLength,maxColumnLength,pmt,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,_fv,ErrorValueObject.create(ErrorType$1.NA)),typeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_type,ErrorValueObject.create(ErrorType$1.NA)),guessArray=expandArrayValueObject(maxRowLength,maxColumnLength,_guess,ErrorValueObject.create(ErrorType$1.NA)),resultArray=nperArray.map((nperObject,rowIndex,columnIndex)=>{const pmtObject=pmtArray.get(rowIndex,columnIndex),pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),typeObject=typeArray.get(rowIndex,columnIndex),guessObject=guessArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(nperObject,pmtObject,pvObject,fvObject,typeObject,guessObject);if(isError)return errorObject;const[_nperObject,_pmtObject,_pvObject,_fvObject,_typeObject,_guessObject]=variants,nperValue=+_nperObject.getValue(),pmtValue=+_pmtObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();let typeValue=+_typeObject.getValue();const guessValue=+_guessObject.getValue();return typeValue=typeValue?1:0,nperValue<=0||pmtValue>=0?ErrorValueObject.create(ErrorType$1.NUM):this._getResult(nperValue,pmtValue,pvValue,fvValue,typeValue,guessValue,rowIndex,columnIndex)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(nperValue,pmtValue,pvValue,fvValue,typeValue,guessValue,rowIndex,columnIndex){let result=guessValue;for(let i=0;i<20;i++){if(result<=-1)return ErrorValueObject.create(ErrorType$1.NUM);let y,f;if(Math.abs(result)<1e-10?y=pvValue*(1+nperValue*result)+pmtValue*(1+result*typeValue)*nperValue+fvValue:(f=(1+result)**nperValue,y=pvValue*f+pmtValue*(1/result+typeValue)*(f-1)+fvValue),Math.abs(y)<1e-10)break;let dy;if(Math.abs(result)<1e-10)dy=pvValue*nperValue+pmtValue*typeValue*nperValue;else{f=(1+result)**nperValue;const df=nperValue*(1+result)**(nperValue-1);dy=pvValue*df+pmtValue*(1/result+typeValue)*df+pmtValue*(-1/(result*result))*(f-1)}result-=y/dy}return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,"0%"):NumberValueObject.create(result)}};__name(_Rate,"Rate");let Rate=_Rate;const _Received=class _Received extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,investment,discount,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,investment,discount,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,investmentObject,discountObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const investmentValue=+investmentObject.getValue(),discountValue=+discountObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(investmentValue)||Number.isNaN(discountValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(investmentValue<=0||discountValue<=0||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const{days:DSM,yearDays:B}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=investmentValue/(1-discountValue*DSM/B);return result<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Received,"Received");let Received=_Received;const _Rri=class _Rri extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(nper,pv,fv){const maxRowLength=Math.max(nper.isArray()?nper.getRowCount():1,pv.isArray()?pv.getRowCount():1,fv.isArray()?fv.getRowCount():1),maxColumnLength=Math.max(nper.isArray()?nper.getColumnCount():1,pv.isArray()?pv.getColumnCount():1,fv.isArray()?fv.getColumnCount():1),nperArray=expandArrayValueObject(maxRowLength,maxColumnLength,nper,ErrorValueObject.create(ErrorType$1.NA)),pvArray=expandArrayValueObject(maxRowLength,maxColumnLength,pv,ErrorValueObject.create(ErrorType$1.NA)),fvArray=expandArrayValueObject(maxRowLength,maxColumnLength,fv,ErrorValueObject.create(ErrorType$1.NA)),resultArray=nperArray.map((nperObject,rowIndex,columnIndex)=>{const pvObject=pvArray.get(rowIndex,columnIndex),fvObject=fvArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(nperObject,pvObject,fvObject);if(isError)return errorObject;const[_nperObject,_pvObject,_fvObject]=variants,nperValue=+_nperObject.getValue(),pvValue=+_pvObject.getValue(),fvValue=+_fvObject.getValue();if(nperValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);if(pvValue===0&&fvValue===0)return NumberValueObject.create(0);const result=(fvValue/pvValue)**(1/nperValue)-1;return Number.isNaN(result)||!Number.isFinite(result)||fvValue/pvValue<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Rri,"Rri");let Rri=_Rri;const _Sln=class _Sln extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(cost,salvage,life){const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex);if(salvageObject.isError())return salvageObject;if(lifeObject.isError())return lifeObject;const costValue=+costObject.getValue(),salvageValue=+salvageObject.getValue(),lifeValue=+lifeObject.getValue();if(Number.isNaN(costValue)||Number.isNaN(salvageValue)||Number.isNaN(lifeValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(lifeValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=(costValue-salvageValue)/lifeValue;return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Sln,"Sln");let Sln=_Sln;const _Syd=class _Syd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(cost,salvage,life,per){const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,per.isArray()?per.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,per.isArray()?per.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),perArray=expandArrayValueObject(maxRowLength,maxColumnLength,per,ErrorValueObject.create(ErrorType$1.NA)),resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),perObject=perArray.get(rowIndex,columnIndex);if(salvageObject.isError())return salvageObject;if(lifeObject.isError())return lifeObject;if(perObject.isError())return perObject;const costValue=+costObject.getValue(),salvageValue=+salvageObject.getValue(),lifeValue=+lifeObject.getValue(),perValue=+perObject.getValue();if(Number.isNaN(costValue)||Number.isNaN(salvageValue)||Number.isNaN(lifeValue)||Number.isNaN(perValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(salvageValue<0||lifeValue<=0||perValue>lifeValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=(costValue-salvageValue)*(lifeValue-perValue+1)*2/(lifeValue*(lifeValue+1));return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Syd,"Syd");let Syd=_Syd;const _Tbilleq=class _Tbilleq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(settlement,maturity,discount){const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,discount);if(isError)return errorObject;const[settlementObject,maturityObject,discountObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const discountValue=+discountObject.getValue();if(Number.isNaN(discountValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(discountValue<=0||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const DSM=Math.floor(maturitySerialNumber)-Math.floor(settlementSerialNumber),year=excelSerialToDate(settlementSerialNumber).getUTCFullYear(),yearDays=getDaysInYear(year);if(DSM>yearDays)return ErrorValueObject.create(ErrorType$1.NUM);let result=365*discountValue/(360-discountValue*DSM);if(DSM>182){const tbillPrice=100*(1-discountValue*DSM/360),fraction=DSM/365;if(result=(-fraction+Math.sqrt(fraction*fraction-(fraction*2-1)*(1-100/tbillPrice)))/(fraction-.5),Number.isNaN(result))return ErrorValueObject.create(ErrorType$1.NUM)}return result<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Tbilleq,"Tbilleq");let Tbilleq=_Tbilleq;const _Tbillprice=class _Tbillprice extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(settlement,maturity,discount){const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,discount);if(isError)return errorObject;const[settlementObject,maturityObject,discountObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const discountValue=+discountObject.getValue();if(Number.isNaN(discountValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(discountValue<=0||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const DSM=Math.floor(maturitySerialNumber)-Math.floor(settlementSerialNumber),year=excelSerialToDate(settlementSerialNumber).getUTCFullYear(),yearDays=getDaysInYear(year);if(DSM>yearDays)return ErrorValueObject.create(ErrorType$1.NUM);const result=100*(1-discountValue*DSM/360);return result<0?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)')}};__name(_Tbillprice,"Tbillprice");let Tbillprice=_Tbillprice;const _Tbillyield=class _Tbillyield extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(settlement,maturity,pr){const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,pr);if(isError)return errorObject;const[settlementObject,maturityObject,prObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const prValue=+prObject.getValue();if(Number.isNaN(prValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(prValue<=0||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const DSM=Math.floor(maturitySerialNumber)-Math.floor(settlementSerialNumber),year=excelSerialToDate(settlementSerialNumber).getUTCFullYear(),yearDays=getDaysInYear(year);if(DSM>yearDays)return ErrorValueObject.create(ErrorType$1.NUM);const result=(100-prValue)/prValue*360/DSM;return NumberValueObject.create(result)}};__name(_Tbillyield,"Tbillyield");let Tbillyield=_Tbillyield;const _Vdb=class _Vdb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",7)}calculate(cost,salvage,life,startPeriod,endPeriod,factor,noSwitch){let _factor=factor!=null?factor:NumberValueObject.create(2);_factor.isNull()&&(_factor=NumberValueObject.create(2));let _noSwitch=noSwitch!=null?noSwitch:BooleanValueObject.create(!1);_noSwitch.isNull()&&(_noSwitch=BooleanValueObject.create(!1));const maxRowLength=Math.max(cost.isArray()?cost.getRowCount():1,salvage.isArray()?salvage.getRowCount():1,life.isArray()?life.getRowCount():1,startPeriod.isArray()?startPeriod.getRowCount():1,endPeriod.isArray()?endPeriod.getRowCount():1,_factor.isArray()?_factor.getRowCount():1,_noSwitch.isArray()?_noSwitch.getRowCount():1),maxColumnLength=Math.max(cost.isArray()?cost.getColumnCount():1,salvage.isArray()?salvage.getColumnCount():1,life.isArray()?life.getColumnCount():1,startPeriod.isArray()?startPeriod.getColumnCount():1,endPeriod.isArray()?endPeriod.getColumnCount():1,_factor.isArray()?_factor.getColumnCount():1,_noSwitch.isArray()?_noSwitch.getColumnCount():1),costArray=expandArrayValueObject(maxRowLength,maxColumnLength,cost,ErrorValueObject.create(ErrorType$1.NA)),salvageArray=expandArrayValueObject(maxRowLength,maxColumnLength,salvage,ErrorValueObject.create(ErrorType$1.NA)),lifeArray=expandArrayValueObject(maxRowLength,maxColumnLength,life,ErrorValueObject.create(ErrorType$1.NA)),startPeriodArray=expandArrayValueObject(maxRowLength,maxColumnLength,startPeriod,ErrorValueObject.create(ErrorType$1.NA)),endPeriodArray=expandArrayValueObject(maxRowLength,maxColumnLength,endPeriod,ErrorValueObject.create(ErrorType$1.NA)),factorArray=expandArrayValueObject(maxRowLength,maxColumnLength,_factor,ErrorValueObject.create(ErrorType$1.NA)),noSwitchArray=expandArrayValueObject(maxRowLength,maxColumnLength,_noSwitch,ErrorValueObject.create(ErrorType$1.NA));return this._getResultArray(costArray,salvageArray,lifeArray,startPeriodArray,endPeriodArray,factorArray,noSwitchArray,maxRowLength,maxColumnLength)}_getResultArray(costArray,salvageArray,lifeArray,startPeriodArray,endPeriodArray,factorArray,noSwitchArray,maxRowLength,maxColumnLength){const resultArray=costArray.map((costObject,rowIndex,columnIndex)=>{const salvageObject=salvageArray.get(rowIndex,columnIndex),lifeObject=lifeArray.get(rowIndex,columnIndex),startPeriodObject=startPeriodArray.get(rowIndex,columnIndex),endPeriodObject=endPeriodArray.get(rowIndex,columnIndex),factorObject=factorArray.get(rowIndex,columnIndex),noSwitchObject=noSwitchArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(costObject,salvageObject,lifeObject,startPeriodObject,endPeriodObject,factorObject,noSwitchObject);if(isError)return errorObject;const[_costObject,_salvageObject,_lifeObject,_startPeriodObject,_endPeriodObject,_factorObject,_noSwitchObject]=variants,costValue=+_costObject.getValue(),salvageValue=+_salvageObject.getValue(),lifeValue=+_lifeObject.getValue(),startPeriodValue=+_startPeriodObject.getValue(),endPeriodValue=+_endPeriodObject.getValue(),factorValue=+_factorObject.getValue(),noSwitchValue=+_noSwitchObject.getValue();if(costValue<0||salvageValue<0||lifeValue<0||startPeriodValue<0||endPeriodValue<0||endPeriodValue>lifeValue||startPeriodValue>endPeriodValue||factorValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(lifeValue===0&&startPeriodValue===0&&endPeriodValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=this._getResult(costValue,salvageValue,lifeValue,startPeriodValue,endPeriodValue,factorValue,noSwitchValue);return rowIndex===0&&columnIndex===0?NumberValueObject.create(result,'"¥"#,##0.00_);[Red]("¥"#,##0.00)'):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(cost,salvage,life,startPeriod,endPeriod,factor,noSwitch){const start=Math.floor(startPeriod),end=Math.ceil(endPeriod);let result=0;if(cost<salvage){if(startPeriod>=1||noSwitch)return result;const tempMinus=Math.abs(cost-salvage);return result=tempMinus*(endPeriod-startPeriod)>tempMinus?tempMinus:tempMinus*(endPeriod-startPeriod),-result}if(noSwitch)for(let i=start+1;i<=end;i++){let ddb=calculateDDB(cost,salvage,life,i,factor);i===start+1?ddb*=Math.min(endPeriod,start+1)-startPeriod:i===end&&(ddb*=endPeriod+1-end),result+=ddb}else{const _cost=cost-this._getVdb(cost,salvage,life,life,startPeriod,factor);result=this._getVdb(_cost,salvage,life,life-startPeriod,endPeriod-startPeriod,factor)}return result}_getVdb(cost,salvage,life,startPeriod,endPeriod,factor){const end=Math.ceil(endPeriod);let result=0,rest=cost-salvage,sln=0,temp=0,flag=!1;for(let i=1;i<=end;i++){if(flag)temp=sln;else{const ddb=calculateDDB(cost,salvage,life,i,factor);sln=rest/(startPeriod-(i-1)),sln>ddb?(temp=sln,flag=!0):(temp=ddb,rest-=ddb)}i===end&&(temp*=endPeriod+1-end),result+=temp}return result}};__name(_Vdb,"Vdb");let Vdb=_Vdb;const _Xirr=class _Xirr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(values,dates,guess){if(values.isNull()||dates.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObejct,_values,_dates}=this._checkErrors(values,dates);if(isError)return errorObejct;let _guess=guess!=null?guess:NumberValueObject.create(.1);_guess.isNull()&&(_guess=NumberValueObject.create(.1));const{isError:_isError_guess,errorObject:_errorObject_guess,variants}=checkVariantsErrorIsArrayOrBoolean(_guess);if(_isError_guess)return _errorObject_guess;const[guessObject]=variants,guessValue=+guessObject.getValue();if(Number.isNaN(guessValue))return ErrorValueObject.create(ErrorType$1.VALUE);const{positive,negative}=this._checkValues(_values);if(!positive||!negative||(_values==null?void 0:_values.length)!==(_dates==null?void 0:_dates.length)||guessValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=getResultByGuessIterF(guessValue,rate=>this._iterF(_values,_dates,rate));return typeof result!="number"?result:NumberValueObject.create(result)}_checkErrors(values,dates){if(values.isError())return{isError:!0,errorObejct:values};if(dates.isError())return{isError:!0,errorObejct:dates};const{isError:isError_values,errorObejct:errorObejct_values,_values}=this._checkErrorValues(values);if(isError_values)return{isError:isError_values,errorObejct:errorObejct_values};const{isError:isError_dates,errorObejct:errorObejct_dates,_dates}=this._checkErrorDates(dates);return isError_dates?{isError:isError_dates,errorObejct:errorObejct_dates}:{isError:!1,_values,_dates}}_checkErrorValues(values){const _values=[];if(values.isArray()){let isError=!1,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE);return values.iterator(valuesObject=>{const _valuesObject=valuesObject;if(_valuesObject.isError())return isError=!0,errorObejct=_valuesObject,!1;if(_valuesObject.isBoolean())return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;const value=+_valuesObject.getValue();if(Number.isNaN(value))return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;_values.push(value)}),isError?{isError,errorObejct}:_values.length<=1?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}:{isError,_values}}else{const valuesValue=values.getValue();return values.isBoolean()||values.isString()&&!core.isRealNum(valuesValue)?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.VALUE)}:{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}}}_checkErrorDates(dates){const _dates=[];if(dates.isArray()){let isError=!1,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE);return dates.iterator(datesObject=>{if(datesObject!=null&&datesObject.isError())return isError=!0,errorObejct=datesObject,!1;if(datesObject!=null&&datesObject.isBoolean())return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;const datesValue=+datesObject.getValue();if(Number.isNaN(datesValue))return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;if(datesValue<0)return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.NUM),!1;_dates.push(Math.floor(datesValue))}),isError?{isError,errorObejct}:_dates.length<=1?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}:{isError,_dates}}else{const datesValue=dates.getValue();return dates.isBoolean()||dates.isString()&&!core.isRealNum(datesValue)?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.VALUE)}:+datesValue<0?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NUM)}:{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}}}_checkValues(values){let positive=!1,negative=!1;for(let i=0;i<values.length;i++)values[i]>0&&(positive=!0),values[i]<0&&(negative=!0);return{positive,negative}}_iterF(values,dates,rate){return values.reduce((total,value,index)=>total+value/(1+rate)**((dates[index]-dates[0])/365),0)}};__name(_Xirr,"Xirr");let Xirr=_Xirr;const _Xnpv=class _Xnpv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(rate,values,dates){if(rate.isNull()||values.isNull()||dates.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError:_isError_rate,errorObject:_errorObject_rate,variants}=checkVariantsErrorIsArrayOrBoolean(rate);if(_isError_rate)return _errorObject_rate;const[rateObject]=variants,rateValue=+rateObject.getValue();if(Number.isNaN(rateValue))return ErrorValueObject.create(ErrorType$1.VALUE);let{isError,errorObejct,_values,_dates}=this._checkErrors(values,dates);if(isError)return errorObejct;if(_values=_values,_dates=_dates,rateValue<0||_values.length!==_dates.length)return ErrorValueObject.create(ErrorType$1.NUM);let result=0;const d1=_dates[0];for(let i=0;i<_dates.length;i++){const di=_dates[i],Pi2=_values[i];result+=Pi2/(1+rateValue)**((di-d1)/365)}return NumberValueObject.create(result)}_checkErrors(values,dates){if(values.isError())return{isError:!0,errorObejct:values};if(dates.isError())return{isError:!0,errorObejct:dates};const{isError:isError_values,errorObejct:errorObejct_values,_values}=this._checkErrorValues(values);if(isError_values)return{isError:isError_values,errorObejct:errorObejct_values};const{isError:isError_dates,errorObejct:errorObejct_dates,_dates}=this._checkErrorDates(dates);return isError_dates?{isError:isError_dates,errorObejct:errorObejct_dates}:{isError:!1,_values,_dates}}_checkErrorValues(values){const _values=[];if(values.isArray()){let isError=!1,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE);return values.iterator(valuesObject=>{const _valuesObject=valuesObject;if(_valuesObject.isError())return isError=!0,errorObejct=_valuesObject,!1;if(_valuesObject.isNull()||_valuesObject.isBoolean())return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;const value=+_valuesObject.getValue();if(Number.isNaN(value))return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;_values.push(value)}),isError?{isError,errorObejct}:_values.length<=1?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}:{isError,_values}}else{const valuesValue=values.getValue();return values.isNull()||values.isBoolean()||values.isString()&&!core.isRealNum(valuesValue)?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.VALUE)}:{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}}}_checkErrorDates(dates){const _dates=[];if(dates.isArray()){let isError=!1,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE);return dates.iterator(datesObject=>{const _datesObject=datesObject;if(_datesObject.isError())return isError=!0,errorObejct=_datesObject,!1;if(_datesObject.isNull()||_datesObject.isBoolean())return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;const datesValue=+_datesObject.getValue();if(Number.isNaN(datesValue))return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.VALUE),!1;if(datesValue<0)return isError=!0,errorObejct=ErrorValueObject.create(ErrorType$1.NUM),!1;_dates.push(Math.floor(datesValue))}),isError?{isError,errorObejct}:_dates.length<=1?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}:{isError,_dates}}else{const datesValue=dates.getValue();return dates.isNull()||dates.isBoolean()||dates.isString()&&!core.isRealNum(datesValue)?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.VALUE)}:+datesValue<0?{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NUM)}:{isError:!0,errorObejct:ErrorValueObject.create(ErrorType$1.NA)}}}};__name(_Xnpv,"Xnpv");let Xnpv=_Xnpv;const _Yield=class _Yield extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",6);__publicField(this,"maxParams",7)}calculate(settlement,maturity,rate,pr,redemption,frequency,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,rate,pr,redemption,frequency,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,rateObject,prObject,redemptionObject,frequencyObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const rateValue=+rateObject.getValue(),prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),frequencyValue=Math.floor(+frequencyObject.getValue()),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(frequencyValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(rateValue<0||prValue<=0||redemptionValue<=0||![1,2,4].includes(frequencyValue)||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber||!validCouppcdIsGte0ByTwoDate(settlementSerialNumber,maturitySerialNumber,frequencyValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=this._getResult(settlementSerialNumber,maturitySerialNumber,rateValue,prValue,redemptionValue,frequencyValue,basisValue);return NumberValueObject.create(result)}_getResult(settlementSerialNumber,maturitySerialNumber,rate,pr,redemption,frequency,basis){if(calculateCoupnum(settlementSerialNumber,maturitySerialNumber,frequency)>1){let yld=rate||.01,price=calculatePrice(settlementSerialNumber,maturitySerialNumber,rate,yld,redemption,frequency,basis),eps=price-pr;for(let i=0;i<100&&Math.abs(eps)>1e-7;i++)price=calculatePrice(settlementSerialNumber,maturitySerialNumber,rate,1.01*yld,redemption,frequency,basis),yld+=-eps/(price-pr-eps)*yld*.01,eps=calculatePrice(settlementSerialNumber,maturitySerialNumber,rate,yld,redemption,frequency,basis)-pr;return yld}const A=calculateCoupdaybs(settlementSerialNumber,maturitySerialNumber,frequency,basis),E=calculateCoupdays(settlementSerialNumber,maturitySerialNumber,frequency,basis),{days:DSR}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basis),temp=pr/100+A/E*rate/frequency;return(redemption/100+rate/frequency-temp)/temp*frequency*E/DSR}};__name(_Yield,"Yield");let Yield=_Yield;const _Yielddisc=class _Yielddisc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",5)}calculate(settlement,maturity,pr,redemption,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,pr,redemption,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,prObject,redemptionObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const prValue=+prObject.getValue(),redemptionValue=+redemptionObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(prValue)||Number.isNaN(redemptionValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(prValue<=0||redemptionValue<=0||basisValue<0||basisValue>4||settlementSerialNumber>=maturitySerialNumber)return ErrorValueObject.create(ErrorType$1.NUM);const{days:DSM,yearDays:B}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),result=(redemptionValue/prValue-1)/(DSM/B);return NumberValueObject.create(result)}};__name(_Yielddisc,"Yielddisc");let Yielddisc=_Yielddisc;const _Yieldmat=class _Yieldmat extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",5);__publicField(this,"maxParams",6)}calculate(settlement,maturity,issue,rate,pr,basis){let _basis=basis!=null?basis:NumberValueObject.create(0);_basis.isNull()&&(_basis=NumberValueObject.create(0));const{isError,errorObject,variants}=checkVariantsErrorIsNullorArrayOrBoolean(settlement,maturity,issue,rate,pr,_basis);if(isError)return errorObject;const[settlementObject,maturityObject,issueObject,rateObject,prObject,basisObject]=variants,settlementSerialNumber=getDateSerialNumberByObject(settlementObject);if(typeof settlementSerialNumber!="number")return settlementSerialNumber;const maturitySerialNumber=getDateSerialNumberByObject(maturityObject);if(typeof maturitySerialNumber!="number")return maturitySerialNumber;const issueSerialNumber=getDateSerialNumberByObject(issueObject);if(typeof issueSerialNumber!="number")return issueSerialNumber;const rateValue=+rateObject.getValue(),prValue=+prObject.getValue(),basisValue=Math.floor(+basisObject.getValue());if(Number.isNaN(rateValue)||Number.isNaN(prValue)||Number.isNaN(basisValue))return ErrorValueObject.create(ErrorType$1.VALUE);const isCorrectOrder=this._getDateCorrectOrder(maturitySerialNumber,settlementSerialNumber,issueSerialNumber);if(rateValue<0||prValue<=0||basisValue<0||basisValue>4||!isCorrectOrder)return ErrorValueObject.create(ErrorType$1.NUM);const B=getNormalYearDaysByBasis(settlementSerialNumber,basisValue),{days:DSM}=getTwoDateDaysByBasis(settlementSerialNumber,maturitySerialNumber,basisValue),{days:DIM}=getTwoDateDaysByBasis(issueSerialNumber,maturitySerialNumber,basisValue),{days:A}=getTwoDateDaysByBasis(issueSerialNumber,settlementSerialNumber,basisValue),result=((1+DIM/B*rateValue)/(prValue/100+A/B*rateValue)-1)/(DSM/B);return NumberValueObject.create(result)}_getDateCorrectOrder(maturitySerialNumber,settlementSerialNumber,issueSerialNumber){return Math.floor(maturitySerialNumber)>Math.floor(settlementSerialNumber)&&Math.floor(settlementSerialNumber)>Math.floor(issueSerialNumber)}};__name(_Yieldmat,"Yieldmat");let Yieldmat=_Yieldmat;const functionFinancial=[[Accrint,FUNCTION_NAMES_FINANCIAL.ACCRINT],[Accrintm,FUNCTION_NAMES_FINANCIAL.ACCRINTM],[Amorlinc,FUNCTION_NAMES_FINANCIAL.AMORLINC],[Coupdaybs,FUNCTION_NAMES_FINANCIAL.COUPDAYBS],[Coupdays,FUNCTION_NAMES_FINANCIAL.COUPDAYS],[Coupdaysnc,FUNCTION_NAMES_FINANCIAL.COUPDAYSNC],[Coupncd,FUNCTION_NAMES_FINANCIAL.COUPNCD],[Coupnum,FUNCTION_NAMES_FINANCIAL.COUPNUM],[Couppcd,FUNCTION_NAMES_FINANCIAL.COUPPCD],[Cumipmt,FUNCTION_NAMES_FINANCIAL.CUMIPMT],[Cumprinc,FUNCTION_NAMES_FINANCIAL.CUMPRINC],[Db,FUNCTION_NAMES_FINANCIAL.DB],[Ddb,FUNCTION_NAMES_FINANCIAL.DDB],[Disc,FUNCTION_NAMES_FINANCIAL.DISC],[Dollarde,FUNCTION_NAMES_FINANCIAL.DOLLARDE],[Dollarfr,FUNCTION_NAMES_FINANCIAL.DOLLARFR],[Duration,FUNCTION_NAMES_FINANCIAL.DURATION],[Effect,FUNCTION_NAMES_FINANCIAL.EFFECT],[Fv,FUNCTION_NAMES_FINANCIAL.FV],[Fvschedule,FUNCTION_NAMES_FINANCIAL.FVSCHEDULE],[Intrate,FUNCTION_NAMES_FINANCIAL.INTRATE],[Ipmt,FUNCTION_NAMES_FINANCIAL.IPMT],[Irr,FUNCTION_NAMES_FINANCIAL.IRR],[Ispmt,FUNCTION_NAMES_FINANCIAL.ISPMT],[Mduration,FUNCTION_NAMES_FINANCIAL.MDURATION],[Mirr,FUNCTION_NAMES_FINANCIAL.MIRR],[Nominal,FUNCTION_NAMES_FINANCIAL.NOMINAL],[Nper,FUNCTION_NAMES_FINANCIAL.NPER],[Npv,FUNCTION_NAMES_FINANCIAL.NPV],[Oddfprice,FUNCTION_NAMES_FINANCIAL.ODDFPRICE],[Oddfyield,FUNCTION_NAMES_FINANCIAL.ODDFYIELD],[Oddlprice,FUNCTION_NAMES_FINANCIAL.ODDLPRICE],[Oddlyield,FUNCTION_NAMES_FINANCIAL.ODDLYIELD],[Pduration,FUNCTION_NAMES_FINANCIAL.PDURATION],[Pmt,FUNCTION_NAMES_FINANCIAL.PMT],[Ppmt,FUNCTION_NAMES_FINANCIAL.PPMT],[Price,FUNCTION_NAMES_FINANCIAL.PRICE],[Pricedisc,FUNCTION_NAMES_FINANCIAL.PRICEDISC],[Pricemat,FUNCTION_NAMES_FINANCIAL.PRICEMAT],[Pv,FUNCTION_NAMES_FINANCIAL.PV],[Rate,FUNCTION_NAMES_FINANCIAL.RATE],[Received,FUNCTION_NAMES_FINANCIAL.RECEIVED],[Rri,FUNCTION_NAMES_FINANCIAL.RRI],[Sln,FUNCTION_NAMES_FINANCIAL.SLN],[Syd,FUNCTION_NAMES_FINANCIAL.SYD],[Tbilleq,FUNCTION_NAMES_FINANCIAL.TBILLEQ],[Tbillprice,FUNCTION_NAMES_FINANCIAL.TBILLPRICE],[Tbillyield,FUNCTION_NAMES_FINANCIAL.TBILLYIELD],[Vdb,FUNCTION_NAMES_FINANCIAL.VDB],[Xirr,FUNCTION_NAMES_FINANCIAL.XIRR],[Xnpv,FUNCTION_NAMES_FINANCIAL.XNPV],[Yield,FUNCTION_NAMES_FINANCIAL.YIELD],[Yielddisc,FUNCTION_NAMES_FINANCIAL.YIELDDISC],[Yieldmat,FUNCTION_NAMES_FINANCIAL.YIELDMAT]];var FUNCTION_NAMES_INFORMATION=(FUNCTION_NAMES_INFORMATION2=>(FUNCTION_NAMES_INFORMATION2.CELL="CELL",FUNCTION_NAMES_INFORMATION2.ERROR_TYPE="ERROR.TYPE",FUNCTION_NAMES_INFORMATION2.INFO="INFO",FUNCTION_NAMES_INFORMATION2.ISBLANK="ISBLANK",FUNCTION_NAMES_INFORMATION2.ISERR="ISERR",FUNCTION_NAMES_INFORMATION2.ISERROR="ISERROR",FUNCTION_NAMES_INFORMATION2.ISEVEN="ISEVEN",FUNCTION_NAMES_INFORMATION2.ISFORMULA="ISFORMULA",FUNCTION_NAMES_INFORMATION2.ISLOGICAL="ISLOGICAL",FUNCTION_NAMES_INFORMATION2.ISNA="ISNA",FUNCTION_NAMES_INFORMATION2.ISNONTEXT="ISNONTEXT",FUNCTION_NAMES_INFORMATION2.ISNUMBER="ISNUMBER",FUNCTION_NAMES_INFORMATION2.ISODD="ISODD",FUNCTION_NAMES_INFORMATION2.ISOMITTED="ISOMITTED",FUNCTION_NAMES_INFORMATION2.ISREF="ISREF",FUNCTION_NAMES_INFORMATION2.ISTEXT="ISTEXT",FUNCTION_NAMES_INFORMATION2.N="N",FUNCTION_NAMES_INFORMATION2.NA="NA",FUNCTION_NAMES_INFORMATION2.SHEET="SHEET",FUNCTION_NAMES_INFORMATION2.SHEETS="SHEETS",FUNCTION_NAMES_INFORMATION2.TYPE="TYPE",FUNCTION_NAMES_INFORMATION2))(FUNCTION_NAMES_INFORMATION||{});const _Cell=class _Cell extends BaseFunction{constructor(){super(...arguments);__publicField(this,"needsReferenceObject",!0);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(infoType,reference){let _infoType=infoType;if(_infoType.isError())return _infoType;if(_infoType.isReferenceObject()&&(_infoType=_infoType.toArrayValueObject()),_infoType.isArray()){const rowCount=_infoType.getRowCount(),columnCount=_infoType.getColumnCount();if(rowCount===1&&columnCount===1){const infoTypeObject=_infoType.get(0,0);return this._handleSingleObject(infoTypeObject,reference)}return _infoType.map(infoTypeObject=>infoTypeObject.isError()?infoTypeObject:this._handleSingleObject(infoTypeObject,reference,!0))}return this._handleSingleObject(_infoType,reference)}_handleSingleObject(infoType,reference,infoTypeIsArray=!1){let _reference=reference;if(_reference.isError())return _reference;if(!_reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.NA);const currentActiveSheetData=_reference.getCurrentActiveSheetData(),{columnData,defaultColumnWidth}=currentActiveSheetData;_reference=_reference.toArrayValueObject();const _currentRow=_reference.getCurrentRow(),_currentColumn=_reference.getCurrentColumn();_reference=_reference.getFirstCell();const infoTypeValue=`${infoType.getValue()}`;let result;switch(infoTypeValue.toLocaleLowerCase()){case"address":return StringValueObject.create(`$${core.Tools.chatAtABC(_currentColumn)}$${_currentRow+1}`);case"col":return NumberValueObject.create(_currentColumn+1);case"color":return NumberValueObject.create(0);case"contents":return _reference;case"filename":return ErrorValueObject.create(ErrorType$1.VALUE);case"format":return StringValueObject.create("G");case"parentheses":return NumberValueObject.create(0);case"prefix":return StringValueObject.create("");case"protect":return NumberValueObject.create(1);case"row":return NumberValueObject.create(_currentRow+1);case"type":return result="v",_reference.isNull()&&(result="b"),_reference.isString()&&(result="l"),StringValueObject.create(result);case"width":return this._getWidthResult(columnData,defaultColumnWidth,_currentColumn,infoTypeIsArray);default:return ErrorValueObject.create(ErrorType$1.VALUE)}}_getWidthResult(columnData,defaultColumnWidth,_currentColumn,infoTypeIsArray){var _a2;let result=(_a2=columnData[_currentColumn])==null?void 0:_a2.w;if(!result&&result!==0&&(result=defaultColumnWidth),infoTypeIsArray)return NumberValueObject.create(result);const resultArray=[[result,result===defaultColumnWidth]];return ArrayValueObject.createByArray(resultArray)}};__name(_Cell,"Cell");let Cell=_Cell;const _ErrorType=class _ErrorType extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"_errorTypeValueMap",new Map([[ErrorType$1.NULL,1],[ErrorType$1.DIV_BY_ZERO,2],[ErrorType$1.VALUE,3],[ErrorType$1.REF,4],[ErrorType$1.NAME,5],[ErrorType$1.NUM,6],[ErrorType$1.NA,7],[ErrorType$1.CONNECT,8],[ErrorType$1.CALC,14]]))}calculate(errorVal){return errorVal.isArray()?errorVal.mapValue(errorValObject=>this._handleSingleObject(errorValObject)):this._handleSingleObject(errorVal)}_handleSingleObject(errorVal){const errorValValue=errorVal.getValue(),result=this._errorTypeValueMap.get(errorValValue);return result?NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.NA)}};__name(_ErrorType,"ErrorType");let ErrorType=_ErrorType;const _Isblank=class _Isblank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isNull()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isNull()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isblank,"Isblank");let Isblank=_Isblank;const _Iserr=class _Iserr extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.getValue()===ErrorType$1.NA?BooleanValueObject.create(!1):value.isError()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.getValue()===ErrorType$1.NA?BooleanValueObject.create(!1):valueObject.isError()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Iserr,"Iserr");let Iserr=_Iserr;const _Iserror=class _Iserror extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isError()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isError()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Iserror,"Iserror");let Iserror=_Iserror;const _Iseven=class _Iseven extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(_value.isArray()){const rowCount=_value.getRowCount(),columnCount=_value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_value=_value.get(0,0)}if(_value.isError())return _value;if(_value.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const val=Math.trunc(+_value.getValue());if(Number.isNaN(val))return ErrorValueObject.create(ErrorType$1.VALUE);const result=val%2===0;return BooleanValueObject.create(result)}};__name(_Iseven,"Iseven");let Iseven=_Iseven;const _Isformula=class _Isformula extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(reference){var _a2;if(reference.isError())return reference;if(!reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.NA);const cellDataMatrix=(_a2=reference.getCurrentActiveSheetData())==null?void 0:_a2.cellData.getMatrix(),{startRow,startColumn}=reference.getRangePosition(),_reference=reference.toArrayValueObject(),resultArray=_reference.mapValue((valueObject,rowIndex,columnIndex)=>{var _a3;const cellData=(_a3=cellDataMatrix==null?void 0:cellDataMatrix[startRow+rowIndex])==null?void 0:_a3[startColumn+columnIndex];return cellData!=null&&cellData.f||cellData!=null&&cellData.si?BooleanValueObject.create(!0):BooleanValueObject.create(!1)});return _reference.getRowCount()===1&&_reference.getColumnCount()===1?resultArray.get(0,0):resultArray}};__name(_Isformula,"Isformula");let Isformula=_Isformula;const _Islogical=class _Islogical extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isBoolean()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isBoolean()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Islogical,"Islogical");let Islogical=_Islogical;const _Isna=class _Isna extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.getValue()===ErrorType$1.NA?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.getValue()===ErrorType$1.NA?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isna,"Isna");let Isna=_Isna;const _Isnontext=class _Isnontext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return!value.isArray()&&!value.isString()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isString()?BooleanValueObject.create(!1):BooleanValueObject.create(!0)):BooleanValueObject.create(!1)}};__name(_Isnontext,"Isnontext");let Isnontext=_Isnontext;const _Isnumber=class _Isnumber extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isNumber()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isNumber()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Isnumber,"Isnumber");let Isnumber=_Isnumber;const _Isodd=class _Isodd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(_value.isArray()){const rowCount=_value.getRowCount(),columnCount=_value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_value=_value.get(0,0)}if(_value.isError())return _value;if(_value.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const val=Math.trunc(+_value.getValue());if(Number.isNaN(val))return ErrorValueObject.create(ErrorType$1.VALUE);const result=val%2!==0;return BooleanValueObject.create(result)}};__name(_Isodd,"Isodd");let Isodd=_Isodd;const _Isref=class _Isref extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(value){return value.isReferenceObject()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)}};__name(_Isref,"Isref");let Isref=_Isref;const _Istext=class _Istext extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){return value.isString()?BooleanValueObject.create(!0):value.isArray()?value.mapValue(valueObject=>valueObject.isString()?BooleanValueObject.create(!0):BooleanValueObject.create(!1)):BooleanValueObject.create(!1)}};__name(_Istext,"Istext");let Istext=_Istext;const _N=class _N extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){let _value=value;if(value.isArray()&&(_value=value.get(0,0)),_value.isError())return _value;if(_value.isString())return NumberValueObject.create(0);const val=+_value.getValue();return NumberValueObject.create(val)}};__name(_N,"N");let N=_N;const _Na=class _Na extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return ErrorValueObject.create(ErrorType$1.NA)}};__name(_Na,"Na");let Na=_Na;const _Type=class _Type extends BaseFunction{constructor(){super(...arguments);__publicField(this,"needsReferenceObject",!0);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(value){if(value.isReferenceObject()){const rowCount=value.getRowCount(),columnCount=value.getColumnCount();if(rowCount===1&&columnCount===1){const _value=value.getFirstCell();if(_value.isError())return NumberValueObject.create(16);if(_value.isBoolean())return NumberValueObject.create(4);if(_value.isString())return NumberValueObject.create(2);if(_value.isNumber()||_value.isNull())return NumberValueObject.create(1)}else return NumberValueObject.create(64)}else{if(value.isArray())return NumberValueObject.create(64);if(value.isError())return NumberValueObject.create(16);if(value.isBoolean())return NumberValueObject.create(4);if(value.isString())return NumberValueObject.create(2);if(value.isNumber()||value.isNull())return NumberValueObject.create(1)}return NumberValueObject.create(128)}};__name(_Type,"Type");let Type=_Type;const functionInformation=[[Cell,FUNCTION_NAMES_INFORMATION.CELL],[ErrorType,FUNCTION_NAMES_INFORMATION.ERROR_TYPE],[Isblank,FUNCTION_NAMES_INFORMATION.ISBLANK],[Iserr,FUNCTION_NAMES_INFORMATION.ISERR],[Iserror,FUNCTION_NAMES_INFORMATION.ISERROR],[Iseven,FUNCTION_NAMES_INFORMATION.ISEVEN],[Isformula,FUNCTION_NAMES_INFORMATION.ISFORMULA],[Islogical,FUNCTION_NAMES_INFORMATION.ISLOGICAL],[Isna,FUNCTION_NAMES_INFORMATION.ISNA],[Isnontext,FUNCTION_NAMES_INFORMATION.ISNONTEXT],[Isnumber,FUNCTION_NAMES_INFORMATION.ISNUMBER],[Isodd,FUNCTION_NAMES_INFORMATION.ISODD],[Isref,FUNCTION_NAMES_INFORMATION.ISREF],[Istext,FUNCTION_NAMES_INFORMATION.ISTEXT],[N,FUNCTION_NAMES_INFORMATION.N],[Na,FUNCTION_NAMES_INFORMATION.NA],[Type,FUNCTION_NAMES_INFORMATION.TYPE]],_And=class _And extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let result=!0,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(result=result&&!!value.getValue(),noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(result=result&&!!logicalValue.getValue(),noBoolean=!1)}return noBoolean?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(result)}};__name(_And,"And");let And=_And;const _Bycol=class _Bycol extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2);__publicField(this,"needsReferenceObject",!0)}calculate(array,lambda){let _array=array,_array_reference=null;if(array.isReferenceObject()&&(_array=array.toArrayValueObject(),_array_reference=array),_array.isError())return _array;if(lambda.isError())return lambda;if(!(lambda.isValueObject()&&lambda.isLambda()&&lambda.getLambdaPrivacyVarKeys().length===1))return ErrorValueObject.create(ErrorType$1.VALUE);const _lambda=lambda,rowCount=_array.isArray()?_array.getRowCount():1,columnCount=_array.isArray()?_array.getColumnCount():1;_array=expandArrayValueObject(rowCount,columnCount,_array);const result=[[]];for(let c=0;c<columnCount;c++){const rows=[];for(let r=0;r<rowCount;r++){const col=_array.get(r,c);rows.push([col])}let lambdaVariant=ArrayValueObject.create({calculateValueList:rows,rowCount,columnCount:1,unitId:"",sheetId:"",row:0,column:0});if(_array_reference){const{startRow,startColumn}=_array_reference.getRangePosition(),range={startRow,startColumn:startColumn+c,endRow:startRow+rowCount-1,endColumn:startColumn+c};lambdaVariant=this.createReferenceObject(_array_reference,range)}let value=_lambda.execute(lambdaVariant);if(value.isArray()){const valueRowCount=value.getRowCount(),valueColumnCount=value.getColumnCount();if(valueRowCount>1||valueColumnCount>1)return ErrorValueObject.create(ErrorType$1.CALC);value=value.get(0,0)}value.isNull()&&(value=NumberValueObject.create(0)),result[0].push(value)}return columnCount===1?result[0][0]:ArrayValueObject.create({calculateValueList:result,rowCount:1,columnCount,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Bycol,"Bycol");let Bycol=_Bycol;const _Byrow=class _Byrow extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2);__publicField(this,"needsReferenceObject",!0)}calculate(array,lambda){let _array=array,_array_reference=null;if(array.isReferenceObject()&&(_array=array.toArrayValueObject(),_array_reference=array),_array.isError())return _array;if(lambda.isError())return lambda;if(!(lambda.isValueObject()&&lambda.isLambda()&&lambda.getLambdaPrivacyVarKeys().length===1))return ErrorValueObject.create(ErrorType$1.VALUE);const _lambda=lambda,rowCount=_array.isArray()?_array.getRowCount():1,columnCount=_array.isArray()?_array.getColumnCount():1;_array=expandArrayValueObject(rowCount,columnCount,_array);const result=[];for(let r=0;r<rowCount;r++){const rows=[[]];for(let c=0;c<columnCount;c++){const col=_array.get(r,c);rows[0].push(col)}let lambdaVariant=ArrayValueObject.create({calculateValueList:rows,rowCount:1,columnCount,unitId:"",sheetId:"",row:0,column:0});if(_array_reference){const{startRow,startColumn}=_array_reference.getRangePosition(),range={startRow:startRow+r,startColumn,endRow:startRow+r,endColumn:startColumn+columnCount-1};lambdaVariant=this.createReferenceObject(_array_reference,range)}let value=_lambda.execute(lambdaVariant);if(value.isArray()){const valueRowCount=value.getRowCount(),valueColumnCount=value.getColumnCount();if(valueRowCount>1||valueColumnCount>1)return ErrorValueObject.create(ErrorType$1.CALC);value=value.get(0,0)}value.isNull()&&(value=NumberValueObject.create(0)),result.push([value])}return rowCount===1?result[0][0]:ArrayValueObject.create({calculateValueList:result,rowCount,columnCount:1,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Byrow,"Byrow");let Byrow=_Byrow;const _False=class _False extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return BooleanValueObject.create(!1)}};__name(_False,"False");let False=_False;var FUNCTION_NAMES_LOGICAL=(FUNCTION_NAMES_LOGICAL2=>(FUNCTION_NAMES_LOGICAL2.AND="AND",FUNCTION_NAMES_LOGICAL2.BYCOL="BYCOL",FUNCTION_NAMES_LOGICAL2.BYROW="BYROW",FUNCTION_NAMES_LOGICAL2.FALSE="FALSE",FUNCTION_NAMES_LOGICAL2.IF="IF",FUNCTION_NAMES_LOGICAL2.IFERROR="IFERROR",FUNCTION_NAMES_LOGICAL2.IFNA="IFNA",FUNCTION_NAMES_LOGICAL2.IFS="IFS",FUNCTION_NAMES_LOGICAL2.LAMBDA="LAMBDA",FUNCTION_NAMES_LOGICAL2.LET="LET",FUNCTION_NAMES_LOGICAL2.MAKEARRAY="MAKEARRAY",FUNCTION_NAMES_LOGICAL2.MAP="MAP",FUNCTION_NAMES_LOGICAL2.NOT="NOT",FUNCTION_NAMES_LOGICAL2.OR="OR",FUNCTION_NAMES_LOGICAL2.REDUCE="REDUCE",FUNCTION_NAMES_LOGICAL2.SCAN="SCAN",FUNCTION_NAMES_LOGICAL2.SWITCH="SWITCH",FUNCTION_NAMES_LOGICAL2.TRUE="TRUE",FUNCTION_NAMES_LOGICAL2.XOR="XOR",FUNCTION_NAMES_LOGICAL2))(FUNCTION_NAMES_LOGICAL||{});const _If=class _If extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(logicalTest,valueIfTrue,valueIfFalse=BooleanValueObject.create(!1)){if(logicalTest.isError())return logicalTest;if(valueIfTrue.isError())return valueIfTrue;const _logicalTest=this._getSingleValueObject(logicalTest);if(!_logicalTest.isArray())return _logicalTest.getValue()?valueIfTrue:valueIfFalse;const maxRowLength=Math.max(_logicalTest.isArray()?_logicalTest.getRowCount():1,valueIfTrue.isArray()?valueIfTrue.getRowCount():1,valueIfFalse.isArray()?valueIfFalse.getRowCount():1),maxColumnLength=Math.max(_logicalTest.isArray()?_logicalTest.getColumnCount():1,valueIfTrue.isArray()?valueIfTrue.getColumnCount():1,valueIfFalse.isArray()?valueIfFalse.getColumnCount():1),logicalTestArray=expandArrayValueObject(maxRowLength,maxColumnLength,_logicalTest),valueIfTrueArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfTrue,ErrorValueObject.create(ErrorType$1.NA)),valueIfFalseArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfFalse,ErrorValueObject.create(ErrorType$1.NA));return logicalTestArray.map((logicalTestValue,rowIndex,columnIndex)=>{if(logicalTestValue.isNull())return ErrorValueObject.create(ErrorType$1.NA);{const valueIfTrueValue=valueIfTrueArray.get(rowIndex,columnIndex)||NullValueObject.create(),valueIfFalseValue=valueIfFalseArray.get(rowIndex,columnIndex)||NullValueObject.create();return this._calculateSingleCell(logicalTestValue,valueIfTrueValue,valueIfFalseValue)}})}_getSingleValueObject(valueObject){return valueObject.isArray()&&valueObject.getRowCount()===1&&valueObject.getColumnCount()===1?valueObject.getFirstCell():valueObject}_calculateSingleCell(logicalTest,valueIfTrue,valueIfFalse){return logicalTest.isNull()?ErrorValueObject.create(ErrorType$1.NA):logicalTest.getValue()?valueIfTrue.isNull()?ErrorValueObject.create(ErrorType$1.NA):valueIfTrue:valueIfFalse.isNull()?ErrorValueObject.create(ErrorType$1.NA):valueIfFalse}};__name(_If,"If");let If=_If;const _Iferror=class _Iferror extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(value,valueIfError){if(value.isError())return value;if(valueIfError.isError())return valueIfError;if(!value.isArray())return value.isError()?valueIfError:value;const maxRowLength=Math.max(value.isArray()?value.getRowCount():1,valueIfError.isArray()?valueIfError.getRowCount():1),maxColumnLength=Math.max(value.isArray()?value.getColumnCount():1,valueIfError.isArray()?valueIfError.getColumnCount():1),valueArray=expandArrayValueObject(maxRowLength,maxColumnLength,value),valueIfErrorArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfError);return valueArray.iterator((value2,rowIndex,columnIndex)=>{value2!=null&&value2.isError()&&valueArray.set(rowIndex,columnIndex,valueIfErrorArray.get(rowIndex,columnIndex))}),valueArray}};__name(_Iferror,"Iferror");let Iferror=_Iferror;const _Ifna=class _Ifna extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(value,valueIfNa){if(value.isError()&&value.getErrorType()!==ErrorType$1.NA)return value;if(valueIfNa.isError())return valueIfNa;if(!value.isArray())return value.isError()&&value.getErrorType()===ErrorType$1.NA?valueIfNa:value;const maxRowLength=Math.max(value.isArray()?value.getRowCount():1,valueIfNa.isArray()?valueIfNa.getRowCount():1),maxColumnLength=Math.max(value.isArray()?value.getColumnCount():1,valueIfNa.isArray()?valueIfNa.getColumnCount():1),valueArray=expandArrayValueObject(maxRowLength,maxColumnLength,value),valueIfNaArray=expandArrayValueObject(maxRowLength,maxColumnLength,valueIfNa);return valueArray.iterator((cellValue,rowIndex,columnIndex)=>{cellValue!=null&&cellValue.isError()&&cellValue.getErrorType()===ErrorType$1.NA&&valueArray.set(rowIndex,columnIndex,valueIfNaArray.get(rowIndex,columnIndex))}),valueArray}};__name(_Ifna,"Ifna");let Ifna=_Ifna;const _Ifs=class _Ifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(...params){if(params.length%2!==0)return ErrorValueObject.create(ErrorType$1.NA);for(let i=0;i<params.length;i++)if(params[i].isError())return params[i];const maxRowLength=Math.max(...params.map(param=>param.isArray()?param.getRowCount():1)),maxColumnLength=Math.max(...params.map(param=>param.isArray()?param.getColumnCount():1)),expandedParams=params.map(param=>expandArrayValueObject(maxRowLength,maxColumnLength,param,ErrorValueObject.create(ErrorType$1.NA))),resultArray=expandedParams[0].map((_,rowIndex,columnIndex)=>{for(let i=0;i<expandedParams.length;i+=2){const condition=expandedParams[i].get(rowIndex,columnIndex)||NullValueObject.create(),result=expandedParams[i+1].get(rowIndex,columnIndex)||NullValueObject.create();if(condition.isNull())continue;if(condition.isError())return condition;const conditionValue=condition.getValue();if(condition.isString()){if(`${conditionValue}`.toLocaleUpperCase()==="TRUE")return result;if(`${conditionValue}`.toLocaleUpperCase()==="FALSE")continue;return ErrorValueObject.create(ErrorType$1.VALUE)}if(+conditionValue)return result.isNull()?ErrorValueObject.create(ErrorType$1.NA):result}return ErrorValueObject.create(ErrorType$1.NA)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Ifs,"Ifs");let Ifs=_Ifs;const _Lambda=class _Lambda extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lambda,"Lambda");let Lambda=_Lambda;const _Let=class _Let extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(...variants){return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Let,"Let");let Let=_Let;const _Makearray=class _Makearray extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(...variants){const row=this.getIndexNumValue(variants[0]);if(typeof row!="number")return row;const column=this.getIndexNumValue(variants[1]);if(typeof column!="number")return column;if(!(variants[2].isValueObject()&&variants[2].isLambda()))return ErrorValueObject.create(ErrorType$1.VALUE);const lambda=variants[2],result=[];for(let r=0;r<row;r++){result[r]==null&&(result[r]=[]);for(let c=0;c<column;c++){let value=lambda.execute(NumberValueObject.create(r+1),NumberValueObject.create(c+1));value.isArray()&&(value=value.get(0,0)),result[r][c]=value}}return new AsyncArrayObject(result)}isAsync(){return!0}};__name(_Makearray,"Makearray");let Makearray=_Makearray,Map$1=(_t=class extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}calculate(...variants){const _variants=[];let lambda=null,maxRowLength=0,maxColumnLength=0;for(let i=0;i<variants.length;i++){const variant=variants[i];let _variant=variant;if(_variant.isReferenceObject()&&(_variant=variant.toArrayValueObject()),_variant.isError())return _variant;if(i===variants.length-1){if(!(variant.isValueObject()&&variant.isLambda()))return ErrorValueObject.create(ErrorType$1.VALUE);lambda=variant}else _variants.push(variant),maxRowLength=Math.max(maxRowLength,_variant.isArray()?_variant.getRowCount():1),maxColumnLength=Math.max(maxColumnLength,_variant.isArray()?_variant.getColumnCount():1)}const resultArray=this._getResultArray(_variants,lambda,maxRowLength,maxColumnLength);return resultArray instanceof ErrorValueObject?resultArray:maxRowLength===1&&maxColumnLength===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount:maxRowLength,columnCount:maxColumnLength,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArray(variants,lambda,maxRowLength,maxColumnLength){const resultArray=[];for(let r=0;r<maxRowLength;r++){const row=[];for(let c=0;c<maxColumnLength;c++){const lambdaVariant=[];let isRowPushed=!1;for(let i=0;i<variants.length;i++){let variant=variants[i],_variant_reference=null;if(variant.isReferenceObject()&&(_variant_reference=variant,variant=variant.toArrayValueObject()),!variant.isArray())if(r===0&&c===0){lambdaVariant.push(_variant_reference||variant);continue}else{row.push(ErrorValueObject.create(ErrorType$1.NA)),isRowPushed=!0;break}let valueObject=variant.get(r,c);if(!valueObject){row.push(ErrorValueObject.create(ErrorType$1.NA)),isRowPushed=!0;break}if(_variant_reference){const{startRow,startColumn}=_variant_reference.getRangePosition(),range={startRow:startRow+r,startColumn:startColumn+c,endRow:startRow+r,endColumn:startColumn+c};valueObject=this.createReferenceObject(_variant_reference,range)}lambdaVariant.push(valueObject)}if(isRowPushed||lambdaVariant.length===0)continue;let value=lambda.execute(...lambdaVariant);if(value.isArray()){const rowCount=value.getRowCount(),columnCount=value.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.CALC);value=value.get(0,0)}value.isNull()&&(value=NumberValueObject.create(0)),row.push(value)}resultArray.push(row)}return resultArray}},__name(_t,"Map"),_t);const _Not=class _Not extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(logical){return logical.isArray()?logical.map(logicalObject=>this._handleSingleObject(logicalObject)):this._handleSingleObject(logical)}_handleSingleObject(logical){if(logical.isError())return logical;const logicalValue=+logical.getValue();return Number.isNaN(logicalValue)?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(!logicalValue)}};__name(_Not,"Not");let Not=_Not;const _Or=class _Or extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let result=!1,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(result=result||!!value.getValue(),noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(result=result||!!logicalValue.getValue(),noBoolean=!1)}return noBoolean?new ErrorValueObject(ErrorType$1.VALUE):new BooleanValueObject(result)}};__name(_Or,"Or");let Or=_Or;const _Reduce=class _Reduce extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(initialValue,array,lambda){let _initialValue,_initialValueReference;initialValue.isReferenceObject()?(_initialValue=initialValue.toArrayValueObject(),_initialValueReference=initialValue):(_initialValue=initialValue,_initialValueReference=null);let _array,_arrayReference;return array.isReferenceObject()?(_array=array.toArrayValueObject(),_arrayReference=array):(_array=array,_arrayReference=null),_initialValue.isArray()?_initialValue.mapValue(initialValueObject=>this._handleSingleValueObject(initialValueObject,_array,lambda,_initialValueReference,_arrayReference)):this._handleSingleValueObject(_initialValue,_array,lambda,_initialValueReference,_arrayReference)}_handleSingleValueObject(initialValue,array,lambda,_initialValue_reference,_array_reference){if(initialValue.isError())return initialValue;if(array.isError())return array;if(lambda.isError())return lambda;if(!(lambda.isValueObject()&&lambda.isLambda()&&lambda.getLambdaPrivacyVarKeys().length===2))return ErrorValueObject.create(ErrorType$1.VALUE);const _lambda=lambda,rowCount=array.isArray()?array.getRowCount():1,columnCount=array.isArray()?array.getColumnCount():1;let accumulator=initialValue;_initialValue_reference&&(accumulator=_initialValue_reference);for(let r=0;r<rowCount;r++)for(let c=0;c<columnCount;c++){let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return valueObject;if(_array_reference){const{startRow,startColumn}=_array_reference.getRangePosition(),range={startRow:startRow+r,startColumn:startColumn+c,endRow:startRow+r,endColumn:startColumn+c};valueObject=this.createReferenceObject(_array_reference,range)}let value=_lambda.execute(accumulator,valueObject);if(value.isError())return value;value.isNull()&&(value=NumberValueObject.create(0)),accumulator=value}return accumulator.isReferenceObject()?accumulator.toArrayValueObject():accumulator}};__name(_Reduce,"Reduce");let Reduce=_Reduce;const _Scan=class _Scan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(initialValue,array,lambda){let _initialValue=initialValue,_initialValue_reference=null;initialValue.isReferenceObject()&&(_initialValue=initialValue.toArrayValueObject(),_initialValue_reference=initialValue),_initialValue=_initialValue;let _array=array,_array_reference=null;if(array.isReferenceObject()&&(_array=array.toArrayValueObject(),_array_reference=array),_array=_array,_initialValue.isError())return _initialValue;if(_array.isError())return _array;if(lambda.isError())return lambda;if(!(lambda.isValueObject()&&lambda.isLambda()&&lambda.getLambdaPrivacyVarKeys().length===2))return ErrorValueObject.create(ErrorType$1.VALUE);if(_initialValue.isArray()){const rowCount=_initialValue.getRowCount(),columnCount=_initialValue.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.CALC);_initialValue=_initialValue.get(0,0)}return this._getResult(_initialValue,_array,lambda,_initialValue_reference,_array_reference)}_getResult(initialValue,array,lambda,_initialValue_reference,_array_reference){const resultArray=[],rowCount=array.isArray()?array.getRowCount():1,columnCount=array.isArray()?array.getColumnCount():1;let accumulator=initialValue;_initialValue_reference&&(accumulator=_initialValue_reference);for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){if(accumulator.isError()){row.push(accumulator);continue}let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError()){accumulator=valueObject,row.push(valueObject);continue}if(_array_reference){const{startRow,startColumn}=_array_reference.getRangePosition(),range={startRow:startRow+r,startColumn:startColumn+c,endRow:startRow+r,endColumn:startColumn+c};valueObject=this.createReferenceObject(_array_reference,range)}let value=lambda.execute(accumulator,valueObject);if(value.isArray()){const rowCount2=value.getRowCount(),columnCount2=value.getColumnCount();if(rowCount2>1||columnCount2>1)return ErrorValueObject.create(ErrorType$1.CALC);value=value.get(0,0)}value.isNull()&&(value=NumberValueObject.create(0)),accumulator=value,row.push(value)}resultArray.push(row)}return rowCount===1&&columnCount===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount,columnCount,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Scan,"Scan");let Scan=_Scan;const _Switch=class _Switch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3)}calculate(expression,...args){if(expression.isError())return expression;const hasDefault=args.length%2!==0,defaultValue=hasDefault?args[args.length-1]:NullValueObject.create();return!expression.isArray()&&!args.some(arg=>arg.isArray())?this._handleNonArrayInputs(expression,args,defaultValue,hasDefault):this._handleArrayInputs(expression,args,defaultValue,hasDefault)}_handleNonArrayInputs(expression,args,defaultValue,hasDefault){for(let i=0;i<args.length-(hasDefault?1:0);i+=2){const switchValue=args[i],resultValue=args[i+1];if(!switchValue.isNull()){if(switchValue.isError())return switchValue;if(`${expression.getValue()}`.toLocaleLowerCase()===`${switchValue.getValue()}`.toLocaleLowerCase())return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}}return defaultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):defaultValue}_handleArrayInputs(expression,args,defaultValue,hasDefault){const maxRowLength=Math.max(expression.isArray()?expression.getRowCount():1,...args.map(arg=>arg.isArray()?arg.getRowCount():1),defaultValue.isArray()?defaultValue.getRowCount():1),maxColumnLength=Math.max(expression.isArray()?expression.getColumnCount():1,...args.map(arg=>arg.isArray()?arg.getColumnCount():1),defaultValue.isArray()?defaultValue.getColumnCount():1),expandedExpression=expandArrayValueObject(maxRowLength,maxColumnLength,expression),expandedArgs=args.map(arg=>expandArrayValueObject(maxRowLength,maxColumnLength,arg,ErrorValueObject.create(ErrorType$1.NA))),expandedDefault=expandArrayValueObject(maxRowLength,maxColumnLength,defaultValue,ErrorValueObject.create(ErrorType$1.NA));return expandedExpression.map((expValue,rowIndex,columnIndex)=>{for(let i=0;i<expandedArgs.length-(hasDefault?1:0);i+=2){const switchValue=expandedArgs[i].get(rowIndex,columnIndex)||NullValueObject.create(),resultValue=expandedArgs[i+1].get(rowIndex,columnIndex)||NullValueObject.create();if(!switchValue.isNull()){if(switchValue.isError()||expValue.isError())return switchValue.isError()?switchValue:expValue;if(`${expValue.getValue()}`.toLocaleLowerCase()===`${switchValue.getValue()}`.toLocaleLowerCase())return resultValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):resultValue}}const defaultCellValue=expandedDefault.get(rowIndex,columnIndex)||NullValueObject.create();return defaultCellValue.isNull()?ErrorValueObject.create(ErrorType$1.NA):defaultCellValue})}};__name(_Switch,"Switch");let Switch=_Switch;const _True=class _True extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return BooleanValueObject.create(!0)}};__name(_True,"True");let True=_True;const _Xor=class _Xor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...logicalValues){let trueCount=0,noBoolean=!0,errorValue=null;for(const logicalValue of logicalValues){if(logicalValue.isError())return logicalValue;if(logicalValue.isArray()){if(logicalValue.iterator(value=>{if(value!=null&&value.isError())return errorValue=value,!1;(value!=null&&value.isBoolean()||value!=null&&value.isNumber())&&(value.getValue()&&trueCount++,noBoolean=!1)}),errorValue)return errorValue}else(logicalValue.isBoolean()||logicalValue.isNumber())&&(logicalValue.getValue()&&trueCount++,noBoolean=!1)}return noBoolean?ErrorValueObject.create(ErrorType$1.VALUE):BooleanValueObject.create(trueCount%2===1)}};__name(_Xor,"Xor");let Xor=_Xor;const functionLogical=[[And,FUNCTION_NAMES_LOGICAL.AND],[Bycol,FUNCTION_NAMES_LOGICAL.BYCOL],[Byrow,FUNCTION_NAMES_LOGICAL.BYROW],[False,FUNCTION_NAMES_LOGICAL.FALSE],[If,FUNCTION_NAMES_LOGICAL.IF],[Iferror,FUNCTION_NAMES_LOGICAL.IFERROR],[Ifna,FUNCTION_NAMES_LOGICAL.IFNA],[Ifs,FUNCTION_NAMES_LOGICAL.IFS],[Lambda,FUNCTION_NAMES_LOGICAL.LAMBDA],[Let,FUNCTION_NAMES_LOGICAL.LET],[Makearray,FUNCTION_NAMES_LOGICAL.MAKEARRAY],[Map$1,FUNCTION_NAMES_LOGICAL.MAP],[Not,FUNCTION_NAMES_LOGICAL.NOT],[Or,FUNCTION_NAMES_LOGICAL.OR],[Reduce,FUNCTION_NAMES_LOGICAL.REDUCE],[Scan,FUNCTION_NAMES_LOGICAL.SCAN],[Switch,FUNCTION_NAMES_LOGICAL.SWITCH],[True,FUNCTION_NAMES_LOGICAL.TRUE],[Xor,FUNCTION_NAMES_LOGICAL.XOR]],_Address=class _Address extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",5)}calculate(rowNumber,columnNumber,absNumber,a1,sheetText){if(rowNumber.isError())return rowNumber;if(columnNumber.isError())return columnNumber;if(absNumber!=null&&absNumber.isError())return absNumber;if(a1!=null&&a1.isError())return a1;if(sheetText!=null&&sheetText.isError())return sheetText;const _absNumber=absNumber!=null?absNumber:NumberValueObject.create(1),_a1=a1!=null?a1:BooleanValueObject.create(!0),_sheetText=sheetText!=null?sheetText:StringValueObject.create(""),maxRowLength=Math.max(rowNumber.isArray()?rowNumber.getRowCount():1,columnNumber.isArray()?columnNumber.getRowCount():1,_absNumber.isArray()?_absNumber.getRowCount():1,_a1.isArray()?_a1.getRowCount():1,_sheetText.isArray()?_sheetText.getRowCount():1),maxColumnLength=Math.max(rowNumber.isArray()?rowNumber.getColumnCount():1,columnNumber.isArray()?columnNumber.getColumnCount():1,_absNumber.isArray()?_absNumber.getColumnCount():1,_a1.isArray()?_a1.getColumnCount():1,_sheetText.isArray()?_sheetText.getColumnCount():1),rowNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,rowNumber,ErrorValueObject.create(ErrorType$1.NA)),columnNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,columnNumber,ErrorValueObject.create(ErrorType$1.NA)),absNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_absNumber,ErrorValueObject.create(ErrorType$1.NA)),a1Array=expandArrayValueObject(maxRowLength,maxColumnLength,_a1,ErrorValueObject.create(ErrorType$1.NA)),sheetTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,_sheetText,ErrorValueObject.create(ErrorType$1.NA));return rowNumArray.map((rowNumValue,rowIndex,columnIndex)=>{const columnNumValue=columnNumArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),absNumValue=absNumArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),a1Value=a1Array.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA),sheetTextValue=sheetTextArray.get(rowIndex,columnIndex)||ErrorValueObject.create(ErrorType$1.NA);return rowNumValue.isError()?rowNumValue:columnNumValue.isError()?columnNumValue:absNumValue.isError()?absNumValue:a1Value.isError()?a1Value:sheetTextValue.isError()?sheetTextValue:this._calculateSingleCell(rowNumValue,columnNumValue,absNumValue,a1Value,sheetTextValue)})}_calculateSingleCell(rowNumber,columnNumber,absNumber,a1,sheetText){const row=Number.parseInt(`${Number(rowNumber.getValue())-1}`),column=Number.parseInt(`${Number(columnNumber.getValue())-1}`),absNumberValue=Number.parseInt(`${Number(absNumber.getValue())}`);if(Number.isNaN(row)||Number.isNaN(column)||Number.isNaN(absNumberValue)||absNumberValue<1||absNumberValue>4)return ErrorValueObject.create(ErrorType$1.VALUE);const absType=transformAbsoluteRefType(absNumberValue),a1Value=this.getZeroOrOneByOneDefault(a1),sheetTextValue=`${sheetText.getValue()}`,sheetName=needsQuoting(sheetTextValue)?`'${sheetTextValue}'`:sheetTextValue,range={startRow:row,startColumn:column,endRow:row,endColumn:column,startAbsoluteRefType:absType,endAbsoluteRefType:absType},rangeString=a1&&!a1Value?serializeRangeToR1C1(range):serializeRange(range);return StringValueObject.create(sheetName!==""?`${sheetName}!${rangeString}`:rangeString)}};__name(_Address,"Address");let Address=_Address;function transformAbsoluteRefType(number){switch(number){case 1:return core.AbsoluteRefType.ALL;case 2:return core.AbsoluteRefType.ROW;case 3:return core.AbsoluteRefType.COLUMN;case 4:return core.AbsoluteRefType.NONE;default:return core.AbsoluteRefType.ALL}}__name(transformAbsoluteRefType,"transformAbsoluteRefType");const _Areas=class _Areas extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1);__publicField(this,"needsReferenceObject",!0)}calculate(reference){return reference.isReferenceObject()?NumberValueObject.create(1):ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Areas,"Areas");let Areas=_Areas;const _Choose=class _Choose extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(indexNum,...variants){let _indexNum=indexNum;if(_indexNum.isError())return _indexNum;if(_indexNum.isReferenceObject()&&(_indexNum=_indexNum.toArrayValueObject()),!_indexNum.isArray()){const index=_indexNum.convertToNumberObjectValue();return index.isError()?index:variants[Math.trunc(+index.getValue())-1]||ErrorValueObject.create(ErrorType$1.VALUE)}let maxRowLength=_indexNum.isArray()?_indexNum.getRowCount():1,maxColumnLength=_indexNum.isArray()?_indexNum.getColumnCount():1;variants.forEach((variant,i)=>{if(variant.isArray()){const arrayValue=variant;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)});const indexNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_indexNum,ErrorValueObject.create(ErrorType$1.NA)),arrayValueObjectList=variants.map(variant=>{let _variant=variant;return _variant.isReferenceObject()&&(_variant=_variant.toArrayValueObject()),expandArrayValueObject(maxRowLength,maxColumnLength,_variant,ErrorValueObject.create(ErrorType$1.NA))});return indexNumArray.map((indexNumValue,row,column)=>{if(indexNumValue.isError())return indexNumValue;const index=indexNumValue.convertToNumberObjectValue();if(index.isError())return index;const arrayValueObject=arrayValueObjectList[Math.trunc(+index.getValue())-1];let valueObject=(arrayValueObject==null?void 0:arrayValueObject.get(row,column))||ErrorValueObject.create(ErrorType$1.VALUE);return valueObject!=null&&valueObject.isNull()&&(valueObject=NumberValueObject.create(0)),valueObject})}};__name(_Choose,"Choose");let Choose=_Choose;const _Choosecols=class _Choosecols extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,result=[];for(let i=0;i<variants.length;i++){let variantObject=variants[i];if(variantObject.isArray()){const variantRowCount=variantObject.getRowCount(),variantColumnCount=variantObject.getColumnCount();if(variantRowCount>1||variantColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);variantObject=variantObject.get(0,0)}if(variantObject.isString()&&(variantObject=variantObject.convertToNumberObjectValue()),variantObject.isError())return variantObject;const variantValue=Math.trunc(+variantObject.getValue());if(variantValue===0||Math.abs(variantValue)>arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);let searchColArray=array;arrayColumnCount>1&&(variantValue<0?searchColArray=array.slice(void 0,[variantValue+arrayColumnCount,variantValue+1+arrayColumnCount]):searchColArray=array.slice(void 0,[variantValue-1,variantValue]));for(let r=0;r<arrayRowCount;r++)result[r]||(result[r]=[]),array.isArray()?result[r].push(searchColArray.get(r,0)):result[r].push(array)}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Choosecols,"Choosecols");let Choosecols=_Choosecols;const _Chooserows=class _Chooserows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,result=[];for(let i=0;i<variants.length;i++){let variantObject=variants[i];if(variantObject.isArray()){const variantRowCount=variantObject.getRowCount(),variantColumnCount=variantObject.getColumnCount();if(variantRowCount>1||variantColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);variantObject=variantObject.get(0,0)}if(variantObject.isString()&&(variantObject=variantObject.convertToNumberObjectValue()),variantObject.isError())return variantObject;const variantValue=Math.trunc(+variantObject.getValue());if(variantValue===0||Math.abs(variantValue)>arrayRowCount)return ErrorValueObject.create(ErrorType$1.VALUE);let searchRowArray=array;arrayRowCount>1&&(variantValue<0?searchRowArray=array.slice([variantValue+arrayRowCount,variantValue+1+arrayRowCount]):searchRowArray=array.slice([variantValue-1,variantValue])),array.isArray()?result.push(searchRowArray.getArrayValue()[0]):result.push([array])}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Chooserows,"Chooserows");let Chooserows=_Chooserows;const _Column=class _Column extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",1)}calculate(reference){if(reference==null)return NumberValueObject.create(this.column+1);if(reference.isError())return reference;if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const column=reference.getCurrentColumn(),columnCount=reference.getColumnCount(),calculateValueList=[];for(let i=0;i<columnCount;i++)calculateValueList.push(NumberValueObject.create(column+i+1));const arrayValueObjectData={calculateValueList:[calculateValueList],rowCount:1,columnCount,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Column,"Column");let Column=_Column;const _Columns=class _Columns extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(reference){if(reference.isError())return reference;if(reference.isString()||reference.isNumber()||reference.isBoolean())return NumberValueObject.create(1);if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const columnCount=reference.getColumnCount();return NumberValueObject.create(columnCount)}};__name(_Columns,"Columns");let Columns=_Columns;const _Drop=class _Drop extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(array,rows,columns){const _columns=columns!=null?columns:NumberValueObject.create(0),arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,maxRowLength=Math.max(rows.isArray()?rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1),maxColumnLength=Math.max(rows.isArray()?rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1),rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA));if(maxRowLength>1||maxColumnLength>1)return rowsArray.mapValue((rowsObject2,rowIndex,columnIndex)=>{const columnsObject2=columnsArray.get(rowIndex,columnIndex);if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const{isError:isError2,errorObject:errorObject2}=this._checkRowsColumns(rowsObject2,columnsObject2,arrayRowCount,arrayColumnCount);return isError2?errorObject2:array.isArray()?ErrorValueObject.create(ErrorType$1.VALUE):array});if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const rowsObject=rows.isArray()?rows.get(0,0):rows,columnsObject=_columns.isArray()?_columns.get(0,0):_columns,{isError,errorObject,rowsValue,columnsValue}=this._checkRowsColumns(rowsObject,columnsObject,arrayRowCount,arrayColumnCount);return isError?errorObject:this._getResultArray(array,rowsValue,columnsValue,arrayRowCount,arrayColumnCount)}_checkRowsColumns(rowsObject,columnsObject,arrayRowCount,arrayColumnCount){if(rowsObject.isError())return{isError:!0,errorObject:rowsObject};if(columnsObject.isError())return{isError:!0,errorObject:columnsObject};const rowsValue=Math.trunc(+rowsObject.getValue()),columnsValue=Math.trunc(+columnsObject.getValue());return Number.isNaN(rowsValue)||Number.isNaN(columnsValue)?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:Math.abs(rowsValue)>=arrayRowCount||Math.abs(columnsValue)>=arrayColumnCount?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.CALC)}:{isError:!1,rowsValue,columnsValue}}_getResultArray(array,rows,columns,arrayRowCount,arrayColumnCount){const rowParam=rows>=0?[rows,arrayRowCount]:[0,arrayRowCount+rows],columnParam=columns>=0?[columns,arrayColumnCount]:[0,arrayColumnCount+columns];let resultArray;return rows===0&&columns===0?resultArray=array:rows===0?resultArray=array.slice(void 0,columnParam):columns===0?resultArray=array.slice(rowParam,void 0):resultArray=array.slice(rowParam,columnParam),resultArray=resultArray.map(valueObject=>valueObject.isNull()?NumberValueObject.create(0):valueObject),arrayRowCount-rows===1&&arrayColumnCount-columns===1?resultArray.get(0,0):resultArray}};__name(_Drop,"Drop");let Drop=_Drop;const _Expand=class _Expand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(array,rows,columns,padWith){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;let _rows=rows,_columns=columns!=null?columns:NumberValueObject.create(arrayColumnCount);const _padWith=padWith!=null?padWith:ErrorValueObject.create(ErrorType$1.NA);rows.isNull()&&(_rows=NumberValueObject.create(arrayRowCount)),_columns.isNull()&&(_columns=NumberValueObject.create(arrayColumnCount));const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1),rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA));if(maxRowLength>1||maxColumnLength>1)return rowsArray.mapValue((rowsObject2,rowIndex,columnIndex)=>{const columnsObject2=columnsArray.get(rowIndex,columnIndex);if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const{isError:isError2,errorObject:errorObject2}=this._checkRowsColumnsPadWith(rowsObject2,columnsObject2,_padWith,arrayRowCount,arrayColumnCount);return isError2?errorObject2:array.isArray()?array.get(0,0):array});if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const rowsObject=_rows.isArray()?_rows.get(0,0):_rows,columnsObject=_columns.isArray()?_columns.get(0,0):_columns,{isError,errorObject,rowsValue,columnsValue,padWithObject}=this._checkRowsColumnsPadWith(rowsObject,columnsObject,_padWith,arrayRowCount,arrayColumnCount);return isError?errorObject:this._getResultArray(array,rowsValue,columnsValue,padWithObject,arrayRowCount,arrayColumnCount)}_checkRowsColumnsPadWith(rowsObject,columnsObject,padWith,arrayRowCount,arrayColumnCount){if(rowsObject.isError())return{isError:!0,errorObject:rowsObject};if(columnsObject.isError())return{isError:!0,errorObject:columnsObject};const rowsValue=Math.trunc(+rowsObject.getValue()),columnsValue=Math.trunc(+columnsObject.getValue());if(Number.isNaN(rowsValue)||Number.isNaN(columnsValue))return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};if(Math.abs(rowsValue)<arrayRowCount||Math.abs(columnsValue)<arrayColumnCount)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};let _padWith=padWith;if(padWith.isArray()){const rowCount=padWith.getRowCount(),columnCount=padWith.getColumnCount();if(rowCount>1||columnCount>1)return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};_padWith=padWith.get(0,0)}return{isError:!1,rowsValue,columnsValue,padWithObject:_padWith}}_getResultArray(array,rows,columns,padWith,arrayRowCount,arrayColumnCount){let resultArray=[];array.isArray()?resultArray=array.map(valueObject=>valueObject.isNull()?NumberValueObject.create(0):valueObject).getArrayValue():resultArray=[[array]];const addRows=Math.max(0,rows-arrayRowCount),addColumns=Math.max(0,columns-arrayColumnCount);for(let r=0;r<addRows;r++)resultArray.push(new Array(arrayColumnCount).fill(padWith));for(let c=0;c<addColumns;c++)resultArray.forEach(row=>{row.push(padWith)});return rows===1&&columns===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Expand,"Expand");let Expand=_Expand;const _Filter=class _Filter extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(array,include,ifEmpty){const _ifEmpty=ifEmpty!=null?ifEmpty:ErrorValueObject.create(ErrorType$1.CALC);if(array.isError())return array;if(include.isError())return include;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,includeRowCount=include.isArray()?include.getRowCount():1,includeColumnCount=include.isArray()?include.getColumnCount():1;return includeRowCount>1&&includeColumnCount>1||includeRowCount===1&&includeColumnCount!==arrayColumnCount||includeColumnCount===1&&includeRowCount!==arrayRowCount?ErrorValueObject.create(ErrorType$1.VALUE):arrayRowCount===1&&arrayColumnCount===1?this._getResultArrayByR1C1(array,include,_ifEmpty):includeRowCount===1?includeColumnCount!==arrayColumnCount?ErrorValueObject.create(ErrorType$1.VALUE):this._getResultArrayByR1(arrayRowCount,arrayColumnCount,array,include,_ifEmpty):includeColumnCount===1?includeRowCount!==arrayRowCount?ErrorValueObject.create(ErrorType$1.VALUE):this._getResultArrayByC1(arrayRowCount,arrayColumnCount,array,include,_ifEmpty):_ifEmpty}_getResultArrayByR1C1(array,include,ifEmpty){let _array=array,_include=include;return _array.isArray()&&(_array=_array.get(0,0)),_include.isArray()&&(_include=_include.get(0,0)),_include.isString()&&(_include=_include.convertToNumberObjectValue()),_include.isError()?_include:+_include.getValue()?_array:ifEmpty}_getResultArrayByR1(arrayRowCount,arrayColumnCount,array,include,ifEmpty){const resultArray=[];for(let c=0;c<arrayColumnCount;c++){let includeObject=include.get(0,c);if(includeObject.isString()&&(includeObject=includeObject.convertToNumberObjectValue()),includeObject.isError())return includeObject;if(+includeObject.getValue())for(let r=0;r<arrayRowCount;r++){resultArray[r]||(resultArray[r]=[]);const arrayObject=array.get(r,c);resultArray[r].push(arrayObject)}}return resultArray.length===0?ifEmpty:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArrayByC1(arrayRowCount,arrayColumnCount,array,include,ifEmpty){const resultArray=[];for(let r=0;r<arrayRowCount;r++){let includeObject=include.get(r,0);if(includeObject.isString()&&(includeObject=includeObject.convertToNumberObjectValue()),includeObject.isError())return includeObject;if(!+includeObject.getValue())continue;const row=[];for(let c=0;c<arrayColumnCount;c++){const arrayObject=array.get(r,c);row.push(arrayObject)}resultArray.push(row)}return resultArray.length===0?ifEmpty:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Filter,"Filter");let Filter=_Filter;var FUNCTION_NAMES_LOOKUP=(FUNCTION_NAMES_LOOKUP2=>(FUNCTION_NAMES_LOOKUP2.ADDRESS="ADDRESS",FUNCTION_NAMES_LOOKUP2.AREAS="AREAS",FUNCTION_NAMES_LOOKUP2.CHOOSE="CHOOSE",FUNCTION_NAMES_LOOKUP2.CHOOSECOLS="CHOOSECOLS",FUNCTION_NAMES_LOOKUP2.CHOOSEROWS="CHOOSEROWS",FUNCTION_NAMES_LOOKUP2.COLUMN="COLUMN",FUNCTION_NAMES_LOOKUP2.COLUMNS="COLUMNS",FUNCTION_NAMES_LOOKUP2.DROP="DROP",FUNCTION_NAMES_LOOKUP2.EXPAND="EXPAND",FUNCTION_NAMES_LOOKUP2.FILTER="FILTER",FUNCTION_NAMES_LOOKUP2.FORMULATEXT="FORMULATEXT",FUNCTION_NAMES_LOOKUP2.GETPIVOTDATA="GETPIVOTDATA",FUNCTION_NAMES_LOOKUP2.HLOOKUP="HLOOKUP",FUNCTION_NAMES_LOOKUP2.HSTACK="HSTACK",FUNCTION_NAMES_LOOKUP2.HYPERLINK="HYPERLINK",FUNCTION_NAMES_LOOKUP2.IMAGE="IMAGE",FUNCTION_NAMES_LOOKUP2.INDEX="INDEX",FUNCTION_NAMES_LOOKUP2.INDIRECT="INDIRECT",FUNCTION_NAMES_LOOKUP2.LOOKUP="LOOKUP",FUNCTION_NAMES_LOOKUP2.MATCH="MATCH",FUNCTION_NAMES_LOOKUP2.OFFSET="OFFSET",FUNCTION_NAMES_LOOKUP2.ROW="ROW",FUNCTION_NAMES_LOOKUP2.ROWS="ROWS",FUNCTION_NAMES_LOOKUP2.RTD="RTD",FUNCTION_NAMES_LOOKUP2.SORT="SORT",FUNCTION_NAMES_LOOKUP2.SORTBY="SORTBY",FUNCTION_NAMES_LOOKUP2.TAKE="TAKE",FUNCTION_NAMES_LOOKUP2.TOCOL="TOCOL",FUNCTION_NAMES_LOOKUP2.TOROW="TOROW",FUNCTION_NAMES_LOOKUP2.TRANSPOSE="TRANSPOSE",FUNCTION_NAMES_LOOKUP2.UNIQUE="UNIQUE",FUNCTION_NAMES_LOOKUP2.VLOOKUP="VLOOKUP",FUNCTION_NAMES_LOOKUP2.VSTACK="VSTACK",FUNCTION_NAMES_LOOKUP2.WRAPCOLS="WRAPCOLS",FUNCTION_NAMES_LOOKUP2.WRAPROWS="WRAPROWS",FUNCTION_NAMES_LOOKUP2.XLOOKUP="XLOOKUP",FUNCTION_NAMES_LOOKUP2.XMATCH="XMATCH",FUNCTION_NAMES_LOOKUP2))(FUNCTION_NAMES_LOOKUP||{});const _Hlookup=class _Hlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(lookupValue,tableArray,rowIndexNum,rangeLookup){if(lookupValue.isError())return lookupValue;if(tableArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!tableArray.isArray()||rowIndexNum.isError()||rangeLookup!=null&&rangeLookup.isError())return ErrorValueObject.create(ErrorType$1.NA);const rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookup);if(rangeLookupValue==null)return ErrorValueObject.create(ErrorType$1.VALUE);const rowIndexNumValue=this.getIndexNumValue(rowIndexNum);if(rowIndexNumValue instanceof ErrorValueObject)return rowIndexNumValue;const searchArray=tableArray.slice([0,1]),resultArray=tableArray.slice([rowIndexNumValue-1,rowIndexNumValue]);return searchArray==null||resultArray==null?ErrorValueObject.create(ErrorType$1.REF):lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,searchArray,resultArray,rangeLookupValue)):this._handleSingleObject(lookupValue,searchArray,resultArray,rangeLookupValue)}_handleSingleObject(value,searchArray,resultArray,rangeLookupValue){return rangeLookupValue===0?this.equalSearch(value,searchArray,resultArray):this.binarySearch(value,searchArray,resultArray)}};__name(_Hlookup,"Hlookup");let Hlookup=_Hlookup;const _Hstack=class _Hstack extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const maxRowLength=Math.max(...variants.map(variantObject=>variantObject.isArray()?variantObject.getRowCount():1)),result=[];for(let i=0;i<variants.length;i++){const variantObject=variants[i];if(variantObject.isError())return variantObject;const rowCount=variantObject.isArray()?variantObject.getRowCount():1,columnCount=variantObject.isArray()?variantObject.getColumnCount():1;for(let r=0;r<maxRowLength;r++){result[r]||(result[r]=[]);for(let c=0;c<columnCount;c++){let singleObject=variantObject;variantObject.isArray()&&(singleObject=variantObject.get(r,c)),r>rowCount-1||!singleObject?result[r].push(ErrorValueObject.create(ErrorType$1.NA)):result[r].push(singleObject)}}}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Hstack,"Hstack");let Hstack=_Hstack;const _Index=class _Index extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4);__publicField(this,"needsReferenceObject",!0)}calculate(reference,rowNum,columnNum,areaNum){if(reference.isError())return reference;if(rowNum!=null&&rowNum.isError())return rowNum;if(columnNum!=null&&columnNum.isError())return columnNum;if(areaNum!=null&&areaNum.isError())return areaNum;let referenceRowCount=0,referenceColumnCount=0;if(reference.isValueObject())referenceRowCount=1,referenceColumnCount=1;else if(reference.isReferenceObject()){const{startRow,endRow,startColumn,endColumn}=reference.getRangePosition();referenceRowCount=endRow-startRow+1,referenceColumnCount=endColumn-startColumn+1}else return ErrorValueObject.create(ErrorType$1.VALUE);let _rowNum,_columnNum;referenceRowCount===1&&referenceColumnCount>1&&columnNum==null?(_columnNum=rowNum!=null?rowNum:NumberValueObject.create(0),_rowNum=NumberValueObject.create(0)):(_rowNum=rowNum!=null?rowNum:NumberValueObject.create(0),_columnNum=columnNum!=null?columnNum:NumberValueObject.create(0));let _areaNum=areaNum!=null?areaNum:NumberValueObject.create(1);_rowNum.isReferenceObject()&&(_rowNum=_rowNum.toArrayValueObject()),_columnNum.isReferenceObject()&&(_columnNum=_columnNum.toArrayValueObject()),_areaNum.isReferenceObject()&&(_areaNum=_areaNum.toArrayValueObject());const maxRowLength=Math.max(_rowNum.isArray()?_rowNum.getRowCount():1,_columnNum.isArray()?_columnNum.getRowCount():1,_areaNum.isArray()?_areaNum.getRowCount():1),maxColumnLength=Math.max(_rowNum.isArray()?_rowNum.getColumnCount():1,_columnNum.isArray()?_columnNum.getColumnCount():1,_areaNum.isArray()?_areaNum.getColumnCount():1);if(_rowNum=_rowNum,_columnNum=_columnNum,_areaNum=_areaNum,maxRowLength===1&&maxColumnLength===1)return this._calculateSingleCell(reference,_rowNum,_columnNum,_areaNum);{const rowNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rowNum,ErrorValueObject.create(ErrorType$1.NA)),columnNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columnNum,ErrorValueObject.create(ErrorType$1.NA)),areaNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_areaNum,ErrorValueObject.create(ErrorType$1.NA));return rowNumArray.map((rowNumValue,rowIndex,columnIndex)=>{const columnNumValue=columnNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),areaNumValue=areaNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),result=this._calculateSingleCell(reference,rowNumValue,columnNumValue,areaNumValue);return result.isReferenceObject()?result.toArrayValueObject().getFirstCell():result})}}_calculateSingleCell(reference,rowNum,columnNum,areaNum){if(rowNum.isError())return rowNum;const rowNumberValue=this._getNumberValue(rowNum);if(rowNumberValue===void 0||rowNumberValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(columnNum.isError())return columnNum;const columnNumberValue=this._getNumberValue(columnNum);if(columnNumberValue===void 0||columnNumberValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(areaNum.isError())return areaNum;const areaNumberValue=this._getAreaNumberValue(areaNum);return areaNumberValue===void 0||areaNumberValue<1?ErrorValueObject.create(ErrorType$1.VALUE):reference.isReferenceObject()?this._getReferenceObject(reference,rowNumberValue,columnNumberValue,areaNumberValue):reference.isValueObject()&&rowNumberValue===1&&columnNumberValue===1?reference:ErrorValueObject.create(ErrorType$1.REF)}_getNumberValue(numberValueObject){if(numberValueObject==null)return 0;let logicValue=0;if(numberValueObject.isBoolean())numberValueObject.getValue()===!0&&(logicValue=1);else{if(numberValueObject.isString())return;numberValueObject.isNumber()?logicValue=Math.floor(numberValueObject.getValue()):numberValueObject.isNull()&&(logicValue=0)}return logicValue}_getAreaNumberValue(numberValueObject){if(numberValueObject==null)return 1;let logicValue=0;if(numberValueObject.isBoolean())numberValueObject.getValue()===!0&&(logicValue=1);else{if(numberValueObject.isString())return;numberValueObject.isNumber()?logicValue=Math.floor(numberValueObject.getValue()):numberValueObject.isNull()&&(logicValue=0)}return logicValue}_getReferenceObject(reference,rowNumberValue,columnNumberValue,areaNumberValue){const{startRow,endRow,startColumn,endColumn}=reference.getRangePosition();let referenceStartRow=0,referenceEndRow=0,referenceStartColumn=0,referenceEndColumn=0;if(rowNumberValue===0?(referenceStartRow=startRow,referenceEndRow=endRow):referenceStartRow=referenceEndRow=startRow+rowNumberValue-1,columnNumberValue===0?(referenceStartColumn=startColumn,referenceEndColumn=endColumn):referenceStartColumn=referenceEndColumn=startColumn+columnNumberValue-1,referenceStartRow>endRow||referenceStartColumn>endColumn)return ErrorValueObject.create(ErrorType$1.REF);const range={startRow:referenceStartRow,startColumn:referenceStartColumn,endRow:referenceEndRow,endColumn:referenceEndColumn};return this.createReferenceObject(reference,range)}};__name(_Index,"Index");let Index=_Index;const _Indirect=class _Indirect extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}isAddress(){return!0}calculate(refText,a1){if(refText.isError())return refText;if(a1!=null&&a1.isError())return a1;let a1Value=this.getZeroOrOneByOneDefault(a1);a1Value==null&&(a1Value=1);let _refText=refText;if(refText.isArray()){const rowCount=refText.getRowCount(),columnCount=refText.getColumnCount();if(rowCount>1||columnCount>1)return refText.map(()=>ErrorValueObject.create(ErrorType$1.VALUE));_refText=refText.getFirstCell()}return this._handleSingleObject(_refText,a1Value)}_handleSingleObject(refTextObject,a1Value){const refTextValue=`${refTextObject.getValue()}`;if(refTextValue.trim()==="")return ErrorValueObject.create(ErrorType$1.REF);const refTextV=this._convertToDefinedName(refTextValue);if(a1Value===0){const gridRange2=deserializeRangeForR1C1(refTextV),{range:range2,sheetName:sheetName2,unitId:unitId2}=gridRange2,rangeReferenceObject2=new RangeReferenceObject(range2);return rangeReferenceObject2.setForcedUnitIdDirect(unitId2),rangeReferenceObject2.setForcedSheetName(sheetName2),this._setDefault(rangeReferenceObject2)}if(regexTestSingeRange(refTextV))return this._setDefault(new CellReferenceObject(refTextV));if(regexTestRow(refTextV))return this._setDefault(new RowReferenceObject(refTextV));if(regexTestColumn(refTextV))return this._setDefault(new ColumnReferenceObject(refTextV));const gridRange=deserializeRangeWithSheetWithCache(refTextV),{range,sheetName,unitId}=gridRange;if(Number.isNaN(range.startRow)||range.endRow+1>1048576||Number.isNaN(range.startColumn)||range.endColumn+1>16384)return ErrorValueObject.create(ErrorType$1.REF);const rangeReferenceObject=new RangeReferenceObject(range);return rangeReferenceObject.setForcedUnitIdDirect(unitId),rangeReferenceObject.setForcedSheetName(sheetName),this._setDefault(rangeReferenceObject)}_setDefault(object){return this.unitId==null||this.subUnitId==null?ErrorValueObject.create(ErrorType$1.REF):(object.setDefaultUnitId(this.unitId),object.setDefaultSheetId(this.subUnitId),object)}_convertToDefinedName(refText){const definedName=this.getDefinedName(refText);if(definedName==null)return refText;const formulaOrRefString=definedName.formulaOrRefString;return formulaOrRefString==null?refText:formulaOrRefString.startsWith(operatorToken.EQUALS)?formulaOrRefString.slice(1):formulaOrRefString}};__name(_Indirect,"Indirect");let Indirect=_Indirect;const _Lookup=class _Lookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsExpandParams",!0)}calculate(lookupValue,lookupVectorOrArray,resultVector){return lookupValue.isError()?lookupValue:lookupVectorOrArray.isError()?ErrorValueObject.create(ErrorType$1.REF):lookupVectorOrArray.isArray()?resultVector!=null&&resultVector.isError()?resultVector:lookupVectorOrArray.getColumnCount()===1||lookupVectorOrArray.getRowCount()===1?resultVector!=null&&!resultVector.isArray()?ErrorValueObject.create(ErrorType$1.REF):this._handleVector(lookupValue,lookupVectorOrArray,resultVector):this._handleArray(lookupValue,lookupVectorOrArray):ErrorValueObject.create(ErrorType$1.VALUE)}_handleVector(lookupValue,lookupVector,resultVector){let _resultVector=resultVector;if(_resultVector==null)_resultVector=lookupVector;else if(_resultVector.getRowCount()!==lookupVector.getRowCount()||_resultVector.getColumnCount()!==lookupVector.getColumnCount())return ErrorValueObject.create(ErrorType$1.REF);return lookupValue.isArray()?lookupValue.map(value=>this.binarySearch(value,lookupVector,_resultVector)):this.binarySearch(lookupValue,lookupVector,_resultVector)}_handleArray(lookupValue,lookupArray){const rowCount=lookupArray.getRowCount(),columnCount=lookupArray.getColumnCount();let searchArray,resultArray;return columnCount>rowCount?(searchArray=lookupArray.slice([0,1]),resultArray=lookupArray.slice([rowCount-1,rowCount])):(searchArray=lookupArray.slice(void 0,[0,1]),resultArray=lookupArray.slice(void 0,[columnCount-1,columnCount])),searchArray==null||resultArray==null?ErrorValueObject.create(ErrorType$1.VALUE):lookupValue.isArray()?lookupValue.map(value=>this.binarySearch(value,searchArray,resultArray)):this.binarySearch(lookupValue,searchArray,resultArray)}};__name(_Lookup,"Lookup");let Lookup=_Lookup;const _Match=class _Match extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(lookupValue,lookupArray,matchType){if(lookupValue.isError())return lookupValue;if(lookupArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1||matchType!=null&&matchType.isError())return ErrorValueObject.create(ErrorType$1.NA);const matchTypeValue=this.getMatchTypeValue(matchType);return matchTypeValue==null?ErrorValueObject.create(ErrorType$1.VALUE):lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,lookupArray,matchTypeValue)):this._handleSingleObject(lookupValue,lookupArray,matchTypeValue)}_handleSingleObject(value,searchArray,matchTypeValue){const searchType=this._getSearchModeValue(matchTypeValue),result=searchArray.orderSearch(value,searchType);if(result==null)return ErrorValueObject.create(ErrorType$1.NA);if(result instanceof ErrorValueObject)return result;const resultNumber=searchArray.getRowCount()===1?result.column+1:result.row+1;return NumberValueObject.create(resultNumber)}_getSearchModeValue(searchModeValue){switch(searchModeValue){case 1:return ArrayOrderSearchType.MIN;case 0:return ArrayOrderSearchType.NORMAL;case-1:return ArrayOrderSearchType.MAX}}};__name(_Match,"Match");let Match=_Match;const _Offset=class _Offset extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",5);__publicField(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(reference,rows,columns,height,width){if(reference.isError())return reference;if(rows.isError())return rows;if(columns.isError())return columns;if(height!=null&&height.isError())return height;if(width!=null&&width.isError())return width;if(!reference.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCount=reference.getRowCount(),columnCount=reference.getColumnCount();let _rows=rows;_rows.isReferenceObject()&&(_rows=_rows.toArrayValueObject());let _columns=columns;_columns.isReferenceObject()&&(_columns=_columns.toArrayValueObject());let _height=height!=null?height:NumberValueObject.create(rowCount);_height.isReferenceObject()&&(_height=_height.toArrayValueObject()),_height.isNull()&&(_height=NumberValueObject.create(rowCount));let _width=width!=null?width:NumberValueObject.create(columnCount);_width.isReferenceObject()&&(_width=_width.toArrayValueObject()),_width.isNull()&&(_width=NumberValueObject.create(columnCount));const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1,_height.isArray()?_height.getRowCount():1,_width.isArray()?_width.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1,_height.isArray()?_height.getColumnCount():1,_width.isArray()?_width.getColumnCount():1);if(_rows=_rows,_columns=_columns,_height=_height,_width=_width,maxRowLength===1&&maxColumnLength===1)return _rows=_rows.isArray()?_rows.get(0,0):_rows,_columns=_columns.isArray()?_columns.get(0,0):_columns,_height=_height.isArray()?_height.get(0,0):_height,_width=_width.isArray()?_width.get(0,0):_width,this._handleSingleObject(reference,_rows,_columns,_height,_width);const rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA)),heightArray=expandArrayValueObject(maxRowLength,maxColumnLength,_height,ErrorValueObject.create(ErrorType$1.NA)),widthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_width,ErrorValueObject.create(ErrorType$1.NA));return rowsArray.mapValue((rowsValue,rowIndex,columnIndex)=>{const columnsValue=columnsArray.get(rowIndex,columnIndex),heightValue=heightArray.get(rowIndex,columnIndex),widthValue=widthArray.get(rowIndex,columnIndex);return rowsValue.isError()?rowsValue:columnsValue.isError()?columnsValue:heightValue.isError()?heightValue:widthValue.isError()?widthValue:this._handleSingleObject(reference,rowsValue,columnsValue,heightValue,widthValue,!0)})}_handleSingleObject(reference,rowsValue,columnsValue,heightValue,widthValue,isReportError=!1){const{startRow:referenceStartRow,startColumn:referenceStartColumn}=reference.getRangePosition();let _rowsValue=rowsValue;if(_rowsValue.isString()&&(_rowsValue=_rowsValue.convertToNumberObjectValue()),_rowsValue.isError())return _rowsValue;let _columnsValue=columnsValue;if(_columnsValue.isString()&&(_columnsValue=_columnsValue.convertToNumberObjectValue()),_columnsValue.isError())return _columnsValue;const rowOffset=+_rowsValue.getValue(),columnOffset=+_columnsValue.getValue();if(typeof rowOffset!="number"||typeof columnOffset!="number")return ErrorValueObject.create(ErrorType$1.VALUE);const targetRow=referenceStartRow+rowOffset,targetColumn=referenceStartColumn+columnOffset;if(targetRow<0||targetColumn<0)return ErrorValueObject.create(ErrorType$1.REF);const heightCount=this.getIndexNumValue(heightValue),widthCount=this.getIndexNumValue(widthValue);if(typeof heightCount!="number"||typeof widthCount!="number")return ErrorValueObject.create(ErrorType$1.VALUE);if(heightCount===0||widthCount===0)return ErrorValueObject.create(ErrorType$1.REF);const targetRowWithHeight=heightCount>0?targetRow+heightCount-1:targetRow+heightCount+1,targetColumnWithWidth=widthCount>0?targetColumn+widthCount-1:targetColumn+widthCount+1;if(targetRowWithHeight<0||targetColumnWithWidth<0)return ErrorValueObject.create(ErrorType$1.REF);if(isReportError)return ErrorValueObject.create(ErrorType$1.VALUE);const startRow=targetRow<targetRowWithHeight?targetRow:targetRowWithHeight,startColumn=targetColumn<targetColumnWithWidth?targetColumn:targetColumnWithWidth,endRow=targetRow>targetRowWithHeight?targetRow:targetRowWithHeight,endColumn=targetColumn>targetColumnWithWidth?targetColumn:targetColumnWithWidth,range={startRow,startColumn,endRow,endColumn};return this.createReferenceObject(reference,range)}};__name(_Offset,"Offset");let Offset=_Offset;const _Row=class _Row extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",1)}calculate(reference){if(reference==null)return NumberValueObject.create(this.row+1);if(reference.isError())return reference;if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const row=reference.getCurrentRow(),rowCount=reference.getRowCount(),calculateValueList=[];for(let i=0;i<rowCount;i++)calculateValueList.push([NumberValueObject.create(row+i+1)]);const arrayValueObjectData={calculateValueList,rowCount,columnCount:1,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Row,"Row");let Row=_Row;const _Rows=class _Rows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(reference){if(reference.isError())return reference;if(reference.isString()||reference.isNumber()||reference.isBoolean())return NumberValueObject.create(1);if(!reference.isArray())return ErrorValueObject.create(ErrorType$1.NA);const rowCount=reference.getRowCount();return NumberValueObject.create(rowCount)}};__name(_Rows,"Rows");let Rows=_Rows;const _Sort=class _Sort extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4)}calculate(array,sortIndex,sortOrder,byCol){const _sortIndex=sortIndex!=null?sortIndex:NumberValueObject.create(1),_sortOrder=sortOrder!=null?sortOrder:NumberValueObject.create(1),_byCol=byCol!=null?byCol:BooleanValueObject.create(!1);if(_byCol.isArray()){const byColRowCount=_byCol.getRowCount(),byColColumnCount=_byCol.getColumnCount();if(byColRowCount===1&&byColColumnCount===1){const byColObject=_byCol.get(0,0);return this._handleSingleObject(array,_sortIndex,_sortOrder,byColObject)}return _byCol.map(byColObject=>{const result=this._handleSingleObject(array,_sortIndex,_sortOrder,byColObject);return result.isArray()?result.get(0,0):result})}return this._handleSingleObject(array,_sortIndex,_sortOrder,_byCol)}_handleSingleObject(array,sortIndex,sortOrder,byCol){if(array.isError())return array;const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,_sortIndex=this._checkArrayError(sortIndex);if(_sortIndex.isError())return _sortIndex;const sortIndexValue=Math.floor(+_sortIndex.getValue());if(sortIndexValue<1)return ErrorValueObject.create(ErrorType$1.VALUE);const _sortOrder=this._checkArrayError(sortOrder);if(_sortOrder.isError())return _sortOrder;const sortOrderValue=Math.floor(+_sortOrder.getValue());if(sortOrderValue!==-1&&sortOrderValue!==1)return ErrorValueObject.create(ErrorType$1.VALUE);let _byCol=byCol;if(_byCol.isString()&&(_byCol=_byCol.convertToNumberObjectValue()),_byCol.isError())return _byCol;if(!array.isArray()||arrayRowCount===1&&arrayColumnCount===1)return array;const byColValue=+_byCol.getValue();return this._getResult(array,sortIndexValue,sortOrderValue,byColValue,arrayRowCount,arrayColumnCount)}_checkArrayError(variant){let _variant=variant;if(_variant.isArray()){const rowCount=_variant.getRowCount(),columnCount=_variant.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_variant=_variant.get(0,0)}return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant}_getResult(array,sortIndexValue,sortOrderValue,byColValue,arrayRowCount,arrayColumnCount){if(byColValue){if(sortIndexValue>arrayRowCount)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayValue=array.transpose().getArrayValue();return arrayValue.sort(this._sort(sortIndexValue-1,sortOrderValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}).transpose()}else{if(sortIndexValue>arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayValue=array.getArrayValue();return arrayValue.sort(this._sort(sortIndexValue-1,sortOrderValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}_sort(sortIndex,sortOrder=1){const compare=getCompare();return sortOrder===1?this._sortAsc(sortIndex,compare):this._sortDesc(sortIndex,compare)}_sortAsc(sortIndex,compare){return(a,b)=>{const columnA=a[sortIndex],columnB=b[sortIndex];if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return 1;if(columnB.isError())return-1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?1:columnB.isBoolean()&&columnBValue===!0?-1:columnA.isBoolean()&&columnAValue===!1?1:columnB.isBoolean()&&columnBValue===!1?-1:columnA.isNumber()&&columnB.isNumber()?+columnAValue-+columnBValue:compare(columnAValue,columnBValue)}}_sortDesc(sortIndex,compare){return(a,b)=>{const columnA=a[sortIndex],columnB=b[sortIndex];if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return-1;if(columnB.isError())return 1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?-1:columnB.isBoolean()&&columnBValue===!0?1:columnA.isBoolean()&&columnAValue===!1?-1:columnB.isBoolean()&&columnBValue===!1?1:columnA.isNumber()&&columnB.isNumber()?+columnBValue-+columnAValue:compare(columnBValue,columnAValue)}}};__name(_Sort,"Sort");let Sort=_Sort;const _Sortby=class _Sortby extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(array,...variants){variants.length===1&&variants.push(NumberValueObject.create(1));const variantsError=this._getVariantsError(array,...variants),{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants);if(variantsError.isError()){const expandArray=expandArrayValueObject(maxRowLength,maxColumnLength,variantsError);return maxRowLength===1&&maxColumnLength===1?expandArray.get(0,0):expandArray}const _variants=variants.map((variant,index)=>index%2===0?variant:expandArrayValueObject(maxRowLength,maxColumnLength,variant,ErrorValueObject.create(ErrorType$1.NA))),resultArray=this._getResultArray(array,_variants,maxRowLength,maxColumnLength);return maxRowLength===1&&maxColumnLength===1?resultArray[0][0]:ArrayValueObject.create({calculateValueList:resultArray,rowCount:resultArray.length,columnCount:resultArray[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getVariantsError(array,...variants){if(array.isError())return array;for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant}if(variants.length<2||variants.length%2!==0)return ErrorValueObject.create(ErrorType$1.VALUE);const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,byArray1RowCount=variants[0].isArray()?variants[0].getRowCount():1,byArray1ColumnCount=variants[0].isArray()?variants[0].getColumnCount():1;if((byArray1RowCount>1||byArray1ColumnCount>1)&&(byArray1RowCount>1&&byArray1ColumnCount>1||byArray1RowCount===1&&byArray1ColumnCount!==arrayColumnCount||byArray1ColumnCount===1&&byArray1RowCount!==arrayRowCount))return ErrorValueObject.create(ErrorType$1.VALUE);for(let i=2;i<variants.length;i++){if(i%2===1)continue;const byArrayRowCount=variants[i].isArray()?variants[i].getRowCount():1,byArrayColumnCount=variants[i].isArray()?variants[i].getColumnCount():1;if(byArrayRowCount!==byArray1RowCount||byArrayColumnCount!==byArray1ColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE)}return BooleanValueObject.create(!0)}_getResultArray(array,variants,maxRowLength,maxColumnLength){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,byArray1RowCount=variants[0].isArray()?variants[0].getRowCount():1,byArray1ColumnCount=variants[0].isArray()?variants[0].getColumnCount():1,resultArray=[];for(let r=0;r<maxRowLength;r++){resultArray[r]=[];for(let c=0;c<maxColumnLength;c++){const{isError,errorObject,byArrays,sortOrders}=this._getByArraysAndSortOrders(variants,r,c,byArray1ColumnCount);if(isError){resultArray[r].push(errorObject);continue}if(!array.isArray()||arrayRowCount===1&&arrayColumnCount===1){resultArray[r].push(array);continue}let arrayValue=array.getArrayValue();byArray1RowCount===1&&byArray1ColumnCount===1||(byArray1RowCount===1?(arrayValue=arrayValue.concat(byArrays),arrayValue=this._transposeArray(arrayValue),arrayValue.sort(this._sort(arrayRowCount,sortOrders)),arrayValue=this._transposeArray(arrayValue).slice(0,arrayRowCount)):byArray1ColumnCount===1&&(arrayValue=this._transposeArray(arrayValue),arrayValue=arrayValue.concat(byArrays),arrayValue=this._transposeArray(arrayValue),arrayValue.sort(this._sort(arrayColumnCount,sortOrders)),arrayValue=arrayValue.map(row=>row.slice(0,arrayColumnCount))));const result=ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column});if(maxRowLength>1||maxColumnLength>1){resultArray[r].push(result.get(0,0));continue}resultArray[r].push(result)}}return resultArray}_getByArraysAndSortOrders(variants,r,c,byArray1ColumnCount){const byArrays=[],sortOrders=[];let isError=!1,errorObject=null;for(let i=0;i<variants.length;i++){if(i%2===1)continue;const byArray=variants[i];let sortOrder=variants[i+1].get(r,c);if(sortOrder.isString()&&(sortOrder=sortOrder.convertToNumberObjectValue()),sortOrder.isError()){isError=!0,errorObject=sortOrder;break}const sortOrderValue=Math.floor(+sortOrder.getValue());if(sortOrderValue!==-1&&sortOrderValue!==1){isError=!0,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);break}if(sortOrders.push(sortOrderValue),byArray.isArray()){let byArrayValue=byArray.getArrayValue();byArray1ColumnCount===1&&(byArrayValue=this._transposeArray(byArrayValue)),byArrays.push(byArrayValue[0])}else byArrays.push([byArray])}return{isError,errorObject,byArrays,sortOrders}}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}_sort(sortIndex,sortOrders){const compare=getCompare();return(a,b)=>{let columnA=a[sortIndex],columnB=b[sortIndex],result=this._compare(columnA,columnB,sortOrders[0],compare);if(result===0&&sortOrders.length>1){for(let i=1;i<sortOrders.length;i++)if(columnA=a[sortIndex+i],columnB=b[sortIndex+i],result=this._compare(columnA,columnB,sortOrders[i],compare),result!==0)return result}return result}}_compare(columnA,columnB,sortOrder,compare){return sortOrder===1?this._asc(columnA,columnB,compare):this._desc(columnA,columnB,compare)}_asc(columnA,columnB,compare){if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return 1;if(columnB.isError())return-1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?1:columnB.isBoolean()&&columnBValue===!0?-1:columnA.isBoolean()&&columnAValue===!1?1:columnB.isBoolean()&&columnBValue===!1?-1:columnA.isNumber()&&columnB.isNumber()?+columnAValue-+columnBValue:compare(columnAValue,columnBValue)}_desc(columnA,columnB,compare){if(columnA==null||columnA.isNull())return 1;if(columnB==null||columnB.isNull())return-1;if(columnA.isError()&&columnB.isError())return 0;if(columnA.isError())return-1;if(columnB.isError())return 1;const columnAValue=columnA.getValue(),columnBValue=columnB.getValue();return columnA.isBoolean()&&columnAValue===!0?-1:columnB.isBoolean()&&columnBValue===!0?1:columnA.isBoolean()&&columnAValue===!1?-1:columnB.isBoolean()&&columnBValue===!1?1:columnA.isNumber()&&columnB.isNumber()?+columnBValue-+columnAValue:compare(columnBValue,columnAValue)}};__name(_Sortby,"Sortby");let Sortby=_Sortby;const _Take=class _Take extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(array,rows,columns){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;let _rows=rows,_columns=columns!=null?columns:NumberValueObject.create(arrayColumnCount);rows.isNull()&&(_rows=NumberValueObject.create(arrayRowCount)),_columns.isNull()&&(_columns=NumberValueObject.create(arrayColumnCount));const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1),rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA));if(maxRowLength>1||maxColumnLength>1)return rowsArray.mapValue((rowsObject2,rowIndex,columnIndex)=>{const columnsObject2=columnsArray.get(rowIndex,columnIndex);if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const{isError:isError2,errorObject:errorObject2}=this._checkRowsColumns(rowsObject2,columnsObject2,arrayRowCount,arrayColumnCount);return isError2?errorObject2:array.isArray()?ErrorValueObject.create(ErrorType$1.VALUE):array});if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const rowsObject=_rows.isArray()?_rows.get(0,0):_rows,columnsObject=_columns.isArray()?_columns.get(0,0):_columns,{isError,errorObject,rowsValue,columnsValue}=this._checkRowsColumns(rowsObject,columnsObject,arrayRowCount,arrayColumnCount);return isError?errorObject:this._getResultArray(array,rowsValue,columnsValue,arrayRowCount,arrayColumnCount)}_checkRowsColumns(rowsObject,columnsObject,arrayRowCount,arrayColumnCount){if(rowsObject.isError())return{isError:!0,errorObject:rowsObject};if(columnsObject.isError())return{isError:!0,errorObject:columnsObject};let rowsValue=Math.trunc(+rowsObject.getValue()),columnsValue=Math.trunc(+columnsObject.getValue());return Number.isNaN(rowsValue)||Number.isNaN(columnsValue)?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:Math.abs(rowsValue)===0||Math.abs(columnsValue)===0?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.CALC)}:(rowsValue>arrayRowCount&&(rowsValue=arrayRowCount),columnsValue>arrayColumnCount&&(columnsValue=arrayColumnCount),{isError:!1,rowsValue,columnsValue})}_getResultArray(array,rows,columns,arrayRowCount,arrayColumnCount){if(!array.isArray())return array;const rowParam=rows>=0?[0,rows]:[arrayRowCount+rows,arrayRowCount],columnParam=columns>=0?[0,columns]:[arrayColumnCount+columns,arrayColumnCount];let resultArray;return rows===arrayRowCount&&columns===arrayColumnCount?resultArray=array:rows===arrayRowCount?resultArray=array.slice(void 0,columnParam):columns===arrayColumnCount?resultArray=array.slice(rowParam,void 0):resultArray=array.slice(rowParam,columnParam),resultArray=resultArray.map(valueObject=>valueObject.isNull()?NumberValueObject.create(0):valueObject),rows===1&&columns===1?resultArray.get(0,0):resultArray}};__name(_Take,"Take");let Take=_Take;const _Tocol=class _Tocol extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(array,ignore,scanByColumn){const _ignore=ignore!=null?ignore:NumberValueObject.create(0),_scanByColumn=scanByColumn!=null?scanByColumn:BooleanValueObject.create(!1),maxRowLength=Math.max(_ignore.isArray()?_ignore.getRowCount():1,_scanByColumn.isArray()?_scanByColumn.getRowCount():1),maxColumnLength=Math.max(_ignore.isArray()?_ignore.getColumnCount():1,_scanByColumn.isArray()?_scanByColumn.getColumnCount():1),ignoreArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ignore,ErrorValueObject.create(ErrorType$1.NA)),scanByColumnArray=expandArrayValueObject(maxRowLength,maxColumnLength,_scanByColumn,ErrorValueObject.create(ErrorType$1.NA)),resultArray=ignoreArray.mapValue((ignoreObject,rowIndex,columnIndex)=>{const scanByColumnObject=scanByColumnArray.get(rowIndex,columnIndex);if(array.isError())return array;if(array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(ignoreObject.isError())return ignoreObject;if(scanByColumnObject.isError())return scanByColumnObject;const ignoreValue=Math.trunc(+ignoreObject.getValue()),scanByColumnValue=+scanByColumnObject.getValue();if(Number.isNaN(ignoreValue)||ignoreValue<0||ignoreValue>3||Number.isNaN(scanByColumnValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(!array.isArray())return array;let result=[];return scanByColumnValue?result=this._getArrayValueByColumn(array,ignoreValue):result=this._getArrayValueByRow(array,ignoreValue),result.length===0?ErrorValueObject.create(ErrorType$1.CALC):maxRowLength>1||maxColumnLength>1||result.length===1?result[0]:ArrayValueObject.create({calculateValueList:result.map(valueObject=>[valueObject]),rowCount:result.length,columnCount:1,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getArrayValueByColumn(array,ignore){const _array=array,arrayRowCount=_array.getRowCount(),arrayColumnCount=_array.getColumnCount(),result=[];for(let c=0;c<arrayColumnCount;c++)for(let r=0;r<arrayRowCount;r++){const valueObject=_array.get(r,c);this._isIgnore(valueObject,ignore)||result.push(valueObject.isNull()?NumberValueObject.create(0):valueObject)}return result}_getArrayValueByRow(array,ignore){const _array=array,arrayRowCount=_array.getRowCount(),arrayColumnCount=_array.getColumnCount(),result=[];for(let r=0;r<arrayRowCount;r++)for(let c=0;c<arrayColumnCount;c++){const valueObject=_array.get(r,c);this._isIgnore(valueObject,ignore)||result.push(valueObject.isNull()?NumberValueObject.create(0):valueObject)}return result}_isIgnore(valueObject,ignore){switch(ignore){case 0:return!1;case 1:return valueObject.isNull();case 2:return valueObject.isError();case 3:return valueObject.isNull()||valueObject.isError();default:return!1}}};__name(_Tocol,"Tocol");let Tocol=_Tocol;const _Torow=class _Torow extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(array,ignore,scanByColumn){const _ignore=ignore!=null?ignore:NumberValueObject.create(0),_scanByColumn=scanByColumn!=null?scanByColumn:BooleanValueObject.create(!1),maxRowLength=Math.max(_ignore.isArray()?_ignore.getRowCount():1,_scanByColumn.isArray()?_scanByColumn.getRowCount():1),maxColumnLength=Math.max(_ignore.isArray()?_ignore.getColumnCount():1,_scanByColumn.isArray()?_scanByColumn.getColumnCount():1),ignoreArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ignore,ErrorValueObject.create(ErrorType$1.NA)),scanByColumnArray=expandArrayValueObject(maxRowLength,maxColumnLength,_scanByColumn,ErrorValueObject.create(ErrorType$1.NA)),resultArray=ignoreArray.mapValue((ignoreObject,rowIndex,columnIndex)=>{const scanByColumnObject=scanByColumnArray.get(rowIndex,columnIndex);if(array.isError())return array;if(ignoreObject.isError())return ignoreObject;if(scanByColumnObject.isError())return scanByColumnObject;const ignoreValue=Math.trunc(+ignoreObject.getValue()),scanByColumnValue=+scanByColumnObject.getValue();if(Number.isNaN(ignoreValue)||ignoreValue<0||ignoreValue>3||Number.isNaN(scanByColumnValue)||array.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(!array.isArray())return array;let result=[];return scanByColumnValue?result=this._getArrayValueByColumn(array,ignoreValue):result=this._getArrayValueByRow(array,ignoreValue),result.length===0?ErrorValueObject.create(ErrorType$1.CALC):maxRowLength>1||maxColumnLength>1||result.length===1?result[0]:ArrayValueObject.create({calculateValueList:[result],rowCount:1,columnCount:result.length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getArrayValueByColumn(array,ignore){const _array=array,arrayRowCount=_array.getRowCount(),arrayColumnCount=_array.getColumnCount(),result=[];for(let c=0;c<arrayColumnCount;c++)for(let r=0;r<arrayRowCount;r++){const valueObject=_array.get(r,c);this._isIgnore(valueObject,ignore)||result.push(valueObject.isNull()?NumberValueObject.create(0):valueObject)}return result}_getArrayValueByRow(array,ignore){const _array=array,arrayRowCount=_array.getRowCount(),arrayColumnCount=_array.getColumnCount(),result=[];for(let r=0;r<arrayRowCount;r++)for(let c=0;c<arrayColumnCount;c++){const valueObject=_array.get(r,c);this._isIgnore(valueObject,ignore)||result.push(valueObject.isNull()?NumberValueObject.create(0):valueObject)}return result}_isIgnore(valueObject,ignore){switch(ignore){case 0:return!1;case 1:return valueObject.isNull();case 2:return valueObject.isError();case 3:return valueObject.isNull()||valueObject.isError();default:return!1}}};__name(_Torow,"Torow");let Torow=_Torow;const _Transpose=class _Transpose extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(array){if(array.isError())return array;if(array.isArray()){const rowCount=array.getRowCount(),columnCount=array.getColumnCount();return rowCount===1&&columnCount===1?array.get(0,0):array.transpose()}return array}};__name(_Transpose,"Transpose");let Transpose=_Transpose;const _Unique=class _Unique extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(array,byCol,exactlyOnce){const _byCol=byCol!=null?byCol:BooleanValueObject.create(!1),_exactlyOnce=exactlyOnce!=null?exactlyOnce:BooleanValueObject.create(!1),arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,maxRowLength=Math.max(_byCol.isArray()?_byCol.getRowCount():1,_exactlyOnce.isArray()?_exactlyOnce.getRowCount():1),maxColumnLength=Math.max(_byCol.isArray()?_byCol.getColumnCount():1,_exactlyOnce.isArray()?_exactlyOnce.getColumnCount():1),byColArray=expandArrayValueObject(maxRowLength,maxColumnLength,_byCol,ErrorValueObject.create(ErrorType$1.NA)),exactlyOnceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_exactlyOnce,ErrorValueObject.create(ErrorType$1.NA)),resultArray=byColArray.map((byColObject,rowIndex,columnIndex)=>{let _byColObject=byColObject,exactlyOnceObject=exactlyOnceArray.get(rowIndex,columnIndex);if(array.isError())return array;if(_byColObject.isString()&&(_byColObject=_byColObject.convertToNumberObjectValue()),_byColObject.isError())return _byColObject;if(exactlyOnceObject.isString()&&(exactlyOnceObject=exactlyOnceObject.convertToNumberObjectValue()),exactlyOnceObject.isError())return exactlyOnceObject;const byColValue=+_byColObject.getValue(),exactlyOnceValue=+exactlyOnceObject.getValue();let result;return!byColValue&&arrayRowCount===1||byColValue&&arrayColumnCount===1?result=array:result=this._getResult(array,byColValue,exactlyOnceValue),(maxRowLength>1||maxColumnLength>1)&&(result!=null&&result.isArray())?result.get(0,0):result});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(array,byColValue,exactlyOnceValue){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1;let arrayValue=array.getArrayValue(),arrayRows=arrayRowCount,arrayColumns=arrayColumnCount;byColValue&&(arrayValue=this._transposeArray(arrayValue),arrayRows=arrayColumnCount,arrayColumns=arrayRowCount);const repeatRows=this._getRepeatRows(arrayValue,arrayRows,arrayColumns);if(repeatRows.length>0){const spliceRows=[];repeatRows.forEach(rows=>{rows.forEach((r,index)=>{(index!==0||exactlyOnceValue)&&spliceRows.push(r)})}),arrayValue=arrayValue.filter((row,rowIndex)=>!spliceRows.includes(rowIndex))}return arrayValue.length===0?ErrorValueObject.create(ErrorType$1.CALC):(byColValue&&(arrayValue=this._transposeArray(arrayValue)),ArrayValueObject.create({calculateValueList:arrayValue,rowCount:arrayValue.length,columnCount:arrayValue[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}))}_getRepeatRows(arrayValue,arrayRows,arrayColumns){let repeatRows=[];for(let c=0;c<arrayColumns;c++)if(c===0){const objects=new Array(arrayRows).fill(null).map((item,index)=>({r:index,valueObject:arrayValue[index][c]}));repeatRows=this._getRepeatRowsByObjects(objects)}else{if(repeatRows.length===0)break;let newRepeatRows=[];repeatRows.forEach(item=>{const objects=item.map(r=>({r,valueObject:arrayValue[r][c]})),_repeatRows=this._getRepeatRowsByObjects(objects);newRepeatRows=newRepeatRows.concat(_repeatRows)}),repeatRows=newRepeatRows}return repeatRows}_getRepeatRowsByObjects(objects){const valueMap=new Map;return objects.forEach(item=>{const r=item.r,valueObject=item.valueObject;let value=valueObject.getValue();if(valueObject.isNull()?value=null:valueObject.isString()&&core.isRealNum(value)&&(value=+value),!valueMap.has(value))valueMap.set(value,[r]);else{const valueMapItem=valueMap.get(value);valueMapItem.push(r),valueMap.set(value,valueMapItem)}}),Array.from(valueMap.values()).filter(item=>item.length>1)}_transposeArray(array){const rows=array.length,cols=array[0].length,transposedArray=[];for(let col=0;col<cols;col++){transposedArray[col]=[];for(let row=0;row<rows;row++)transposedArray[col][row]=array[row][col]}return transposedArray}};__name(_Unique,"Unique");let Unique=_Unique;const _Vlookup=class _Vlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(lookupValue,tableArray,colIndexNum,rangeLookup){if(lookupValue.isError())return lookupValue;if(tableArray.isError())return tableArray;if(!tableArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);if(colIndexNum.isError())return colIndexNum;if(rangeLookup!=null&&rangeLookup.isError())return rangeLookup;const _rangeLookup=rangeLookup!=null?rangeLookup:BooleanValueObject.create(!0);return isSingleValueObject(lookupValue)&&isSingleValueObject(_rangeLookup)&&colIndexNum.isArray()?this._handleArrayColIndexNum(lookupValue,tableArray,colIndexNum,_rangeLookup):this._handleNonArrayColIndexNum(lookupValue,tableArray,colIndexNum,_rangeLookup)}_handleArrayColIndexNum(lookupValue,tableArray,colIndexNum,rangeLookup){const _lookupValue=lookupValue.isArray()?lookupValue.getFirstCell():lookupValue,rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookup);if(rangeLookupValue==null)return ErrorValueObject.create(ErrorType$1.VALUE);let errorValue;const result=[];return colIndexNum.iterator((colIndexNumValueObject,rowIndex,columnIndex)=>{if(colIndexNumValueObject==null)return errorValue=ErrorValueObject.create(ErrorType$1.VALUE),!1;const searchObject=this._handleTableArray(_lookupValue,tableArray,colIndexNumValueObject,rangeLookupValue);if(searchObject.isError())return errorValue=searchObject,!1;result[rowIndex]===void 0&&(result[rowIndex]=[]),result[rowIndex][columnIndex]=searchObject}),errorValue||createNewArray(result,result.length,result[0].length,this.unitId||"",this.subUnitId||"")}_handleNonArrayColIndexNum(lookupValue,tableArray,colIndexNum,rangeLookup){const maxRowLength=Math.max(lookupValue.isArray()?lookupValue.getRowCount():1,rangeLookup.isArray()?rangeLookup.getRowCount():1),maxColumnLength=Math.max(lookupValue.isArray()?lookupValue.getColumnCount():1,rangeLookup.isArray()?rangeLookup.getColumnCount():1),lookupValueArray=expandArrayValueObject(maxRowLength,maxColumnLength,lookupValue),rangeLookupArray=expandArrayValueObject(maxRowLength,maxColumnLength,rangeLookup);return lookupValueArray.map((lookupValue2,rowIndex,columnIndex)=>{if(lookupValue2.isError())return lookupValue2;const rangeLookupValueObject=rangeLookupArray.get(rowIndex,columnIndex);if(rangeLookupValueObject==null)return ErrorValueObject.create(ErrorType$1.VALUE);if(rangeLookupValueObject.isError())return rangeLookupValueObject;const rangeLookupValue=this.getZeroOrOneByOneDefault(rangeLookupValueObject);return rangeLookupValue==null?ErrorValueObject.create(ErrorType$1.VALUE):this._handleTableArray(lookupValue2,tableArray,colIndexNum,rangeLookupValue)})}_handleTableArray(lookupValue,tableArray,colIndexNum,rangeLookupValue){const colIndexNumValue=this.getIndexNumValue(colIndexNum);if(colIndexNumValue instanceof ErrorValueObject)return colIndexNumValue;const searchArray=tableArray.slice(void 0,[0,1]);if(searchArray==null)return ErrorValueObject.create(ErrorType$1.VALUE);const resultArray=tableArray.slice(void 0,[colIndexNumValue-1,colIndexNumValue]);return resultArray==null?ErrorValueObject.create(ErrorType$1.REF):this._handleSingleObject(lookupValue,searchArray,resultArray,rangeLookupValue)}_handleSingleObject(value,searchArray,resultArray,rangeLookupValue){return rangeLookupValue===0?this.equalSearch(value,searchArray,resultArray):this.binarySearch(value,searchArray,resultArray)}};__name(_Vlookup,"Vlookup");let Vlookup=_Vlookup;const _Vstack=class _Vstack extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const maxColumnLength=Math.max(...variants.map(variantObject=>variantObject.isArray()?variantObject.getColumnCount():1)),result=[];for(let i=0;i<variants.length;i++){const variantObject=variants[i];if(variantObject.isError())return variantObject;const rowCount=variantObject.isArray()?variantObject.getRowCount():1,columnCount=variantObject.isArray()?variantObject.getColumnCount():1;for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<maxColumnLength;c++){let singleObject=variantObject;variantObject.isArray()&&(singleObject=variantObject.get(r,c)),c>columnCount-1||!singleObject?row.push(ErrorValueObject.create(ErrorType$1.NA)):row.push(singleObject)}result.push(row)}}return ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}};__name(_Vstack,"Vstack");let Vstack=_Vstack;const _Wrapcols=class _Wrapcols extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(vector,wrapCount,padWith){let _padWith=padWith!=null?padWith:ErrorValueObject.create(ErrorType$1.NA);_padWith.isNull()&&(_padWith=ErrorValueObject.create(ErrorType$1.NA));const vectorRowCount=vector.isArray()?vector.getRowCount():1,vectorColumnCount=vector.isArray()?vector.getColumnCount():1,maxRowLength=Math.max(wrapCount.isArray()?wrapCount.getRowCount():1,_padWith.isArray()?_padWith.getRowCount():1),maxColumnLength=Math.max(wrapCount.isArray()?wrapCount.getColumnCount():1,_padWith.isArray()?_padWith.getColumnCount():1),wrapCountArray=expandArrayValueObject(maxRowLength,maxColumnLength,wrapCount,ErrorValueObject.create(ErrorType$1.NA)),padWithArray=expandArrayValueObject(maxRowLength,maxColumnLength,_padWith,ErrorValueObject.create(ErrorType$1.NA)),resultArray=wrapCountArray.mapValue((wrapCountObject,rowIndex,columnIndex)=>{const padWithObject=padWithArray.get(rowIndex,columnIndex);if(vector.isError())return vector;if(vector.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(wrapCountObject.isError())return wrapCountObject;const wrapCountValue=Math.trunc(+wrapCountObject.getValue());if(vectorRowCount>1&&vectorColumnCount>1||Number.isNaN(wrapCountValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(wrapCountValue<1)return ErrorValueObject.create(ErrorType$1.NUM);const vectorArray=vector.isArray()?vector.getArrayValue().flat():[vector],result=this._getWrapArray(vectorArray,wrapCountValue,padWithObject);return maxRowLength>1||maxColumnLength>1||result.length===1&&result[0].length===1?result[0][0]:ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getWrapArray(vectorArray,wrapCount,padWith){const columns=Math.ceil(vectorArray.length/wrapCount),_wrapCount=columns>1?wrapCount:vectorArray.length,result=[];for(let c=0;c<columns;c++)for(let r=0;r<_wrapCount;r++){result[r]||(result[r]=[]);const index=c*_wrapCount+r;index<vectorArray.length?result[r].push(vectorArray[index].isNull()?NumberValueObject.create(0):vectorArray[index]):result[r].push(padWith)}return result}};__name(_Wrapcols,"Wrapcols");let Wrapcols=_Wrapcols;const _Wraprows=class _Wraprows extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(vector,wrapCount,padWith){let _padWith=padWith!=null?padWith:ErrorValueObject.create(ErrorType$1.NA);_padWith.isNull()&&(_padWith=ErrorValueObject.create(ErrorType$1.NA));const vectorRowCount=vector.isArray()?vector.getRowCount():1,vectorColumnCount=vector.isArray()?vector.getColumnCount():1,maxRowLength=Math.max(wrapCount.isArray()?wrapCount.getRowCount():1,_padWith.isArray()?_padWith.getRowCount():1),maxColumnLength=Math.max(wrapCount.isArray()?wrapCount.getColumnCount():1,_padWith.isArray()?_padWith.getColumnCount():1),wrapCountArray=expandArrayValueObject(maxRowLength,maxColumnLength,wrapCount,ErrorValueObject.create(ErrorType$1.NA)),padWithArray=expandArrayValueObject(maxRowLength,maxColumnLength,_padWith,ErrorValueObject.create(ErrorType$1.NA)),resultArray=wrapCountArray.mapValue((wrapCountObject,rowIndex,columnIndex)=>{const padWithObject=padWithArray.get(rowIndex,columnIndex);if(vector.isError())return vector;if(vector.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);if(wrapCountObject.isError())return wrapCountObject;const wrapCountValue=Math.trunc(+wrapCountObject.getValue());if(vectorRowCount>1&&vectorColumnCount>1||Number.isNaN(wrapCountValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(wrapCountValue<1)return ErrorValueObject.create(ErrorType$1.NUM);const vectorArray=vector.isArray()?vector.getArrayValue().flat():[vector],result=this._getWrapArray(vectorArray,wrapCountValue,padWithObject);return maxRowLength>1||maxColumnLength>1||result.length===1&&result[0].length===1?result[0][0]:ArrayValueObject.create({calculateValueList:result,rowCount:result.length,columnCount:result[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getWrapArray(vectorArray,wrapCount,padWith){const rows=Math.ceil(vectorArray.length/wrapCount),_wrapCount=rows>1?wrapCount:vectorArray.length,result=[];for(let r=0;r<rows;r++){const row=[];for(let c=0;c<_wrapCount;c++){const index=r*_wrapCount+c;index<vectorArray.length?row.push(vectorArray[index].isNull()?NumberValueObject.create(0):vectorArray[index]):row.push(padWith)}result.push(row)}return result}};__name(_Wraprows,"Wraprows");let Wraprows=_Wraprows;const _Xlookup=class _Xlookup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",6)}calculate(lookupValue,lookupArray,returnArray,ifNotFound,matchMode,searchMode){if(lookupValue.isError())return lookupValue;if(lookupArray.isError()||returnArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray()||!returnArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount(),rowCountReturn=returnArray.getRowCount(),columnCountReturn=returnArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1||rowCountLookup!==rowCountReturn&&columnCountLookup!==columnCountReturn)return ErrorValueObject.create(ErrorType$1.VALUE);if(ifNotFound!=null&&ifNotFound.isError()||matchMode!=null&&matchMode.isError()||searchMode!=null&&searchMode.isError())return ErrorValueObject.create(ErrorType$1.NA);const _ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),matchModeValue=this.getIndexNumValue(matchMode||NumberValueObject.create(0));if(matchModeValue instanceof ErrorValueObject)return matchModeValue;const searchModeValue=this.getIndexNumValue(searchMode||NumberValueObject.create(1));return searchModeValue instanceof ErrorValueObject?searchModeValue:this._getResult(lookupValue,lookupArray,returnArray,_ifNotFound,matchModeValue,searchModeValue,rowCountLookup,columnCountLookup,rowCountReturn,columnCountReturn)}_getResult(lookupValue,lookupArray,returnArray,ifNotFound,matchModeValue,searchModeValue,rowCountLookup,columnCountLookup,rowCountReturn,columnCountReturn){if(lookupValue.isArray()){let resultArray2;return rowCountLookup===1?resultArray2=returnArray.slice([0,1]):resultArray2=returnArray.slice(void 0,[0,1]),resultArray2==null?ErrorValueObject.create(ErrorType$1.NA):lookupValue.map(value=>{const checkErrorCombination=this._checkErrorCombination(matchModeValue,searchModeValue);if(checkErrorCombination)return checkErrorCombination;const result=this._handleSingleObject(value,lookupArray,resultArray2,matchModeValue,searchModeValue);return result.isError()?ifNotFound:result})}if(columnCountLookup===columnCountReturn&&rowCountLookup===rowCountReturn){const checkErrorCombination=this._checkErrorCombination(matchModeValue,searchModeValue);if(checkErrorCombination)return checkErrorCombination;const result=this._handleSingleObject(lookupValue,lookupArray,returnArray,matchModeValue,searchModeValue);return result.isError()?ifNotFound:result}let axis=0;columnCountLookup===columnCountReturn&&(axis=1);const resultArray=this._handleExpandObject(lookupValue,lookupArray,returnArray,matchModeValue,searchModeValue,axis);return resultArray==null?ErrorValueObject.create(ErrorType$1.NA):resultArray}_handleExpandObject(value,searchArray,resultArray,matchModeValue,searchModeValue,axis=0){if((searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2){const searchType=getSearchModeValue(searchModeValue),matchType=getMatchModeValue(matchModeValue);return this.binarySearchExpand(value,searchArray,resultArray,axis,searchType,matchType)}return matchModeValue===2?this.fuzzySearchExpand(value,searchArray,resultArray,searchModeValue!==-1,axis):matchModeValue===-1||matchModeValue===1?this.orderSearchExpand(value,searchArray,resultArray,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1,axis):this.equalSearchExpand(value,searchArray,resultArray,searchModeValue!==-1,axis)}_handleSingleObject(value,searchArray,resultArray,matchModeValue,searchModeValue){if((searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2){const searchType=getSearchModeValue(searchModeValue),matchType=getMatchModeValue(matchModeValue);return this.binarySearch(value,searchArray,resultArray,searchType,matchType)}return matchModeValue===2?this.fuzzySearch(value,searchArray,resultArray,searchModeValue!==-1):matchModeValue===-1||matchModeValue===1?this.orderSearch(value,searchArray,resultArray,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1):this.equalSearch(value,searchArray,resultArray,searchModeValue!==-1)}_checkErrorCombination(matchModeValue,searchModeValue){return matchModeValue===2&&(searchModeValue===-2||searchModeValue===2)?ErrorValueObject.create(ErrorType$1.VALUE):null}};__name(_Xlookup,"Xlookup");let Xlookup=_Xlookup;const _Xmatch=class _Xmatch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",4)}calculate(lookupValue,lookupArray,matchMode,searchMode){if(lookupValue.isError())return lookupValue;if(lookupArray.isError())return ErrorValueObject.create(ErrorType$1.REF);if(!lookupArray.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);const rowCountLookup=lookupArray.getRowCount(),columnCountLookup=lookupArray.getColumnCount();if(rowCountLookup!==1&&columnCountLookup!==1)return ErrorValueObject.create(ErrorType$1.VALUE);if(matchMode!=null&&matchMode.isError()||searchMode!=null&&searchMode.isError())return ErrorValueObject.create(ErrorType$1.NA);const matchModeValue=this.getIndexNumValue(matchMode||NumberValueObject.create(0));if(matchModeValue instanceof ErrorValueObject)return matchModeValue;const searchModeValue=this.getIndexNumValue(searchMode||NumberValueObject.create(1));return searchModeValue instanceof ErrorValueObject?searchModeValue:lookupValue.isArray()?lookupValue.map(value=>this._handleSingleObject(value,lookupArray,matchModeValue,searchModeValue)):this._handleSingleObject(lookupValue,lookupArray,matchModeValue,searchModeValue)}_handleSingleObject(value,searchArray,matchModeValue,searchModeValue){let rowOrColumn;if((searchModeValue===2||searchModeValue===-2)&&matchModeValue!==2){const searchType=getSearchModeValue(searchModeValue),matchType=getMatchModeValue(matchModeValue);rowOrColumn=searchArray.binarySearch(value,searchType,matchType)}else if(matchModeValue===2){const matchObject=searchArray.compare(value,compareToken.EQUALS);let position;if(searchModeValue!==-1?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null)return ErrorValueObject.create(ErrorType$1.NA);rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}else if(matchModeValue===-1||matchModeValue===1){const position=searchArray.orderSearch(value,matchModeValue===1?ArrayOrderSearchType.MAX:ArrayOrderSearchType.MIN,searchModeValue===-1);if(position==null)return ErrorValueObject.create(ErrorType$1.NA);if(position instanceof ErrorValueObject)return position;rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}else{const matchObject=searchArray.isEqual(value);let position;if(searchModeValue!==-1?position=matchObject.getFirstTruePosition():position=matchObject.getLastTruePosition(),position==null)return ErrorValueObject.create(ErrorType$1.NA);rowOrColumn=searchArray.getRowCount()===1?position.column:position.row}return rowOrColumn==null?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(rowOrColumn+1)}};__name(_Xmatch,"Xmatch");let Xmatch=_Xmatch;const functionLookup=[[Address,FUNCTION_NAMES_LOOKUP.ADDRESS],[Areas,FUNCTION_NAMES_LOOKUP.AREAS],[Choose,FUNCTION_NAMES_LOOKUP.CHOOSE],[Choosecols,FUNCTION_NAMES_LOOKUP.CHOOSECOLS],[Chooserows,FUNCTION_NAMES_LOOKUP.CHOOSEROWS],[Column,FUNCTION_NAMES_LOOKUP.COLUMN],[Columns,FUNCTION_NAMES_LOOKUP.COLUMNS],[Drop,FUNCTION_NAMES_LOOKUP.DROP],[Expand,FUNCTION_NAMES_LOOKUP.EXPAND],[Filter,FUNCTION_NAMES_LOOKUP.FILTER],[Hlookup,FUNCTION_NAMES_LOOKUP.HLOOKUP],[Hstack,FUNCTION_NAMES_LOOKUP.HSTACK],[Index,FUNCTION_NAMES_LOOKUP.INDEX],[Indirect,FUNCTION_NAMES_LOOKUP.INDIRECT],[Lookup,FUNCTION_NAMES_LOOKUP.LOOKUP],[Match,FUNCTION_NAMES_LOOKUP.MATCH],[Offset,FUNCTION_NAMES_LOOKUP.OFFSET],[Row,FUNCTION_NAMES_LOOKUP.ROW],[Rows,FUNCTION_NAMES_LOOKUP.ROWS],[Sort,FUNCTION_NAMES_LOOKUP.SORT],[Sortby,FUNCTION_NAMES_LOOKUP.SORTBY],[Take,FUNCTION_NAMES_LOOKUP.TAKE],[Tocol,FUNCTION_NAMES_LOOKUP.TOCOL],[Torow,FUNCTION_NAMES_LOOKUP.TOROW],[Transpose,FUNCTION_NAMES_LOOKUP.TRANSPOSE],[Unique,FUNCTION_NAMES_LOOKUP.UNIQUE],[Vlookup,FUNCTION_NAMES_LOOKUP.VLOOKUP],[Vstack,FUNCTION_NAMES_LOOKUP.VSTACK],[Wrapcols,FUNCTION_NAMES_LOOKUP.WRAPCOLS],[Wraprows,FUNCTION_NAMES_LOOKUP.WRAPROWS],[Xlookup,FUNCTION_NAMES_LOOKUP.XLOOKUP],[Xmatch,FUNCTION_NAMES_LOOKUP.XMATCH]],_Abs=class _Abs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.abs()}};__name(_Abs,"Abs");let Abs=_Abs;const _Acos=class _Acos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.acos()}};__name(_Acos,"Acos");let Acos=_Acos;const _Acosh=class _Acosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.acosh()}};__name(_Acosh,"Acosh");let Acosh=_Acosh;const _Acot=class _Acot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.isArray()?_variant.map(currentValue=>currentValue.isError()?currentValue:acot(currentValue)):acot(_variant)}};__name(_Acot,"Acot");let Acot=_Acot;function acot(num){let currentValue=num.getValue();if(num.isBoolean()&&(currentValue=currentValue?1:0),!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.VALUE);currentValue=Number(currentValue);let result=Math.atan(1/currentValue);return currentValue<0&&(result+=Math.PI),Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}__name(acot,"acot");const _Acoth=class _Acoth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.isArray()?_variant.map(currentValue=>currentValue.isError()?currentValue:acoth(currentValue)):acoth(_variant)}};__name(_Acoth,"Acoth");let Acoth=_Acoth;function acoth(num){let currentValue=num.getValue();if(num.isBoolean()&&(currentValue=currentValue?1:0),!Number.isFinite(currentValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(currentValue=Number(currentValue),Math.abs(currentValue)<=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=1/2*Math.log((currentValue+1)/(currentValue-1));return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}__name(acoth,"acoth");const _Asin=class _Asin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.asin()}};__name(_Asin,"Asin");let Asin=_Asin;const _Asinh=class _Asinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.asinh()}};__name(_Asinh,"Asinh");let Asinh=_Asinh;const _Atan=class _Atan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.atan()}};__name(_Atan,"Atan");let Atan=_Atan;const _Atan2=class _Atan2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(xNum,yNum){let _xNum=xNum,_yNum=yNum;return _xNum.isString()&&(_xNum=_xNum.convertToNumberObjectValue()),_xNum.isError()?_xNum:(_yNum.isString()&&(_yNum=_yNum.convertToNumberObjectValue()),_yNum.isError()?_yNum:_yNum.atan2(_xNum))}};__name(_Atan2,"Atan2");let Atan2=_Atan2;const _Atanh=class _Atanh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.atanh()}};__name(_Atanh,"Atanh");let Atanh=_Atanh;const _Base=class _Base extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(number,radix,minLength){const _minLength=minLength!=null?minLength:NumberValueObject.create(0);if(number.isError())return number;if(radix.isError())return radix;if(_minLength.isError())return _minLength;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,radix.isArray()?radix.getRowCount():1,_minLength.isArray()?_minLength.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,radix.isArray()?radix.getColumnCount():1,_minLength.isArray()?_minLength.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),radixArray=expandArrayValueObject(maxRowLength,maxColumnLength,radix,ErrorValueObject.create(ErrorType$1.NA)),minLengthArray=expandArrayValueObject(maxRowLength,maxColumnLength,_minLength,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const radixObject=radixArray.get(rowIndex,columnIndex),minLengthObject=minLengthArray.get(rowIndex,columnIndex);return this._handleSingleObject(numberObject,radixObject,minLengthObject)});return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.getArrayValue()[0][0]:resultArray}_handleSingleObject(numberObject,radixObject,minLengthObject){let _numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;let _radixObject=radixObject;if(_radixObject.isString()&&(_radixObject=_radixObject.convertToNumberObjectValue()),_radixObject.isError())return _radixObject;let _minLengthObject=minLengthObject;if(_minLengthObject.isString()&&(_minLengthObject=_minLengthObject.convertToNumberObjectValue()),_minLengthObject.isError())return _minLengthObject;const numberValue=Math.floor(+_numberObject.getValue()),radixValue=Math.floor(+_radixObject.getValue()),minLengthValue=Math.floor(+_minLengthObject.getValue());if(numberValue<0||numberValue>=2**53||radixValue<2||radixValue>36||minLengthValue<0)return ErrorValueObject.create(ErrorType$1.NUM);let result=numberValue.toString(radixValue);return result.length<minLengthValue&&(result=new Array(minLengthValue-result.length+1).join("0")+result),StringValueObject.create(result.toLocaleUpperCase())}};__name(_Base,"Base");let Base=_Base;const _Ceiling=class _Ceiling extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,significance){if(number.isError())return number;if(significance.isError())return significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,significance.isArray()?significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,significance.isArray()?significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue>0&&significanceValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=ceil(numberValue/significanceValue,0)*significanceValue;return NumberValueObject.create(result)});return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.getArrayValue()[0][0]:resultArray}};__name(_Ceiling,"Ceiling");let Ceiling=_Ceiling;const _CeilingMath=class _CeilingMath extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(number,significance,mode){const _significance=significance!=null?significance:NumberValueObject.create(1),_mode=mode!=null?mode:NumberValueObject.create(0);if(number.isError())return number;if(_significance.isError())return _significance;if(_mode.isError())return _mode;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1,_mode.isArray()?_mode.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1,_mode.isArray()?_mode.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),modeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_mode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex),modeObject=modeArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;if(modeObject.isString()&&(modeObject=modeObject.convertToNumberObjectValue()),modeObject.isError())return modeObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue(),modeValue=+modeObject.getValue();return numberValue===0||significanceValue===0?NumberValueObject.create(0):this._getResult(numberValue,significanceValue,modeValue)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(numberValue,significanceValue,modeValue){let result;return numberValue<0&&modeValue!==0?result=(significanceValue<0?ceil(Math.abs(numberValue)/Math.abs(significanceValue),0):-ceil(Math.abs(numberValue)/significanceValue,0))*significanceValue:result=(significanceValue<0?-ceil(numberValue/Math.abs(significanceValue),0):ceil(numberValue/significanceValue,0))*significanceValue,NumberValueObject.create(result)}};__name(_CeilingMath,"CeilingMath");let CeilingMath=_CeilingMath;const _CeilingPrecise=class _CeilingPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,significance){const _significance=significance!=null?significance:NumberValueObject.create(1);if(number.isError())return number;if(_significance.isError())return _significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=(significanceValue<0?-ceil(numberValue/Math.abs(significanceValue),0):ceil(numberValue/significanceValue,0))*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_CeilingPrecise,"CeilingPrecise");let CeilingPrecise=_CeilingPrecise;const _Combin=class _Combin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numberChosen){const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,numberChosen.isArray()?numberChosen.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,numberChosen.isArray()?numberChosen.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),numberChosenArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberChosen,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.mapValue((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,numberChosenObject=numberChosenArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),numberChosenObject.isString()&&(numberChosenObject=numberChosenObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(numberChosenObject.isError())return numberChosenObject;const numberValue=Math.floor(+_numberObject.getValue()),numberChosenValue=Math.floor(+numberChosenObject.getValue());if(numberValue<0||numberChosenValue<0||numberValue<numberChosenValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCombin(numberValue,numberChosenValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Combin,"Combin");let Combin=_Combin;const _Combina=class _Combina extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numberChosen){const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,numberChosen.isArray()?numberChosen.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,numberChosen.isArray()?numberChosen.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),numberChosenArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberChosen,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.mapValue((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,numberChosenObject=numberChosenArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),numberChosenObject.isString()&&(numberChosenObject=numberChosenObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(numberChosenObject.isError())return numberChosenObject;const numberValue=Math.floor(+_numberObject.getValue()),numberChosenValue=Math.floor(+numberChosenObject.getValue());if(numberValue<0||numberChosenValue<0||numberValue===0&&numberValue<numberChosenValue)return ErrorValueObject.create(ErrorType$1.NUM);const result=calculateCombin(numberValue+numberChosenValue-1,numberValue-1);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Combina,"Combina");let Combina=_Combina;const _Cos=class _Cos extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.cos()}};__name(_Cos,"Cos");let Cos=_Cos;const _Cosh=class _Cosh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;return _number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError()?_number:_number.cosh()}};__name(_Cosh,"Cosh");let Cosh=_Cosh;const _Cot=class _Cot extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.tan().getReciprocal()}};__name(_Cot,"Cot");let Cot=_Cot;const _Coth=class _Coth extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;return numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError()?numberObject:+numberObject.getValue()===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.tanh().getReciprocal()}};__name(_Coth,"Coth");let Coth=_Coth;const _Csc=class _Csc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):numberObject.sin().getReciprocal()}};__name(_Csc,"Csc");let Csc=_Csc;const _Csch=class _Csch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isArray()?variant.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(variant)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return numberValue===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):!Number.isNaN(numberValue)&&!Number.isFinite(Math.sinh(numberValue))?NumberValueObject.create(0):numberObject.sinh().getReciprocal()}};__name(_Csch,"Csch");let Csch=_Csch;const _Decimal=class _Decimal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,radix){if(text.isError())return text;if(radix.isError())return radix;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,radix.isArray()?radix.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,radix.isArray()?radix.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),radixArray=expandArrayValueObject(maxRowLength,maxColumnLength,radix,ErrorValueObject.create(ErrorType$1.NA)),resultArray=textArray.map((textObject,rowIndex,columnIndex)=>{if(textObject.isError())return textObject;let radixObject=radixArray.get(rowIndex,columnIndex);if(radixObject.isString()&&(radixObject=radixObject.convertToNumberObjectValue()),radixObject.isError())return radixObject;const textValue=`${textObject.getValue()}`,radixValue=Math.floor(+radixObject.getValue());if(core.isRealNum(textValue)&&(+textValue<0||+textValue>=2**53||!Number.isInteger(+textValue))||textValue.toLocaleLowerCase()==="true"||textValue.toLocaleLowerCase()==="false"||radixValue<2||radixValue>36)return ErrorValueObject.create(ErrorType$1.NUM);if(textValue.replace(/\s/g,"")==="")return NumberValueObject.create(0);if(!this._isValidCharForRadix(textValue,radixValue))return ErrorValueObject.create(ErrorType$1.NUM);const result=Number.parseInt(textValue,radixValue);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_isValidCharForRadix(text,radix){for(const char of text){const charCode=char.toUpperCase().charCodeAt(0);if(radix<=10&&!(charCode>=48&&charCode<48+radix)||radix>10&&!(charCode>=48&&charCode<58||charCode>=65&&charCode<65+radix-10))return!1}return!0}};__name(_Decimal,"Decimal");let Decimal=_Decimal;const _Degrees=class _Degrees extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(angle){return angle.isArray()?angle.map(angleObject=>this._handleSingleObject(angleObject)):this._handleSingleObject(angle)}_handleSingleObject(angle){let angleObject=angle;if(angleObject.isString()&&(angleObject=angleObject.convertToNumberObjectValue()),angleObject.isError())return angleObject;const angleValue=+angleObject.getValue();if(!Number.isFinite(angleValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=angleValue*(180/Math.PI);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}};__name(_Degrees,"Degrees");let Degrees=_Degrees;const _Even=class _Even extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();if(!Number.isFinite(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=(numberValue<0?-ceil(Math.abs(numberValue)/2,0):ceil(numberValue/2,0))*2;return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):result===0?NumberValueObject.create(0):NumberValueObject.create(result)}};__name(_Even,"Even");let Even=_Even;const _Exp=class _Exp extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.exp()}};__name(_Exp,"Exp");let Exp=_Exp;const _Fact=class _Fact extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.mapValue(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=Math.floor(+_number.getValue()),result=calculateFactorial(numberValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Fact,"Fact");let Fact=_Fact;const _Factdouble=class _Factdouble extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;if(number.isArray()){const rowCount=number.getRowCount(),columnCount=number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=number.get(0,0)}return this._handleSingleObject(_number)}_handleSingleObject(number){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=Math.floor(+_number.getValue()),result=calculateFactorial(numberValue,2);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_Factdouble,"Factdouble");let Factdouble=_Factdouble;const _Floor=class _Floor extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,significance){if(number.isError())return number;if(significance.isError())return significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,significance.isArray()?significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,significance.isArray()?significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue>0&&significanceValue<0)return ErrorValueObject.create(ErrorType$1.NUM);if(numberValue===0)return NumberValueObject.create(0);if(significanceValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=floor(numberValue/significanceValue,0)*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Floor,"Floor");let Floor=_Floor;const _FloorMath=class _FloorMath extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",3)}calculate(number,significance,mode){const _significance=significance!=null?significance:NumberValueObject.create(1),_mode=mode!=null?mode:NumberValueObject.create(0),maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1,_mode.isArray()?_mode.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1,_mode.isArray()?_mode.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),modeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_mode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let _numberObject=numberObject,significanceObject=significanceArray.get(rowIndex,columnIndex),modeObject=modeArray.get(rowIndex,columnIndex);if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;if(modeObject.isString()&&(modeObject=modeObject.convertToNumberObjectValue()),modeObject.isError())return modeObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue(),modeValue=+modeObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);let result;return numberValue<0&&modeValue!==0?result=(significanceValue<0?floor(Math.abs(numberValue)/Math.abs(significanceValue),0):-floor(Math.abs(numberValue)/significanceValue,0))*significanceValue:result=(significanceValue<0?-floor(numberValue/Math.abs(significanceValue),0):floor(numberValue/significanceValue,0))*significanceValue,NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_FloorMath,"FloorMath");let FloorMath=_FloorMath;const _FloorPrecise=class _FloorPrecise extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,significance){const _significance=significance!=null?significance:NumberValueObject.create(1);if(number.isError())return number;if(_significance.isError())return _significance;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_significance.isArray()?_significance.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_significance.isArray()?_significance.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),significanceArray=expandArrayValueObject(maxRowLength,maxColumnLength,_significance,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let significanceObject=significanceArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(significanceObject.isString()&&(significanceObject=significanceObject.convertToNumberObjectValue()),significanceObject.isError())return significanceObject;const numberValue=+_numberObject.getValue(),significanceValue=+significanceObject.getValue();if(numberValue===0||significanceValue===0)return NumberValueObject.create(0);const result=(significanceValue<0?-floor(numberValue/Math.abs(significanceValue),0):floor(numberValue/significanceValue,0))*significanceValue;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_FloorPrecise,"FloorPrecise");let FloorPrecise=_FloorPrecise;const _Gcd=class _Gcd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let result=0;for(let i=0;i<variants.length;i++){const variant=variants[i];if(!variant.isNull())if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(valueObject=>{if(valueObject!=null&&valueObject.isNull())return!0;const{isError:_isError,errorObject:_errorObject,number}=this._handleSingleObject(valueObject);if(_isError)return isError=!0,errorObject=_errorObject,!1;result=calculateGcd(result,number)}),isError)return errorObject}else{const{isError,errorObject,number}=this._handleSingleObject(variant);if(isError)return errorObject;result=calculateGcd(result,number)}}return NumberValueObject.create(result)}_handleSingleObject(number){if(number.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),number:null};let _number=number;if(number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return{isError:!0,errorObject:_number,number:null};const numberValue=Math.floor(+_number.getValue());return numberValue<0||numberValue>=2**53?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.NUM),number:null}:{isError:!1,errorObject:null,number:numberValue}}};__name(_Gcd,"Gcd");let Gcd=_Gcd;const _Int=class _Int extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.mapValue(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=Math.floor(+_number.getValue());return NumberValueObject.create(numberValue)}};__name(_Int,"Int");let Int=_Int;const _Lcm=class _Lcm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let result=1,noCalculate=!0;for(let i=0;i<variants.length;i++){const variant=variants[i];if(!variant.isNull())if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(valueObject=>{if(valueObject!=null&&valueObject.isNull())return!0;const{isError:_isError,errorObject:_errorObject,number}=this._handleSingleObject(valueObject);if(_isError)return isError=!0,errorObject=_errorObject,!1;result=calculateLcm(result,number),noCalculate=!1}),isError)return errorObject}else{const{isError,errorObject,number}=this._handleSingleObject(variant);if(isError)return errorObject;result=calculateLcm(result,number),noCalculate=!1}}return noCalculate?NumberValueObject.create(0):Number.isNaN(result)||!Number.isFinite(result)||result>=2**53?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}_handleSingleObject(number){if(number.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),number:null};let _number=number;if(number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return{isError:!0,errorObject:_number,number:null};const numberValue=Math.floor(+_number.getValue());return numberValue<0?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.NUM),number:null}:{isError:!1,errorObject:null,number:numberValue}}};__name(_Lcm,"Lcm");let Lcm=_Lcm;const _Ln=class _Ln extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.log()}};__name(_Ln,"Ln");let Ln=_Ln;const _Log=class _Log extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,base){const _base=base!=null?base:NumberValueObject.create(10);if(number.isError())return number;if(_base.isError())return _base;const maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_base.isArray()?_base.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_base.isArray()?_base.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),baseArray=expandArrayValueObject(maxRowLength,maxColumnLength,_base,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let baseObject=baseArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(baseObject.isString()&&(baseObject=baseObject.convertToNumberObjectValue()),baseObject.isError())return baseObject;const numberValue=+_numberObject.getValue(),baseValue=+baseObject.getValue();if(numberValue<=0||baseValue<=0)return ErrorValueObject.create(ErrorType$1.NUM);const baseLog=Math.log(baseValue);if(baseLog===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.log(numberValue)/baseLog;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Log,"Log");let Log=_Log;const _Log10=class _Log10 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.log10()}};__name(_Log10,"Log10");let Log10=_Log10;const _Mdeterm=class _Mdeterm extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(array){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,matrix=[];for(let r=0;r<arrayRowCount;r++){const row=[];for(let c=0;c<arrayColumnCount;c++){let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return valueObject;if(valueObject.isNull()||valueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);if(valueObject.isString()&&(valueObject=valueObject.convertToNumberObjectValue()),valueObject.isError())return valueObject;const value=+valueObject.getValue();row.push(value)}matrix.push(row)}if(arrayRowCount!==arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);const result=calculateMdeterm(matrix);return NumberValueObject.create(result)}};__name(_Mdeterm,"Mdeterm");let Mdeterm=_Mdeterm;const _Minverse=class _Minverse extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(array){const arrayRowCount=array.isArray()?array.getRowCount():1,arrayColumnCount=array.isArray()?array.getColumnCount():1,matrix=[];for(let r=0;r<arrayRowCount;r++){const row=[];for(let c=0;c<arrayColumnCount;c++){let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return valueObject;if(valueObject.isNull()||valueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);if(valueObject.isString()&&(valueObject=valueObject.convertToNumberObjectValue()),valueObject.isError())return valueObject;const value=+valueObject.getValue();row.push(value)}matrix.push(row)}if(arrayRowCount!==arrayColumnCount)return ErrorValueObject.create(ErrorType$1.VALUE);const result=calculateMinverse(matrix);return result===null?ErrorValueObject.create(ErrorType$1.NUM):ArrayValueObject.createByArray(result)}};__name(_Minverse,"Minverse");let Minverse=_Minverse;const _Mmult=class _Mmult extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const array1RowCount=array1.isArray()?array1.getRowCount():1,array1ColumnCount=array1.isArray()?array1.getColumnCount():1,array2RowCount=array2.isArray()?array2.getRowCount():1,array2ColumnCount=array2.isArray()?array2.getColumnCount():1;if(array1ColumnCount!==array2RowCount)return ErrorValueObject.create(ErrorType$1.VALUE);const matrix1=this._getMatrix(array1,array1RowCount,array1ColumnCount),matrix2=this._getMatrix(array2,array2RowCount,array2ColumnCount);if(matrix1 instanceof ErrorValueObject)return matrix1;if(matrix2 instanceof ErrorValueObject)return matrix2;const result=this._getResult(matrix1,matrix2,array1RowCount,array1ColumnCount,array2ColumnCount);return ArrayValueObject.createByArray(result)}_getMatrix(array,rowCount,columnCount){const matrix=[];for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){let valueObject=array.isArray()?array.get(r,c):array;if(valueObject.isError())return valueObject;if(valueObject.isNull()||valueObject.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);if(valueObject.isString()&&(valueObject=valueObject.convertToNumberObjectValue()),valueObject.isError())return valueObject;const value=+valueObject.getValue();row.push(value)}matrix.push(row)}return matrix}_getResult(matrix1,matrix2,array1RowCount,array1ColumnCount,array2ColumnCount){const result=Array.from({length:array1RowCount},()=>new Array(array2ColumnCount).fill(0));for(let r=0;r<array1RowCount;r++)for(let c=0;c<array2ColumnCount;c++){let value=0;for(let k=0;k<array1ColumnCount;k++)value+=matrix1[r][k]*matrix2[k][c];result[r][c]=value}return result}};__name(_Mmult,"Mmult");let Mmult=_Mmult;const _Mod=class _Mod extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,divisor){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _divisor=divisor;return _divisor.isString()&&(_divisor=_divisor.convertToNumberObjectValue()),_divisor.isError()?_divisor:_number.mod(_divisor)}};__name(_Mod,"Mod");let Mod=_Mod;const _Mround=class _Mround extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,multiple){let _number=number;if(_number.isArray()){const rowCount=_number.getRowCount(),columnCount=_number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=_number.get(0,0)}if(_number.isError())return _number;let _multiple=multiple;if(_multiple.isArray()){const rowCount=_multiple.getRowCount(),columnCount=_multiple.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_multiple=_multiple.get(0,0)}if(_multiple.isError())return _multiple;if(_number.isBoolean()||_multiple.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);const numberValue=+_number.getValue(),multipleValue=+_multiple.getValue();if(Number.isNaN(numberValue)||Number.isNaN(multipleValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(multipleValue===0)return NumberValueObject.create(0);if(numberValue>0&&multipleValue<0||numberValue<0&&multipleValue>0)return ErrorValueObject.create(ErrorType$1.NUM);const result=round(numberValue/multipleValue,0)*multipleValue;return NumberValueObject.create(result)}};__name(_Mround,"Mround");let Mround=_Mround;const _Multinomial=class _Multinomial extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let sum2=0,den=1;for(let i=0;i<variants.length;i++){const variant=variants[i];if(!variant.isNull())if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(valueObject=>{if(valueObject!=null&&valueObject.isNull())return!0;const{isError:_isError,errorObject:_errorObject,number}=this._handleSingleObject(valueObject);if(_isError)return isError=!0,errorObject=_errorObject,!1;if(sum2+=number,sum2>170)return isError=!0,errorObject=ErrorValueObject.create(ErrorType$1.NUM),!1;den*=calculateFactorial(number)}),isError)return errorObject}else{const{isError,errorObject,number}=this._handleSingleObject(variant);if(isError)return errorObject;if(sum2+=number,sum2>170)return ErrorValueObject.create(ErrorType$1.NUM);den*=calculateFactorial(number)}}const result=calculateFactorial(sum2)/den;return NumberValueObject.create(result)}_handleSingleObject(number){if(number.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),number:null};let _number=number;if(number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return{isError:!0,errorObject:_number,number:null};const numberValue=Math.floor(+_number.getValue());return numberValue<0?{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.NUM),number:null}:{isError:!1,errorObject:null,number:numberValue}}};__name(_Multinomial,"Multinomial");let Multinomial=_Multinomial;const _Munit=class _Munit extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(dimension){if(dimension.isArray()){const rowCount=dimension.getRowCount(),columnCount=dimension.getColumnCount(),resultArray=dimension.mapValue(dimensionObject=>{const result=this._handleSingleObject(dimensionObject);return result.isError()?result:rowCount>1||columnCount>1?result.get(0,0):result});return rowCount===1&&columnCount===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(dimension)}_handleSingleObject(dimension){let _dimension=dimension;if(_dimension.isString()&&(_dimension=_dimension.convertToNumberObjectValue()),_dimension.isError())return _dimension;const dimensionValue=Math.floor(+_dimension.getValue());if(dimensionValue<=0)return ErrorValueObject.create(ErrorType$1.VALUE);const result=[];for(let r=0;r<dimensionValue;r++){result[r]=[];for(let c=0;c<dimensionValue;c++)result[r][c]=r===c?1:0}return ArrayValueObject.createByArray(result)}};__name(_Munit,"Munit");let Munit=_Munit;const _Odd=class _Odd extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();if(!Number.isFinite(numberValue))return ErrorValueObject.create(ErrorType$1.VALUE);let result=numberValue<0?-ceil(Math.abs(numberValue),0):ceil(numberValue,0);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):(Math.abs(result)%2===0&&(numberValue<0?result--:result++),NumberValueObject.create(result))}};__name(_Odd,"Odd");let Odd=_Odd;const _Pi=class _Pi extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return NumberValueObject.create(Math.PI)}};__name(_Pi,"Pi");let Pi=_Pi;const _Power=class _Power extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,power){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _power=power;return _power.isString()&&(_power=_power.convertToNumberObjectValue()),_power.isError()?_power:_number.pow(_power)}};__name(_Power,"Power");let Power=_Power;const _Product=class _Product extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(1);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=this._multiplyArray(variant)),variant.isError())return variant;if(accumulatorAll=accumulatorAll.multiply(variant),accumulatorAll.isError())return accumulatorAll}}return accumulatorAll}_multiplyArray(array){let result=NumberValueObject.create(1);return array.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return result=valueObject,!1;result=result.multiply(valueObject)}),result}};__name(_Product,"Product");let Product=_Product;const _Quotient=class _Quotient extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(numerator,denominator){const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(numerator,denominator);if(isError)return errorObject;const[numeratorObject,denominatorObject]=variants,numeratorValue=+numeratorObject.getValue(),denominatorValue=+denominatorObject.getValue();if(Number.isNaN(numeratorValue)||Number.isNaN(denominatorValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(denominatorValue===0)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.trunc(numeratorValue/denominatorValue);return NumberValueObject.create(result)}};__name(_Quotient,"Quotient");let Quotient=_Quotient;const _Radians=class _Radians extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(angle){return angle.isArray()?angle.map(angleObject=>this._handleSingleObject(angleObject)):this._handleSingleObject(angle)}_handleSingleObject(angle){let angleObject=angle;if(angleObject.isString()&&(angleObject=angleObject.convertToNumberObjectValue()),angleObject.isError())return angleObject;const angleValue=+angleObject.getValue();if(!Number.isFinite(angleValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=angleValue*(Math.PI/180);return Number.isNaN(result)?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)}};__name(_Radians,"Radians");let Radians=_Radians;const _Rand=class _Rand extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",0)}calculate(){return NumberValueObject.create(Math.random())}};__name(_Rand,"Rand");let Rand=_Rand;const _Randarray=class _Randarray extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",0);__publicField(this,"maxParams",5)}calculate(rows,columns,min2,max2,wholeNumber){if(rows!=null&&rows.isError())return rows;if(columns!=null&&columns.isError())return columns;if(min2!=null&&min2.isError())return min2;if(max2!=null&&max2.isError())return max2;if(wholeNumber!=null&&wholeNumber.isError())return wholeNumber;const _rows=rows!=null?rows:NumberValueObject.create(1),_columns=columns!=null?columns:NumberValueObject.create(1),_min=min2!=null?min2:NumberValueObject.create(0),_max=max2!=null?max2:NumberValueObject.create(1),_wholeNumber=wholeNumber!=null?wholeNumber:NumberValueObject.create(0);return this._calculateResult(_rows,_columns,_min,_max,_wholeNumber)}_calculateResult(rows,columns,min2,max2,wholeNumber){const maxRowLength=Math.max(rows.isArray()?rows.getRowCount():1,columns.isArray()?columns.getRowCount():1,min2.isArray()?min2.getRowCount():1,max2.isArray()?max2.getRowCount():1,wholeNumber.isArray()?wholeNumber.getRowCount():1),maxColumnLength=Math.max(rows.isArray()?rows.getColumnCount():1,columns.isArray()?columns.getColumnCount():1,min2.isArray()?min2.getColumnCount():1,max2.isArray()?max2.getColumnCount():1,wholeNumber.isArray()?wholeNumber.getColumnCount():1);if(maxRowLength===1&&maxColumnLength===1)return this._calculateSingleCell(rows,columns,min2,max2,wholeNumber);const rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,columns,ErrorValueObject.create(ErrorType$1.NA)),minArray=expandArrayValueObject(maxRowLength,maxColumnLength,min2,ErrorValueObject.create(ErrorType$1.NA)),maxArray=expandArrayValueObject(maxRowLength,maxColumnLength,max2,ErrorValueObject.create(ErrorType$1.NA)),wholeNumberArray=expandArrayValueObject(maxRowLength,maxColumnLength,wholeNumber,ErrorValueObject.create(ErrorType$1.NA));return rowsArray.map((rowsObject,rowIndex,columnIndex)=>{const columnsObject=columnsArray.get(rowIndex,columnIndex),minObject=minArray.get(rowIndex,columnIndex),maxObject=maxArray.get(rowIndex,columnIndex),wholeNumberObject=wholeNumberArray.get(rowIndex,columnIndex),_handleError=this._handleError(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject);if(_handleError.errorObject)return _handleError.errorObject;let{minValue,maxValue,wholeNumberValue}=_handleError,result;return wholeNumberValue?(minValue=Math.ceil(minValue),maxValue=Math.floor(maxValue),result=Math.floor(Math.random()*(maxValue-minValue+1))+minValue):result=Math.random()*(maxValue-minValue)+minValue,result<minValue||result>maxValue?ErrorValueObject.create(ErrorType$1.VALUE):NumberValueObject.create(result)})}_calculateSingleCell(rows,columns,min2,max2,wholeNumber){let _rows=rows;_rows.isArray()&&(_rows=_rows.get(0,0));let _columns=columns;_columns.isArray()&&(_columns=_columns.get(0,0));let _min=min2;_min.isArray()&&(_min=_min.get(0,0));let _max=max2;_max.isArray()&&(_max=_max.get(0,0));let _wholeNumber=wholeNumber;_wholeNumber.isArray()&&(_wholeNumber=_wholeNumber.get(0,0));const _handleError=this._handleError(_rows,_columns,_min,_max,_wholeNumber);if(_handleError.errorObject)return _handleError.errorObject;let{rowsValue,columnsValue,minValue,maxValue,wholeNumberValue}=_handleError;if(wholeNumberValue&&(minValue=Math.ceil(minValue),maxValue=Math.floor(maxValue),minValue>maxValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=[];for(let r=0;r<rowsValue;r++){const row=[];for(let c=0;c<columnsValue;c++)wholeNumberValue?row.push(Math.floor(Math.random()*(maxValue-minValue+1))+minValue):row.push(Math.random()*(maxValue-minValue)+minValue);result.push(row)}return rowsValue===1&&columnsValue===1?NumberValueObject.create(result[0][0]):ArrayValueObject.createByArray(result)}_handleError(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject){let _rowsObject=rowsObject;if(_rowsObject.isString()&&(_rowsObject=_rowsObject.convertToNumberObjectValue()),_rowsObject.isError())return{errorObject:_rowsObject};let _columnsObject=columnsObject;if(_columnsObject.isString()&&(_columnsObject=_columnsObject.convertToNumberObjectValue()),_columnsObject.isError())return{errorObject:_columnsObject};let _minObject=minObject;if(_minObject.isString()&&(_minObject=_minObject.convertToNumberObjectValue()),_minObject.isError())return{errorObject:_minObject};let _maxObject=maxObject;if(_maxObject.isString()&&(_maxObject=_maxObject.convertToNumberObjectValue()),_maxObject.isError())return{errorObject:_maxObject};let _wholeNumberObject=wholeNumberObject;return _wholeNumberObject.isString()&&(_wholeNumberObject=_wholeNumberObject.convertToNumberObjectValue()),_wholeNumberObject.isError()?{errorObject:_wholeNumberObject}:this._getValue(_rowsObject,_columnsObject,_minObject,_maxObject,_wholeNumberObject)}_getValue(rowsObject,columnsObject,minObject,maxObject,wholeNumberObject){const rowsValue=Math.floor(+rowsObject.getValue()),columnsValue=Math.floor(+columnsObject.getValue());if(rowsValue===0||columnsValue===0)return{errorObject:ErrorValueObject.create(ErrorType$1.CALC)};if(rowsValue<0||columnsValue<0)return{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)};const minValue=+minObject.getValue(),maxValue=+maxObject.getValue(),wholeNumberValue=+wholeNumberObject.getValue();return minValue>maxValue?{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:wholeNumberValue&&(!Number.isInteger(minValue)||!Number.isInteger(maxValue))?{errorObject:ErrorValueObject.create(ErrorType$1.VALUE)}:{rowsValue,columnsValue,minValue,maxValue,wholeNumberValue}}};__name(_Randarray,"Randarray");let Randarray=_Randarray;const _Randbetween=class _Randbetween extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(bottom,top){let _bottom=bottom;if(_bottom.isArray()){const rowCount=_bottom.getRowCount(),columnCount=_bottom.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_bottom=_bottom.get(0,0)}if(_bottom.isError())return _bottom;let _top=top;if(_top.isArray()){const rowCount=_top.getRowCount(),columnCount=_top.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_top=_top.get(0,0)}if(_top.isError())return _top;if(_bottom.isBoolean()||_top.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);let bottomValue=+_bottom.getValue(),topValue=+_top.getValue();if(Number.isNaN(bottomValue)||Number.isNaN(topValue))return ErrorValueObject.create(ErrorType$1.VALUE);if(bottomValue>topValue)return ErrorValueObject.create(ErrorType$1.NUM);bottomValue=Math.ceil(bottomValue),topValue=Math.floor(topValue);const result=Math.floor(Math.random()*(topValue-bottomValue+1))+bottomValue;return NumberValueObject.create(result)}};__name(_Randbetween,"Randbetween");let Randbetween=_Randbetween;const _Round=class _Round extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.round(_numDigits)}};__name(_Round,"Round");let Round=_Round;const _Rounddown=class _Rounddown extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.floor(_numDigits)}};__name(_Rounddown,"Rounddown");let Rounddown=_Rounddown;const _Roundup=class _Roundup extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(number,numDigits){let _number=number;if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;let _numDigits=numDigits;return _numDigits.isString()&&(_numDigits=_numDigits.convertToNumberObjectValue()),_numDigits.isError()?_numDigits:_number.ceil(_numDigits)}};__name(_Roundup,"Roundup");let Roundup=_Roundup;const _Sec=class _Sec extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberObject.cos().getReciprocal()}};__name(_Sec,"Sec");let Sec=_Sec;const _Sech=class _Sech extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){return number.isArray()?number.map(numberObject=>this._handleSingleObject(numberObject)):this._handleSingleObject(number)}_handleSingleObject(number){let numberObject=number;if(numberObject.isString()&&(numberObject=numberObject.convertToNumberObjectValue()),numberObject.isError())return numberObject;const numberValue=+numberObject.getValue();return Number.isFinite(Math.cosh(numberValue))?Math.abs(numberValue)>=2**27?ErrorValueObject.create(ErrorType$1.NUM):numberObject.cosh().getReciprocal():NumberValueObject.create(0)}};__name(_Sech,"Sech");let Sech=_Sech;const _Sequence=class _Sequence extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",4)}calculate(rows,columns,start,step){let _rows=rows,_columns=columns!=null?columns:NumberValueObject.create(1),_start=start!=null?start:NumberValueObject.create(1),_step=step!=null?step:NumberValueObject.create(1);_rows.isNull()&&(_rows=NumberValueObject.create(1)),_columns.isNull()&&(_columns=NumberValueObject.create(1)),_start.isNull()&&(_start=NumberValueObject.create(1)),_step.isNull()&&(_step=NumberValueObject.create(1));const maxRowLength=Math.max(_rows.isArray()?_rows.getRowCount():1,_columns.isArray()?_columns.getRowCount():1,_start.isArray()?_start.getRowCount():1,_step.isArray()?_step.getRowCount():1),maxColumnLength=Math.max(_rows.isArray()?_rows.getColumnCount():1,_columns.isArray()?_columns.getColumnCount():1,_start.isArray()?_start.getColumnCount():1,_step.isArray()?_step.getColumnCount():1),rowsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_rows,ErrorValueObject.create(ErrorType$1.NA)),columnsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_columns,ErrorValueObject.create(ErrorType$1.NA)),startArray=expandArrayValueObject(maxRowLength,maxColumnLength,_start,ErrorValueObject.create(ErrorType$1.NA)),stepArray=expandArrayValueObject(maxRowLength,maxColumnLength,_step,ErrorValueObject.create(ErrorType$1.NA)),resultArray=rowsArray.mapValue((rowsObject,rowIndex,columnIndex)=>{const columnsObject=columnsArray.get(rowIndex,columnIndex),startObject=startArray.get(rowIndex,columnIndex),stepObject=stepArray.get(rowIndex,columnIndex);return rowsObject.isError()?rowsObject:columnsObject.isError()?columnsObject:startObject.isError()?startObject:stepObject.isError()?stepObject:this._getResult(rowsObject,columnsObject,startObject,stepObject,maxRowLength,maxColumnLength)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(rowsObject,columnsObject,startObject,stepObject,maxRowLength,maxColumnLength){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(rowsObject,columnsObject,startObject,stepObject);if(isError)return errorObject;const[_rowsObject,_columnsObject,_startObject,_stepObject]=variants,rowsValue=Math.floor(+_rowsObject.getValue()),columnsValue=Math.floor(+_columnsObject.getValue()),startValue=+_startObject.getValue(),stepValue=+_stepObject.getValue();if(rowsValue<0||columnsValue<0)return ErrorValueObject.create(ErrorType$1.VALUE);if(rowsValue===0||columnsValue===0)return ErrorValueObject.create(ErrorType$1.CALC);const result=[];for(let r=0;r<rowsValue;r++){result[r]=[];for(let c=0;c<columnsValue;c++)result[r][c]=startValue+(r*columnsValue+c)*stepValue}return maxRowLength>1||maxColumnLength>1?NumberValueObject.create(result[0][0]):ArrayValueObject.createByArray(result)}};__name(_Sequence,"Sequence");let Sequence=_Sequence;const _Seriessum=class _Seriessum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(x,n,m,coefficients){if(x.isNull()||n.isNull()||m.isNull()||coefficients.isNull())return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,variants}=checkVariantsErrorIsArrayOrBoolean(x,n,m);if(isError)return errorObject;const{isError:isError2,errorObject:errorObject2,variants:variants2}=checkVariantsErrorIsStringToNumber(...variants);if(isError2)return errorObject2;const[xObject,nObject,mObject]=variants2,xValue=+xObject.getValue(),nValue=+nObject.getValue(),mValue=+mObject.getValue(),coefficientsArray=[];if(coefficients.isArray()){let isError_coefficients=!1,errorObject_coefficients=ErrorValueObject.create(ErrorType$1.VALUE);if(coefficients.iterator(coefficientsObject=>{const{isError:_isError,errorObject:_errorObject,coefficientsObject:_coefficientsObject}=this._handleSingleObject(coefficientsObject);if(_isError)return isError_coefficients=!0,errorObject_coefficients=_errorObject,!1;const coefficientsValue=+_coefficientsObject.getValue();coefficientsArray.push(coefficientsValue)}),isError_coefficients)return errorObject_coefficients}else{const{isError:_isError,errorObject:_errorObject,coefficientsObject:_coefficientsObject}=this._handleSingleObject(coefficients);if(_isError)return _errorObject;const coefficientsValue=+_coefficientsObject.getValue();coefficientsArray.push(coefficientsValue)}let result=0;for(let i=0;i<coefficientsArray.length;i++)result+=coefficientsArray[i]*xValue**(nValue+i*mValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}_handleSingleObject(coefficientsObject){if(coefficientsObject.isError())return{isError:!0,errorObject:coefficientsObject,coefficientsObject:null};if(coefficientsObject!=null&&coefficientsObject.isBoolean())return{isError:!0,errorObject:ErrorValueObject.create(ErrorType$1.VALUE),coefficientsObject:null};let _coefficientsObject=coefficientsObject;return _coefficientsObject.isString()&&(_coefficientsObject=_coefficientsObject.convertToNumberObjectValue()),_coefficientsObject.isError()?{isError:!0,errorObject:_coefficientsObject,coefficientsObject:null}:{isError:!1,errorObject:null,coefficientsObject:_coefficientsObject}}};__name(_Seriessum,"Seriessum");let Seriessum=_Seriessum;const _Sign=class _Sign extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){if(number.isArray()){const resultArray=number.mapValue(numberObject=>this._handleSingleObject(numberObject));return resultArray.getRowCount()===1&&resultArray.getColumnCount()===1?resultArray.get(0,0):resultArray}return this._handleSingleObject(number)}_handleSingleObject(number){if(number.isError())return number;const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(number);if(isError)return errorObject;const[numberObject]=variants,numberValue=+numberObject.getValue();return numberValue>0?NumberValueObject.create(1):numberValue<0?NumberValueObject.create(-1):NumberValueObject.create(0)}};__name(_Sign,"Sign");let Sign=_Sign;const _Sin=class _Sin extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.sin()}};__name(_Sin,"Sin");let Sin=_Sin;const _Sinh=class _Sinh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.sinh()}};__name(_Sinh,"Sinh");let Sinh=_Sinh;const _Sqrt=class _Sqrt extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;return _number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError()?_number:_number.sqrt()}};__name(_Sqrt,"Sqrt");let Sqrt=_Sqrt;const _Sqrtpi=class _Sqrtpi extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(number){let _number=number;if(_number.isArray()){const rowCount=_number.getRowCount(),columnCount=_number.getColumnCount();if(rowCount>1||columnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_number=_number.get(0,0)}if(_number.isString()&&(_number=_number.convertToNumberObjectValue()),_number.isError())return _number;const numberValue=+_number.getValue();if(numberValue<0)return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.sqrt(numberValue*Math.PI);return NumberValueObject.create(result)}};__name(_Sqrtpi,"Sqrtpi");let Sqrtpi=_Sqrtpi;const _Subtotal=class _Subtotal extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255);__publicField(this,"needsReferenceObject",!0)}calculate(functionNum,...refs){if(functionNum.isError())return functionNum;if(functionNum.isReferenceObject()){const result=[];return functionNum.iterator((valueObject,rowIndex,columnIndex)=>{result[rowIndex]==null&&(result[rowIndex]=[]),result[rowIndex][columnIndex]=this._handleSingleObject(valueObject,...refs)}),createNewArray(result,result.length,result[0].length)}return this._handleSingleObject(functionNum,...refs)}_handleSingleObject(functionNum,...refs){const indexNum=this._getIndexNumValue(functionNum);let result;if(indexNum instanceof ErrorValueObject)return indexNum;switch(indexNum){case 1:result=this._average(!1,...refs);break;case 2:result=this._count(!1,...refs);break;case 3:result=this._counta(!1,...refs);break;case 4:result=this._max(!1,...refs);break;case 5:result=this._min(!1,...refs);break;case 6:result=this._product(!1,...refs);break;case 7:result=this._stdev(!1,...refs);break;case 8:result=this._stdevp(!1,...refs);break;case 9:result=this._sum(!1,...refs);break;case 10:result=this._var(!1,...refs);break;case 11:result=this._varp(!1,...refs);break;case 101:result=this._average(!0,...refs);break;case 102:result=this._count(!0,...refs);break;case 103:result=this._counta(!0,...refs);break;case 104:result=this._max(!0,...refs);break;case 105:result=this._min(!0,...refs);break;case 106:result=this._product(!0,...refs);break;case 107:result=this._stdev(!0,...refs);break;case 108:result=this._stdevp(!0,...refs);break;case 109:result=this._sum(!0,...refs);break;case 110:result=this._var(!0,...refs);break;case 111:result=this._varp(!0,...refs);break;default:result=ErrorValueObject.create(ErrorType$1.VALUE)}return result}_getIndexNumValue(indexNum){const indexNumValue=indexNum?Number(indexNum.getValue()):0;if(Number.isNaN(indexNumValue))return ErrorValueObject.create(ErrorType$1.VALUE);const indexNumValueInt=Math.floor(indexNumValue);return indexNumValueInt>=1&&indexNumValueInt<=11||indexNumValueInt>=101&&indexNumValueInt<=111?indexNumValueInt:ErrorValueObject.create(ErrorType$1.VALUE)}_average(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:flattenArray.mean()}_count(ignoreHidden,...refs){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<refs.length;i++){const variant=refs[i];if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex))return!0;valueObject!=null&&valueObject.isNumber()&&(accumulatorAll=accumulatorAll.plusBy(1))})}return accumulatorAll}_counta(ignoreHidden,...refs){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<refs.length;i++){const variant=refs[i];if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex)||valueObject==null||valueObject.isNull())return!0;accumulatorAll=accumulatorAll.plusBy(1)})}return accumulatorAll}_max(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?NumberValueObject.create(0):flattenArray.max()}_min(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?NumberValueObject.create(0):flattenArray.min()}_product(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);if(flattenArray.isError())return flattenArray;if(this._isBlankArrayObject(flattenArray))return NumberValueObject.create(0);let result=NumberValueObject.create(1);return flattenArray.iterator(valueObject=>{result=result.multiply(valueObject)}),result}_stdev(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.std(1)}_stdevp(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.std()}_sum(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:flattenArray.sum()}_var(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.var(1)}_varp(ignoreHidden,...refs){const flattenArray=this._flattenRefArray(ignoreHidden,...refs);return flattenArray.isError()?flattenArray:this._isBlankArrayObject(flattenArray)?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):flattenArray.var()}_flattenRefArray(ignoreHidden,...variants){const flattenValues=[];flattenValues[0]=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant;if(!variant.isReferenceObject())return ErrorValueObject.create(ErrorType$1.VALUE);const rowData=variant.getRowData();let errorValue;if(variant.iterator((valueObject,rowIndex)=>{if(ignoreHidden&&this._isRowHidden(rowData,rowIndex)||valueObject==null||valueObject.isNull()||valueObject.isString()||valueObject.isBoolean())return!0;if(valueObject.isError())return errorValue=valueObject,!1;flattenValues[0].push(valueObject)}),errorValue!=null&&errorValue.isError())return errorValue}return createNewArray(flattenValues,1,flattenValues[0].length)}_isRowHidden(rowData,rowIndex){const row=rowData[rowIndex];return row?row.hd===core.BooleanNumber.TRUE:!1}_isBlankArrayObject(arrayObject){return arrayObject.getArrayValue()[0].length===0}};__name(_Subtotal,"Subtotal");let Subtotal=_Subtotal;const _Sum=class _Sum extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError()||(variant.isArray()&&(variant=variant.sum()),variant.isError()))return variant;if(accumulatorAll=accumulatorAll.plus(variant),accumulatorAll.isError())return accumulatorAll}return accumulatorAll}};__name(_Sum,"Sum");let Sum=_Sum;const _Sumif=class _Sumif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3)}calculate(range,criteria,sumRange){return range.isError()?range:criteria.isError()?criteria:sumRange!=null&&sumRange.isError()?sumRange:!range.isArray()||sumRange&&!sumRange.isArray()?ErrorValueObject.create(ErrorType$1.VALUE):criteria.isArray()?criteria.map(criteriaItem=>this._handleSingleObject(range,criteriaItem,sumRange)):this._handleSingleObject(range,criteria,sumRange)}_handleSingleObject(range,criteria,sumRange){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);const sumRangeArray=sumRange?sumRange.slice([0,range.getRowCount()],[0,range.getColumnCount()]):range;return sumRangeArray?sumRangeArray.pick(resultArrayObject).sum():ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Sumif,"Sumif");let Sumif=_Sumif;const _Sumifs=class _Sumifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(sumRange,...variants){if(sumRange.isError())return sumRange;if(!sumRange.isArray()||variants.length<2||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,sumRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(sumRange,booleanResults)}_aggregateResults(sumRange,booleanResults){const sumResults=booleanResults.map(row=>row.map(booleanResult=>sumRange.pick(booleanResult).sum())),arrayValueObjectData={calculateValueList:sumResults,rowCount:sumResults.length,columnCount:sumResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Sumifs,"Sumifs");let Sumifs=_Sumifs;const _Sumproduct=class _Sumproduct extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(array1,...variants){if(array1.isError())return array1;const _array1=this._initArray1(array1);if(variants.length>0){const rowCount=_array1.getRowCount(),columnCount=_array1.getColumnCount();let resultArray=this._getResultArrayByArray1(rowCount,columnCount,_array1);if(resultArray instanceof ErrorValueObject)return resultArray;resultArray=resultArray;for(let i=0;i<variants.length;i++){if(variants[i].isError())return variants[i];let variantRowCount=1,variantColumnCount=1;if(variants[i].isArray()&&(variantRowCount=variants[i].getRowCount(),variantColumnCount=variants[i].getColumnCount()),variantRowCount!==rowCount||variantColumnCount!==columnCount)return ErrorValueObject.create(ErrorType$1.VALUE);for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){let variantValueObject=variants[i];if(variants[i].isArray()&&(variantValueObject=variants[i].get(r,c)),variantValueObject.isError())return variantValueObject;const variantValue=variantValueObject.getValue();!variantValue||!core.isRealNum(variantValue)?row.push(0):row.push(+variantValue*resultArray[r][c])}resultArray[r]=row}}const result=resultArray.reduce((acc,cur)=>acc.concat(cur)).reduce((acc,cur)=>acc+cur,0);return NumberValueObject.create(result)}else return _array1.sum()}_initArray1(array1){let _array1=array1;return _array1.isArray()||(_array1=ArrayValueObject.create({calculateValueList:[[_array1]],rowCount:1,columnCount:1,unitId:"",sheetId:"",row:0,column:0})),_array1}_getResultArrayByArray1(rowCount,columnCount,array1){const resultArray=[];for(let r=0;r<rowCount;r++){const row=[];for(let c=0;c<columnCount;c++){const array1ValueObject=array1.get(r,c);if(array1ValueObject.isError())return array1ValueObject;const array1Value=array1ValueObject.getValue();!array1Value||!core.isRealNum(array1Value)?row.push(0):row.push(+array1Value)}resultArray.push(row)}return resultArray}};__name(_Sumproduct,"Sumproduct");let Sumproduct=_Sumproduct;const _Sumsq=class _Sumsq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);const exponent=NumberValueObject.create(2);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()?variant.iterator(valueObject=>{if(valueObject==null||valueObject.isString()||valueObject.isBoolean()||valueObject.isNull())return!0;if(valueObject.isError())return accumulatorAll=valueObject,!1;accumulatorAll=accumulatorAll.plus(valueObject.pow(exponent))}):accumulatorAll=accumulatorAll.plus(variant.pow(exponent)),accumulatorAll.isError())return accumulatorAll}return accumulatorAll}};__name(_Sumsq,"Sumsq");let Sumsq=_Sumsq;const _Sumx2my2=class _Sumx2my2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=arrayXValue**2-arrayYValue**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=arrayXValue**2-arrayYValue**2;return NumberValueObject.create(result)}};__name(_Sumx2my2,"Sumx2my2");let Sumx2my2=_Sumx2my2;const _Sumx2py2=class _Sumx2py2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=arrayXValue**2+arrayYValue**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=arrayXValue**2+arrayYValue**2;return NumberValueObject.create(result)}};__name(_Sumx2py2,"Sumx2py2");let Sumx2py2=_Sumx2py2;const _Sumxmy2=class _Sumxmy2 extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(arrayX,arrayY){if(arrayX.isError())return arrayX;if(arrayY.isError())return arrayY;const arrayXRowCount=arrayX.isArray()?arrayX.getRowCount():1,arrayXColumnCount=arrayX.isArray()?arrayX.getColumnCount():1,arrayXCount=arrayXRowCount*arrayXColumnCount,arrayYRowCount=arrayY.isArray()?arrayY.getRowCount():1,arrayYColumnCount=arrayY.isArray()?arrayY.getColumnCount():1,arrayYCount=arrayYRowCount*arrayYColumnCount;if(arrayXCount!==arrayYCount)return ErrorValueObject.create(ErrorType$1.NA);if(arrayXCount===1)return this._calculateSingleCell(arrayX,arrayY);{const arrayXFlatten=arrayX.flatten(),arrayYFlatten=arrayY.flatten();let errorObject=NullValueObject.create();const arrayXValidValue=[],arrayYValidValue=[];let result=0;return arrayXFlatten.iterator((arrayXObject,rowIndex,columnIndex)=>{const arrayYObject=arrayYFlatten.get(rowIndex,columnIndex);if(arrayXObject==null||arrayXObject.isString()||arrayXObject.isBoolean()||arrayXObject.isNull())return!0;if(arrayXObject!=null&&arrayXObject.isError())return errorObject=arrayXObject,!1;if(arrayYObject==null||arrayYObject.isString()||arrayYObject.isBoolean()||arrayYObject.isNull())return!0;if(arrayYObject!=null&&arrayYObject.isError())return errorObject=arrayYObject,!1;const arrayXValue=+arrayXObject.getValue(),arrayYValue=+arrayYObject.getValue();arrayXValidValue.push(arrayXValue),arrayYValidValue.push(arrayYValue),result+=(arrayXValue-arrayYValue)**2}),errorObject.isError()?errorObject:arrayXValidValue.length===0||arrayYValidValue.length===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(result)}}_calculateSingleCell(arrayX,arrayY){let _arrayX=arrayX;if(_arrayX.isArray()&&(_arrayX=_arrayX.get(0,0)),_arrayX.isError())return _arrayX;let _arrayY=arrayY;if(_arrayY.isArray()&&(_arrayY=_arrayY.get(0,0)),_arrayY.isError())return _arrayY;if(_arrayX.isNull()||_arrayY.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);const arrayXValue=+_arrayX.getValue(),arrayYValue=+_arrayY.getValue();if(_arrayX.isString()&&!core.isRealNum(arrayXValue)||_arrayX.isBoolean()||_arrayY.isString()&&!core.isRealNum(arrayYValue)||_arrayY.isBoolean())return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=(arrayXValue-arrayYValue)**2;return NumberValueObject.create(result)}};__name(_Sumxmy2,"Sumxmy2");let Sumxmy2=_Sumxmy2;const _Tan=class _Tan extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.tan()}};__name(_Tan,"Tan");let Tan=_Tan;const _Tanh=class _Tanh extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){let _variant=variant;return _variant.isString()&&(_variant=_variant.convertToNumberObjectValue()),_variant.isError()?_variant:_variant.tanh()}};__name(_Tanh,"Tanh");let Tanh=_Tanh;const _Trunc=class _Trunc extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(number,numDigits){const _numDigits=numDigits!=null?numDigits:NumberValueObject.create(0),maxRowLength=Math.max(number.isArray()?number.getRowCount():1,_numDigits.isArray()?_numDigits.getRowCount():1),maxColumnLength=Math.max(number.isArray()?number.getColumnCount():1,_numDigits.isArray()?_numDigits.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,number,ErrorValueObject.create(ErrorType$1.NA)),numDigitsArray=expandArrayValueObject(maxRowLength,maxColumnLength,_numDigits,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{let numDigitsObject=numDigitsArray.get(rowIndex,columnIndex),_numberObject=numberObject;if(_numberObject.isString()&&(_numberObject=_numberObject.convertToNumberObjectValue()),_numberObject.isError())return _numberObject;if(numDigitsObject.isString()&&(numDigitsObject=numDigitsObject.convertToNumberObjectValue()),numDigitsObject.isError())return numDigitsObject;const numberValue=+_numberObject.getValue(),numDigitsValue=+numDigitsObject.getValue(),factor=10**Math.trunc(numDigitsValue),epsilon=baseEpsilon(numberValue,factor),result=Math.trunc(multiply(numberValue,factor)+epsilon)/factor;return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Trunc,"Trunc");let Trunc=_Trunc;const functionMath=[[Abs,FUNCTION_NAMES_MATH.ABS],[Acos,FUNCTION_NAMES_MATH.ACOS],[Acosh,FUNCTION_NAMES_MATH.ACOSH],[Acot,FUNCTION_NAMES_MATH.ACOT],[Acoth,FUNCTION_NAMES_MATH.ACOTH],[Asin,FUNCTION_NAMES_MATH.ASIN],[Asinh,FUNCTION_NAMES_MATH.ASINH],[Atan,FUNCTION_NAMES_MATH.ATAN],[Atan2,FUNCTION_NAMES_MATH.ATAN2],[Atanh,FUNCTION_NAMES_MATH.ATANH],[Base,FUNCTION_NAMES_MATH.BASE],[Ceiling,FUNCTION_NAMES_MATH.CEILING],[CeilingMath,FUNCTION_NAMES_MATH.CEILING_MATH],[CeilingPrecise,FUNCTION_NAMES_MATH.CEILING_PRECISE],[Combin,FUNCTION_NAMES_MATH.COMBIN],[Combina,FUNCTION_NAMES_MATH.COMBINA],[Cos,FUNCTION_NAMES_MATH.COS],[Cosh,FUNCTION_NAMES_MATH.COSH],[Cot,FUNCTION_NAMES_MATH.COT],[Coth,FUNCTION_NAMES_MATH.COTH],[Csc,FUNCTION_NAMES_MATH.CSC],[Csch,FUNCTION_NAMES_MATH.CSCH],[Decimal,FUNCTION_NAMES_MATH.DECIMAL],[Degrees,FUNCTION_NAMES_MATH.DEGREES],[Even,FUNCTION_NAMES_MATH.EVEN],[Exp,FUNCTION_NAMES_MATH.EXP],[Fact,FUNCTION_NAMES_MATH.FACT],[Factdouble,FUNCTION_NAMES_MATH.FACTDOUBLE],[Floor,FUNCTION_NAMES_MATH.FLOOR],[FloorMath,FUNCTION_NAMES_MATH.FLOOR_MATH],[FloorPrecise,FUNCTION_NAMES_MATH.FLOOR_PRECISE],[Gcd,FUNCTION_NAMES_MATH.GCD],[Int,FUNCTION_NAMES_MATH.INT],[Lcm,FUNCTION_NAMES_MATH.LCM],[Ln,FUNCTION_NAMES_MATH.LN],[Log,FUNCTION_NAMES_MATH.LOG],[Log10,FUNCTION_NAMES_MATH.LOG10],[Mdeterm,FUNCTION_NAMES_MATH.MDETERM],[Minverse,FUNCTION_NAMES_MATH.MINVERSE],[Mmult,FUNCTION_NAMES_MATH.MMULT],[Mod,FUNCTION_NAMES_MATH.MOD],[Mround,FUNCTION_NAMES_MATH.MROUND],[Multinomial,FUNCTION_NAMES_MATH.MULTINOMIAL],[Munit,FUNCTION_NAMES_MATH.MUNIT],[Odd,FUNCTION_NAMES_MATH.ODD],[Pi,FUNCTION_NAMES_MATH.PI],[Power,FUNCTION_NAMES_MATH.POWER],[Product,FUNCTION_NAMES_MATH.PRODUCT],[Quotient,FUNCTION_NAMES_MATH.QUOTIENT],[Radians,FUNCTION_NAMES_MATH.RADIANS],[Rand,FUNCTION_NAMES_MATH.RAND],[Randarray,FUNCTION_NAMES_MATH.RANDARRAY],[Randbetween,FUNCTION_NAMES_MATH.RANDBETWEEN],[Round,FUNCTION_NAMES_MATH.ROUND],[Rounddown,FUNCTION_NAMES_MATH.ROUNDDOWN],[Roundup,FUNCTION_NAMES_MATH.ROUNDUP],[Sec,FUNCTION_NAMES_MATH.SEC],[Sech,FUNCTION_NAMES_MATH.SECH],[Seriessum,FUNCTION_NAMES_MATH.SERIESSUM],[Sequence,FUNCTION_NAMES_MATH.SEQUENCE],[Sign,FUNCTION_NAMES_MATH.SIGN],[Sin,FUNCTION_NAMES_MATH.SIN],[Sinh,FUNCTION_NAMES_MATH.SINH],[Sqrt,FUNCTION_NAMES_MATH.SQRT],[Sqrtpi,FUNCTION_NAMES_MATH.SQRTPI],[Subtotal,FUNCTION_NAMES_MATH.SUBTOTAL],[Sum,FUNCTION_NAMES_MATH.SUM],[Sumif,FUNCTION_NAMES_MATH.SUMIF],[Sumifs,FUNCTION_NAMES_MATH.SUMIFS],[Sumproduct,FUNCTION_NAMES_MATH.SUMPRODUCT],[Sumsq,FUNCTION_NAMES_MATH.SUMSQ],[Sumx2my2,FUNCTION_NAMES_MATH.SUMX2MY2],[Sumx2py2,FUNCTION_NAMES_MATH.SUMX2PY2],[Sumxmy2,FUNCTION_NAMES_MATH.SUMXMY2],[Tan,FUNCTION_NAMES_MATH.TAN],[Tanh,FUNCTION_NAMES_MATH.TANH],[Trunc,FUNCTION_NAMES_MATH.TRUNC]],_Compare=class _Compare extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2);__publicField(this,"_compareType",compareToken.EQUALS)}setCompareType(token){this._compareType=token}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.compare(variant2,this._compareType)}};__name(_Compare,"Compare");let Compare=_Compare;const _CubeValueObject=class _CubeValueObject extends BaseValueObject{constructor(values){super("");__publicField(this,"_values",[]);this._values=values}static create(values){return new _CubeValueObject(values)}isCube(){return!0}sum(){const result=NumberValueObject.create(0);return this._values.forEach(arr=>{result.plus(arr.sum())}),result}max(){let result=NumberValueObject.create(Number.NEGATIVE_INFINITY);return this._values.forEach(arr=>{const compare=arr.max();result.isLessThan(compare)&&(result=compare)}),result}min(){let result=NumberValueObject.create(Number.POSITIVE_INFINITY);return this._values.forEach(arr=>{const compare=arr.max();result.isGreaterThan(compare)&&(result=compare)}),result}count(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.count())}),count}countA(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.countA())}),count}countBlank(){const count=NumberValueObject.create(0);return this._values.forEach(arr=>{count.plus(arr.countBlank())}),count}};__name(_CubeValueObject,"CubeValueObject");let CubeValueObject=_CubeValueObject;const _Cube=class _Cube extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const values=[];for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isError())return variant;if(!variant.isArray())return ErrorValueObject.create(ErrorType$1.VALUE);values.push(variant)}return CubeValueObject.create(values)}};__name(_Cube,"Cube");let Cube=_Cube;const _Divided=class _Divided extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:!variant2.isArray()&&variant2.getValue()===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):variant1.divided(variant2)}};__name(_Divided,"Divided");let Divided=_Divided;const _Minus=class _Minus extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.minus(variant2)}};__name(_Minus,"Minus");let Minus=_Minus;const _Multiply=class _Multiply extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.multiply(variant2)}};__name(_Multiply,"Multiply");let Multiply=_Multiply;const _Plus=class _Plus extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(variant1,variant2){return variant1.isError()?variant1:variant2.isError()?variant2:variant1.plus(variant2)}};__name(_Plus,"Plus");let Plus=_Plus;const functionMeta=[[Compare,FUNCTION_NAMES_META.COMPARE],[Divided,FUNCTION_NAMES_META.DIVIDED],[Minus,FUNCTION_NAMES_META.MINUS],[Multiply,FUNCTION_NAMES_META.MULTIPLY],[Plus,FUNCTION_NAMES_META.PLUS],[Cube,FUNCTION_NAMES_META.CUBE]],_Avedev=class _Avedev extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(variant=filterNumberValueObject(variant),variant.isError())return variant;if(variants[i]=variant,accumulatorSum=accumulatorSum.plus(variant.sum()),accumulatorSum.isError())return accumulatorSum;accumulatorCount=accumulatorCount.plus(variant.count())}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}if(accumulatorCount.getValue()===0)return ErrorValueObject.create(ErrorType$1.NUM);const average=accumulatorSum.divided(accumulatorCount);if(average.isError())return average;let accumulatorAveDev=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(accumulatorAveDev=accumulatorAveDev.plus(variant.minus(average).abs().sum()),accumulatorAveDev.isError())return accumulatorAveDev}else variant.isNull()||(accumulatorAveDev=accumulatorAveDev.plus(variant.minus(average).abs()))}return accumulatorAveDev.divided(accumulatorCount)}};__name(_Avedev,"Avedev");let Avedev=_Avedev;function filterNumberValueObject(array){const newArray=[];newArray[0]=[];let isError=null;return array.iterator((valueObject,_rowIndex,_columnIndex)=>{if(valueObject!=null&&valueObject.isError())return isError=valueObject,!1;valueObject!=null&&valueObject.isNumber()&&newArray[0].push(valueObject)}),isError||createNewArray(newArray,1,newArray[0].length)}__name(filterNumberValueObject,"filterNumberValueObject");const _Average=class _Average extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(accumulatorSum=accumulatorSum.plus(variant.sum()),accumulatorSum.isError())return accumulatorSum;accumulatorCount=accumulatorCount.plus(variant.count())}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}return accumulatorSum.divided(accumulatorCount)}};__name(_Average,"Average");let Average=_Average;const _Averagea=class _Averagea extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorSum=NumberValueObject.create(0),accumulatorCount=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()){if(variant.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;let _valueObject=valueObject;if(_valueObject.isString()&&(_valueObject=_valueObject.convertToNumberObjectValue(),_valueObject.isError()&&(_valueObject=NumberValueObject.create(0))),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorSum=_valueObject,!1;accumulatorSum=accumulatorSum.plus(_valueObject),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1))}),accumulatorSum.isError())return accumulatorSum}else variant.isNull()||(accumulatorSum=accumulatorSum.plus(variant),accumulatorCount=accumulatorCount.plus(NumberValueObject.create(1)))}return accumulatorSum.divided(accumulatorCount)}};__name(_Averagea,"Averagea");let Averagea=_Averagea;const _Averageif=class _Averageif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(range,criteria,averageRange){if(range.isError())return range;if(criteria.isError())return criteria;if(averageRange!=null&&averageRange.isError())return averageRange;let _range=range;_range.isReferenceObject()&&(_range=_range.toArrayValueObject()),_range.isArray()||(_range=createNewArray([[_range]],1,1));let _criteria=criteria;return _criteria.isReferenceObject()&&(_criteria=_criteria.toArrayValueObject()),averageRange&&!(averageRange!=null&&averageRange.isReferenceObject())?ErrorValueObject.create(ErrorType$1.NA):(_criteria=_criteria,_criteria.isArray()?_criteria.map(criteriaItem=>this._handleSingleObject(_range,criteriaItem,averageRange)):this._handleSingleObject(_range,_criteria,averageRange))}_handleSingleObject(range,criteria,averageRange){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);let averageRangeArray=averageRange?this._createRangeReferenceObject(averageRange,range):range;if(!averageRangeArray)return ErrorValueObject.create(ErrorType$1.VALUE);if(averageRangeArray.isError())return averageRangeArray;averageRangeArray.isReferenceObject()&&(averageRangeArray=averageRangeArray.toArrayValueObject()),averageRangeArray=averageRangeArray;const picked=averageRangeArray.pick(resultArrayObject),sum2=picked.sum(),count=picked.count();return sum2.divided(count)}_createRangeReferenceObject(averageRange,range){const averageRangeRow=averageRange.getRowCount(),averageRangeColumn=averageRange.getColumnCount(),rowCount=range.isArray()?range.getRowCount():1,columnCount=range.isArray()?range.getColumnCount():1;if(averageRangeRow===rowCount&&averageRangeColumn===columnCount)return averageRange;const{startRow,startColumn}=averageRange.getRangePosition(),rangeData={startRow,startColumn,endRow:startRow+rowCount-1,endColumn:startColumn+columnCount-1};return this.createReferenceObject(averageRange,rangeData)}};__name(_Averageif,"Averageif");let Averageif=_Averageif;const _Averageifs=class _Averageifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(averageRange,...variants){if(averageRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!averageRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,averageRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(averageRange,booleanResults)}_aggregateResults(averageRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=averageRange.pick(booleanResult),sum2=picked.sum(),count=picked.count();return sum2.divided(count)})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Averageifs,"Averageifs");let Averageifs=_Averageifs;const _BetaDist=class _BetaDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",6)}calculate(x,alpha,beta,cumulative,A,B){let _A=A!=null?A:NumberValueObject.create(0),_B=B!=null?B:NumberValueObject.create(1);_A.isNull()&&(_A=NumberValueObject.create(0)),_B.isNull()&&(_B=NumberValueObject.create(1));const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,alpha.isArray()?alpha.getRowCount():1,beta.isArray()?beta.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1,_A.isArray()?_A.getRowCount():1,_B.isArray()?_B.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,alpha.isArray()?alpha.getColumnCount():1,beta.isArray()?beta.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1,_A.isArray()?_A.getColumnCount():1,_B.isArray()?_B.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),betaArray=expandArrayValueObject(maxRowLength,maxColumnLength,beta,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),AArray=expandArrayValueObject(maxRowLength,maxColumnLength,_A,ErrorValueObject.create(ErrorType$1.NA)),BArray=expandArrayValueObject(maxRowLength,maxColumnLength,_B,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const alphaObject=alphaArray.get(rowIndex,columnIndex),betaObject=betaArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex),AObject=AArray.get(rowIndex,columnIndex),BObject=BArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,alphaObject,betaObject,cumulativeObject,AObject,BObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,alphaObject,betaObject,cumulativeObject,AObject,BObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,alphaObject,betaObject,cumulativeObject,AObject,BObject);if(isError)return errorObject;const[_xObject,_alphaObject,_betaObject,_cumulativeObject,_AObject,_BObject]=variants,xValue=+_xObject.getValue(),alphaValue=+_alphaObject.getValue(),betaValue=+_betaObject.getValue(),cumulativeValue=+_cumulativeObject.getValue(),AValue=+_AObject.getValue(),BValue=+_BObject.getValue();if(alphaValue<=0||betaValue<=0||xValue<AValue||xValue>BValue||AValue===BValue)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=betaCDF((xValue-AValue)/(BValue-AValue),alphaValue,betaValue):result=betaPDF((xValue-AValue)/(BValue-AValue),alphaValue,betaValue)/(BValue-AValue),NumberValueObject.create(result)}};__name(_BetaDist,"BetaDist");let BetaDist=_BetaDist;const _BinomDistRange=class _BinomDistRange extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",4)}calculate(trials,probabilityS,numberS,numberS2){let _numberS2=numberS2!=null?numberS2:numberS;_numberS2.isNull()&&(_numberS2=numberS);const maxRowLength=Math.max(trials.isArray()?trials.getRowCount():1,probabilityS.isArray()?probabilityS.getRowCount():1,numberS.isArray()?numberS.getRowCount():1,_numberS2.isArray()?_numberS2.getRowCount():1),maxColumnLength=Math.max(trials.isArray()?trials.getColumnCount():1,probabilityS.isArray()?probabilityS.getColumnCount():1,numberS.isArray()?numberS.getColumnCount():1,_numberS2.isArray()?_numberS2.getColumnCount():1),trialsArray=expandArrayValueObject(maxRowLength,maxColumnLength,trials,ErrorValueObject.create(ErrorType$1.NA)),probabilitySArray=expandArrayValueObject(maxRowLength,maxColumnLength,probabilityS,ErrorValueObject.create(ErrorType$1.NA)),numberSArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberS,ErrorValueObject.create(ErrorType$1.NA)),numberS2Array=expandArrayValueObject(maxRowLength,maxColumnLength,_numberS2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=trialsArray.mapValue((trialsObject,rowIndex,columnIndex)=>{const probabilitySObject=probabilitySArray.get(rowIndex,columnIndex),numberSObject=numberSArray.get(rowIndex,columnIndex),numberS2Object=numberS2Array.get(rowIndex,columnIndex);return this._handleSignleObject(trialsObject,probabilitySObject,numberSObject,numberS2Object)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(trialsObject,probabilitySObject,numberSObject,numberS2Object){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(trialsObject,probabilitySObject,numberSObject,numberS2Object);if(isError)return errorObject;const[_trialsObject,_probabilitySObject,_numberSObject,_numberS2Object]=variants,trialsValue=Math.floor(+_trialsObject.getValue()),probabilitySValue=+_probabilitySObject.getValue(),numberSValue=Math.floor(+_numberSObject.getValue()),numberS2Value=Math.floor(+_numberS2Object.getValue());if(trialsValue<0||probabilitySValue<0||probabilitySValue>1||numberSValue<0||numberSValue>trialsValue||numberS2Value<0||numberS2Value<numberSValue||numberS2Value>trialsValue)return ErrorValueObject.create(ErrorType$1.NUM);let result=0;for(let i=numberSValue;i<=numberS2Value;i++)result+=binomialPDF(i,trialsValue,probabilitySValue);return NumberValueObject.create(result)}};__name(_BinomDistRange,"BinomDistRange");let BinomDistRange=_BinomDistRange;const _ChisqDist=class _ChisqDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(x,degFreedom,cumulative){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,degFreedom.isArray()?degFreedom.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,degFreedom.isArray()?degFreedom.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),degFreedomArray=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const degFreedomObject=degFreedomArray.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,degFreedomObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,degFreedomObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,degFreedomObject,cumulativeObject);if(isError)return errorObject;const[_xObject,_degFreedomObject,_cumulativeObject]=variants,xValue=+_xObject.getValue(),degFreedomValue=Math.floor(+_degFreedomObject.getValue()),cumulativeValue=+_cumulativeObject.getValue();if(xValue<0||degFreedomValue<1||degFreedomValue>10**10)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=chisquareCDF(xValue,degFreedomValue):result=chisquarePDF(xValue,degFreedomValue),NumberValueObject.create(result)}};__name(_ChisqDist,"ChisqDist");let ChisqDist=_ChisqDist;const _ChisqInv=class _ChisqInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(probability,degFreedom){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,degFreedom.isArray()?degFreedom.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,degFreedom.isArray()?degFreedom.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),degFreedomArray=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const degFreedomObject=degFreedomArray.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,degFreedomObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,degFreedomObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,degFreedomObject);if(isError)return errorObject;const[_probabilityObject,_degFreedomObject]=variants,probabilityValue=+_probabilityObject.getValue(),degFreedomValue=Math.floor(+_degFreedomObject.getValue());if(probabilityValue<0||probabilityValue>1||degFreedomValue<1||degFreedomValue>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=chisquareINV(probabilityValue,degFreedomValue);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_ChisqInv,"ChisqInv");let ChisqInv=_ChisqInv;const _ConfidenceT=class _ConfidenceT extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(alpha,standardDev,size){const maxRowLength=Math.max(alpha.isArray()?alpha.getRowCount():1,standardDev.isArray()?standardDev.getRowCount():1,size.isArray()?size.getRowCount():1),maxColumnLength=Math.max(alpha.isArray()?alpha.getColumnCount():1,standardDev.isArray()?standardDev.getColumnCount():1,size.isArray()?size.getColumnCount():1),alphaArray=expandArrayValueObject(maxRowLength,maxColumnLength,alpha,ErrorValueObject.create(ErrorType$1.NA)),standardDevArray=expandArrayValueObject(maxRowLength,maxColumnLength,standardDev,ErrorValueObject.create(ErrorType$1.NA)),sizeArray=expandArrayValueObject(maxRowLength,maxColumnLength,size,ErrorValueObject.create(ErrorType$1.NA)),resultArray=alphaArray.mapValue((alphaObject,rowIndex,columnIndex)=>{const standardDevObject=standardDevArray.get(rowIndex,columnIndex),sizeObject=sizeArray.get(rowIndex,columnIndex),{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(alphaObject,standardDevObject,sizeObject);if(isError)return errorObject;const[_alphaObject,_standardDevObject,_sizeObject]=variants,alphaValue=+_alphaObject.getValue(),standardDevValue=+_standardDevObject.getValue(),sizeValue=Math.floor(+_sizeObject.getValue());if(alphaValue<=0||alphaValue>=1||standardDevValue<=0||sizeValue<1)return ErrorValueObject.create(ErrorType$1.NUM);if(sizeValue===1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=Math.abs(studentTINV(alphaValue/2,sizeValue-1)*standardDevValue/Math.sqrt(sizeValue));return NumberValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_ConfidenceT,"ConfidenceT");let ConfidenceT=_ConfidenceT;const _Correl=class _Correl extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const array1RowCount=array1.isArray()?array1.getRowCount():1,array1ColumnCount=array1.isArray()?array1.getColumnCount():1,array2RowCount=array2.isArray()?array2.getRowCount():1,array2ColumnCount=array2.isArray()?array2.getColumnCount():1;let _array1=array1;if(array1.isArray()&&array1RowCount===1&&array1ColumnCount===1&&(_array1=array1.get(0,0)),_array1.isError())return _array1;let _array2=array2;if(array2.isArray()&&array2RowCount===1&&array2ColumnCount===1&&(_array2=array2.get(0,0)),_array2.isError())return _array2;if(array1RowCount*array1ColumnCount===1||array2RowCount*array2ColumnCount===1)return _array1.isNull()||_array2.isNull()?ErrorValueObject.create(ErrorType$1.VALUE):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(array1RowCount*array1ColumnCount!==array2RowCount*array2ColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(array1,array2,array1RowCount*array1ColumnCount,array1ColumnCount,array2ColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values)}_getResult(array1Values,array2Values){const n=array1Values.length;let array1Sum=0,array2Sum=0;for(let i=0;i<n;i++)array1Sum+=array1Values[i],array2Sum+=array2Values[i];const array1Mean=array1Sum/n,array2Mean=array2Sum/n;let numerator=0,array1DiffSum=0,array2DiffSum=0;for(let i=0;i<n;i++){const array1Diff=array1Values[i]-array1Mean,array2Diff=array2Values[i]-array2Mean;numerator+=array1Diff*array2Diff,array1DiffSum+=array1Diff**2,array2DiffSum+=array2Diff**2}const denominator=Math.sqrt(array1DiffSum*array2DiffSum);return denominator===0?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):NumberValueObject.create(numerator/denominator)}};__name(_Correl,"Correl");let Correl=_Correl;const _Count=class _Count extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){const variant=variants[i];variant.isError()||(variant.isArray()?accumulatorAll=accumulatorAll.plus(variant.count()):variant.isString()?variant.convertToNumberObjectValue().isError()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1))):variant.isNull()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1))))}return accumulatorAll}};__name(_Count,"Count");let Count=_Count;const _Counta=class _Counta extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(0);for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isError()){accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1));continue}variant.isArray()?(variant=variant.countA(),accumulatorAll=accumulatorAll.plus(variant)):variant.isNull()||(accumulatorAll=accumulatorAll.plus(NumberValueObject.create(1)))}return accumulatorAll}};__name(_Counta,"Counta");let Counta=_Counta;const _Countblank=class _Countblank extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(variant){return variant.isError()?variant:variant.getValue()===""||variant.isNull()?NumberValueObject.create(1):variant.isArray()?variant.countBlank():NumberValueObject.create(0)}};__name(_Countblank,"Countblank");let Countblank=_Countblank;const _Countif=class _Countif extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(range,criteria){return range.isError()||criteria.isError()?ErrorValueObject.create(ErrorType$1.NA):range.isArray()?criteria.isArray()?criteria.mapValue(criteriaItem=>this._handleSingleObject(range,criteriaItem)):this._handleSingleObject(range,criteria):ErrorValueObject.create(ErrorType$1.VALUE)}_handleSingleObject(range,criteria){let resultArrayObject=valueObjectCompare(range,criteria);const[,criteriaStringObject]=findCompareToken(`${criteria.getValue()}`);resultArrayObject=filterSameValueObjectResult(resultArrayObject,range,criteriaStringObject);const picked=range.pick(resultArrayObject);return this._countA(picked)}_countA(array){let accumulatorAll=NumberValueObject.create(0);return array.iterator(valueObject=>{if(valueObject==null)return!0;accumulatorAll=accumulatorAll.plusBy(1)}),accumulatorAll}};__name(_Countif,"Countif");let Countif=_Countif;const _Countifs=class _Countifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",255)}calculate(...variants){if(variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,variants[0],maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(booleanResults)}_aggregateResults(booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>countTrueValue(booleanResult))),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Countifs,"Countifs");let Countifs=_Countifs;function countTrueValue(array){let count=0;return array.iterator(value=>{value!=null&&value.isBoolean()&&value.getValue()===!0&&count++}),NumberValueObject.create(count)}__name(countTrueValue,"countTrueValue");const _CovarianceS=class _CovarianceS extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(array1,array2){const array1RowCount=array1.isArray()?array1.getRowCount():1,array1ColumnCount=array1.isArray()?array1.getColumnCount():1,array2RowCount=array2.isArray()?array2.getRowCount():1,array2ColumnCount=array2.isArray()?array2.getColumnCount():1;let _array1=array1;if(array1.isArray()&&array1RowCount===1&&array1ColumnCount===1&&(_array1=array1.get(0,0)),_array1.isError())return _array1;let _array2=array2;if(array2.isArray()&&array2RowCount===1&&array2ColumnCount===1&&(_array2=array2.get(0,0)),_array2.isError())return _array2;if((array1RowCount*array1ColumnCount===1||array2RowCount*array2ColumnCount===1)&&(_array1.isNull()||_array2.isNull()))return ErrorValueObject.create(ErrorType$1.VALUE);if(array1RowCount*array1ColumnCount!==array2RowCount*array2ColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(array1,array2,array1RowCount*array1ColumnCount,array1ColumnCount,array2ColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values)}_getResult(array1Values,array2Values){if(array1Values.length<=1)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const n=array1Values.length;let array1Sum=0,array2Sum=0;for(let i=0;i<n;i++)array1Sum+=array1Values[i],array2Sum+=array2Values[i];const array1Mean=array1Sum/n,array2Mean=array2Sum/n;let numerator=0;for(let i=0;i<n;i++){const array1Diff=array1Values[i]-array1Mean,array2Diff=array2Values[i]-array2Mean;numerator+=array1Diff*array2Diff}return NumberValueObject.create(numerator/(n-1))}};__name(_CovarianceS,"CovarianceS");let CovarianceS=_CovarianceS;const _Devsq=class _Devsq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const values=[];let sum2=0,noCalculate=!0;for(let i=0;i<variants.length;i++){const variant=variants[i];if(variant.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(variant.iterator(valueObject=>{const _valueObject=this._handleSingleObject(valueObject);if(_valueObject.isError())return isError=!0,errorObject=_valueObject,!1;if(_valueObject.isNull())return!0;const value=_valueObject.getValue();values.push(value),sum2+=value,noCalculate=!1}),isError)return errorObject}else{const _variant=this._handleSingleObject(variant);if(_variant.isError())return _variant;if(_variant.isNull())continue;const value=_variant.getValue();values.push(value),sum2+=value,noCalculate=!1}}if(noCalculate)return ErrorValueObject.create(ErrorType$1.NUM);const mean=sum2/values.length;let result=0;for(let i=0;i<values.length;i++)result+=(values[i]-mean)**2;return NumberValueObject.create(result)}_handleSingleObject(variant){if(variant.isError())return variant;if(variant.isNull()||variant.isBoolean())return NullValueObject.create();const value=variant.getValue();return core.isRealNum(value)?NumberValueObject.create(+value):NullValueObject.create()}};__name(_Devsq,"Devsq");let Devsq=_Devsq;const _FDist=class _FDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",4);__publicField(this,"maxParams",4)}calculate(x,degFreedom1,degFreedom2,cumulative){const maxRowLength=Math.max(x.isArray()?x.getRowCount():1,degFreedom1.isArray()?degFreedom1.getRowCount():1,degFreedom2.isArray()?degFreedom2.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(x.isArray()?x.getColumnCount():1,degFreedom1.isArray()?degFreedom1.getColumnCount():1,degFreedom2.isArray()?degFreedom2.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),xArray=expandArrayValueObject(maxRowLength,maxColumnLength,x,ErrorValueObject.create(ErrorType$1.NA)),degFreedom1Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom1,ErrorValueObject.create(ErrorType$1.NA)),degFreedom2Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom2,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=xArray.mapValue((xObject,rowIndex,columnIndex)=>{const degFreedom1Object=degFreedom1Array.get(rowIndex,columnIndex),degFreedom2Object=degFreedom2Array.get(rowIndex,columnIndex),cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(xObject,degFreedom1Object,degFreedom2Object,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(xObject,degFreedom1Object,degFreedom2Object,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(xObject,degFreedom1Object,degFreedom2Object,cumulativeObject);if(isError)return errorObject;const[_xObject,_degFreedom1Object,_degFreedom2Object,_cumulativeObject]=variants,xValue=+_xObject.getValue(),degFreedom1Value=Math.floor(+_degFreedom1Object.getValue()),degFreedom2Value=Math.floor(+_degFreedom2Object.getValue()),cumulativeValue=+_cumulativeObject.getValue();if(xValue<0||degFreedom1Value<1||degFreedom1Value>10**10||degFreedom2Value<1||degFreedom2Value>10**10)return ErrorValueObject.create(ErrorType$1.NUM);let result;return cumulativeValue?result=centralFCDF(xValue,degFreedom1Value,degFreedom2Value):result=centralFPDF(xValue,degFreedom1Value,degFreedom2Value),Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_FDist,"FDist");let FDist=_FDist;const _FInv=class _FInv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(probability,degFreedom1,degFreedom2){const maxRowLength=Math.max(probability.isArray()?probability.getRowCount():1,degFreedom1.isArray()?degFreedom1.getRowCount():1,degFreedom2.isArray()?degFreedom2.getRowCount():1),maxColumnLength=Math.max(probability.isArray()?probability.getColumnCount():1,degFreedom1.isArray()?degFreedom1.getColumnCount():1,degFreedom2.isArray()?degFreedom2.getColumnCount():1),probabilityArray=expandArrayValueObject(maxRowLength,maxColumnLength,probability,ErrorValueObject.create(ErrorType$1.NA)),degFreedom1Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom1,ErrorValueObject.create(ErrorType$1.NA)),degFreedom2Array=expandArrayValueObject(maxRowLength,maxColumnLength,degFreedom2,ErrorValueObject.create(ErrorType$1.NA)),resultArray=probabilityArray.mapValue((probabilityObject,rowIndex,columnIndex)=>{const degFreedom1Object=degFreedom1Array.get(rowIndex,columnIndex),degFreedom2Object=degFreedom2Array.get(rowIndex,columnIndex);return this._handleSignleObject(probabilityObject,degFreedom1Object,degFreedom2Object)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(probabilityObject,degFreedom1Object,degFreedom2Object){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(probabilityObject,degFreedom1Object,degFreedom2Object);if(isError)return errorObject;const[_probabilityObject,_degFreedom1Object,_degFreedom2Object]=variants,probabilityValue=+_probabilityObject.getValue(),degFreedom1Value=Math.floor(+_degFreedom1Object.getValue()),degFreedom2Value=Math.floor(+_degFreedom2Object.getValue());if(probabilityValue<0||probabilityValue>1||degFreedom1Value<1||degFreedom1Value>10**10||degFreedom2Value<1||degFreedom2Value>10**10)return ErrorValueObject.create(ErrorType$1.NUM);const result=centralFINV(probabilityValue,degFreedom1Value,degFreedom2Value);return Number.isNaN(result)||!Number.isFinite(result)?ErrorValueObject.create(ErrorType$1.NUM):NumberValueObject.create(result)}};__name(_FInv,"FInv");let FInv=_FInv;const _Fisher=class _Fisher extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(x){return x.isArray()?x.mapValue(xObject=>this._handleSingleObject(xObject)):this._handleSingleObject(x)}_handleSingleObject(x){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(x);if(isError)return errorObject;const[xObject]=variants,xValue=xObject.getValue();if(xValue<=-1||xValue>=1)return ErrorValueObject.create(ErrorType$1.NUM);const result=Math.log((1+xValue)/(1-xValue))/2;return NumberValueObject.create(result)}};__name(_Fisher,"Fisher");let Fisher=_Fisher;const _Fisherinv=class _Fisherinv extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(y){return y.isArray()?y.mapValue(yObject=>this._handleSingleObject(yObject)):this._handleSingleObject(y)}_handleSingleObject(y){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(y);if(isError)return errorObject;const[yObject]=variants,yValue=+yObject.getValue(),num=Math.exp(2*yValue)-1,den=Math.exp(2*yValue)+1;return!Number.isFinite(num)&&num>0&&!Number.isFinite(den)&&den>0?NumberValueObject.create(1):NumberValueObject.create(num/den)}};__name(_Fisherinv,"Fisherinv");let Fisherinv=_Fisherinv;const _Forecast=class _Forecast extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(x,knownYs,knownXs){const knownYsRowCount=knownYs.isArray()?knownYs.getRowCount():1,knownYsColumnCount=knownYs.isArray()?knownYs.getColumnCount():1,knownXsRowCount=knownXs.isArray()?knownXs.getRowCount():1,knownXsColumnCount=knownXs.isArray()?knownXs.getColumnCount():1;let _knownYs=knownYs;knownYs.isArray()&&knownYsRowCount===1&&knownYsColumnCount===1&&(_knownYs=knownYs.get(0,0));let _knownXs=knownXs;return knownXs.isArray()&&knownXsRowCount===1&&knownXsColumnCount===1&&(_knownXs=knownXs.get(0,0)),x.isArray()?x.mapValue(xObject=>this._handleSignleObject(xObject,_knownYs,_knownXs,knownYsRowCount,knownYsColumnCount,knownXsRowCount,knownXsColumnCount)):this._handleSignleObject(x,_knownYs,_knownXs,knownYsRowCount,knownYsColumnCount,knownXsRowCount,knownXsColumnCount)}_handleSignleObject(x,knownYs,knownXs,knownYsRowCount,knownYsColumnCount,knownXsRowCount,knownXsColumnCount){if(x.isError())return x;if(knownYs.isError())return knownYs;if(knownXs.isError())return knownXs;let _x2=x;if(x.isString()&&(_x2=x.convertToNumberObjectValue()),_x2.isError())return _x2;const xValue=+_x2.getValue();if((knownYsRowCount*knownYsColumnCount===1||knownXsRowCount*knownXsColumnCount===1)&&(knownYs.isNull()||knownXs.isNull()))return ErrorValueObject.create(ErrorType$1.VALUE);if(knownYsRowCount*knownYsColumnCount!==knownXsRowCount*knownXsColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(knownYs,knownXs,knownYsRowCount*knownYsColumnCount,knownYsColumnCount,knownXsColumnCount);if(isError)return errorObject;if(noCalculate)return ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);const result=forecastLinear(xValue,array1Values,array2Values);return Number.isFinite(result)?NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO)}};__name(_Forecast,"Forecast");let Forecast=_Forecast;var FUNCTION_NAMES_STATISTICAL=(FUNCTION_NAMES_STATISTICAL2=>(FUNCTION_NAMES_STATISTICAL2.AVEDEV="AVEDEV",FUNCTION_NAMES_STATISTICAL2.AVERAGE="AVERAGE",FUNCTION_NAMES_STATISTICAL2.AVERAGEA="AVERAGEA",FUNCTION_NAMES_STATISTICAL2.AVERAGEIF="AVERAGEIF",FUNCTION_NAMES_STATISTICAL2.AVERAGEIFS="AVERAGEIFS",FUNCTION_NAMES_STATISTICAL2.BETA_DIST="BETA.DIST",FUNCTION_NAMES_STATISTICAL2.BETA_INV="BETA.INV",FUNCTION_NAMES_STATISTICAL2.BINOM_DIST="BINOM.DIST",FUNCTION_NAMES_STATISTICAL2.BINOM_DIST_RANGE="BINOM.DIST.RANGE",FUNCTION_NAMES_STATISTICAL2.BINOM_INV="BINOM.INV",FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST="CHISQ.DIST",FUNCTION_NAMES_STATISTICAL2.CHISQ_DIST_RT="CHISQ.DIST.RT",FUNCTION_NAMES_STATISTICAL2.CHISQ_INV="CHISQ.INV",FUNCTION_NAMES_STATISTICAL2.CHISQ_INV_RT="CHISQ.INV.RT",FUNCTION_NAMES_STATISTICAL2.CHISQ_TEST="CHISQ.TEST",FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_NORM="CONFIDENCE.NORM",FUNCTION_NAMES_STATISTICAL2.CONFIDENCE_T="CONFIDENCE.T",FUNCTION_NAMES_STATISTICAL2.CORREL="CORREL",FUNCTION_NAMES_STATISTICAL2.COUNT="COUNT",FUNCTION_NAMES_STATISTICAL2.COUNTA="COUNTA",FUNCTION_NAMES_STATISTICAL2.COUNTBLANK="COUNTBLANK",FUNCTION_NAMES_STATISTICAL2.COUNTIF="COUNTIF",FUNCTION_NAMES_STATISTICAL2.COUNTIFS="COUNTIFS",FUNCTION_NAMES_STATISTICAL2.COVARIANCE_P="COVARIANCE.P",FUNCTION_NAMES_STATISTICAL2.COVARIANCE_S="COVARIANCE.S",FUNCTION_NAMES_STATISTICAL2.DEVSQ="DEVSQ",FUNCTION_NAMES_STATISTICAL2.EXPON_DIST="EXPON.DIST",FUNCTION_NAMES_STATISTICAL2.F_DIST="F.DIST",FUNCTION_NAMES_STATISTICAL2.F_DIST_RT="F.DIST.RT",FUNCTION_NAMES_STATISTICAL2.F_INV="F.INV",FUNCTION_NAMES_STATISTICAL2.F_INV_RT="F.INV.RT",FUNCTION_NAMES_STATISTICAL2.F_TEST="F.TEST",FUNCTION_NAMES_STATISTICAL2.FISHER="FISHER",FUNCTION_NAMES_STATISTICAL2.FISHERINV="FISHERINV",FUNCTION_NAMES_STATISTICAL2.FORECAST="FORECAST",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS="FORECAST.ETS",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_CONFINT="FORECAST.ETS.CONFINT",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_SEASONALITY="FORECAST.ETS.SEASONALITY",FUNCTION_NAMES_STATISTICAL2.FORECAST_ETS_STAT="FORECAST.ETS.STAT",FUNCTION_NAMES_STATISTICAL2.FORECAST_LINEAR="FORECAST.LINEAR",FUNCTION_NAMES_STATISTICAL2.FREQUENCY="FREQUENCY",FUNCTION_NAMES_STATISTICAL2.GAMMA="GAMMA",FUNCTION_NAMES_STATISTICAL2.GAMMA_DIST="GAMMA.DIST",FUNCTION_NAMES_STATISTICAL2.GAMMA_INV="GAMMA.INV",FUNCTION_NAMES_STATISTICAL2.GAMMALN="GAMMALN",FUNCTION_NAMES_STATISTICAL2.GAMMALN_PRECISE="GAMMALN.PRECISE",FUNCTION_NAMES_STATISTICAL2.GAUSS="GAUSS",FUNCTION_NAMES_STATISTICAL2.GEOMEAN="GEOMEAN",FUNCTION_NAMES_STATISTICAL2.GROWTH="GROWTH",FUNCTION_NAMES_STATISTICAL2.HARMEAN="HARMEAN",FUNCTION_NAMES_STATISTICAL2.HYPGEOM_DIST="HYPGEOM.DIST",FUNCTION_NAMES_STATISTICAL2.INTERCEPT="INTERCEPT",FUNCTION_NAMES_STATISTICAL2.KURT="KURT",FUNCTION_NAMES_STATISTICAL2.LARGE="LARGE",FUNCTION_NAMES_STATISTICAL2.LINEST="LINEST",FUNCTION_NAMES_STATISTICAL2.LOGEST="LOGEST",FUNCTION_NAMES_STATISTICAL2.LOGNORM_DIST="LOGNORM.DIST",FUNCTION_NAMES_STATISTICAL2.LOGNORM_INV="LOGNORM.INV",FUNCTION_NAMES_STATISTICAL2.MAX="MAX",FUNCTION_NAMES_STATISTICAL2.MAXA="MAXA",FUNCTION_NAMES_STATISTICAL2.MAXIFS="MAXIFS",FUNCTION_NAMES_STATISTICAL2.MEDIAN="MEDIAN",FUNCTION_NAMES_STATISTICAL2.MIN="MIN",FUNCTION_NAMES_STATISTICAL2.MINA="MINA",FUNCTION_NAMES_STATISTICAL2.MINIFS="MINIFS",FUNCTION_NAMES_STATISTICAL2.MODE_MULT="MODE.MULT",FUNCTION_NAMES_STATISTICAL2.MODE_SNGL="MODE.SNGL",FUNCTION_NAMES_STATISTICAL2.NEGBINOM_DIST="NEGBINOM.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_DIST="NORM.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_INV="NORM.INV",FUNCTION_NAMES_STATISTICAL2.NORM_S_DIST="NORM.S.DIST",FUNCTION_NAMES_STATISTICAL2.NORM_S_INV="NORM.S.INV",FUNCTION_NAMES_STATISTICAL2.PEARSON="PEARSON",FUNCTION_NAMES_STATISTICAL2.PERCENTILE_EXC="PERCENTILE.EXC",FUNCTION_NAMES_STATISTICAL2.PERCENTILE_INC="PERCENTILE.INC",FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_EXC="PERCENTRANK.EXC",FUNCTION_NAMES_STATISTICAL2.PERCENTRANK_INC="PERCENTRANK.INC",FUNCTION_NAMES_STATISTICAL2.PERMUT="PERMUT",FUNCTION_NAMES_STATISTICAL2.PERMUTATIONA="PERMUTATIONA",FUNCTION_NAMES_STATISTICAL2.PHI="PHI",FUNCTION_NAMES_STATISTICAL2.POISSON_DIST="POISSON.DIST",FUNCTION_NAMES_STATISTICAL2.PROB="PROB",FUNCTION_NAMES_STATISTICAL2.QUARTILE_EXC="QUARTILE.EXC",FUNCTION_NAMES_STATISTICAL2.QUARTILE_INC="QUARTILE.INC",FUNCTION_NAMES_STATISTICAL2.RANK_AVG="RANK.AVG",FUNCTION_NAMES_STATISTICAL2.RANK_EQ="RANK.EQ",FUNCTION_NAMES_STATISTICAL2.RSQ="RSQ",FUNCTION_NAMES_STATISTICAL2.SKEW="SKEW",FUNCTION_NAMES_STATISTICAL2.SKEW_P="SKEW.P",FUNCTION_NAMES_STATISTICAL2.SLOPE="SLOPE",FUNCTION_NAMES_STATISTICAL2.SMALL="SMALL",FUNCTION_NAMES_STATISTICAL2.STANDARDIZE="STANDARDIZE",FUNCTION_NAMES_STATISTICAL2.STDEV_P="STDEV.P",FUNCTION_NAMES_STATISTICAL2.STDEV_S="STDEV.S",FUNCTION_NAMES_STATISTICAL2.STDEVA="STDEVA",FUNCTION_NAMES_STATISTICAL2.STDEVPA="STDEVPA",FUNCTION_NAMES_STATISTICAL2.STEYX="STEYX",FUNCTION_NAMES_STATISTICAL2.T_DIST="T.DIST",FUNCTION_NAMES_STATISTICAL2.T_DIST_2T="T.DIST.2T",FUNCTION_NAMES_STATISTICAL2.T_DIST_RT="T.DIST.RT",FUNCTION_NAMES_STATISTICAL2.T_INV="T.INV",FUNCTION_NAMES_STATISTICAL2.T_INV_2T="T.INV.2T",FUNCTION_NAMES_STATISTICAL2.T_TEST="T.TEST",FUNCTION_NAMES_STATISTICAL2.TREND="TREND",FUNCTION_NAMES_STATISTICAL2.TRIMMEAN="TRIMMEAN",FUNCTION_NAMES_STATISTICAL2.VAR_P="VAR.P",FUNCTION_NAMES_STATISTICAL2.VAR_S="VAR.S",FUNCTION_NAMES_STATISTICAL2.VARA="VARA",FUNCTION_NAMES_STATISTICAL2.VARPA="VARPA",FUNCTION_NAMES_STATISTICAL2.WEIBULL_DIST="WEIBULL.DIST",FUNCTION_NAMES_STATISTICAL2.Z_TEST="Z.TEST",FUNCTION_NAMES_STATISTICAL2))(FUNCTION_NAMES_STATISTICAL||{});const _Intercept=class _Intercept extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(knownYs,knownXs){const knownYsRowCount=knownYs.isArray()?knownYs.getRowCount():1,knownYsColumnCount=knownYs.isArray()?knownYs.getColumnCount():1,knownXsRowCount=knownXs.isArray()?knownXs.getRowCount():1,knownXsColumnCount=knownXs.isArray()?knownXs.getColumnCount():1;let _knownYs=knownYs;if(knownYs.isArray()&&knownYsRowCount===1&&knownYsColumnCount===1&&(_knownYs=knownYs.get(0,0)),_knownYs.isError())return _knownYs;let _knownXs=knownXs;if(knownXs.isArray()&&knownXsRowCount===1&&knownXsColumnCount===1&&(_knownXs=knownXs.get(0,0)),_knownXs.isError())return _knownXs;if(knownYsRowCount*knownYsColumnCount===1||knownXsRowCount*knownXsColumnCount===1)return knownYs.isNull()||knownXs.isNull()?ErrorValueObject.create(ErrorType$1.VALUE):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO);if(knownYsRowCount*knownYsColumnCount!==knownXsRowCount*knownXsColumnCount)return ErrorValueObject.create(ErrorType$1.NA);const{isError,errorObject,array1Values,array2Values,noCalculate}=getTwoArrayNumberValues(knownYs,knownXs,knownYsRowCount*knownYsColumnCount,knownYsColumnCount,knownXsColumnCount);return isError?errorObject:noCalculate?ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO):this._getResult(array1Values,array2Values)}_getResult(knownYs,knownXs){const result=forecastLinear(0,knownYs,knownXs);return Number.isFinite(result)?NumberValueObject.create(result):ErrorValueObject.create(ErrorType$1.DIV_BY_ZERO)}};__name(_Intercept,"Intercept");let Intercept=_Intercept;const _Max=class _Max extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=variant.max()),variant.isError())return variant;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.NEGATIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isLessThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Max,"Max");let Max=_Max;const _Maxa=class _Maxa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.NEGATIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&variant.iterator(valueObject=>{let _valueObject=valueObject;if((_valueObject==null||_valueObject.isNull()||_valueObject.isString())&&(_valueObject=NumberValueObject.create(0)),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorAll=_valueObject,!1;accumulatorAll=this._validator(accumulatorAll,_valueObject)}),accumulatorAll.isError())return accumulatorAll;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.NEGATIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isLessThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Maxa,"Maxa");let Maxa=_Maxa;const _Maxifs=class _Maxifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(maxRange,...variants){if(maxRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!maxRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,maxRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(maxRange,booleanResults)}_aggregateResults(maxRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=maxRange.pick(booleanResult);return picked.getColumnCount()===0?ArrayValueObject.create("0"):picked.max()})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Maxifs,"Maxifs");let Maxifs=_Maxifs;const _Min=class _Min extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isArray()&&(variant=variant.min()),variant.isError())return variant;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.POSITIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isGreaterThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Min,"Min");let Min=_Min;const _Mina=class _Mina extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){let accumulatorAll=NumberValueObject.create(Number.POSITIVE_INFINITY);for(let i=0;i<variants.length;i++){let variant=variants[i];if(!variant.isNull()){if((variant.isString()||variant.isBoolean())&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;if(variant.isArray()&&variant.iterator(valueObject=>{let _valueObject=valueObject;if((_valueObject==null||_valueObject.isNull()||_valueObject.isString())&&(_valueObject=NumberValueObject.create(0)),_valueObject.isBoolean()&&(_valueObject=_valueObject.convertToNumberObjectValue()),_valueObject.isError())return accumulatorAll=_valueObject,!1;accumulatorAll=this._validator(accumulatorAll,_valueObject)}),accumulatorAll.isError())return accumulatorAll;accumulatorAll=this._validator(accumulatorAll,variant)}}return accumulatorAll.getValue()===Number.POSITIVE_INFINITY?NumberValueObject.create(0):accumulatorAll}_validator(accumulatorAll,valueObject){const validator=accumulatorAll.isGreaterThan(valueObject);let _accumulatorAll=accumulatorAll;return validator.getValue()&&(_accumulatorAll=valueObject),_accumulatorAll}};__name(_Mina,"Mina");let Mina=_Mina;const _Minifs=class _Minifs extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",255)}calculate(minRange,...variants){if(minRange.isError())return ErrorValueObject.create(ErrorType$1.NA);if(!minRange.isArray()||variants.length%2!==0||variants.some((variant,i)=>i%2===0&&!variant.isArray()))return ErrorValueObject.create(ErrorType$1.VALUE);const{maxRowLength,maxColumnLength}=calculateMaxDimensions(variants),errorArray=getErrorArray(variants,minRange,maxRowLength,maxColumnLength);if(errorArray)return errorArray;const booleanResults=getBooleanResults(variants,maxRowLength,maxColumnLength,!0);return this._aggregateResults(minRange,booleanResults)}_aggregateResults(minRange,booleanResults){const maxResults=booleanResults.map(row=>row.map(booleanResult=>{const picked=minRange.pick(booleanResult);return picked.getColumnCount()===0?ArrayValueObject.create("0"):picked.min()})),arrayValueObjectData={calculateValueList:maxResults,rowCount:maxResults.length,columnCount:maxResults[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ArrayValueObject.create(arrayValueObjectData)}};__name(_Minifs,"Minifs");let Minifs=_Minifs;const _NormSDist=class _NormSDist extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(z,cumulative){const maxRowLength=Math.max(z.isArray()?z.getRowCount():1,cumulative.isArray()?cumulative.getRowCount():1),maxColumnLength=Math.max(z.isArray()?z.getColumnCount():1,cumulative.isArray()?cumulative.getColumnCount():1),zArray=expandArrayValueObject(maxRowLength,maxColumnLength,z,ErrorValueObject.create(ErrorType$1.NA)),cumulativeArray=expandArrayValueObject(maxRowLength,maxColumnLength,cumulative,ErrorValueObject.create(ErrorType$1.NA)),resultArray=zArray.mapValue((zObject,rowIndex,columnIndex)=>{const cumulativeObject=cumulativeArray.get(rowIndex,columnIndex);return this._handleSignleObject(zObject,cumulativeObject)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_handleSignleObject(zObject,cumulativeObject){const{isError,errorObject,variants}=checkVariantsErrorIsStringToNumber(zObject,cumulativeObject);if(isError)return errorObject;const[_zObject,_cumulativeObject]=variants,zValue=+_zObject.getValue(),cumulativeValue=+_cumulativeObject.getValue();let result;return cumulativeValue?result=normalCDF(zValue,0,1):result=normalPDF(zValue,0,1),NumberValueObject.create(result)}};__name(_NormSDist,"NormSDist");let NormSDist=_NormSDist;const _RankAvg=class _RankAvg extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(number,ref,order){let _number=number;_number.isReferenceObject()&&(_number=_number.toArrayValueObject());const{refHasError,refErrorObject,refNumbers}=this._checkRefReferenceObject(ref);let _order=order!=null?order:NumberValueObject.create(0);_order.isReferenceObject()&&(_order=_order.toArrayValueObject());const maxRowLength=Math.max(_number.isArray()?_number.getRowCount():1,_order.isArray()?_order.getRowCount():1),maxColumnLength=Math.max(_number.isArray()?_number.getColumnCount():1,_order.isArray()?_order.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,_number,ErrorValueObject.create(ErrorType$1.NA)),orderArray=expandArrayValueObject(maxRowLength,maxColumnLength,_order,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const orderObject=orderArray.get(rowIndex,columnIndex);if(!number.isReferenceObject()&&number.isNull())return ErrorValueObject.create(ErrorType$1.NA);if(refHasError)return refErrorObject;if(orderObject.isError())return orderObject;const numberValue=+numberObject.getValue(),orderValue=+orderObject.getValue();return Number.isNaN(numberValue)||Number.isNaN(orderValue)?ErrorValueObject.create(ErrorType$1.VALUE):this._getResult(numberValue,orderValue,refNumbers)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResult(numberValue,orderValue,refNumbers){const refOrderNumbers=refNumbers.sort((a,b)=>orderValue?a-b:b-a);let index=refOrderNumbers.indexOf(numberValue);const results=[];for(;index>=0;){const start=index+1;results.push(start),index=refOrderNumbers.indexOf(numberValue,start)}if(results.length===0)return ErrorValueObject.create(ErrorType$1.NA);const result=results.reduce((acc,cur)=>acc+cur,0)/results.length;return NumberValueObject.create(result)}_checkRefReferenceObject(ref){let refHasError=!1,refErrorObject=ErrorValueObject.create(ErrorType$1.NA);const refNumbers=[];return ref.isReferenceObject()?(ref.toArrayValueObject().iterator(refObject=>{const _refObject=refObject;if(_refObject.isError())return refHasError=!0,refErrorObject=_refObject,!1;if(_refObject.isNull()||_refObject.isBoolean())return!0;const refValue=+_refObject.getValue();if(Number.isNaN(refValue))return!0;refNumbers.push(refValue)}),{refHasError,refErrorObject,refNumbers}):{refHasError:!0,refErrorObject,refNumbers}}};__name(_RankAvg,"RankAvg");let RankAvg=_RankAvg;const _RankEq=class _RankEq extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",3);__publicField(this,"needsReferenceObject",!0)}calculate(number,ref,order){let _number=number;_number.isReferenceObject()&&(_number=_number.toArrayValueObject());const{refHasError,refErrorObject,refNumbers}=this._checkRefReferenceObject(ref);let _order=order!=null?order:NumberValueObject.create(0);_order.isReferenceObject()&&(_order=_order.toArrayValueObject());const maxRowLength=Math.max(_number.isArray()?_number.getRowCount():1,_order.isArray()?_order.getRowCount():1),maxColumnLength=Math.max(_number.isArray()?_number.getColumnCount():1,_order.isArray()?_order.getColumnCount():1),numberArray=expandArrayValueObject(maxRowLength,maxColumnLength,_number,ErrorValueObject.create(ErrorType$1.NA)),orderArray=expandArrayValueObject(maxRowLength,maxColumnLength,_order,ErrorValueObject.create(ErrorType$1.NA)),resultArray=numberArray.map((numberObject,rowIndex,columnIndex)=>{const orderObject=orderArray.get(rowIndex,columnIndex);if(!number.isReferenceObject()&&number.isNull())return ErrorValueObject.create(ErrorType$1.NA);if(refHasError)return refErrorObject;if(orderObject.isError())return orderObject;const numberValue=+numberObject.getValue(),orderValue=+orderObject.getValue();if(Number.isNaN(numberValue)||Number.isNaN(orderValue))return ErrorValueObject.create(ErrorType$1.VALUE);const result=refNumbers.sort((a,b)=>orderValue?a-b:b-a).indexOf(numberValue);return result===-1?ErrorValueObject.create(ErrorType$1.NA):NumberValueObject.create(result+1)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_checkRefReferenceObject(ref){let refHasError=!1,refErrorObject=ErrorValueObject.create(ErrorType$1.NA);const refNumbers=[];return ref.isReferenceObject()?(ref.toArrayValueObject().iterator(refObject=>{const _refObject=refObject;if(_refObject.isError())return refHasError=!0,refErrorObject=_refObject,!1;if(_refObject.isNull()||_refObject.isBoolean())return!0;const refValue=+_refObject.getValue();if(Number.isNaN(refValue))return!0;refNumbers.push(refValue)}),{refHasError,refErrorObject,refNumbers}):{refHasError:!0,refErrorObject,refNumbers}}};__name(_RankEq,"RankEq");let RankEq=_RankEq;const _Stdeva=class _Stdeva extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.std(1)}};__name(_Stdeva,"Stdeva");let Stdeva=_Stdeva;const _Stdevpa=class _Stdevpa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.std()}};__name(_Stdevpa,"Stdevpa");let Stdevpa=_Stdevpa;const _Vara=class _Vara extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.var(1)}};__name(_Vara,"Vara");let Vara=_Vara;const _Varpa=class _Varpa extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...variants){const flattenArray=this.flattenArray(variants,!1);return flattenArray.isError()?flattenArray:flattenArray.var()}};__name(_Varpa,"Varpa");let Varpa=_Varpa;const functionStatistical=[[Avedev,FUNCTION_NAMES_STATISTICAL.AVEDEV],[Average,FUNCTION_NAMES_STATISTICAL.AVERAGE],[Averagea,FUNCTION_NAMES_STATISTICAL.AVERAGEA],[Averageif,FUNCTION_NAMES_STATISTICAL.AVERAGEIF],[Averageifs,FUNCTION_NAMES_STATISTICAL.AVERAGEIFS],[BetaDist,FUNCTION_NAMES_STATISTICAL.BETA_DIST],[BetaInv,FUNCTION_NAMES_STATISTICAL.BETA_INV],[BinomDist,FUNCTION_NAMES_STATISTICAL.BINOM_DIST],[BinomDistRange,FUNCTION_NAMES_STATISTICAL.BINOM_DIST_RANGE],[BinomInv,FUNCTION_NAMES_STATISTICAL.BINOM_INV],[ChisqDist,FUNCTION_NAMES_STATISTICAL.CHISQ_DIST],[ChisqDistRt,FUNCTION_NAMES_STATISTICAL.CHISQ_DIST_RT],[ChisqInv,FUNCTION_NAMES_STATISTICAL.CHISQ_INV],[ChisqInvRt,FUNCTION_NAMES_STATISTICAL.CHISQ_INV_RT],[ChisqTest,FUNCTION_NAMES_STATISTICAL.CHISQ_TEST],[ConfidenceNorm,FUNCTION_NAMES_STATISTICAL.CONFIDENCE_NORM],[ConfidenceT,FUNCTION_NAMES_STATISTICAL.CONFIDENCE_T],[Correl,FUNCTION_NAMES_STATISTICAL.CORREL],[Count,FUNCTION_NAMES_STATISTICAL.COUNT],[Counta,FUNCTION_NAMES_STATISTICAL.COUNTA],[Countblank,FUNCTION_NAMES_STATISTICAL.COUNTBLANK],[Countif,FUNCTION_NAMES_STATISTICAL.COUNTIF],[Countifs,FUNCTION_NAMES_STATISTICAL.COUNTIFS],[CovarianceP,FUNCTION_NAMES_STATISTICAL.COVARIANCE_P],[CovarianceS,FUNCTION_NAMES_STATISTICAL.COVARIANCE_S],[Devsq,FUNCTION_NAMES_STATISTICAL.DEVSQ],[ExponDist,FUNCTION_NAMES_STATISTICAL.EXPON_DIST],[FDist,FUNCTION_NAMES_STATISTICAL.F_DIST],[FDistRt,FUNCTION_NAMES_STATISTICAL.F_DIST_RT],[FInv,FUNCTION_NAMES_STATISTICAL.F_INV],[FInvRt,FUNCTION_NAMES_STATISTICAL.F_INV_RT],[FTest,FUNCTION_NAMES_STATISTICAL.F_TEST],[Fisher,FUNCTION_NAMES_STATISTICAL.FISHER],[Fisherinv,FUNCTION_NAMES_STATISTICAL.FISHERINV],[Forecast,FUNCTION_NAMES_STATISTICAL.FORECAST],[Forecast,FUNCTION_NAMES_STATISTICAL.FORECAST_LINEAR],[Intercept,FUNCTION_NAMES_STATISTICAL.INTERCEPT],[Max,FUNCTION_NAMES_STATISTICAL.MAX],[Maxa,FUNCTION_NAMES_STATISTICAL.MAXA],[Maxifs,FUNCTION_NAMES_STATISTICAL.MAXIFS],[Min,FUNCTION_NAMES_STATISTICAL.MIN],[Mina,FUNCTION_NAMES_STATISTICAL.MINA],[Minifs,FUNCTION_NAMES_STATISTICAL.MINIFS],[NormDist,FUNCTION_NAMES_STATISTICAL.NORM_DIST],[NormInv,FUNCTION_NAMES_STATISTICAL.NORM_INV],[NormSDist,FUNCTION_NAMES_STATISTICAL.NORM_S_DIST],[NormSInv,FUNCTION_NAMES_STATISTICAL.NORM_S_INV],[RankAvg,FUNCTION_NAMES_STATISTICAL.RANK_AVG],[RankEq,FUNCTION_NAMES_STATISTICAL.RANK_EQ],[StdevP,FUNCTION_NAMES_STATISTICAL.STDEV_P],[StdevS,FUNCTION_NAMES_STATISTICAL.STDEV_S],[Stdeva,FUNCTION_NAMES_STATISTICAL.STDEVA],[Stdevpa,FUNCTION_NAMES_STATISTICAL.STDEVPA],[VarP,FUNCTION_NAMES_STATISTICAL.VAR_P],[VarS,FUNCTION_NAMES_STATISTICAL.VAR_S],[Vara,FUNCTION_NAMES_STATISTICAL.VARA],[Varpa,FUNCTION_NAMES_STATISTICAL.VARPA]],_Concat=class _Concat extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...textValues){let concatenatedString="",isError=null;for(const textValue of textValues)if(textValue.isArray()){if(textValue.iterator(valueObject=>{if(valueObject==null||valueObject.isNull())return!0;if(valueObject.isError())return isError=valueObject,!1;valueObject.isBoolean()?concatenatedString+=`${valueObject.getValue()}`.toLocaleUpperCase():(valueObject.isString()||valueObject.isNumber())&&(concatenatedString+=valueObject.getValue())}),isError)return isError}else!textValue.isError()&&!textValue.isNull()&&(concatenatedString+=textValue.getValue());return StringValueObject.create(concatenatedString)}};__name(_Concat,"Concat");let Concat=_Concat;const _Concatenate=class _Concatenate extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",255)}calculate(...textValues){let maxRowLength=0,maxColumnLength=0;textValues.forEach(textValue=>{if(textValue.isArray()){const arrayValue=textValue;maxRowLength=Math.max(maxRowLength,arrayValue.getRowCount()),maxColumnLength=Math.max(maxColumnLength,arrayValue.getColumnCount())}else maxRowLength=Math.max(maxRowLength,1),maxColumnLength=Math.max(maxColumnLength,1)});let result=null;for(const textValue of textValues)result=expandArrayValueObject(maxRowLength,maxColumnLength,textValue,ErrorValueObject.create(ErrorType$1.NA)).mapValue((textValueObject,rowIndex,columnIndex)=>{const resultValueObject=result&&result.get(rowIndex,columnIndex);if(resultValueObject!=null&&resultValueObject.isError())return resultValueObject;if(textValueObject.isError())return textValueObject;let resultValue=resultValueObject==null?void 0:resultValueObject.getValue(),textValue2=textValueObject==null?void 0:textValueObject.getValue();resultValueObject!=null&&resultValueObject.isBoolean()&&(resultValue=`${resultValue}`.toLocaleUpperCase()),textValueObject!=null&&textValueObject.isBoolean()&&(textValue2=`${textValue2}`.toLocaleUpperCase());const resultValueObjectString=resultValueObject!=null&&resultValueObject.isNull()?"":resultValue!=null?resultValue:"",textValueObjectString=textValueObject!=null&&textValueObject.isNull()?"":textValue2!=null?textValue2:"";return StringValueObject.create(`${resultValueObjectString}${textValueObjectString}`)});return result||ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Concatenate,"Concatenate");let Concatenate=_Concatenate;function charLenByte(str){let byteCount=0;for(let i=0;i<str.length;i++){const charCode=str.charCodeAt(i);charCode>=12352&&charCode<=12543||charCode>=19968&&charCode<=40959||charCode>=44032&&charCode<=55215?byteCount+=2:byteCount+=1}return byteCount}__name(charLenByte,"charLenByte");const _Leftb=class _Leftb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",2)}calculate(text,numBytes){if(text.isError())return text;if(numBytes!=null&&numBytes.isError())return numBytes;const _numBytes=numBytes||NumberValueObject.create(1),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_numBytes&&_numBytes.isArray()?_numBytes.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_numBytes&&_numBytes.isArray()?_numBytes.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text),numBytesArray=expandArrayValueObject(maxRowLength,maxColumnLength,_numBytes);return textArray.map((textValue,rowIndex,columnIndex)=>this._handleSingleText(textValue,rowIndex,columnIndex,numBytesArray))}_handleSingleText(textValue,rowIndex,columnIndex,numBytesArray){let numBytes=numBytesArray.get(rowIndex,columnIndex)||NumberValueObject.create(1);if(numBytes.isError())return numBytes;let textValueString=textValue.getValue();if(textValue.isNull()&&(textValueString=""),textValue.isBoolean()&&(textValueString=textValueString?"TRUE":"FALSE"),textValueString=`${textValueString}`,(numBytes.isString()||numBytes.isBoolean()||numBytes.isNull())&&(numBytes=numBytes.convertToNumberObjectValue()),numBytes.isError())return numBytes;const numBytesValueNumber=Math.floor(+numBytes.getValue());return numBytesValueNumber<0?ErrorValueObject.create(ErrorType$1.VALUE):StringValueObject.create(this._sliceByBytes(textValueString,numBytesValueNumber))}_sliceByBytes(text,numBytes){let byteCount=0,sliceIndex=0;for(let i=0;i<text.length;i++){const char=text[i],charByteLength=charLenByte(char);if(byteCount+charByteLength>numBytes)break;byteCount+=charByteLength,sliceIndex++}return[...text].slice(0,sliceIndex).join("")}};__name(_Leftb,"Leftb");let Leftb=_Leftb;const _Len=class _Len extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return NumberValueObject.create(0);if(text.isNumber()){const numberValue=text.getValue(),numberValueString=stripErrorMargin(numberValue,12,Number.EPSILON).toString();return NumberValueObject.create(numberValueString.length)}if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString();return NumberValueObject.create(textValue.length)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Len,"Len");let Len=_Len;const _Lenb=class _Lenb extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return NumberValueObject.create(0);if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString(),textByteLen=charLenByte(textValue);return NumberValueObject.create(textByteLen)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lenb,"Lenb");let Lenb=_Lenb;const _Lower=class _Lower extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",1);__publicField(this,"maxParams",1)}calculate(text){return text.isError()?text:text.isArray()?text.mapValue(textValue=>this._handleSingleText(textValue)):this._handleSingleText(text)}_handleSingleText(text){if(text.isError())return text;if(text.isNull())return StringValueObject.create("");if(text.isString()||text.isBoolean()||text.isNumber()){const textValue=text.getValue().toString().toLowerCase();return StringValueObject.create(textValue)}return ErrorValueObject.create(ErrorType$1.VALUE)}};__name(_Lower,"Lower");let Lower=_Lower;const _Mid=class _Mid extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(withinText,startNum,numChars){if(withinText.isError())return withinText;if(startNum.isError())return startNum;if(numChars.isError())return numChars;const maxRowLength=Math.max(withinText.isArray()?withinText.getRowCount():1,startNum.isArray()?startNum.getRowCount():1,numChars.isArray()?numChars.getRowCount():1),maxColumnLength=Math.max(withinText.isArray()?withinText.getColumnCount():1,startNum.isArray()?startNum.getColumnCount():1,numChars.isArray()?numChars.getColumnCount():1),withinTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,withinText),startNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,startNum),numCharsArray=expandArrayValueObject(maxRowLength,maxColumnLength,numChars);return withinTextArray.map((withinTextValue,rowIndex,columnIndex)=>this._handleSingleText(withinTextValue,rowIndex,columnIndex,startNumArray,numCharsArray))}_handleSingleText(withinTextValue,rowIndex,columnIndex,startNumArray,numCharsArray){let startNumValue=startNumArray.get(rowIndex,columnIndex)||NullValueObject.create(),numCharsValue=numCharsArray.get(rowIndex,columnIndex)||NullValueObject.create();if(startNumValue.isError())return startNumValue;if(numCharsValue.isError())return numCharsValue;let withinTextValueString=withinTextValue.getValue();if(withinTextValue.isNull()&&(withinTextValueString=""),withinTextValue.isBoolean()&&(withinTextValueString=withinTextValueString?"TRUE":"FALSE"),withinTextValueString=`${withinTextValueString}`,(startNumValue.isString()||startNumValue.isBoolean()||startNumValue.isNull())&&(startNumValue=startNumValue.convertToNumberObjectValue()),startNumValue.isError())return startNumValue;if((numCharsValue.isString()||numCharsValue.isBoolean()||numCharsValue.isNull())&&(numCharsValue=numCharsValue.convertToNumberObjectValue()),numCharsValue.isError())return numCharsValue;const startNumValueNumber=Math.floor(+startNumValue.getValue())-1,numCharsValueNumber=numCharsValue.getValue();return startNumValueNumber<0||numCharsValueNumber<0?ErrorValueObject.create(ErrorType$1.VALUE):StringValueObject.create(withinTextValueString.substring(startNumValueNumber,startNumValueNumber+numCharsValueNumber))}};__name(_Mid,"Mid");let Mid=_Mid;const numberRange=__name(()=>[{type:4,from:48,to:57}],"numberRange"),alphaNumericChars=__name(()=>[{type:7,value:95},{type:4,from:97,to:122},{type:4,from:65,to:90},{type:4,from:48,to:57}],"alphaNumericChars"),whitespaceChars=__name(()=>[{type:7,value:9},{type:7,value:10},{type:7,value:11},{type:7,value:12},{type:7,value:13},{type:7,value:32},{type:7,value:160},{type:7,value:5760},{type:4,from:8192,to:8202},{type:7,value:8232},{type:7,value:8233},{type:7,value:8239},{type:7,value:8287},{type:7,value:12288},{type:7,value:65279}],"whitespaceChars"),words=__name(()=>({type:3,set:alphaNumericChars(),not:!1}),"words"),notWords=__name(()=>({type:3,set:alphaNumericChars(),not:!0}),"notWords"),ints=__name(()=>({type:3,set:numberRange(),not:!1}),"ints"),notInts=__name(()=>({type:3,set:numberRange(),not:!0}),"notInts"),whitespace=__name(()=>({type:3,set:whitespaceChars(),not:!1}),"whitespace"),notWhitespace=__name(()=>({type:3,set:whitespaceChars(),not:!0}),"notWhitespace"),anyChar=__name(()=>({type:3,set:[{type:7,value:10},{type:7,value:13},{type:7,value:8232},{type:7,value:8233}],not:!0}),"anyChar");function tokenizer(regExpString){const root={type:0,stack:[]};let currentScope=root,stack=root.stack;const groups=[],references=[];let captureCount=0;const throwError=__name(index=>{throw new SyntaxError(`Invalid regular expression: /${regExpString}/: Nothing to repeat at column ${index-1}`)},"throwError"),strChars=strToChars(regExpString);let i=0,char;for(;i<strChars.length;)switch(char=strChars[i++],char){case"\\":if(i===strChars.length)throw new SyntaxError(`Invalid regular expression: /${regExpString}/: \\ at end of pattern`);switch(char=strChars[i++],char){case"b":stack.push({type:2,value:"b"});break;case"B":stack.push({type:2,value:"B"});break;case"w":stack.push(words());break;case"W":stack.push(notWords());break;case"d":stack.push(ints());break;case"D":stack.push(notInts());break;case"s":stack.push(whitespace());break;case"S":stack.push(notWhitespace());break;default:if(/\d/.test(char)){for(;/\d/.test(strChars[i])&&i<strChars.length;)char+=strChars[i++];const num=Number.parseInt(char,10);stack.push({type:6,value:num}),references.push({reference:{type:6,value:num},stack,index:stack.length-1})}else stack.push({type:7,value:char.charCodeAt(0)})}break;case"^":stack.push({type:2,value:"^"});break;case"$":stack.push({type:2,value:"$"});break;case"[":{const negated=strChars[i]==="^";negated&&i++;const classTokens=tokenizeClass(strChars.slice(i),regExpString);i+=classTokens[1],stack.push({type:3,set:classTokens[0],not:negated});break}case".":stack.push(anyChar());break;case"(":{const group={type:1,stack:[],remember:!0};if(strChars[i]==="?"){const nextChar=strChars[i+1];if(i+=2,nextChar==="=")group.followedBy=!0;else if(nextChar==="!")group.notFollowedBy=!0;else if(nextChar!==":")throw new SyntaxError(`Invalid regular expression: /${regExpString}/: Invalid group, character '${nextChar}' after '?' at column ${i-1}`);group.remember=!1}else captureCount+=1;stack.push(group),groups.push(currentScope),currentScope=group,stack=group.stack;break}case")":if(groups.length===0)throw new SyntaxError(`Invalid regular expression: /${regExpString}/: Unmatched ) at column ${i-1}`);currentScope=groups.pop(),stack=currentScope.options?currentScope.options[currentScope.options.length-1]:currentScope.stack;break;case"|":{currentScope.options||(currentScope.options=[currentScope.stack],delete currentScope.stack);const newOption=[];currentScope.options.push(newOption),stack=newOption;break}case"{":{const match=/^(\d+)(,(\d+)?)?\}/.exec(strChars.slice(i));if(match){stack.length===0&&throwError(i);const min2=Number.parseInt(match[1],10),max2=match[2]?match[3]?Number.parseInt(match[3],10):1/0:min2;i+=match[0].length,stack.push({type:5,min:min2,max:max2,value:stack.pop()})}else stack.push({type:7,value:123});break}case"?":stack.length===0&&throwError(i),stack.push({type:5,min:0,max:1,value:stack.pop()});break;case"+":stack.length===0&&throwError(i),stack.push({type:5,min:1,max:1/0,value:stack.pop()});break;case"*":stack.length===0&&throwError(i),stack.push({type:5,min:0,max:1/0,value:stack.pop()});break;default:stack.push({type:7,value:char.charCodeAt(0)})}if(groups.length>0)throw new SyntaxError(`Invalid regular expression: /${regExpString}/: Unterminated group`);return processReferences(references,captureCount),root}__name(tokenizer,"tokenizer");function tokenizeClass(input,pattern){let match;const tokens=[],regex=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(match=regex.exec(input))!==null;){let token=null;const[,_words,_digit,_space,_notWords,_notDigit,_notSpace,range,rangeFrom,rangeTo,char]=match;if(_words||_digit||_space||_notWords||_notDigit||_notSpace?token=(()=>{let result={type:3,set:[],not:!1};return _words?result=words():_digit?result=ints():_space?result=whitespace():_notWords?result=notWords():_notDigit?result=notInts():_notSpace&&(result=notWhitespace()),result})():range&&char?token={type:4,from:(rangeFrom||rangeTo).charCodeAt(0),to:char.charCodeAt(char.length-1)}:match[16]&&(token={type:7,value:match[16].charCodeAt(0)}),!token)return[tokens,regex.lastIndex];tokens.push(token)}throw new SyntaxError(`Invalid regular expression: /${pattern}/: Unterminated character class`)}__name(tokenizeClass,"tokenizeClass");function strToChars(str){return str.replace(/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g,(match,backspace,escapeChar,unicode,hex,ctrl,special)=>{if(escapeChar)return match;let charCode;backspace?charCode=8:unicode?charCode=Number.parseInt(unicode,16):hex?charCode=Number.parseInt(hex,16):ctrl?charCode="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?".indexOf(ctrl):charCode={0:0,t:9,n:10,v:11,f:12,r:13}[special];const char=String.fromCharCode(charCode);return/[[\]{}^$.|?*+()]/.test(char)?`\\${char}`:char})}__name(strToChars,"strToChars");function processReferences(references,captureCount){for(const ref of references.reverse()){const value=ref.reference.value;if(captureCount<value){ref.reference.type=7;const valueStr=value.toString();if(ref.reference.value=Number.parseInt(valueStr,8),!/^[0-7]+$/.test(valueStr)){let startIndex=0;for(;valueStr[startIndex]!=="8"&&valueStr[startIndex]!=="9"&&startIndex<valueStr.length;)startIndex+=1;if(startIndex===0?(ref.reference.value=valueStr.charCodeAt(0),startIndex+=1):ref.reference.value=Number.parseInt(valueStr.slice(0,startIndex),8),valueStr.length>startIndex){const remainingStack=ref.stack.splice(ref.index+1);for(const char of valueStr.slice(startIndex))ref.stack.push({type:7,value:char.charCodeAt(0)});ref.stack.push(...remainingStack)}}}}}__name(processReferences,"processReferences");function handleRegExp(regExpString,isGlobal){if(!isValidRegExp(regExpString))return{isError:!0,regExp:null};try{const regExp=new RegExp(regExpString,isGlobal?"ug":"u");return isSafeRegExp(regExp)?{isError:!1,regExp}:{isError:!0,regExp:null}}catch{return{isError:!0,regExp:null}}}__name(handleRegExp,"handleRegExp");function isValidRegExp(regExpString){return!(/\(\?<=.*?\)/g.test(regExpString)&&!/\[.*?(\?<=.*?)\]/g.test(regExpString)||/\(\?<!.*?\)/g.test(regExpString)&&!/\[.*?(\?<!.*?)\]/g.test(regExpString))}__name(isValidRegExp,"isValidRegExp");function isSafeRegExp(regExp,options){let str;Object.prototype.toString.call(regExp)==="[object RegExp]"?str=regExp.source:regExp&&typeof regExp!="string"&&(str=`${regExp}`);let tokens;try{tokens=tokenizer(str)}catch{return!1}let count=0;const validateToken=__name((token,depth)=>{let _depth=depth;if(token.type===5&&(_depth++,count++,_depth>1||count>25))return!1;if(token.options){for(const option of token.options)if(!validateToken({stack:option},_depth))return!1}const stack=token.stack||token.value&&token.value.stack;if(!stack)return!0;for(const item of stack)if(!validateToken(item,_depth))return!1;return!0},"validateToken");return validateToken(tokens,0)}__name(isSafeRegExp,"isSafeRegExp");const _Regexextract=class _Regexextract extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,regularExpression){const{isError,errorObject,variants}=checkVariantsErrorIsArray(text,regularExpression);if(isError)return errorObject;const[textObject,regularExpressionObject]=variants;let textValue=textObject.getValue();textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue=`${textValue}`;let regularExpressionValue=regularExpressionObject.getValue();regularExpressionObject.isNull()&&(regularExpressionValue=""),regularExpressionObject.isBoolean()&&(regularExpressionValue=regularExpressionValue?"TRUE":"FALSE"),regularExpressionValue=`${regularExpressionValue}`;const{isError:isError_regExp,regExp}=handleRegExp(regularExpressionValue,!1);if(isError_regExp)return ErrorValueObject.create(ErrorType$1.REF);const result=textValue.match(regExp);if(result===null)return ErrorValueObject.create(ErrorType$1.NA);if(result.length>1){const resultArray=result.slice(1).map(item=>StringValueObject.create(item));return resultArray.length>1?ArrayValueObject.create({calculateValueList:[resultArray],rowCount:1,columnCount:resultArray.length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}):resultArray[0]}return StringValueObject.create(result[0])}};__name(_Regexextract,"Regexextract");let Regexextract=_Regexextract;const _Regexmatch=class _Regexmatch extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,regularExpression){const{isError,errorObject,variants}=checkVariantsErrorIsArray(text,regularExpression);if(isError)return errorObject;const[textObject,regularExpressionObject]=variants;let textValue=textObject.getValue();textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue=`${textValue}`;let regularExpressionValue=regularExpressionObject.getValue();regularExpressionObject.isNull()&&(regularExpressionValue=""),regularExpressionObject.isBoolean()&&(regularExpressionValue=regularExpressionValue?"TRUE":"FALSE"),regularExpressionValue=`${regularExpressionValue}`;const{isError:isError_regExp,regExp}=handleRegExp(regularExpressionValue,!1);return isError_regExp?ErrorValueObject.create(ErrorType$1.REF):textValue.match(regExp)===null?BooleanValueObject.create(!1):BooleanValueObject.create(!0)}};__name(_Regexmatch,"Regexmatch");let Regexmatch=_Regexmatch;const _Regexreplace=class _Regexreplace extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",3);__publicField(this,"maxParams",3)}calculate(text,regularExpression,replacement){const{isError,errorObject,variants}=checkVariantsErrorIsArray(text,regularExpression,replacement);if(isError)return errorObject;const[textObject,regularExpressionObject,replacementObject]=variants;let textValue=textObject.getValue();textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue=`${textValue}`;let regularExpressionValue=regularExpressionObject.getValue();regularExpressionObject.isNull()&&(regularExpressionValue=""),regularExpressionObject.isBoolean()&&(regularExpressionValue=regularExpressionValue?"TRUE":"FALSE"),regularExpressionValue=`${regularExpressionValue}`;let replacementValue=replacementObject.getValue();replacementObject.isNull()&&(replacementValue=""),replacementObject.isBoolean()&&(replacementValue=replacementValue?"TRUE":"FALSE"),replacementValue=`${replacementValue}`;const{isError:isError_regExp,regExp}=handleRegExp(regularExpressionValue,!0);if(isError_regExp)return ErrorValueObject.create(ErrorType$1.REF);const result=textValue.replace(regExp,replacementValue);return StringValueObject.create(result)}};__name(_Regexreplace,"Regexreplace");let Regexreplace=_Regexreplace;const _Rept=class _Rept extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,numberTimes){if(text.isError())return text;if(numberTimes.isError())return numberTimes;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,numberTimes.isArray()?numberTimes.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,numberTimes.isArray()?numberTimes.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),numberTimesArray=expandArrayValueObject(maxRowLength,maxColumnLength,numberTimes,ErrorValueObject.create(ErrorType$1.NA)),resultArray=textArray.map((textObject,rowIndex,columnIndex)=>{let numberTimesObject=numberTimesArray.get(rowIndex,columnIndex);if(textObject.isError())return textObject;let textValue=textObject.getValue();if(textObject.isNull()&&(textValue=""),textObject.isBoolean()&&(textValue=textValue?"TRUE":"FALSE"),textValue+="",numberTimesObject.isString()&&(numberTimesObject=numberTimesObject.convertToNumberObjectValue()),numberTimesObject.isError())return numberTimesObject;const stringMaxLength=32767,numberTimesValue=Math.floor(+numberTimesObject.getValue());if(numberTimesValue<0||numberTimesValue>stringMaxLength/textValue.length)return ErrorValueObject.create(ErrorType$1.VALUE);const result=textValue.repeat(numberTimesValue);return StringValueObject.create(result)});return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}};__name(_Rept,"Rept");let Rept=_Rept;const getFormatPreview=__name((pattern,value)=>core.numfmt.format(pattern,value,{throws:!1}),"getFormatPreview"),_Text=class _Text extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",2)}calculate(text,formatText){if(text.isError())return text;if(formatText.isError())return formatText;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,formatText.isArray()?formatText.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,formatText.isArray()?formatText.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text),formatTextArray=expandArrayValueObject(maxRowLength,maxColumnLength,formatText);return textArray.map((textValue,rowIndex,columnIndex)=>{if(textValue.isError())return textValue;let formatTextValue=formatTextArray.get(rowIndex,columnIndex)||StringValueObject.create(" ");if(formatTextValue.isError())return formatTextValue;if(formatTextValue.isBoolean())return ErrorValueObject.create(ErrorType$1.VALUE);if(textValue.isBoolean())return textValue;let textValueNumber=textValue.getValue();if(textValue.isNull()&&(textValueNumber=0),textValue.isString()){if(!core.isRealNum(textValueNumber))return textValue;textValueNumber=Number(textValueNumber)}formatTextValue.isNull()&&(formatTextValue=StringValueObject.create(" "));const formatTextValueString=`${formatTextValue.getValue()}`,previewText=getFormatPreview(formatTextValueString,textValueNumber);return StringValueObject.create(formatTextValueString===" "?previewText.trimEnd():previewText)})}};__name(_Text,"Text");let Text=_Text;const _Textafter=class _Textafter extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,delimiter,instanceNum,matchMode,matchEnd,ifNotFound){let instanceNumIsNull=!1,_instanceNum=instanceNum!=null?instanceNum:NumberValueObject.create(1);_instanceNum.isNull()&&(instanceNumIsNull=!0,_instanceNum=NumberValueObject.create(1));const onlyThreeVariant=!matchMode,_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_matchEnd=matchEnd!=null?matchEnd:NumberValueObject.create(0),_ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_instanceNum.isArray()?_instanceNum.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1,_matchEnd.isArray()?_matchEnd.getRowCount():1,_ifNotFound.isArray()?_ifNotFound.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_instanceNum.isArray()?_instanceNum.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1,_matchEnd.isArray()?_matchEnd.getColumnCount():1,_ifNotFound.isArray()?_ifNotFound.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),instanceNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_instanceNum,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),matchEndArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchEnd,ErrorValueObject.create(ErrorType$1.NA)),ifNotFoundArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ifNotFound,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResultArray(textArray,delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant){return textArray.map((textObject,rowIndex,columnIndex)=>{const instanceNumObject=instanceNumArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex),matchEndObject=matchEndArray.get(rowIndex,columnIndex),ifNotFoundObject=ifNotFoundArray.get(rowIndex,columnIndex),_variantsError=this._checkVariantsError(textObject,instanceNumObject,matchModeObject,matchEndObject);if(_variantsError.isError())return _variantsError;const textValue=this._getStringValue(textObject),delimiterValue=this._getDelimiterValue(delimiter);if(delimiterValue instanceof ErrorValueObject)return delimiterValue;const _variantsNumberFloorValue=this._getVariantsNumberFloorValue(instanceNumObject,matchModeObject,matchEndObject);if(_variantsNumberFloorValue instanceof ErrorValueObject)return _variantsNumberFloorValue;const[instanceNumValue,matchModeValue,matchEndValue]=_variantsNumberFloorValue;return instanceNumValue===0||matchModeValue<0||matchModeValue>1||matchEndValue<0||matchEndValue>1?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.includes("")?instanceNumValue>0?StringValueObject.create(textValue):StringValueObject.create(""):!instanceNumIsNull&&Math.abs(instanceNumValue)>textValue.length?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.every(item=>item.length>textValue.length)?ErrorValueObject.create(ErrorType$1.NA):this._getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant)})}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getStringValue(variant){let value=`${variant.getValue()}`;return variant.isNull()&&(value=""),variant.isBoolean()&&(value=value.toLocaleUpperCase()),value}_getDelimiterValue(delimiter){const delimiterValue=[];if(delimiter.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(delimiter.iterator(delimiterObject=>{const _delimiterObject=delimiterObject;if(_delimiterObject.isError())return isError=!0,errorObject=_delimiterObject,!1;delimiterValue.push(this._getStringValue(_delimiterObject))}),isError)return errorObject}else{if(delimiter.isError())return delimiter;delimiterValue.push(this._getStringValue(delimiter))}return delimiterValue}_getVariantsNumberFloorValue(...variants){const values=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;const value=Math.floor(+variant.getValue());values.push(value)}return values}_getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant){let substrText=matchModeValue?textValue.toLocaleLowerCase():textValue;const _delimiterValue=matchModeValue?delimiterValue.map(item=>item.toLocaleLowerCase()):delimiterValue;let resultIndex=0,matchNum=0,preDelimiterLength=0;for(let i=0;i<Math.abs(instanceNumValue);i++)if(instanceNumValue<0){const delimiterItem=_delimiterValue.map(item=>({index:substrText.lastIndexOf(item),length:item.length})).filter(item=>item.index!==-1).sort((a,b)=>b.index-a.index)[0];if(!delimiterItem)break;resultIndex=delimiterItem.index,substrText=substrText.substr(0,delimiterItem.index),preDelimiterLength=delimiterItem.length,matchNum++}else{const delimiterItem=_delimiterValue.map(item=>({index:substrText.indexOf(item),length:item.length})).filter(item=>item.index!==-1).sort((a,b)=>a.index-b.index)[0];if(!delimiterItem)break;resultIndex+=delimiterItem.index+preDelimiterLength,substrText=substrText.substr(delimiterItem.index+delimiterItem.length),preDelimiterLength=delimiterItem.length,matchNum++}if(matchNum&&matchNum<Math.abs(instanceNumValue)&&onlyThreeVariant)return ErrorValueObject.create(ErrorType$1.NA);if(!matchNum||matchNum<Math.abs(instanceNumValue))return matchEndValue?instanceNumValue>0?StringValueObject.create(""):StringValueObject.create(textValue):ifNotFoundObject;const result=textValue.substr(resultIndex+preDelimiterLength);return StringValueObject.create(result)}};__name(_Textafter,"Textafter");let Textafter=_Textafter;const _Textbefore=class _Textbefore extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,delimiter,instanceNum,matchMode,matchEnd,ifNotFound){let instanceNumIsNull=!1,_instanceNum=instanceNum!=null?instanceNum:NumberValueObject.create(1);_instanceNum.isNull()&&(instanceNumIsNull=!0,_instanceNum=NumberValueObject.create(1));const onlyThreeVariant=!matchMode,_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_matchEnd=matchEnd!=null?matchEnd:NumberValueObject.create(0),_ifNotFound=ifNotFound!=null?ifNotFound:ErrorValueObject.create(ErrorType$1.NA),maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_instanceNum.isArray()?_instanceNum.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1,_matchEnd.isArray()?_matchEnd.getRowCount():1,_ifNotFound.isArray()?_ifNotFound.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_instanceNum.isArray()?_instanceNum.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1,_matchEnd.isArray()?_matchEnd.getColumnCount():1,_ifNotFound.isArray()?_ifNotFound.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),instanceNumArray=expandArrayValueObject(maxRowLength,maxColumnLength,_instanceNum,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),matchEndArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchEnd,ErrorValueObject.create(ErrorType$1.NA)),ifNotFoundArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ifNotFound,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray}_getResultArray(textArray,delimiter,instanceNumArray,matchModeArray,matchEndArray,ifNotFoundArray,instanceNumIsNull,onlyThreeVariant){return textArray.map((textObject,rowIndex,columnIndex)=>{const instanceNumObject=instanceNumArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex),matchEndObject=matchEndArray.get(rowIndex,columnIndex),ifNotFoundObject=ifNotFoundArray.get(rowIndex,columnIndex),_variantsError=this._checkVariantsError(textObject,instanceNumObject,matchModeObject,matchEndObject);if(_variantsError.isError())return _variantsError;const textValue=this._getStringValue(textObject),delimiterValue=this._getDelimiterValue(delimiter);if(delimiterValue instanceof ErrorValueObject)return delimiterValue;const _variantsNumberFloorValue=this._getVariantsNumberFloorValue(instanceNumObject,matchModeObject,matchEndObject);if(_variantsNumberFloorValue instanceof ErrorValueObject)return _variantsNumberFloorValue;const[instanceNumValue,matchModeValue,matchEndValue]=_variantsNumberFloorValue;return instanceNumValue===0||matchModeValue<0||matchModeValue>1||matchEndValue<0||matchEndValue>1?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.includes("")?instanceNumValue>0?StringValueObject.create(""):StringValueObject.create(textValue):!instanceNumIsNull&&Math.abs(instanceNumValue)>textValue.length?ErrorValueObject.create(ErrorType$1.VALUE):delimiterValue.every(item=>item.length>textValue.length)?ErrorValueObject.create(ErrorType$1.NA):this._getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant)})}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getStringValue(variant){let value=`${variant.getValue()}`;return variant.isNull()&&(value=""),variant.isBoolean()&&(value=value.toLocaleUpperCase()),value}_getDelimiterValue(delimiter){const delimiterValue=[];if(delimiter.isArray()){let isError=!1,errorObject=ErrorValueObject.create(ErrorType$1.VALUE);if(delimiter.iterator(delimiterObject=>{const _delimiterObject=delimiterObject;if(_delimiterObject.isError())return isError=!0,errorObject=_delimiterObject,!1;delimiterValue.push(this._getStringValue(_delimiterObject))}),isError)return errorObject}else{if(delimiter.isError())return delimiter;delimiterValue.push(this._getStringValue(delimiter))}return delimiterValue}_getVariantsNumberFloorValue(...variants){const values=[];for(let i=0;i<variants.length;i++){let variant=variants[i];if(variant.isString()&&(variant=variant.convertToNumberObjectValue()),variant.isError())return variant;const value=Math.floor(+variant.getValue());values.push(value)}return values}_getResult(textValue,delimiterValue,instanceNumValue,matchModeValue,matchEndValue,ifNotFoundObject,onlyThreeVariant){let substrText=matchModeValue?textValue.toLocaleLowerCase():textValue;const _delimiterValue=matchModeValue?delimiterValue.map(item=>item.toLocaleLowerCase()):delimiterValue;let resultIndex=0,matchNum=0,preDelimiterLength=0;for(let i=0;i<Math.abs(instanceNumValue);i++)if(instanceNumValue<0){const delimiterItem=_delimiterValue.map(item=>({index:substrText.lastIndexOf(item),length:item.length})).filter(item=>item.index!==-1).sort((a,b)=>b.index-a.index)[0];if(!delimiterItem)break;resultIndex=delimiterItem.index,substrText=substrText.substr(0,delimiterItem.index),matchNum++}else{const delimiterItem=_delimiterValue.map(item=>({index:substrText.indexOf(item),length:item.length})).filter(item=>item.index!==-1).sort((a,b)=>a.index-b.index)[0];if(!delimiterItem)break;resultIndex+=delimiterItem.index+preDelimiterLength,substrText=substrText.substr(delimiterItem.index+delimiterItem.length),preDelimiterLength=delimiterItem.length,matchNum++}if(matchNum&&matchNum<Math.abs(instanceNumValue)&&onlyThreeVariant)return ErrorValueObject.create(ErrorType$1.NA);if(!matchNum||matchNum<Math.abs(instanceNumValue))return matchEndValue?instanceNumValue>0?StringValueObject.create(textValue):StringValueObject.create(""):ifNotFoundObject;const result=textValue.substr(0,resultIndex);return StringValueObject.create(result)}};__name(_Textbefore,"Textbefore");let Textbefore=_Textbefore;const _Textsplit=class _Textsplit extends BaseFunction{constructor(){super(...arguments);__publicField(this,"minParams",2);__publicField(this,"maxParams",6)}calculate(text,colDelimiter,rowDelimiter,ignoreEmpty,matchMode,padWith){let _rowDelimiter=rowDelimiter!=null?rowDelimiter:StringValueObject.create("\\s");const _ignoreEmpty=ignoreEmpty!=null?ignoreEmpty:NumberValueObject.create(0),_matchMode=matchMode!=null?matchMode:NumberValueObject.create(0),_padWith=padWith!=null?padWith:StringValueObject.create(ErrorType$1.NA),{_variant:_colDelimiter,values:colDelimiterValue}=this._getStringValues(colDelimiter),{_variant,values:rowDelimiterValue}=this._getStringValues(_rowDelimiter,!1);_rowDelimiter=_variant;const maxRowLength=Math.max(text.isArray()?text.getRowCount():1,_ignoreEmpty.isArray()?_ignoreEmpty.getRowCount():1,_matchMode.isArray()?_matchMode.getRowCount():1),maxColumnLength=Math.max(text.isArray()?text.getColumnCount():1,_ignoreEmpty.isArray()?_ignoreEmpty.getColumnCount():1,_matchMode.isArray()?_matchMode.getColumnCount():1),textArray=expandArrayValueObject(maxRowLength,maxColumnLength,text,ErrorValueObject.create(ErrorType$1.NA)),ignoreEmptyArray=expandArrayValueObject(maxRowLength,maxColumnLength,_ignoreEmpty,ErrorValueObject.create(ErrorType$1.NA)),matchModeArray=expandArrayValueObject(maxRowLength,maxColumnLength,_matchMode,ErrorValueObject.create(ErrorType$1.NA)),resultArray=this._getResultArray(textArray,_colDelimiter,_rowDelimiter,ignoreEmptyArray,matchModeArray,_padWith,colDelimiterValue,rowDelimiterValue);return maxRowLength===1&&maxColumnLength===1?resultArray.get(0,0):resultArray.map(item=>item.get(0,0))}_getStringValues(variant,isNotNull=!0){let _variant=variant;const values=[];if(_variant.isArray())_variant.iterator(variantObject=>{if(variantObject!=null&&variantObject.isError())return _variant=variantObject,!1;if(variantObject!=null&&variantObject.isNull()&&isNotNull)return _variant=ErrorValueObject.create(ErrorType$1.VALUE),!1;const value=this._getRegExpStringValue(variantObject);if(value==="")return _variant=ErrorValueObject.create(ErrorType$1.VALUE),!1;values.push(value)});else{_variant.isNull()&&isNotNull&&(_variant=ErrorValueObject.create(ErrorType$1.VALUE));const value=this._getRegExpStringValue(_variant);value===""&&(_variant=ErrorValueObject.create(ErrorType$1.VALUE)),values.push(value)}return{_variant,values}}_getResultArray(textArray,colDelimiter,rowDelimiter,ignoreEmptyArray,matchModeArray,padWith,colDelimiterValue,rowDelimiterValue){return textArray.map((textObject,rowIndex,columnIndex)=>{let ignoreEmptyObject=ignoreEmptyArray.get(rowIndex,columnIndex),matchModeObject=matchModeArray.get(rowIndex,columnIndex);const _variantsError=this._checkVariantsError(textObject,colDelimiter,rowDelimiter,ignoreEmptyObject,matchModeObject);if(_variantsError.isError())return _variantsError;if(textObject.isNull())return ErrorValueObject.create(ErrorType$1.VALUE);let _padWith=padWith;if(_padWith.isArray()){const padWithRowCount=_padWith.getRowCount(),padWithColumnCount=_padWith.getColumnCount();if(padWithRowCount>1||padWithColumnCount>1)return ErrorValueObject.create(ErrorType$1.VALUE);_padWith=_padWith.get(0,0)}let textValue=`${textObject.getValue()}`;if(textObject.isBoolean()&&(textValue=textValue.toLocaleUpperCase()),ignoreEmptyObject.isString()&&(ignoreEmptyObject=ignoreEmptyObject.convertToNumberObjectValue(),ignoreEmptyObject.isError()))return ignoreEmptyObject;const ignoreEmptyValue=Math.floor(+ignoreEmptyObject.getValue());if(matchModeObject.isString()&&(matchModeObject=matchModeObject.convertToNumberObjectValue(),matchModeObject.isError()))return matchModeObject;const matchModeValue=Math.floor(+matchModeObject.getValue());if(matchModeValue<0||matchModeValue>1)return ErrorValueObject.create(ErrorType$1.VALUE);let padWithValue=`${_padWith.getValue()}`;return _padWith.isBoolean()&&(padWithValue=padWithValue.toLocaleUpperCase()),this._getResult(textValue,colDelimiterValue,rowDelimiterValue,ignoreEmptyValue,matchModeValue,padWithValue)})}_getResult(textValue,colDelimiterValue,rowDelimiterValue,ignoreEmptyValue,matchModeValue,padWithValue){const rowDelimiterRegExp=new RegExp(rowDelimiterValue.join("|"),`g${matchModeValue?"i":""}`),colDelimiterRegExp=new RegExp(colDelimiterValue.join("|"),`g${matchModeValue?"i":""}`),resultRows=textValue.split(rowDelimiterRegExp);let resultColsMaxCount=1,result=resultRows.map(row=>{let cols=row.split(colDelimiterRegExp);return ignoreEmptyValue&&(cols=cols.filter(col=>col!=="")),resultColsMaxCount=Math.max(resultColsMaxCount,cols.length),cols});return result=result.map(row=>{let _row=row;return _row.length<resultColsMaxCount&&(_row=_row.concat(new Array(resultColsMaxCount-_row.length).fill(padWithValue))),_row}),ArrayValueObject.createByArray(result)}_checkVariantsError(...variantas){for(let i=0;i<variantas.length;i++){const variant=variantas[i];if(variant.isError())return variant}return BooleanValueObject.create(!0)}_getRegExpStringValue(valueObject){let value=valueObject.getValue();return valueObject.isNull()&&(value="\\s"),valueObject.isBoolean()&&(value=value?"TRUE":"FALSE"),value+="",this._escapeRegExp(value)}_escapeRegExp(string){return string.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};__name(_Textsplit,"Textsplit");let Textsplit=_Textsplit;const functionText=[[Concat,FUNCTION_NAMES_TEXT.CONCAT],[Concatenate,FUNCTION_NAMES_TEXT.CONCATENATE],[Len,FUNCTION_NAMES_TEXT.LEN],[Lenb,FUNCTION_NAMES_TEXT.LENB],[Lower,FUNCTION_NAMES_TEXT.LOWER],[Mid,FUNCTION_NAMES_TEXT.MID],[Regexextract,FUNCTION_NAMES_TEXT.REGEXEXTRACT],[Regexmatch,FUNCTION_NAMES_TEXT.REGEXMATCH],[Regexreplace,FUNCTION_NAMES_TEXT.REGEXREPLACE],[Rept,FUNCTION_NAMES_TEXT.REPT],[Text,FUNCTION_NAMES_TEXT.TEXT],[Textafter,FUNCTION_NAMES_TEXT.TEXTAFTER],[Textbefore,FUNCTION_NAMES_TEXT.TEXTBEFORE],[Textsplit,FUNCTION_NAMES_TEXT.TEXTSPLIT],[Leftb,FUNCTION_NAMES_TEXT.LEFTB]],functionUniver=[];var FUNCTION_NAMES_UNIVER=(FUNCTION_NAMES_UNIVER2=>FUNCTION_NAMES_UNIVER2)(FUNCTION_NAMES_UNIVER||{});const functionWeb=[];var FUNCTION_NAMES_WEB=(FUNCTION_NAMES_WEB2=>(FUNCTION_NAMES_WEB2.ENCODEURL="ENCODEURL",FUNCTION_NAMES_WEB2.FILTERXML="FILTERXML",FUNCTION_NAMES_WEB2.WEBSERVICE="WEBSERVICE",FUNCTION_NAMES_WEB2))(FUNCTION_NAMES_WEB||{});const PLUGIN_CONFIG_KEY="engine-formula.config",defaultPluginConfig={};var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5");let FormulaController=(_u=class extends core.Disposable{constructor(_commandService,_functionService,_configService,_dataSyncPrimaryController){super(),this._commandService=_commandService,this._functionService=_functionService,this._configService=_configService,this._dataSyncPrimaryController=_dataSyncPrimaryController,this._initialize()}_initialize(){this._registerCommands(),this._registerFunctions()}_registerCommands(){[SetFormulaDataMutation,SetArrayFormulaDataMutation,SetFormulaCalculationStartMutation,SetFormulaCalculationStopMutation,SetFormulaCalculationNotificationMutation,SetFormulaCalculationResultMutation,SetDefinedNameMutation,RemoveDefinedNameMutation,SetFeatureCalculationMutation,RemoveFeatureCalculationMutation,SetOtherFormulaMutation,RemoveOtherFormulaMutation,SetSuperTableMutation,RemoveSuperTableMutation,SetSuperTableOptionMutation,RegisterFunctionMutation].forEach(mutation=>{var _a2;this._commandService.registerCommand(mutation),(_a2=this._dataSyncPrimaryController)==null||_a2.registerSyncingMutations(mutation)})}_registerFunctions(){var _a2;const config2=this._configService.getConfig(PLUGIN_CONFIG_KEY),functions=[...functionArray,...functionCompatibility,...functionCube,...functionDatabase,...functionDate,...functionEngineering,...functionFinancial,...functionInformation,...functionLogical,...functionLookup,...functionMath,...functionMeta,...functionStatistical,...functionText,...functionUniver,...functionWeb].concat((_a2=config2==null?void 0:config2.function)!=null?_a2:[]).map(registerObject=>{const Func=registerObject[0],name=registerObject[1];return new Func(name)});this._functionService.registerExecutors(...functions)}},__name(_u,"FormulaController"),_u);FormulaController=__decorateClass$5([__decorateParam$5(0,core.ICommandService),__decorateParam$5(1,IFunctionService),__decorateParam$5(2,core.IConfigService),__decorateParam$5(3,core.Optional(rpc.DataSyncPrimaryController))],FormulaController);var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4");let SetDependencyController=(_v=class extends core.Disposable{constructor(_commandService,_dependencyManagerService,_featureCalculationManagerService){super(),this._commandService=_commandService,this._dependencyManagerService=_dependencyManagerService,this._featureCalculationManagerService=_featureCalculationManagerService,this._initialize()}_initialize(){this._commandExecutedListener(),this._featureCalculationManagerServiceListener()}_featureCalculationManagerServiceListener(){this.disposeWithMe(this._featureCalculationManagerService.onChanged$.subscribe(params=>{const{unitId,subUnitId,featureIds}=params;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,featureIds)}))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===RemoveFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureIds,unitId,subUnitId}=params;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,featureIds)}else if(command.id===SetFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureId,calculationParam}=params,{unitId,subUnitId}=calculationParam;this._dependencyManagerService.removeFeatureFormulaDependency(unitId,subUnitId,[featureId])}else if(command.id===RemoveOtherFormulaMutation.id){const params=command.params;if(params==null)return;this._dependencyManagerService.removeOtherFormulaDependency(params.unitId,params.subUnitId,params.formulaIdList)}else if(command.id===SetOtherFormulaMutation.id){const params=command.params;if(params==null)return;const formulaMap=params.formulaMap,formulaIdList=[];Object.keys(formulaMap).forEach(formulaId=>{formulaIdList.push(formulaId)}),this._dependencyManagerService.removeOtherFormulaDependency(params.unitId,params.subUnitId,formulaIdList)}else if(command.id===SetFormulaDataMutation.id){const formulaData=command.params.formulaData;Object.keys(formulaData).forEach(unitId=>{const unitFormulaData=formulaData[unitId];if(unitFormulaData!==void 0){if(unitFormulaData===null){this._dependencyManagerService.clearFormulaDependency(unitId);return}Object.keys(unitFormulaData).forEach(subUnitId=>{const formulaDataItem=unitFormulaData[subUnitId];if(formulaDataItem!==void 0){if(formulaDataItem===null)return this._dependencyManagerService.clearFormulaDependency(unitId,subUnitId),!0;new core.ObjectMatrix(formulaDataItem).forValue((row,column)=>{this._dependencyManagerService.removeFormulaDependency(unitId,subUnitId,row,column)})}})}})}else command.id===SetDefinedNameMutation.id&&this._handleSetDefinedName(command)}))}_handleSetDefinedName(command){const params=command.params;if(params==null)return;const{unitId,name}=params;this._dependencyManagerService.removeFormulaDependencyByDefinedName(unitId,name)}},__name(_v,"SetDependencyController"),_v);SetDependencyController=__decorateClass$4([__decorateParam$4(0,core.ICommandService),__decorateParam$4(1,IFeatureCalculationManagerService),__decorateParam$4(1,IDependencyManagerService),__decorateParam$4(2,IFeatureCalculationManagerService)],SetDependencyController);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3");let SetFeatureCalculationController=(_w=class extends core.Disposable{constructor(_commandService,_featureCalculationManagerService){super(),this._commandService=_commandService,this._featureCalculationManagerService=_featureCalculationManagerService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureId,calculationParam}=params,{unitId,subUnitId}=calculationParam;this._featureCalculationManagerService.register(unitId,subUnitId,featureId,calculationParam)}else if(command.id===RemoveFeatureCalculationMutation.id){const params=command.params;if(params==null)return;const{featureIds,unitId,subUnitId}=params;this._featureCalculationManagerService.remove(unitId,subUnitId,featureIds)}}))}},__name(_w,"SetFeatureCalculationController"),_w);SetFeatureCalculationController=__decorateClass$3([__decorateParam$3(0,core.ICommandService),__decorateParam$3(1,IFeatureCalculationManagerService)],SetFeatureCalculationController);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2");let SetOtherFormulaController=(_x=class extends core.Disposable{constructor(_commandService,_otherFormulaManagerService,_dependencyManagerService){super(),this._commandService=_commandService,this._otherFormulaManagerService=_otherFormulaManagerService,this._dependencyManagerService=_dependencyManagerService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetOtherFormulaMutation.id){const params=command.params;if(params==null)return;const config2={[params.unitId]:{[params.subUnitId]:params.formulaMap}};this._otherFormulaManagerService.batchRegister(config2)}else if(command.id===RemoveOtherFormulaMutation.id){const params=command.params;if(params==null)return;const obj={};params.formulaIdList.forEach(id=>obj[id]=!0);const config2={[params.unitId]:{[params.subUnitId]:obj}};this._otherFormulaManagerService.batchRemove(config2)}}))}},__name(_x,"SetOtherFormulaController"),_x);SetOtherFormulaController=__decorateClass$2([__decorateParam$2(0,core.ICommandService),__decorateParam$2(1,IOtherFormulaManagerService),__decorateParam$2(2,IDependencyManagerService)],SetOtherFormulaController);var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1");let SetSuperTableController=(_y=class extends core.Disposable{constructor(_commandService,_superTableService){super(),this._commandService=_commandService,this._superTableService=_superTableService,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===SetDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,tableName,reference}=params;this._superTableService.registerTable(unitId,tableName,reference)}else if(command.id===RemoveDefinedNameMutation.id){const params=command.params;if(params==null)return;const{unitId,tableName}=params;this._superTableService.remove(unitId,tableName)}else if(command.id===SetSuperTableOptionMutation.id){const params=command.params;if(params==null)return;const{tableOption,tableOptionType}=params;this._superTableService.registerTableOptionMap(tableOption,tableOptionType)}}))}},__name(_y,"SetSuperTableController"),_y);SetSuperTableController=__decorateClass$1([__decorateParam$1(0,core.ICommandService),__decorateParam$1(1,ISuperTableService)],SetSuperTableController);const _ActiveDirtyManagerService=class _ActiveDirtyManagerService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_dirtyConversionMap",new Map)}dispose(){this._dirtyConversionMap.clear()}remove(commandId){this._dirtyConversionMap.delete(commandId)}get(commandId){return this._dirtyConversionMap.get(commandId)}has(commandId){return this._dirtyConversionMap.has(commandId)}register(commandId,dirtyConversion){this._dirtyConversionMap.set(commandId,dirtyConversion)}getDirtyConversionMap(){return this._dirtyConversionMap}};__name(_ActiveDirtyManagerService,"ActiveDirtyManagerService");let ActiveDirtyManagerService=_ActiveDirtyManagerService;const IActiveDirtyManagerService=core.createIdentifier("univer.formula.active-dirty-manager.service");var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam");const PLUGIN_NAME="UNIVER_ENGINE_FORMULA_PLUGIN";exports2.UniverFormulaEnginePlugin=(_z=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_configService){super(),this._config=_config,this._injector=_injector,this._configService=_configService;const{...rest}=this._config;this._configService.setConfig(PLUGIN_CONFIG_KEY,rest)}onStarting(){this._initialize()}onReady(){var _a2;this._injector.get(FormulaController),this._injector.get(exports2.SetDefinedNameController),this._injector.get(SetSuperTableController),(_a2=this._config)!=null&&_a2.notExecuteFormula||(this._injector.get(SetOtherFormulaController),this._injector.get(SetFeatureCalculationController),this._injector.get(SetDependencyController),this._injector.get(exports2.CalculateController))}onRendered(){var _a2;(_a2=this._config)!=null&&_a2.notExecuteFormula||(this._injector.get(exports2.CalculateFormulaService),this._injector.get(exports2.FormulaDependencyGenerator))}_initialize(){var _a2;const dependencies=[[IFunctionService,{useClass:FunctionService}],[IDefinedNamesService,{useClass:exports2.DefinedNamesService}],[IActiveDirtyManagerService,{useClass:ActiveDirtyManagerService}],[ISuperTableService,{useClass:SuperTableService}],[exports2.FormulaDataModel],[LexerTreeBuilder],[FormulaController],[exports2.SetDefinedNameController],[SetSuperTableController]];(_a2=this._config)!=null&&_a2.notExecuteFormula||dependencies.push([exports2.CalculateFormulaService],[IOtherFormulaManagerService,{useClass:OtherFormulaManagerService}],[IFormulaRuntimeService,{useClass:exports2.FormulaRuntimeService}],[IFormulaCurrentConfigService,{useClass:exports2.FormulaCurrentConfigService}],[IDependencyManagerService,{useClass:DependencyManagerService}],[IFeatureCalculationManagerService,{useClass:FeatureCalculationManagerService}],[exports2.CalculateController],[SetOtherFormulaController],[SetDependencyController],[SetFeatureCalculationController],[exports2.FormulaDependencyGenerator],[exports2.Interpreter],[exports2.AstTreeBuilder],[exports2.Lexer],[AstRootNodeFactory],[exports2.FunctionNodeFactory],[exports2.LambdaNodeFactory],[LambdaParameterNodeFactory],[exports2.OperatorNodeFactory],[exports2.PrefixNodeFactory],[exports2.ReferenceNodeFactory],[exports2.SuffixNodeFactory],[exports2.UnionNodeFactory],[ValueNodeFactory]),dependencies.forEach(dependency=>this._injector.add(dependency))}},__name(_z,"UniverFormulaEnginePlugin"),__publicField(_z,"pluginName",PLUGIN_NAME),_z),exports2.UniverFormulaEnginePlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,core.IConfigService)],exports2.UniverFormulaEnginePlugin),exports2.ActiveDirtyManagerService=ActiveDirtyManagerService,exports2.ArrayValueObject=ArrayValueObject,exports2.AstRootNodeFactory=AstRootNodeFactory,exports2.AsyncArrayObject=AsyncArrayObject,exports2.AsyncObject=AsyncObject,exports2.BaseFunction=BaseFunction,exports2.BaseReferenceObject=BaseReferenceObject,exports2.BaseValueObject=BaseValueObject,exports2.BooleanValue=BooleanValue,exports2.BooleanValueObject=BooleanValueObject,exports2.CustomFunction=CustomFunction,exports2.DependencyManagerService=DependencyManagerService,exports2.ERROR_TYPE_SET=ERROR_TYPE_SET,exports2.ErrorType=ErrorType$1,exports2.ErrorValueObject=ErrorValueObject,exports2.FUNCTION_NAMES_ARRAY=FUNCTION_NAMES_ARRAY,exports2.FUNCTION_NAMES_COMPATIBILITY=FUNCTION_NAMES_COMPATIBILITY,exports2.FUNCTION_NAMES_CUBE=FUNCTION_NAMES_CUBE,exports2.FUNCTION_NAMES_DATABASE=FUNCTION_NAMES_DATABASE,exports2.FUNCTION_NAMES_DATE=FUNCTION_NAMES_DATE,exports2.FUNCTION_NAMES_ENGINEERING=FUNCTION_NAMES_ENGINEERING,exports2.FUNCTION_NAMES_FINANCIAL=FUNCTION_NAMES_FINANCIAL,exports2.FUNCTION_NAMES_INFORMATION=FUNCTION_NAMES_INFORMATION,exports2.FUNCTION_NAMES_LOGICAL=FUNCTION_NAMES_LOGICAL,exports2.FUNCTION_NAMES_LOOKUP=FUNCTION_NAMES_LOOKUP,exports2.FUNCTION_NAMES_MATH=FUNCTION_NAMES_MATH,exports2.FUNCTION_NAMES_STATISTICAL=FUNCTION_NAMES_STATISTICAL,exports2.FUNCTION_NAMES_TEXT=FUNCTION_NAMES_TEXT,exports2.FUNCTION_NAMES_UNIVER=FUNCTION_NAMES_UNIVER,exports2.FUNCTION_NAMES_WEB=FUNCTION_NAMES_WEB,exports2.FeatureCalculationManagerService=FeatureCalculationManagerService,exports2.FormulaExecuteStageType=FormulaExecuteStageType,exports2.FormulaExecutedStateType=FormulaExecutedStateType,exports2.FunctionService=FunctionService,exports2.FunctionType=FunctionType,exports2.IActiveDirtyManagerService=IActiveDirtyManagerService,exports2.IDefinedNamesService=IDefinedNamesService,exports2.IDependencyManagerService=IDependencyManagerService,exports2.IFeatureCalculationManagerService=IFeatureCalculationManagerService,exports2.IFormulaCurrentConfigService=IFormulaCurrentConfigService,exports2.IFormulaRuntimeService=IFormulaRuntimeService,exports2.IFunctionService=IFunctionService,exports2.IOtherFormulaManagerService=IOtherFormulaManagerService,exports2.ISuperTableService=ISuperTableService,exports2.LambdaParameterNodeFactory=LambdaParameterNodeFactory,exports2.LexerNode=LexerNode,exports2.LexerTreeBuilder=LexerTreeBuilder,exports2.NullValueObject=NullValueObject,exports2.NumberValueObject=NumberValueObject,exports2.OtherFormulaManagerService=OtherFormulaManagerService,exports2.RangeReferenceObject=RangeReferenceObject,exports2.RegisterFunctionMutation=RegisterFunctionMutation,exports2.RemoveDefinedNameMutation=RemoveDefinedNameMutation,exports2.RemoveFeatureCalculationMutation=RemoveFeatureCalculationMutation,exports2.RemoveOtherFormulaMutation=RemoveOtherFormulaMutation,exports2.RemoveSuperTableMutation=RemoveSuperTableMutation,exports2.SetArrayFormulaDataMutation=SetArrayFormulaDataMutation,exports2.SetDefinedNameMutation=SetDefinedNameMutation,exports2.SetDefinedNameMutationFactory=SetDefinedNameMutationFactory,exports2.SetFeatureCalculationMutation=SetFeatureCalculationMutation,exports2.SetFormulaCalculationNotificationMutation=SetFormulaCalculationNotificationMutation,exports2.SetFormulaCalculationResultMutation=SetFormulaCalculationResultMutation,exports2.SetFormulaCalculationStartMutation=SetFormulaCalculationStartMutation,exports2.SetFormulaCalculationStopMutation=SetFormulaCalculationStopMutation,exports2.SetFormulaDataMutation=SetFormulaDataMutation,exports2.SetOtherFormulaMutation=SetOtherFormulaMutation,exports2.SetSuperTableMutation=SetSuperTableMutation,exports2.SetSuperTableOptionMutation=SetSuperTableOptionMutation,exports2.StringValueObject=StringValueObject,exports2.SuperTableService=SuperTableService,exports2.ValueNodeFactory=ValueNodeFactory,exports2.ValueObjectFactory=ValueObjectFactory,exports2.compareToken=compareToken,exports2.convertUnitDataToRuntime=convertUnitDataToRuntime,exports2.deserializeRangeForR1C1=deserializeRangeForR1C1,exports2.deserializeRangeWithSheet=deserializeRangeWithSheet,exports2.functionArray=functionArray,exports2.functionCompatibility=functionCompatibility,exports2.functionCube=functionCube,exports2.functionDatabase=functionDatabase,exports2.functionDate=functionDate,exports2.functionEngineering=functionEngineering,exports2.functionFinancial=functionFinancial,exports2.functionInformation=functionInformation,exports2.functionLogical=functionLogical,exports2.functionLookup=functionLookup,exports2.functionMath=functionMath,exports2.functionMeta=functionMeta,exports2.functionStatistical=functionStatistical,exports2.functionText=functionText,exports2.functionUniver=functionUniver,exports2.functionWeb=functionWeb,exports2.generateStringWithSequence=generateStringWithSequence,exports2.getAbsoluteRefTypeWitString=getAbsoluteRefTypeWitString,exports2.getAbsoluteRefTypeWithSingleString=getAbsoluteRefTypeWithSingleString,exports2.getRangeWithRefsString=getRangeWithRefsString,exports2.handleNumfmtInCell=handleNumfmtInCell,exports2.handleRefStringInfo=handleRefStringInfo,exports2.includeFormulaLexerToken=includeFormulaLexerToken,exports2.initSheetFormulaData=initSheetFormulaData,exports2.isFormulaLexerToken=isFormulaLexerToken,exports2.isInDirtyRange=isInDirtyRange,exports2.isReferenceString=isReferenceString,exports2.isReferenceStringWithEffectiveColumn=isReferenceStringWithEffectiveColumn,exports2.isReferenceStrings=isReferenceStrings,exports2.matchRefDrawToken=matchRefDrawToken,exports2.matchToken=matchToken,exports2.normalizeSheetName=normalizeSheetName,exports2.operatorToken=operatorToken,exports2.sequenceNodeType=sequenceNodeType,exports2.serializeRange=serializeRange,exports2.serializeRangeToRefString=serializeRangeToRefString,exports2.serializeRangeWithSheet=serializeRangeWithSheet,exports2.serializeRangeWithSpreadsheet=serializeRangeWithSpreadsheet,exports2.singleReferenceToGrid=singleReferenceToGrid,exports2.strip=strip,exports2.stripErrorMargin=stripErrorMargin,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});
7
+ */var Gt=9e15,Rt=1e9,qn="0123456789abcdef",Wr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Gr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Xn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Gt,maxE:Gt,crypto:!1},Da,ft,ie=!0,qr="[DecimalError] ",pt=qr+"Invalid argument: ",Sa=qr+"Precision limit exceeded",La=qr+"crypto unavailable",Pa="[object Decimal]",we=Math.floor,Se=Math.pow,tc=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,rc=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,nc=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ma=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Ke=1e7,re=7,sc=9007199254740991,ac=Wr.length-1,Kn=Gr.length-1,U={toStringTag:Pa};U.absoluteValue=U.abs=function(){var a=new this.constructor(this);return a.s<0&&(a.s=1),K(a)},U.ceil=function(){return K(new this.constructor(this),this.e+1,2)},U.clampedTo=U.clamp=function(a,i){var e,t=this,r=t.constructor;if(a=new r(a),i=new r(i),!a.s||!i.s)return new r(NaN);if(a.gt(i))throw Error(pt+i);return e=t.cmp(a),e<0?a:t.cmp(i)>0?i:new r(t)},U.comparedTo=U.cmp=function(a){var i,e,t,r,n=this,s=n.d,u=(a=new n.constructor(a)).d,o=n.s,c=a.s;if(!s||!u)return!o||!c?NaN:o!==c?o:s===u?0:!s^o<0?1:-1;if(!s[0]||!u[0])return s[0]?o:u[0]?-c:0;if(o!==c)return o;if(n.e!==a.e)return n.e>a.e^o<0?1:-1;for(t=s.length,r=u.length,i=0,e=t<r?t:r;i<e;++i)if(s[i]!==u[i])return s[i]>u[i]^o<0?1:-1;return t===r?0:t>r^o<0?1:-1},U.cosine=U.cos=function(){var a,i,e=this,t=e.constructor;return e.d?e.d[0]?(a=t.precision,i=t.rounding,t.precision=a+Math.max(e.e,e.sd())+re,t.rounding=1,e=ic(t,va(t,e)),t.precision=a,t.rounding=i,K(ft==2||ft==3?e.neg():e,a,i,!0)):new t(1):new t(NaN)},U.cubeRoot=U.cbrt=function(){var a,i,e,t,r,n,s,u,o,c,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(ie=!1,n=l.s*Se(l.s*l,1/3),!n||Math.abs(n)==1/0?(e=Me(l.d),a=l.e,(n=(a-e.length+1)%3)&&(e+=n==1||n==-2?"0":"00"),n=Se(e,1/3),a=we((a+1)/3)-(a%3==(a<0?-1:2)),n==1/0?e="5e"+a:(e=n.toExponential(),e=e.slice(0,e.indexOf("e")+1)+a),t=new f(e),t.s=l.s):t=new f(n.toString()),s=(a=f.precision)+3;;)if(u=t,o=u.times(u).times(u),c=o.plus(l),t=Ae(c.plus(l).times(u),c.plus(o),s+2,1),Me(u.d).slice(0,s)===(e=Me(t.d)).slice(0,s))if(e=e.slice(s-3,s+1),e=="9999"||!r&&e=="4999"){if(!r&&(K(u,a+1,0),u.times(u).times(u).eq(l))){t=u;break}s+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(K(t,a+1,1),i=!t.times(t).times(t).eq(l));break}return ie=!0,K(t,a,f.rounding,i)},U.decimalPlaces=U.dp=function(){var a,i=this.d,e=NaN;if(i){if(a=i.length-1,e=(a-we(this.e/re))*re,a=i[a],a)for(;a%10==0;a/=10)e--;e<0&&(e=0)}return e},U.dividedBy=U.div=function(a){return Ae(this,new this.constructor(a))},U.dividedToIntegerBy=U.divToInt=function(a){var i=this,e=i.constructor;return K(Ae(i,new e(a),0,1,1),e.precision,e.rounding)},U.equals=U.eq=function(a){return this.cmp(a)===0},U.floor=function(){return K(new this.constructor(this),this.e+1,3)},U.greaterThan=U.gt=function(a){return this.cmp(a)>0},U.greaterThanOrEqualTo=U.gte=function(a){var i=this.cmp(a);return i==1||i===0},U.hyperbolicCosine=U.cosh=function(){var a,i,e,t,r,n=this,s=n.constructor,u=new s(1);if(!n.isFinite())return new s(n.s?1/0:NaN);if(n.isZero())return u;e=s.precision,t=s.rounding,s.precision=e+Math.max(n.e,n.sd())+4,s.rounding=1,r=n.d.length,r<32?(a=Math.ceil(r/3),i=(1/zr(4,a)).toString()):(a=16,i="2.3283064365386962890625e-10"),n=qt(s,1,n.times(i),new s(1),!0);for(var o,c=a,l=new s(8);c--;)o=n.times(n),n=u.minus(o.times(l.minus(o.times(l))));return K(n,s.precision=e,s.rounding=t,!0)},U.hyperbolicSine=U.sinh=function(){var a,i,e,t,r=this,n=r.constructor;if(!r.isFinite()||r.isZero())return new n(r);if(i=n.precision,e=n.rounding,n.precision=i+Math.max(r.e,r.sd())+4,n.rounding=1,t=r.d.length,t<3)r=qt(n,2,r,r,!0);else{a=1.4*Math.sqrt(t),a=a>16?16:a|0,r=r.times(1/zr(5,a)),r=qt(n,2,r,r,!0);for(var s,u=new n(5),o=new n(16),c=new n(20);a--;)s=r.times(r),r=r.times(u.plus(s.times(o.times(s).plus(c))))}return n.precision=i,n.rounding=e,K(r,i,e,!0)},U.hyperbolicTangent=U.tanh=function(){var a,i,e=this,t=e.constructor;return e.isFinite()?e.isZero()?new t(e):(a=t.precision,i=t.rounding,t.precision=a+7,t.rounding=1,Ae(e.sinh(),e.cosh(),t.precision=a,t.rounding=i)):new t(e.s)},U.inverseCosine=U.acos=function(){var a,i=this,e=i.constructor,t=i.abs().cmp(1),r=e.precision,n=e.rounding;return t!==-1?t===0?i.isNeg()?Ze(e,r,n):new e(0):new e(NaN):i.isZero()?Ze(e,r+4,n).times(.5):(e.precision=r+6,e.rounding=1,i=i.asin(),a=Ze(e,r+4,n).times(.5),e.precision=r,e.rounding=n,a.minus(i))},U.inverseHyperbolicCosine=U.acosh=function(){var a,i,e=this,t=e.constructor;return e.lte(1)?new t(e.eq(1)?0:NaN):e.isFinite()?(a=t.precision,i=t.rounding,t.precision=a+Math.max(Math.abs(e.e),e.sd())+4,t.rounding=1,ie=!1,e=e.times(e).minus(1).sqrt().plus(e),ie=!0,t.precision=a,t.rounding=i,e.ln()):new t(e)},U.inverseHyperbolicSine=U.asinh=function(){var a,i,e=this,t=e.constructor;return!e.isFinite()||e.isZero()?new t(e):(a=t.precision,i=t.rounding,t.precision=a+2*Math.max(Math.abs(e.e),e.sd())+6,t.rounding=1,ie=!1,e=e.times(e).plus(1).sqrt().plus(e),ie=!0,t.precision=a,t.rounding=i,e.ln())},U.inverseHyperbolicTangent=U.atanh=function(){var a,i,e,t,r=this,n=r.constructor;return r.isFinite()?r.e>=0?new n(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(a=n.precision,i=n.rounding,t=r.sd(),Math.max(t,a)<2*-r.e-1?K(new n(r),a,i,!0):(n.precision=e=t-r.e,r=Ae(r.plus(1),new n(1).minus(r),e+a,1),n.precision=a+4,n.rounding=1,r=r.ln(),n.precision=a,n.rounding=i,r.times(.5))):new n(NaN)},U.inverseSine=U.asin=function(){var a,i,e,t,r=this,n=r.constructor;return r.isZero()?new n(r):(i=r.abs().cmp(1),e=n.precision,t=n.rounding,i!==-1?i===0?(a=Ze(n,e+4,t).times(.5),a.s=r.s,a):new n(NaN):(n.precision=e+6,n.rounding=1,r=r.div(new n(1).minus(r.times(r)).sqrt().plus(1)).atan(),n.precision=e,n.rounding=t,r.times(2)))},U.inverseTangent=U.atan=function(){var a,i,e,t,r,n,s,u,o,c=this,l=c.constructor,f=l.precision,m=l.rounding;if(c.isFinite()){if(c.isZero())return new l(c);if(c.abs().eq(1)&&f+4<=Kn)return s=Ze(l,f+4,m).times(.25),s.s=c.s,s}else{if(!c.s)return new l(NaN);if(f+4<=Kn)return s=Ze(l,f+4,m).times(.5),s.s=c.s,s}for(l.precision=u=f+10,l.rounding=1,e=Math.min(28,u/re+2|0),a=e;a;--a)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(ie=!1,i=Math.ceil(u/re),t=1,o=c.times(c),s=new l(c),r=c;a!==-1;)if(r=r.times(o),n=s.minus(r.div(t+=2)),r=r.times(o),s=n.plus(r.div(t+=2)),s.d[i]!==void 0)for(a=i;s.d[a]===n.d[a]&&a--;);return e&&(s=s.times(2<<e-1)),ie=!0,K(s,l.precision=f,l.rounding=m,!0)},U.isFinite=function(){return!!this.d},U.isInteger=U.isInt=function(){return!!this.d&&we(this.e/re)>this.d.length-2},U.isNaN=function(){return!this.s},U.isNegative=U.isNeg=function(){return this.s<0},U.isPositive=U.isPos=function(){return this.s>0},U.isZero=function(){return!!this.d&&this.d[0]===0},U.lessThan=U.lt=function(a){return this.cmp(a)<0},U.lessThanOrEqualTo=U.lte=function(a){return this.cmp(a)<1},U.logarithm=U.log=function(a){var i,e,t,r,n,s,u,o,c=this,l=c.constructor,f=l.precision,m=l.rounding,d=5;if(a==null)a=new l(10),i=!0;else{if(a=new l(a),e=a.d,a.s<0||!e||!e[0]||a.eq(1))return new l(NaN);i=a.eq(10)}if(e=c.d,c.s<0||!e||!e[0]||c.eq(1))return new l(e&&!e[0]?-1/0:c.s!=1?NaN:e?0:1/0);if(i)if(e.length>1)n=!0;else{for(r=e[0];r%10===0;)r/=10;n=r!==1}if(ie=!1,u=f+d,s=Vt(c,u),t=i?Zr(l,u+10):Vt(a,u),o=Ae(s,t,u,1),Cr(o.d,r=f,m))do if(u+=10,s=Vt(c,u),t=i?Zr(l,u+10):Vt(a,u),o=Ae(s,t,u,1),!n){+Me(o.d).slice(r+1,r+15)+1==1e14&&(o=K(o,f+1,0));break}while(Cr(o.d,r+=10,m));return ie=!0,K(o,f,m)},U.minus=U.sub=function(a){var i,e,t,r,n,s,u,o,c,l,f,m,d=this,_=d.constructor;if(a=new _(a),!d.d||!a.d)return!d.s||!a.s?a=new _(NaN):d.d?a.s=-a.s:a=new _(a.d||d.s!==a.s?d:NaN),a;if(d.s!=a.s)return a.s=-a.s,d.plus(a);if(c=d.d,m=a.d,u=_.precision,o=_.rounding,!c[0]||!m[0]){if(m[0])a.s=-a.s;else if(c[0])a=new _(d);else return new _(o===3?-0:0);return ie?K(a,u,o):a}if(e=we(a.e/re),l=we(d.e/re),c=c.slice(),n=l-e,n){for(f=n<0,f?(i=c,n=-n,s=m.length):(i=m,e=l,s=c.length),t=Math.max(Math.ceil(u/re),s)+2,n>t&&(n=t,i.length=1),i.reverse(),t=n;t--;)i.push(0);i.reverse()}else{for(t=c.length,s=m.length,f=t<s,f&&(s=t),t=0;t<s;t++)if(c[t]!=m[t]){f=c[t]<m[t];break}n=0}for(f&&(i=c,c=m,m=i,a.s=-a.s),s=c.length,t=m.length-s;t>0;--t)c[s++]=0;for(t=m.length;t>n;){if(c[--t]<m[t]){for(r=t;r&&c[--r]===0;)c[r]=Ke-1;--c[r],c[t]+=Ke}c[t]-=m[t]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--e;return c[0]?(a.d=c,a.e=Kr(c,e),ie?K(a,u,o):a):new _(o===3?-0:0)},U.modulo=U.mod=function(a){var i,e=this,t=e.constructor;return a=new t(a),!e.d||!a.s||a.d&&!a.d[0]?new t(NaN):!a.d||e.d&&!e.d[0]?K(new t(e),t.precision,t.rounding):(ie=!1,t.modulo==9?(i=Ae(e,a.abs(),0,3,1),i.s*=a.s):i=Ae(e,a,0,t.modulo,1),i=i.times(a),ie=!0,e.minus(i))},U.naturalExponential=U.exp=function(){return Zn(this)},U.naturalLogarithm=U.ln=function(){return Vt(this)},U.negated=U.neg=function(){var a=new this.constructor(this);return a.s=-a.s,K(a)},U.plus=U.add=function(a){var i,e,t,r,n,s,u,o,c,l,f=this,m=f.constructor;if(a=new m(a),!f.d||!a.d)return!f.s||!a.s?a=new m(NaN):f.d||(a=new m(a.d||f.s===a.s?f:NaN)),a;if(f.s!=a.s)return a.s=-a.s,f.minus(a);if(c=f.d,l=a.d,u=m.precision,o=m.rounding,!c[0]||!l[0])return l[0]||(a=new m(f)),ie?K(a,u,o):a;if(n=we(f.e/re),t=we(a.e/re),c=c.slice(),r=n-t,r){for(r<0?(e=c,r=-r,s=l.length):(e=l,t=n,s=c.length),n=Math.ceil(u/re),s=n>s?n+1:s+1,r>s&&(r=s,e.length=1),e.reverse();r--;)e.push(0);e.reverse()}for(s=c.length,r=l.length,s-r<0&&(r=s,e=l,l=c,c=e),i=0;r;)i=(c[--r]=c[r]+l[r]+i)/Ke|0,c[r]%=Ke;for(i&&(c.unshift(i),++t),s=c.length;c[--s]==0;)c.pop();return a.d=c,a.e=Kr(c,t),ie?K(a,u,o):a},U.precision=U.sd=function(a){var i,e=this;if(a!==void 0&&a!==!!a&&a!==1&&a!==0)throw Error(pt+a);return e.d?(i=wa(e.d),a&&e.e+1>i&&(i=e.e+1)):i=NaN,i},U.round=function(){var a=this,i=a.constructor;return K(new i(a),a.e+1,i.rounding)},U.sine=U.sin=function(){var a,i,e=this,t=e.constructor;return e.isFinite()?e.isZero()?new t(e):(a=t.precision,i=t.rounding,t.precision=a+Math.max(e.e,e.sd())+re,t.rounding=1,e=oc(t,va(t,e)),t.precision=a,t.rounding=i,K(ft>2?e.neg():e,a,i,!0)):new t(NaN)},U.squareRoot=U.sqrt=function(){var a,i,e,t,r,n,s=this,u=s.d,o=s.e,c=s.s,l=s.constructor;if(c!==1||!u||!u[0])return new l(!c||c<0&&(!u||u[0])?NaN:u?s:1/0);for(ie=!1,c=Math.sqrt(+s),c==0||c==1/0?(i=Me(u),(i.length+o)%2==0&&(i+="0"),c=Math.sqrt(i),o=we((o+1)/2)-(o<0||o%2),c==1/0?i="5e"+o:(i=c.toExponential(),i=i.slice(0,i.indexOf("e")+1)+o),t=new l(i)):t=new l(c.toString()),e=(o=l.precision)+3;;)if(n=t,t=n.plus(Ae(s,n,e+2,1)).times(.5),Me(n.d).slice(0,e)===(i=Me(t.d)).slice(0,e))if(i=i.slice(e-3,e+1),i=="9999"||!r&&i=="4999"){if(!r&&(K(n,o+1,0),n.times(n).eq(s))){t=n;break}e+=4,r=1}else{(!+i||!+i.slice(1)&&i.charAt(0)=="5")&&(K(t,o+1,1),a=!t.times(t).eq(s));break}return ie=!0,K(t,o,l.rounding,a)},U.tangent=U.tan=function(){var a,i,e=this,t=e.constructor;return e.isFinite()?e.isZero()?new t(e):(a=t.precision,i=t.rounding,t.precision=a+10,t.rounding=1,e=e.sin(),e.s=1,e=Ae(e,new t(1).minus(e.times(e)).sqrt(),a+10,0),t.precision=a,t.rounding=i,K(ft==2||ft==4?e.neg():e,a,i,!0)):new t(NaN)},U.times=U.mul=function(a){var i,e,t,r,n,s,u,o,c,l=this,f=l.constructor,m=l.d,d=(a=new f(a)).d;if(a.s*=l.s,!m||!m[0]||!d||!d[0])return new f(!a.s||m&&!m[0]&&!d||d&&!d[0]&&!m?NaN:!m||!d?a.s/0:a.s*0);for(e=we(l.e/re)+we(a.e/re),o=m.length,c=d.length,o<c&&(n=m,m=d,d=n,s=o,o=c,c=s),n=[],s=o+c,t=s;t--;)n.push(0);for(t=c;--t>=0;){for(i=0,r=o+t;r>t;)u=n[r]+d[t]*m[r-t-1]+i,n[r--]=u%Ke|0,i=u/Ke|0;n[r]=(n[r]+i)%Ke|0}for(;!n[--s];)n.pop();return i?++e:n.shift(),a.d=n,a.e=Kr(n,e),ie?K(a,f.precision,f.rounding):a},U.toBinary=function(a,i){return Jn(this,2,a,i)},U.toDecimalPlaces=U.toDP=function(a,i){var e=this,t=e.constructor;return e=new t(e),a===void 0?e:(ve(a,0,Rt),i===void 0?i=t.rounding:ve(i,0,8),K(e,a+e.e+1,i))},U.toExponential=function(a,i){var e,t=this,r=t.constructor;return a===void 0?e=nt(t,!0):(ve(a,0,Rt),i===void 0?i=r.rounding:ve(i,0,8),t=K(new r(t),a+1,i),e=nt(t,!0,a+1)),t.isNeg()&&!t.isZero()?"-"+e:e},U.toFixed=function(a,i){var e,t,r=this,n=r.constructor;return a===void 0?e=nt(r):(ve(a,0,Rt),i===void 0?i=n.rounding:ve(i,0,8),t=K(new n(r),a+r.e+1,i),e=nt(t,!1,a+t.e+1)),r.isNeg()&&!r.isZero()?"-"+e:e},U.toFraction=function(a){var i,e,t,r,n,s,u,o,c,l,f,m,d=this,_=d.d,E=d.constructor;if(!_)return new E(d);if(c=e=new E(1),t=o=new E(0),i=new E(t),n=i.e=wa(_)-d.e-1,s=n%re,i.d[0]=Se(10,s<0?re+s:s),a==null)a=n>0?i:c;else{if(u=new E(a),!u.isInt()||u.lt(c))throw Error(pt+u);a=u.gt(i)?n>0?i:c:u}for(ie=!1,u=new E(Me(_)),l=E.precision,E.precision=n=_.length*re*2;f=Ae(u,i,0,1,1),r=e.plus(f.times(t)),r.cmp(a)!=1;)e=t,t=r,r=c,c=o.plus(f.times(r)),o=r,r=i,i=u.minus(f.times(r)),u=r;return r=Ae(a.minus(e),t,0,1,1),o=o.plus(r.times(c)),e=e.plus(r.times(t)),o.s=c.s=d.s,m=Ae(c,t,n,1).minus(d).abs().cmp(Ae(o,e,n,1).minus(d).abs())<1?[c,t]:[o,e],E.precision=l,ie=!0,m},U.toHexadecimal=U.toHex=function(a,i){return Jn(this,16,a,i)},U.toNearest=function(a,i){var e=this,t=e.constructor;if(e=new t(e),a==null){if(!e.d)return e;a=new t(1),i=t.rounding}else{if(a=new t(a),i===void 0?i=t.rounding:ve(i,0,8),!e.d)return a.s?e:a;if(!a.d)return a.s&&(a.s=e.s),a}return a.d[0]?(ie=!1,e=Ae(e,a,0,i,1).times(a),ie=!0,K(e)):(a.s=e.s,e=a),e},U.toNumber=function(){return+this},U.toOctal=function(a,i){return Jn(this,8,a,i)},U.toPower=U.pow=function(a){var i,e,t,r,n,s,u=this,o=u.constructor,c=+(a=new o(a));if(!u.d||!a.d||!u.d[0]||!a.d[0])return new o(Se(+u,c));if(u=new o(u),u.eq(1))return u;if(t=o.precision,n=o.rounding,a.eq(1))return K(u,t,n);if(i=we(a.e/re),i>=a.d.length-1&&(e=c<0?-c:c)<=sc)return r=ja(o,u,e,t),a.s<0?new o(1).div(r):K(r,t,n);if(s=u.s,s<0){if(i<a.d.length-1)return new o(NaN);if(a.d[i]&1||(s=1),u.e==0&&u.d[0]==1&&u.d.length==1)return u.s=s,u}return e=Se(+u,c),i=e==0||!isFinite(e)?we(c*(Math.log("0."+Me(u.d))/Math.LN10+u.e+1)):new o(e+"").e,i>o.maxE+1||i<o.minE-1?new o(i>0?s/0:0):(ie=!1,o.rounding=u.s=1,e=Math.min(12,(i+"").length),r=Zn(a.times(Vt(u,t+e)),t),r.d&&(r=K(r,t+5,1),Cr(r.d,t,n)&&(i=t+10,r=K(Zn(a.times(Vt(u,i+e)),i),i+5,1),+Me(r.d).slice(t+1,t+15)+1==1e14&&(r=K(r,t+1,0)))),r.s=s,ie=!0,o.rounding=n,K(r,t,n))},U.toPrecision=function(a,i){var e,t=this,r=t.constructor;return a===void 0?e=nt(t,t.e<=r.toExpNeg||t.e>=r.toExpPos):(ve(a,1,Rt),i===void 0?i=r.rounding:ve(i,0,8),t=K(new r(t),a,i),e=nt(t,a<=t.e||t.e<=r.toExpNeg,a)),t.isNeg()&&!t.isZero()?"-"+e:e},U.toSignificantDigits=U.toSD=function(a,i){var e=this,t=e.constructor;return a===void 0?(a=t.precision,i=t.rounding):(ve(a,1,Rt),i===void 0?i=t.rounding:ve(i,0,8)),K(new t(e),a,i)},U.toString=function(){var a=this,i=a.constructor,e=nt(a,a.e<=i.toExpNeg||a.e>=i.toExpPos);return a.isNeg()&&!a.isZero()?"-"+e:e},U.truncated=U.trunc=function(){return K(new this.constructor(this),this.e+1,1)},U.valueOf=U.toJSON=function(){var a=this,i=a.constructor,e=nt(a,a.e<=i.toExpNeg||a.e>=i.toExpPos);return a.isNeg()?"-"+e:e};function Me(a){var i,e,t,r=a.length-1,n="",s=a[0];if(r>0){for(n+=s,i=1;i<r;i++)t=a[i]+"",e=re-t.length,e&&(n+=Nt(e)),n+=t;s=a[i],t=s+"",e=re-t.length,e&&(n+=Nt(e))}else if(s===0)return"0";for(;s%10===0;)s/=10;return n+s}function ve(a,i,e){if(a!==~~a||a<i||a>e)throw Error(pt+a)}function Cr(a,i,e,t){var r,n,s,u;for(n=a[0];n>=10;n/=10)--i;return--i<0?(i+=re,r=0):(r=Math.ceil((i+1)/re),i%=re),n=Se(10,re-i),u=a[r]%n|0,t==null?i<3?(i==0?u=u/100|0:i==1&&(u=u/10|0),s=e<4&&u==99999||e>3&&u==49999||u==5e4||u==0):s=(e<4&&u+1==n||e>3&&u+1==n/2)&&(a[r+1]/n/100|0)==Se(10,i-2)-1||(u==n/2||u==0)&&(a[r+1]/n/100|0)==0:i<4?(i==0?u=u/1e3|0:i==1?u=u/100|0:i==2&&(u=u/10|0),s=(t||e<4)&&u==9999||!t&&e>3&&u==4999):s=((t||e<4)&&u+1==n||!t&&e>3&&u+1==n/2)&&(a[r+1]/n/1e3|0)==Se(10,i-3)-1,s}function Xr(a,i,e){for(var t,r=[0],n,s=0,u=a.length;s<u;){for(n=r.length;n--;)r[n]*=i;for(r[0]+=qn.indexOf(a.charAt(s++)),t=0;t<r.length;t++)r[t]>e-1&&(r[t+1]===void 0&&(r[t+1]=0),r[t+1]+=r[t]/e|0,r[t]%=e)}return r.reverse()}function ic(a,i){var e,t,r;if(i.isZero())return i;t=i.d.length,t<32?(e=Math.ceil(t/3),r=(1/zr(4,e)).toString()):(e=16,r="2.3283064365386962890625e-10"),a.precision+=e,i=qt(a,1,i.times(r),new a(1));for(var n=e;n--;){var s=i.times(i);i=s.times(s).minus(s).times(8).plus(1)}return a.precision-=e,i}var Ae=function(){function a(t,r,n){var s,u=0,o=t.length;for(t=t.slice();o--;)s=t[o]*r+u,t[o]=s%n|0,u=s/n|0;return u&&t.unshift(u),t}function i(t,r,n,s){var u,o;if(n!=s)o=n>s?1:-1;else for(u=o=0;u<n;u++)if(t[u]!=r[u]){o=t[u]>r[u]?1:-1;break}return o}function e(t,r,n,s){for(var u=0;n--;)t[n]-=u,u=t[n]<r[n]?1:0,t[n]=u*s+t[n]-r[n];for(;!t[0]&&t.length>1;)t.shift()}return function(t,r,n,s,u,o){var c,l,f,m,d,_,E,b,y,R,p,N,S,P,M,w,x,I,Y,W,X=t.constructor,oe=t.s==r.s?1:-1,te=t.d,H=r.d;if(!te||!te[0]||!H||!H[0])return new X(!t.s||!r.s||(te?H&&te[0]==H[0]:!H)?NaN:te&&te[0]==0||!H?oe*0:oe/0);for(o?(d=1,l=t.e-r.e):(o=Ke,d=re,l=we(t.e/d)-we(r.e/d)),Y=H.length,x=te.length,y=new X(oe),R=y.d=[],f=0;H[f]==(te[f]||0);f++);if(H[f]>(te[f]||0)&&l--,n==null?(P=n=X.precision,s=X.rounding):u?P=n+(t.e-r.e)+1:P=n,P<0)R.push(1),_=!0;else{if(P=P/d+2|0,f=0,Y==1){for(m=0,H=H[0],P++;(f<x||m)&&P--;f++)M=m*o+(te[f]||0),R[f]=M/H|0,m=M%H|0;_=m||f<x}else{for(m=o/(H[0]+1)|0,m>1&&(H=a(H,m,o),te=a(te,m,o),Y=H.length,x=te.length),w=Y,p=te.slice(0,Y),N=p.length;N<Y;)p[N++]=0;W=H.slice(),W.unshift(0),I=H[0],H[1]>=o/2&&++I;do m=0,c=i(H,p,Y,N),c<0?(S=p[0],Y!=N&&(S=S*o+(p[1]||0)),m=S/I|0,m>1?(m>=o&&(m=o-1),E=a(H,m,o),b=E.length,N=p.length,c=i(E,p,b,N),c==1&&(m--,e(E,Y<b?W:H,b,o))):(m==0&&(c=m=1),E=H.slice()),b=E.length,b<N&&E.unshift(0),e(p,E,N,o),c==-1&&(N=p.length,c=i(H,p,Y,N),c<1&&(m++,e(p,Y<N?W:H,N,o))),N=p.length):c===0&&(m++,p=[0]),R[f++]=m,c&&p[0]?p[N++]=te[w]||0:(p=[te[w]],N=1);while((w++<x||p[0]!==void 0)&&P--);_=p[0]!==void 0}R[0]||R.shift()}if(d==1)y.e=l,Da=_;else{for(f=1,m=R[0];m>=10;m/=10)f++;y.e=f+l*d-1,K(y,u?n+y.e+1:n,s,_)}return y}}();function K(a,i,e,t){var r,n,s,u,o,c,l,f,m,d=a.constructor;e:if(i!=null){if(f=a.d,!f)return a;for(r=1,u=f[0];u>=10;u/=10)r++;if(n=i-r,n<0)n+=re,s=i,l=f[m=0],o=l/Se(10,r-s-1)%10|0;else if(m=Math.ceil((n+1)/re),u=f.length,m>=u)if(t){for(;u++<=m;)f.push(0);l=o=0,r=1,n%=re,s=n-re+1}else break e;else{for(l=u=f[m],r=1;u>=10;u/=10)r++;n%=re,s=n-re+r,o=s<0?0:l/Se(10,r-s-1)%10|0}if(t=t||i<0||f[m+1]!==void 0||(s<0?l:l%Se(10,r-s-1)),c=e<4?(o||t)&&(e==0||e==(a.s<0?3:2)):o>5||o==5&&(e==4||t||e==6&&(n>0?s>0?l/Se(10,r-s):0:f[m-1])%10&1||e==(a.s<0?8:7)),i<1||!f[0])return f.length=0,c?(i-=a.e+1,f[0]=Se(10,(re-i%re)%re),a.e=-i||0):f[0]=a.e=0,a;if(n==0?(f.length=m,u=1,m--):(f.length=m+1,u=Se(10,re-n),f[m]=s>0?(l/Se(10,r-s)%Se(10,s)|0)*u:0),c)for(;;)if(m==0){for(n=1,s=f[0];s>=10;s/=10)n++;for(s=f[0]+=u,u=1;s>=10;s/=10)u++;n!=u&&(a.e++,f[0]==Ke&&(f[0]=1));break}else{if(f[m]+=u,f[m]!=Ke)break;f[m--]=0,u=1}for(n=f.length;f[--n]===0;)f.pop()}return ie&&(a.e>d.maxE?(a.d=null,a.e=NaN):a.e<d.minE&&(a.e=0,a.d=[0])),a}function nt(a,i,e){if(!a.isFinite())return Ta(a);var t,r=a.e,n=Me(a.d),s=n.length;return i?(e&&(t=e-s)>0?n=n.charAt(0)+"."+n.slice(1)+Nt(t):s>1&&(n=n.charAt(0)+"."+n.slice(1)),n=n+(a.e<0?"e":"e+")+a.e):r<0?(n="0."+Nt(-r-1)+n,e&&(t=e-s)>0&&(n+=Nt(t))):r>=s?(n+=Nt(r+1-s),e&&(t=e-r-1)>0&&(n=n+"."+Nt(t))):((t=r+1)<s&&(n=n.slice(0,t)+"."+n.slice(t)),e&&(t=e-s)>0&&(r+1===s&&(n+="."),n+=Nt(t))),n}function Kr(a,i){var e=a[0];for(i*=re;e>=10;e/=10)i++;return i}function Zr(a,i,e){if(i>ac)throw ie=!0,e&&(a.precision=e),Error(Sa);return K(new a(Wr),i,1,!0)}function Ze(a,i,e){if(i>Kn)throw Error(Sa);return K(new a(Gr),i,e,!0)}function wa(a){var i=a.length-1,e=i*re+1;if(i=a[i],i){for(;i%10==0;i/=10)e--;for(i=a[0];i>=10;i/=10)e++}return e}function Nt(a){for(var i="";a--;)i+="0";return i}function ja(a,i,e,t){var r,n=new a(1),s=Math.ceil(t/re+4);for(ie=!1;;){if(e%2&&(n=n.times(i),Ba(n.d,s)&&(r=!0)),e=we(e/2),e===0){e=n.d.length-1,r&&n.d[e]===0&&++n.d[e];break}i=i.times(i),Ba(i.d,s)}return ie=!0,n}function xa(a){return a.d[a.d.length-1]&1}function Ua(a,i,e){for(var t,r=new a(i[0]),n=0;++n<i.length;)if(t=new a(i[n]),t.s)r[e](t)&&(r=t);else{r=t;break}return r}function Zn(a,i){var e,t,r,n,s,u,o,c=0,l=0,f=0,m=a.constructor,d=m.rounding,_=m.precision;if(!a.d||!a.d[0]||a.e>17)return new m(a.d?a.d[0]?a.s<0?0:1/0:1:a.s?a.s<0?0:a:NaN);for(i==null?(ie=!1,o=_):o=i,u=new m(.03125);a.e>-2;)a=a.times(u),f+=5;for(t=Math.log(Se(2,f))/Math.LN10*2+5|0,o+=t,e=n=s=new m(1),m.precision=o;;){if(n=K(n.times(a),o,1),e=e.times(++l),u=s.plus(Ae(n,e,o,1)),Me(u.d).slice(0,o)===Me(s.d).slice(0,o)){for(r=f;r--;)s=K(s.times(s),o,1);if(i==null)if(c<3&&Cr(s.d,o-t,d,c))m.precision=o+=10,e=n=u=new m(1),l=0,c++;else return K(s,m.precision=_,d,ie=!0);else return m.precision=_,s}s=u}}function Vt(a,i){var e,t,r,n,s,u,o,c,l,f,m,d=1,_=10,E=a,b=E.d,y=E.constructor,R=y.rounding,p=y.precision;if(E.s<0||!b||!b[0]||!E.e&&b[0]==1&&b.length==1)return new y(b&&!b[0]?-1/0:E.s!=1?NaN:b?0:E);if(i==null?(ie=!1,l=p):l=i,y.precision=l+=_,e=Me(b),t=e.charAt(0),Math.abs(n=E.e)<15e14){for(;t<7&&t!=1||t==1&&e.charAt(1)>3;)E=E.times(a),e=Me(E.d),t=e.charAt(0),d++;n=E.e,t>1?(E=new y("0."+e),n++):E=new y(t+"."+e.slice(1))}else return c=Zr(y,l+2,p).times(n+""),E=Vt(new y(t+"."+e.slice(1)),l-_).plus(c),y.precision=p,i==null?K(E,p,R,ie=!0):E;for(f=E,o=s=E=Ae(E.minus(1),E.plus(1),l,1),m=K(E.times(E),l,1),r=3;;){if(s=K(s.times(m),l,1),c=o.plus(Ae(s,new y(r),l,1)),Me(c.d).slice(0,l)===Me(o.d).slice(0,l))if(o=o.times(2),n!==0&&(o=o.plus(Zr(y,l+2,p).times(n+""))),o=Ae(o,new y(d),l,1),i==null)if(Cr(o.d,l-_,R,u))y.precision=l+=_,c=s=E=Ae(f.minus(1),f.plus(1),l,1),m=K(E.times(E),l,1),r=u=1;else return K(o,y.precision=p,R,ie=!0);else return y.precision=p,o;o=c,r+=2}}function Ta(a){return String(a.s*a.s/0)}function zn(a,i){var e,t,r;for((e=i.indexOf("."))>-1&&(i=i.replace(".","")),(t=i.search(/e/i))>0?(e<0&&(e=t),e+=+i.slice(t+1),i=i.substring(0,t)):e<0&&(e=i.length),t=0;i.charCodeAt(t)===48;t++);for(r=i.length;i.charCodeAt(r-1)===48;--r);if(i=i.slice(t,r),i){if(r-=t,a.e=e=e-t-1,a.d=[],t=(e+1)%re,e<0&&(t+=re),t<r){for(t&&a.d.push(+i.slice(0,t)),r-=re;t<r;)a.d.push(+i.slice(t,t+=re));i=i.slice(t),t=re-i.length}else t-=r;for(;t--;)i+="0";a.d.push(+i),ie&&(a.e>a.constructor.maxE?(a.d=null,a.e=NaN):a.e<a.constructor.minE&&(a.e=0,a.d=[0]))}else a.e=0,a.d=[0];return a}function uc(a,i){var e,t,r,n,s,u,o,c,l;if(i.indexOf("_")>-1){if(i=i.replace(/(\d)_(?=\d)/g,"$1"),Ma.test(i))return zn(a,i)}else if(i==="Infinity"||i==="NaN")return+i||(a.s=NaN),a.e=NaN,a.d=null,a;if(rc.test(i))e=16,i=i.toLowerCase();else if(tc.test(i))e=2;else if(nc.test(i))e=8;else throw Error(pt+i);for(n=i.search(/p/i),n>0?(o=+i.slice(n+1),i=i.substring(2,n)):i=i.slice(2),n=i.indexOf("."),s=n>=0,t=a.constructor,s&&(i=i.replace(".",""),u=i.length,n=u-n,r=ja(t,new t(e),n,n*2)),c=Xr(i,e,Ke),l=c.length-1,n=l;c[n]===0;--n)c.pop();return n<0?new t(a.s*0):(a.e=Kr(c,l),a.d=c,ie=!1,s&&(a=Ae(a,r,u*4)),o&&(a=a.times(Math.abs(o)<54?Se(2,o):j.pow(2,o))),ie=!0,a)}function oc(a,i){var e,t=i.d.length;if(t<3)return i.isZero()?i:qt(a,2,i,i);e=1.4*Math.sqrt(t),e=e>16?16:e|0,i=i.times(1/zr(5,e)),i=qt(a,2,i,i);for(var r,n=new a(5),s=new a(16),u=new a(20);e--;)r=i.times(i),i=i.times(n.plus(r.times(s.times(r).minus(u))));return i}function qt(a,i,e,t,r){var n,s,u,o,c=a.precision,l=Math.ceil(c/re);for(ie=!1,o=e.times(e),u=new a(t);;){if(s=Ae(u.times(o),new a(i++*i++),c,1),u=r?t.plus(s):t.minus(s),t=Ae(s.times(o),new a(i++*i++),c,1),s=u.plus(t),s.d[l]!==void 0){for(n=l;s.d[n]===u.d[n]&&n--;);if(n==-1)break}n=u,u=t,t=s,s=n}return ie=!0,s.d.length=l+1,s}function zr(a,i){for(var e=a;--i;)e*=a;return e}function va(a,i){var e,t=i.s<0,r=Ze(a,a.precision,1),n=r.times(.5);if(i=i.abs(),i.lte(n))return ft=t?4:1,i;if(e=i.divToInt(r),e.isZero())ft=t?3:2;else{if(i=i.minus(e.times(r)),i.lte(n))return ft=xa(e)?t?2:3:t?4:1,i;ft=xa(e)?t?1:4:t?3:2}return i.minus(r).abs()}function Jn(a,i,e,t){var r,n,s,u,o,c,l,f,m,d=a.constructor,_=e!==void 0;if(_?(ve(e,1,Rt),t===void 0?t=d.rounding:ve(t,0,8)):(e=d.precision,t=d.rounding),!a.isFinite())l=Ta(a);else{for(l=nt(a),s=l.indexOf("."),_?(r=2,i==16?e=e*4-3:i==8&&(e=e*3-2)):r=i,s>=0&&(l=l.replace(".",""),m=new d(1),m.e=l.length-s,m.d=Xr(nt(m),10,r),m.e=m.d.length),f=Xr(l,10,r),n=o=f.length;f[--o]==0;)f.pop();if(!f[0])l=_?"0p+0":"0";else{if(s<0?n--:(a=new d(a),a.d=f,a.e=n,a=Ae(a,m,e,t,0,r),f=a.d,n=a.e,c=Da),s=f[e],u=r/2,c=c||f[e+1]!==void 0,c=t<4?(s!==void 0||c)&&(t===0||t===(a.s<0?3:2)):s>u||s===u&&(t===4||c||t===6&&f[e-1]&1||t===(a.s<0?8:7)),f.length=e,c)for(;++f[--e]>r-1;)f[e]=0,e||(++n,f.unshift(1));for(o=f.length;!f[o-1];--o);for(s=0,l="";s<o;s++)l+=qn.charAt(f[s]);if(_){if(o>1)if(i==16||i==8){for(s=i==16?4:3,--o;o%s;o++)l+="0";for(f=Xr(l,r,i),o=f.length;!f[o-1];--o);for(s=1,l="1.";s<o;s++)l+=qn.charAt(f[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(n<0?"p":"p+")+n}else if(n<0){for(;++n;)l="0"+l;l="0."+l}else if(++n>o)for(n-=o;n--;)l+="0";else n<o&&(l=l.slice(0,n)+"."+l.slice(n))}l=(i==16?"0x":i==2?"0b":i==8?"0o":"")+l}return a.s<0?"-"+l:l}function Ba(a,i){if(a.length>i)return a.length=i,!0}function cc(a){return new this(a).abs()}function lc(a){return new this(a).acos()}function fc(a){return new this(a).acosh()}function mc(a,i){return new this(a).plus(i)}function hc(a){return new this(a).asin()}function gc(a){return new this(a).asinh()}function dc(a){return new this(a).atan()}function Cc(a){return new this(a).atanh()}function _c(a,i){a=new this(a),i=new this(i);var e,t=this.precision,r=this.rounding,n=t+4;return!a.s||!i.s?e=new this(NaN):!a.d&&!i.d?(e=Ze(this,n,1).times(i.s>0?.25:.75),e.s=a.s):!i.d||a.isZero()?(e=i.s<0?Ze(this,t,r):new this(0),e.s=a.s):!a.d||i.isZero()?(e=Ze(this,n,1).times(.5),e.s=a.s):i.s<0?(this.precision=n,this.rounding=1,e=this.atan(Ae(a,i,n,1)),i=Ze(this,n,1),this.precision=t,this.rounding=r,e=a.s<0?e.minus(i):e.plus(i)):e=this.atan(Ae(a,i,n,1)),e}function Ec(a){return new this(a).cbrt()}function bc(a){return K(a=new this(a),a.e+1,2)}function Ac(a,i,e){return new this(a).clamp(i,e)}function yc(a){if(!a||typeof a!="object")throw Error(qr+"Object expected");var i,e,t,r=a.defaults===!0,n=["precision",1,Rt,"rounding",0,8,"toExpNeg",-Gt,0,"toExpPos",0,Gt,"maxE",0,Gt,"minE",-Gt,0,"modulo",0,9];for(i=0;i<n.length;i+=3)if(e=n[i],r&&(this[e]=Xn[e]),(t=a[e])!==void 0)if(we(t)===t&&t>=n[i+1]&&t<=n[i+2])this[e]=t;else throw Error(pt+e+": "+t);if(e="crypto",r&&(this[e]=Xn[e]),(t=a[e])!==void 0)if(t===!0||t===!1||t===0||t===1)if(t)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[e]=!0;else throw Error(La);else this[e]=!1;else throw Error(pt+e+": "+t);return this}function Rc(a){return new this(a).cos()}function pc(a){return new this(a).cosh()}function Fa(a){var i,e,t;function r(n){var s,u,o,c=this;if(!(c instanceof r))return new r(n);if(c.constructor=r,Ia(n)){c.s=n.s,ie?!n.d||n.e>r.maxE?(c.e=NaN,c.d=null):n.e<r.minE?(c.e=0,c.d=[0]):(c.e=n.e,c.d=n.d.slice()):(c.e=n.e,c.d=n.d?n.d.slice():n.d);return}if(o=typeof n,o==="number"){if(n===0){c.s=1/n<0?-1:1,c.e=0,c.d=[0];return}if(n<0?(n=-n,c.s=-1):c.s=1,n===~~n&&n<1e7){for(s=0,u=n;u>=10;u/=10)s++;ie?s>r.maxE?(c.e=NaN,c.d=null):s<r.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[n]):(c.e=s,c.d=[n]);return}else if(n*0!==0){n||(c.s=NaN),c.e=NaN,c.d=null;return}return zn(c,n.toString())}else if(o!=="string")throw Error(pt+n);return(u=n.charCodeAt(0))===45?(n=n.slice(1),c.s=-1):(u===43&&(n=n.slice(1)),c.s=1),Ma.test(n)?zn(c,n):uc(c,n)}if(r.prototype=U,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=yc,r.clone=Fa,r.isDecimal=Ia,r.abs=cc,r.acos=lc,r.acosh=fc,r.add=mc,r.asin=hc,r.asinh=gc,r.atan=dc,r.atanh=Cc,r.atan2=_c,r.cbrt=Ec,r.ceil=bc,r.clamp=Ac,r.cos=Rc,r.cosh=pc,r.div=Nc,r.exp=Vc,r.floor=Oc,r.hypot=Dc,r.ln=Sc,r.log=Lc,r.log10=Mc,r.log2=Pc,r.max=wc,r.min=jc,r.mod=xc,r.mul=Uc,r.pow=Tc,r.random=vc,r.round=Bc,r.sign=Fc,r.sin=Ic,r.sinh=kc,r.sqrt=$c,r.sub=Yc,r.sum=Hc,r.tan=Qc,r.tanh=Wc,r.trunc=Gc,a===void 0&&(a={}),a&&a.defaults!==!0)for(t=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],i=0;i<t.length;)a.hasOwnProperty(e=t[i++])||(a[e]=this[e]);return r.config(a),r}function Nc(a,i){return new this(a).div(i)}function Vc(a){return new this(a).exp()}function Oc(a){return K(a=new this(a),a.e+1,3)}function Dc(){var a,i,e=new this(0);for(ie=!1,a=0;a<arguments.length;)if(i=new this(arguments[a++]),i.d)e.d&&(e=e.plus(i.times(i)));else{if(i.s)return ie=!0,new this(1/0);e=i}return ie=!0,e.sqrt()}function Ia(a){return a instanceof j||a&&a.toStringTag===Pa||!1}function Sc(a){return new this(a).ln()}function Lc(a,i){return new this(a).log(i)}function Pc(a){return new this(a).log(2)}function Mc(a){return new this(a).log(10)}function wc(){return Ua(this,arguments,"lt")}function jc(){return Ua(this,arguments,"gt")}function xc(a,i){return new this(a).mod(i)}function Uc(a,i){return new this(a).mul(i)}function Tc(a,i){return new this(a).pow(i)}function vc(a){var i,e,t,r,n=0,s=new this(1),u=[];if(a===void 0?a=this.precision:ve(a,1,Rt),t=Math.ceil(a/re),this.crypto)if(crypto.getRandomValues)for(i=crypto.getRandomValues(new Uint32Array(t));n<t;)r=i[n],r>=429e7?i[n]=crypto.getRandomValues(new Uint32Array(1))[0]:u[n++]=r%1e7;else if(crypto.randomBytes){for(i=crypto.randomBytes(t*=4);n<t;)r=i[n]+(i[n+1]<<8)+(i[n+2]<<16)+((i[n+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(i,n):(u.push(r%1e7),n+=4);n=t/4}else throw Error(La);else for(;n<t;)u[n++]=Math.random()*1e7|0;for(t=u[--n],a%=re,t&&a&&(r=Se(10,re-a),u[n]=(t/r|0)*r);u[n]===0;n--)u.pop();if(n<0)e=0,u=[0];else{for(e=-1;u[0]===0;e-=re)u.shift();for(t=1,r=u[0];r>=10;r/=10)t++;t<re&&(e-=re-t)}return s.e=e,s.d=u,s}function Bc(a){return K(a=new this(a),a.e+1,this.rounding)}function Fc(a){return a=new this(a),a.d?a.d[0]?a.s:0*a.s:a.s||NaN}function Ic(a){return new this(a).sin()}function kc(a){return new this(a).sinh()}function $c(a){return new this(a).sqrt()}function Yc(a,i){return new this(a).sub(i)}function Hc(){var a=0,i=arguments,e=new this(i[a]);for(ie=!1;e.s&&++a<i.length;)e=e.plus(i[a]);return ie=!0,K(e,this.precision,this.rounding)}function Qc(a){return new this(a).tan()}function Wc(a){return new this(a).tanh()}function Gc(a){return K(a=new this(a),a.e+1,1)}U[Symbol.for("nodejs.util.inspect.custom")]=U.toString,U[Symbol.toStringTag]="Decimal";var j=U.constructor=Fa(Xn);Wr=new j(Wr),Gr=new j(Gr);function qc(a,i){const e=a+i;return Number.isSafeInteger(e)?e:new j(a).add(i).toNumber()}function Xc(a,i){const e=a-i;return Number.isSafeInteger(e)?e:new j(a).sub(i).toNumber()}function Xt(a,i){const e=a*i;return Number.isSafeInteger(e)?e:new j(a).mul(i).toNumber()}function Kc(a,i){const e=a/i;return Number.isSafeInteger(e)?e:new j(a).div(i).toNumber()}function Ot(a,i){const e=10**Math.trunc(i),t=Jr(a,e);return Math.round(Xt(a,e)+t)/e}function st(a,i){const e=10**Math.trunc(i),t=Jr(a,e);return Math.floor(Xt(a,e)+t)/e}function Be(a,i){const e=10**Math.trunc(i),t=Jr(a,e);return Math.ceil(Xt(a,e)-t)/e}function Jr(a,i){return Number.EPSILON*Math.max(1,Math.abs(Xt(a,i)))}function ka(a,i){return a-i*Math.floor(a/i)}function Zc(a,i){return a**i}function zc(a){return Math.sqrt(a)}function $a(a,i){return a===i}function Jc(a,i){return a>i}function el(a,i){return a>=i}function tl(a,i){return a<i}function rl(a,i){return a<=i}function es(a,i=15){return Number.parseFloat(a.toPrecision(i))}function nl(a,i,e=Number.EPSILON){return Math.abs(a-i)<e}function Ya(a,i=12,e=1e-10){const t=es(a,i);return nl(a,t,e)?t:es(a)}function sl(a){return a-Math.trunc(a)}const On=class On extends lt{static create(){return this._instance=this._instance||new On(0),this._instance}isNull(){return!0}plus(i){return A.create(0).plus(i)}minus(i){return A.create(0).minus(i)}multiply(i){return A.create(0).multiply(i)}divided(i){return A.create(0).divided(i)}mod(i){return A.create(0).mod(i)}compare(i,e){return i.isString()?T.create("").compare(i,e):i.isBoolean()?F.create(!1).compare(i,e):A.create(0).compare(i,e)}concatenateFront(i){return i.isArray()?i.concatenateBack(T.create("")):T.create(this.concatenate(i.getValue(),Xe.FRONT))}concatenateBack(i){return i.isArray()?i.concatenateFront(T.create("")):T.create(this.concatenate(i.getValue(),Xe.BACK))}plusBy(i){return A.create(0).plusBy(i)}minusBy(i){return A.create(0).minusBy(i)}multiplyBy(i){return A.create(0).multiplyBy(i)}dividedBy(i){return A.create(0).dividedBy(i)}compareBy(i,e){return typeof i=="string"?T.create("").compareBy(i,e):typeof i=="boolean"?F.create(!1).compareBy(i,e):A.create(0).compareBy(i,e)}pow(i){return A.create(0).pow(i)}sqrt(){return A.create(0).sqrt()}cbrt(){return A.create(0).cbrt()}cos(){return A.create(0).cos()}cosh(){return A.create(0).cosh()}acos(){return A.create(0).acos()}acosh(){return A.create(0).acosh()}sin(){return A.create(0).sin()}sinh(){return A.create(0).sinh()}asin(){return A.create(0).asin()}asinh(){return A.create(0).asinh()}tan(){return A.create(0).tan()}tanh(){return A.create(0).tanh()}atan(){return A.create(0).atan()}atan2(i){return A.create(0).atan2(i)}atanh(){return A.create(0).atanh()}log(){return g.create(h.NUM)}log10(){return g.create(h.NUM)}exp(){return A.create(0).exp()}abs(){return A.create(0).abs()}round(i){return A.create(0).round(i)}floor(i){return A.create(0).floor(i)}ceil(i){return A.create(0).ceil(i)}convertToNumberObjectValue(){return A.create(0)}convertToBooleanObjectValue(){return F.create(!1)}};C(On,"_instance");let J=On;const Yt=class Yt extends lt{constructor(e){super(e);C(this,"_value",!1);this._value=e}static create(e){return e?(this._instanceTrue=this._instanceTrue||new Yt(!0),this._instanceTrue):(this._instanceFalse=this._instanceFalse||new Yt(!1),this._instanceFalse)}getValue(){return this._value}isBoolean(){return!0}getNegative(){const e=this.getValue();let t=0;return e&&(t=1),A.create(-t)}getReciprocal(){return this.getValue()?A.create(1):g.create(h.DIV_BY_ZERO)}plus(e){return this._convertToNumber().plus(e)}minus(e){return this._convertToNumber().minus(e)}multiply(e){return this._convertToNumber().multiply(e)}divided(e){return this._convertToNumber().divided(e)}mod(e){return this._convertToNumber().mod(e)}compare(e,t){return e.isArray()?e.compare(this,Hn(t)):e.isNull()?this._convertToNumber().compare(e,t):this.compareBy(e.getValue(),t)}compareBy(e,t){let r=!1;if(typeof e=="string"||typeof e=="number")r=this._compareString(t);else if(typeof e=="boolean"){const n=A.create(e?1:0);return this._convertToNumber().compare(n,t)}return Yt.create(r)}_compareString(e){switch(e){case B.GREATER_THAN:case B.GREATER_THAN_OR_EQUAL:return!0;case B.EQUALS:case B.LESS_THAN:case B.LESS_THAN_OR_EQUAL:case B.NOT_EQUAL:return!1}}concatenateFront(e){return this._convertToNumber().concatenateFront(e)}concatenateBack(e){return this._convertToNumber().concatenateBack(e)}_convertToNumber(){const e=this.getValue();let t=0;return e&&(t=1),A.create(t)}pow(e){return this._convertToNumber().pow(e)}sqrt(){return this._convertToNumber().sqrt()}cbrt(){return this._convertToNumber().cbrt()}cos(){return this._convertToNumber().cos()}cosh(){return this._convertToNumber().cosh()}acos(){return this._convertToNumber().acos()}acosh(){return this._convertToNumber().acosh()}sin(){return this._convertToNumber().sin()}sinh(){return this._convertToNumber().sinh()}asin(){return this._convertToNumber().asin()}asinh(){return this._convertToNumber().asinh()}tan(){return this._convertToNumber().tan()}tanh(){return this._convertToNumber().tanh()}atan(){return this._convertToNumber().atan()}atan2(e){return this._convertToNumber().atan2(e)}atanh(){return this._convertToNumber().atanh()}log(){return this._convertToNumber().log()}log10(){return this._convertToNumber().log10()}exp(){return this._convertToNumber().exp()}abs(){return this._convertToNumber().abs()}round(e){return this._convertToNumber().round(e)}floor(e){return this._convertToNumber().floor(e)}ceil(e){return this._convertToNumber().ceil(e)}convertToNumberObjectValue(){return tn(this.getValue())}convertToBooleanObjectValue(){return this}};C(Yt,"_instanceTrue"),C(Yt,"_instanceFalse");let F=Yt;const al=2e5,Ha=new rt(al);class A extends lt{constructor(e){super(e);C(this,"_value",0);this._value=Number(e)}static create(e,t=""){const r=`${e}-${t}`,n=Ha.get(r);if(n)return n;const s=new A(e);return t&&s.setPattern(t),Ha.set(r,s),s}getValue(){return this._value}setValue(e){this._value=e}isNumber(){return!0}getNegative(){return A.create(0).minus(this)}getReciprocal(){return A.create(1).divided(this)}plus(e){if(e.isArray())return e.plus(this);let t=this.plusBy(e.getValue());if(t.isError())return t;const r=Yr(this.getPattern(),e.getPattern(),G.PLUS);return t=A.create(Number(t.getValue()),r),t}equalZero(){return this._value===0}minus(e){if(e.isArray()){const n=e.getNegative();return n.isError()?n:n.plus(this)}let t=this.minusBy(e.getValue());if(t.isError())return t;const r=Yr(this.getPattern(),e.getPattern(),G.MINUS);return t=A.create(Number(t.getValue()),r),t}multiply(e){if(e.isArray())return e.multiply(this);let t=this.multiplyBy(e.getValue());if(t.isError())return t;const r=Yr(this.getPattern(),e.getPattern(),G.MULTIPLY);return t=A.create(Number(t.getValue()),r),t}divided(e){if(e.isArray()){const n=e.getReciprocal();return n.isError()?n:n.multiply(this)}let t=this.dividedBy(e.getValue());if(t.isError())return t;const r=Yr(this.getPattern(),e.getPattern(),G.DIVIDED);return t=A.create(Number(t.getValue()),r),t}mod(e){if(e.isArray())return e.modInverse(this);const t=this.getValue(),r=e.getValue();if(e.isNull())return g.create(h.DIV_BY_ZERO);if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(r===0)return g.create(h.DIV_BY_ZERO);if(!Number.isFinite(t)||!Number.isFinite(r)||Math.abs(r)*11259e8<=Math.abs(t))return g.create(h.NUM);const n=ka(t,r);return Number.isFinite(n)?A.create(n):g.create(h.NUM)}if(typeof r=="boolean"){const n=r?1:0;return n===0?g.create(h.DIV_BY_ZERO):A.create(ka(t,n))}return this}concatenateFront(e){return e.isArray()?e.concatenateBack(this):T.create(this.concatenate(e.getValue(),Xe.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):T.create(this.concatenate(e.getValue(),Xe.BACK))}compare(e,t){return e.isArray()?e.compare(this,Hn(t)):this.compareBy(e.getValue(),t)}plusBy(e){const t=+this.getValue(),r=+e;if(Number.isNaN(t)||Number.isNaN(r))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=qc(t,r);return Number.isFinite(n)?A.create(n):g.create(h.NUM)}minusBy(e){const t=+this.getValue(),r=+e;if(Number.isNaN(t)||Number.isNaN(r))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=Xc(t,r);return Number.isFinite(n)?A.create(n):g.create(h.NUM)}multiplyBy(e){const t=+this.getValue(),r=+e;if(Number.isNaN(t)||Number.isNaN(r))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=Xt(t,r);return Number.isFinite(n)?A.create(n):g.create(h.NUM)}dividedBy(e){const t=+this.getValue(),r=+e;if(Number.isNaN(t)||Number.isNaN(r))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);if(r===0)return g.create(h.DIV_BY_ZERO);const n=Kc(t,r);return Number.isFinite(n)?A.create(n):g.create(h.NUM)}compareBy(e,t){const r=this.getValue();let n=!1;return typeof e=="string"?n=this._compareString(t):typeof e=="number"?n=this._compareNumber(r,e,t):typeof e=="boolean"&&(n=this._compareBoolean(t)),F.create(n)}_compareString(e){switch(e){case B.EQUALS:case B.GREATER_THAN:case B.GREATER_THAN_OR_EQUAL:return!1;case B.LESS_THAN:case B.LESS_THAN_OR_EQUAL:case B.NOT_EQUAL:return!0}}_compareNumber(e,t,r){return!Number.isFinite(e)||!Number.isFinite(t)?this._compareInfinity(e,t,r):this._compareFiniteNumber(e,t,r)}_compareFiniteNumber(e,t,r){switch(r){case B.EQUALS:return $a(e,t);case B.GREATER_THAN:return Jc(e,t);case B.GREATER_THAN_OR_EQUAL:return el(e,t);case B.LESS_THAN:return tl(e,t);case B.LESS_THAN_OR_EQUAL:return rl(e,t);case B.NOT_EQUAL:return!$a(e,t)}}_compareBoolean(e){switch(e){case B.EQUALS:case B.GREATER_THAN:case B.GREATER_THAN_OR_EQUAL:return!1;case B.LESS_THAN:case B.LESS_THAN_OR_EQUAL:case B.NOT_EQUAL:return!0}}pow(e){if(e.isArray())return e.powInverse(this);if(this.isError())return this;const t=this.getValue();let r=e;if(e.isString()&&(r=e.convertToNumberObjectValue()),r.isError())return r;const n=+r.getValue();if(Number.isNaN(n))return g.create(h.VALUE);if(!Number.isFinite(t)||!Number.isFinite(n))return g.create(h.NUM);if(t===0)return n<0?g.create(h.DIV_BY_ZERO):n===0?g.create(h.NUM):A.create(0);const s=Zc(t,n);return Number.isFinite(s)?A.create(s):g.create(h.NUM)}sqrt(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=zc(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}cbrt(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.cbrt(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}cos(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.cos(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}cosh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.cosh(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}acos(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.acos(e);return Number.isNaN(t)?g.create(h.NUM):A.create(t)}acosh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.acosh(e);return Number.isNaN(t)?g.create(h.NUM):A.create(t)}sin(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.sin(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}sinh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.sinh(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}asin(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.asin(e);return Number.isNaN(t)?g.create(h.NUM):A.create(t)}asinh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.asinh(e);return Number.isNaN(t)?g.create(h.NUM):A.create(t)}tan(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.tan(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}tanh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.tanh(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}atan(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.atan(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}atan2(e){if(e.isArray())return e.atan2Inverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);if(t===0&&r===0)return g.create(h.DIV_BY_ZERO);const n=Math.atan2(t,r);return Number.isFinite(n)?A.create(n):g.create(h.NUM)}return typeof r=="boolean"?A.create(Math.atan2(t,r?1:0)):this}atanh(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.atanh(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}log(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return g.create(h.NUM);const t=Math.log(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}log10(){const e=this.getValue();if(typeof e=="number"&&e<=0||!Number.isFinite(e))return g.create(h.NUM);const t=Math.log10(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}exp(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.exp(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}abs(){const e=this.getValue();if(!Number.isFinite(e))return g.create(h.NUM);const t=Math.abs(e);return Number.isFinite(t)?A.create(t):g.create(h.NUM)}round(e){if(e.isArray())return e.roundInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=t<0?-Ot(Math.abs(t),r):Ot(t,r);return Number.isFinite(n)?A.create(n):g.create(h.NUM)}return typeof r=="boolean"?A.create(Ot(t,r?1:0)):this}floor(e){if(e.isArray())return e.floorInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=t<0?-st(Math.abs(t),r):st(t,r);return Number.isFinite(n)?A.create(n):g.create(h.NUM)}return typeof r=="boolean"?A.create(st(t,r?1:0)):this}ceil(e){if(e.isArray())return e.ceilInverse(this);const t=this.getValue(),r=e.getValue();if(typeof r=="string")return g.create(h.VALUE);if(typeof r=="number"){if(!Number.isFinite(t)||!Number.isFinite(r))return g.create(h.NUM);const n=t<0?-Be(Math.abs(t),r):Be(t,r);return Number.isFinite(n)?A.create(n):g.create(h.NUM)}return typeof r=="boolean"?A.create(Be(t,r?1:0)):this}convertToNumberObjectValue(){return this}convertToBooleanObjectValue(){return en(!0)}_compareInfinity(e,t,r){let n=!1;switch(r){case B.EQUALS:n=e===t;break;case B.GREATER_THAN:n=e>t;break;case B.GREATER_THAN_OR_EQUAL:n=e>=t;break;case B.LESS_THAN:n=e<t;break;case B.LESS_THAN_OR_EQUAL:n=e<=t;break;case B.NOT_EQUAL:n=e!==t;break}return n}}const il=2e5,Qa=new rt(il);class T extends lt{constructor(e){super(e);C(this,"_value");this._value=e}static create(e){const t=Qa.get(e);if(t)return t;const r=new T(e);return Qa.set(e,r),r}getValue(){return this._value}isString(){return!0}concatenateFront(e){return e.isArray()?e.concatenateBack(this):T.create(this.concatenate(e.getValue(),Xe.FRONT))}concatenateBack(e){return e.isArray()?e.concatenateFront(this):T.create(this.concatenate(e.getValue(),Xe.BACK))}plus(e){return this.convertToNumberObjectValue().plus(e)}minus(e){return this.convertToNumberObjectValue().minus(e)}multiply(e){return this.convertToNumberObjectValue().multiply(e)}divided(e){return this.convertToNumberObjectValue().divided(e)}compare(e,t,r){return e.isArray()?e.compare(this,Hn(t),r):this.compareBy(e.getValue(),t,r)}compareBy(e,t,r=!1){let n=this.getValue(),s=!1;if(typeof e=="string"){let u=e;if(r||(n=n.toLocaleLowerCase(),u=u.toLocaleLowerCase()),zo(u))return this._checkWildcard(u,t);s=this._compareString(n,u,t)}else typeof e=="number"?s=this._compareNumber(t):typeof e=="boolean"&&(s=this._compareBoolean(t));return F.create(s)}_compareString(e,t,r){switch(r){case B.EQUALS:return e===t;case B.GREATER_THAN:return e>t;case B.GREATER_THAN_OR_EQUAL:return e>=t;case B.LESS_THAN:return e<t;case B.LESS_THAN_OR_EQUAL:return e<=t;case B.NOT_EQUAL:return e!==t}}_compareNumber(e){switch(e){case B.NOT_EQUAL:case B.GREATER_THAN:case B.GREATER_THAN_OR_EQUAL:return!0;case B.EQUALS:case B.LESS_THAN:case B.LESS_THAN_OR_EQUAL:return!1}}_compareBoolean(e){switch(e){case B.EQUALS:case B.GREATER_THAN:case B.GREATER_THAN_OR_EQUAL:return!1;case B.LESS_THAN:case B.LESS_THAN_OR_EQUAL:case B.NOT_EQUAL:return!0}}convertToNumberObjectValue(){return tn(this.getValue())}convertToBooleanObjectValue(){return F.create(!0)}_checkWildcard(e,t){const r=this.getValue().toLocaleLowerCase(),n=Jo(r,e,t);return F.create(n)}}function en(a){if(typeof a=="boolean")return F.create(a);let i=!1;if(typeof a=="string"){const e=a.toLocaleUpperCase();e===dt.TRUE?i=!0:e===dt.FALSE&&(i=!1)}else a===1?i=!0:i=!1;return F.create(i)}function ul(a){let i=a.toString();return i.charAt(0)==='"'&&i.charAt(i.length-1)==='"'&&(i=i.slice(1,-1),i=i.replace(/""/g,'"')),T.create(i)}function tn(a,i=""){if(typeof a=="boolean"){let e=0;return a&&(e=1),A.create(e,i)}else{if(typeof a=="number")return Number.isFinite(a)?A.create(a,i):g.create(h.NUM);if(O.isRealNum(a))return A.create(Number(a),i)}return g.create(h.VALUE)}function ol(a){return""}function Wa(a=[]){const i=[];for(let e=0;e<a.length;e++){const t=a[e];i[e]==null&&(i[e]=[]);for(let r=0;r<t.length;r++){const n=t[r];i[e][r]=mt.create(n)}}return i}function cl(a=[]){const i=[];for(let e=0;e<a.length;e++){const t=a[e];i[e]==null&&(i[e]=[]);for(let r=0;r<t.length;r++){const n=t[r];n==null?i[e][r]=null:n.isError()?i[e][r]=n.getErrorType():i[e][r]=n.getValue()}}return i}class ee extends lt{constructor(e){super(typeof e=="string"?e:ol());C(this,"_values",[]);C(this,"_rowCount",-1);C(this,"_columnCount",-1);C(this,"_unitId","");C(this,"_sheetId","");C(this,"_currentRow",-1);C(this,"_currentColumn",-1);C(this,"_sliceCache",new Map);C(this,"_flattenCache");C(this,"_defaultValue",null);C(this,"_flattenPosition");this._values=this._formatValue(e)}static create(e){return new ee(e)}static createByArray(e){const r={calculateValueList:Wa(e),rowCount:e.length,columnCount:e[0].length||0,unitId:"",sheetId:"",row:-1,column:-1};return new ee(r)}dispose(){this._values.forEach(e=>{e.forEach(t=>{t==null||t.dispose()})}),this._values=[],this._clearCache()}clone(){return this.map(e=>e)}getRowCount(){return this._rowCount}setRowCount(e){this._rowCount=e}getColumnCount(){return this._columnCount}setColumnCount(e){this._columnCount=e}setCurrent(e,t){this._currentRow=e,this._currentColumn=t}setUnitId(e){this._unitId=e}getUnitId(){return this._unitId}setSheetId(e){this._sheetId=e}getSheetId(){return this._sheetId}getCurrentRow(){return this._currentRow}getCurrentColumn(){return this._currentColumn}getArrayValue(){return this._values}setArrayValue(e){this._clearCache(),this._values=e}isArray(){return!0}setDefaultValue(e){this._defaultValue=e}get(e,t){var r;return((r=this._values[e])==null?void 0:r[t])||this._defaultValue}getRealValue(e,t){const r=this._values[e];if(r==null)return null;const n=r[t];return n==null?null:n}getValueOrDefault(e,t){return this.get(e,t)||this._defaultValue}set(e,t,r){if(e>=this._rowCount||t>=this._columnCount)throw new Error("Exceeding array bounds.");this._clearCache(),this._values[e][t]=r}getRangePosition(){const t=this.getRowCount(),r=0,n=this.getColumnCount();return{startRow:0,endRow:t-1,startColumn:r,endColumn:n-1}}iterator(e){var o;const{startRow:t,endRow:r,startColumn:n,endColumn:s}=this.getRangePosition(),u=this.getArrayValue();for(let c=t;c<=r;c++)for(let l=n;l<=s;l++)if(e(((o=u[c])==null?void 0:o[l])||this._defaultValue,c,l)===!1)return}iteratorReverse(e){var o;const{startRow:t,endRow:r,startColumn:n,endColumn:s}=this.getRangePosition(),u=this.getArrayValue();for(let c=r;c>=t;c--)for(let l=s;l>=n;l--)if(e(((o=u[c])==null?void 0:o[l])||this._defaultValue,c,l)===!1)return}getLastTruePosition(){let e;return this.iteratorReverse((t,r,n)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:n},!1}),e}getFirstTruePosition(){let e;return this.iterator((t,r,n)=>{if(t!=null&&t.isBoolean()&&t.getValue()===!0)return e={row:r,column:n},!1}),e}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||J.create()}getLastCell(){const{endRow:e,endColumn:t}=this.getRangePosition();return this.get(e,t)||this._defaultValue||J.create()}pick(e){const t=this.pickRaw(e);return this._createNewArray(t,1,t[0].length)}pickRaw(e){const t=e.getRowCount(),r=e.getColumnCount();if(t!==this._rowCount||r!==this._columnCount)return[[J.create()]];const n=[];n[0]=[];for(let s=0;s<t;s++)for(let u=0;u<r;u++){const o=e.get(s,u);if(!(o==null||o.isError())&&o.getValue()===!0){const c=this.get(s,u);n[0].push(c)}}return n}flatten(){if(this._flattenCache!=null)return this._flattenCache;const e=[];e[0]=[];for(let r=0;r<this._rowCount;r++)for(let n=0;n<this._columnCount;n++){const s=this.get(r,n);e[0].push(s)}const t=this._createNewArray(e,1,e[0].length);return t.setDefaultValue(this._defaultValue),this._flattenCache=t,t}flattenPosition(){if(this._flattenPosition!=null)return this._flattenPosition;const e=[],t=[],r=[],n=[];let s=0;for(let o=0;o<this._rowCount;o++)for(let c=0;c<this._columnCount;c++){const l=this.get(o,c);if(l==null||l.isError()||l.isNull()){s++;continue}l.isString()?(e.push(l),r.push(s++)):(t.push(l),n.push(s++))}const u={stringArray:e,numberArray:t,stringPosition:r,numberPosition:n};return this._flattenPosition=u,u}slice(e,t){let r=0,n=this._rowCount,s=1,u=0,o=this._columnCount,c=1;if(e!=null&&(r=e[0]||0,n=e[1]||this._rowCount,s=e[2]||1),t!=null&&(u=t[0]||0,o=t[1]||this._columnCount,c=t[2]||1),r>=this._rowCount||u>=this._columnCount)return;const l=`${r}_${n}_${s}_${u}_${o}_${c}`,f=this._sliceCache.get(l);if(f!=null)return f;const m=[],d=this._values;let _=0,E=0;for(let p=r;p<n;p+=s){E=0,m[_]==null&&(m[_]=[]);for(let N=u;N<o;N+=c){if(!d[p])return;let S=d[p][N]||this._defaultValue;S==null&&(S=J.create()),m[_][E]=S,E++}_++}if(m.length===0||m[0].length===0)return;const b=s>1?-1:r+this._currentRow,y=c>1?-1:u+this._currentColumn,R=this._createNewArray(m,m.length,m[0].length,b,y);return R.setDefaultValue(this._defaultValue),this._sliceCache.set(l,R),R}sortByRow(e){const t=this._transposeArray(this._values);t.sort(this._sort(e)),this._clearCache(),this._values=this._transposeArray(t)}sortByColumn(e){this._clearCache(),this._values.sort(this._sort(e))}transpose(){const e=this._transposeArray(this._values),t=this._rowCount,r=this._columnCount,n=this._createNewArray(e,r,t);return n.setDefaultValue(this._defaultValue),n}orderSearch(e,t=De.MIN,r=!1,n=!1){let s,u,o,c;const l=(f,m,d)=>{if(f==null)return!0;let _;if(n===!0?_=f.compare(e,B.EQUALS):_=f.isEqual(e),(_==null?void 0:_.getValue())===!0)return s=f,o={row:m,column:d},!1;t===De.MAX?f.isGreaterThan(e).getValue()===!0&&(u==null||f.minus(e).abs().isLessThanOrEqual(u.minus(e).abs()).getValue()===!0)&&(u=f,c={row:m,column:d}):t===De.MIN&&f.isLessThan(e).getValue()===!0&&(u==null||f.minus(e).abs().isLessThanOrEqual(u.minus(e).abs()).getValue()===!0)&&(u=f,c={row:m,column:d})};if(r?this.iteratorReverse((f,m,d)=>l(f,m,d)):this.iterator((f,m,d)=>l(f,m,d)),s!=null)return o;if(u!=null)return c}binarySearch(e,t=xt.MIN,r=De.MIN){if(e.isError())return;const{stringArray:n,stringPosition:s,numberArray:u,numberPosition:o}=this.flattenPosition();return e.isString()?this._binarySearch(e,n,s,t,r):this._binarySearch(e,u,o,t,r)}_binarySearch(e,t,r,n=xt.MIN,s=De.MIN){const u=Qr(),o=Number(e.getValue()),c=!Number.isNaN(o);let l=0,f=t.length-1,m=-1,d=-1,_=-1;for(;l<=f;){const E=Math.floor((l+f)/2),b=t[E];let y;if(b.isNull())y=n===xt.MIN?1:-1;else{const R=b.getValue();if(c){const p=Number(R);y=Number.isNaN(p)?1:Math.sign(p-o)}else y=u(R.toString().toLocaleLowerCase(),e.getValue().toString().toLocaleLowerCase())}if(n===xt.MAX&&(y=-y),y===0){m=E;break}y<0?(d=E,l=E+1):(_=E,f=E-1)}if(s===De.NORMAL)return m!==-1?r[m]:void 0;if(s===De.MIN)return m!==-1?r[m]:n===xt.MIN?r[d]:r[_];if(s===De.MAX)return m!==-1?r[m]:n===xt.MIN?r[_]:r[d]}sum(){let e=A.create(0);return this.iterator(t=>{if(t==null||t.isString()||t.isBoolean()||t.isNull())return!0;if(t.isError())return e=t,!1;e=e.plus(t)}),e}max(){let e=A.create(Number.NEGATIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isLessThan(t).getValue()&&(e=t)}),e}min(){let e=A.create(Number.POSITIVE_INFINITY);return this.iterator(t=>{if(t==null)return!0;if(t.isError())return e=t,!1;if(t.isString()||t.isNull()||t.isBoolean())return!0;e.isGreaterThan(t).getValue()&&(e=t)}),e}count(){let e=A.create(0);return this.iterator(t=>{if(t==null||t.isError()||t.isString()||t.isNull()||t.isBoolean())return!0;e=e.plusBy(1)}),e}countA(){let e=A.create(0);return this.iterator(t=>{if(t==null||t.isNull())return!0;e=e.plusBy(1)}),e}countBlank(){let e=A.create(0);return this.iterator(t=>{(t==null||t.isNull()||t.getValue()==="")&&(e=e.plusBy(1))}),e}getNegative(){return ee.create("{0}").minus(this)}getReciprocal(){return ee.create("{1}").divided(this)}plus(e){return this._batchOperator(e,1)}minus(e){return this._batchOperator(e,0)}multiply(e){return this._batchOperator(e,2)}divided(e){return this._batchOperator(e,3)}mod(e){return this._batchOperator(e,4)}modInverse(e){return this.map(t=>t.isError()?t:e.mod(t))}compare(e,t,r){return this._batchOperator(e,5,t,r)}concatenateFront(e){return this._batchOperator(e,6)}concatenateBack(e){return this._batchOperator(e,7)}map(e){const t=(r,n,s)=>r==null?J.create():r.isError()?r:e(r,n,s);return this.mapValue(t)}mapValue(e){var s;const t=this._rowCount,r=this._columnCount,n=[];for(let u=0;u<t;u++){const o=[];for(let c=0;c<r;c++){const l=(s=this._values)==null?void 0:s[u];if(l==null)o[c]=g.create(h.VALUE);else{const f=l[c]||this._defaultValue;f?o[c]=e(f,u,c):o[c]=J.create()}}n.push(o)}return this._createNewArray(n,t,r)}pow(e){return this._batchOperator(e,8)}powInverse(e){return this.map(t=>t.isError()?t:e.pow(t))}sqrt(){return this.map(e=>e.isError()?e:e.sqrt())}cbrt(){return this.map(e=>e.isError()?e:e.cbrt())}cos(){return this.map(e=>e.isError()?e:e.cos())}cosh(){return this.map(e=>e.isError()?e:e.cosh())}acos(){return this.map(e=>e.isError()?e:e.acos())}acosh(){return this.map(e=>e.isError()?e:e.acosh())}sin(){return this.map(e=>e.isError()?e:e.sin())}sinh(){return this.map(e=>e.isError()?e:e.sinh())}asin(){return this.map(e=>e.isError()?e:e.asin())}asinh(){return this.map(e=>e.isError()?e:e.asinh())}tan(){return this.map(e=>e.isError()?e:e.tan())}tanh(){return this.map(e=>e.isError()?e:e.tanh())}atan(){return this.map(e=>e.isError()?e:e.atan())}atanh(){return this.map(e=>e.isError()?e:e.atanh())}atan2(e){return this._batchOperator(e,12)}atan2Inverse(e){return this.map(t=>t.isError()?t:e.atan2(t))}mean(e=0){const t=this.sum(),r=this.count();return t.divided(e===0?r:r.minusBy(1))}median(){const e=this.flattenPosition().numberArray,t=this._createNewArray([e],1,e.length),r=t.getColumnCount();if(r<=1)return t.get(0,0)||J.create();if(t.sortByRow(0),r%2===0){const n=t.get(0,r/2)||J.create(),s=t.get(0,r/2-1)||J.create();return n.plus(s).divided(A.create(2))}return t.get(0,(r-1)/2)||J.create()}var(e=0){const t=this.mean(),r=[[]];this.iterator(l=>{if(l==null||l.isError()||l.isString()||l.isBoolean()||l.isNull())return;const f=l.minus(t).pow(A.create(2));f.isError()||r[0].push(f)});const{_unitId:n,_sheetId:s,_currentRow:u,_currentColumn:o}=this;return ee.create({calculateValueList:r,rowCount:1,columnCount:r[0].length,unitId:n,sheetId:s,row:u,column:o}).mean(e)}std(e=0){const t=this.var(e);return t.isError()?t:t.sqrt()}log(){return this.map(e=>e.isError()?e:e.log())}log10(){return this.map(e=>e.isError()?e:e.log10())}exp(){return this.map(e=>e.isError()?e:e.exp())}abs(){return this.map(e=>e.isError()?e:e.abs())}round(e){return this._batchOperator(e,9)}roundInverse(e){return this.map(t=>t.isError()?t:e.round(t))}floor(e){return this._batchOperator(e,10)}floorInverse(e){return this.map(t=>t.isError()?t:e.floor(t))}ceil(e){return this._batchOperator(e,11)}ceilInverse(e){return this.map(t=>t.isError()?t:e.ceil(t))}toValue(){return cl(this._values)}_clearCache(){this._flattenCache=null,this._sliceCache.clear()}_sort(e){const t=Qr();return(r,n)=>{const s=r[e],u=n[e];return s==null?1:u==null?-1:s.isError()&&s.isError()?0:s.isError()?1:u.isError()?-1:t(s.getValue(),u.getValue())}}_transposeArray(e){const t=e.length,r=e[0].length,n=[];for(let s=0;s<r;s++){n[s]=[];for(let u=0;u<t;u++)n[s][u]=e[u][s]}return n}_batchOperator(e,t,r,n){const s=[];let u=this._rowCount,o=this._columnCount;if(e.isArray()){const f=e.getRowCount(),m=e.getColumnCount();if(u=Math.max(f,u),o=Math.max(m,o),f===1&&m===1){const d=e.getFirstCell();for(let _=0;_<o;_++)s.push(d)}else if(f===1&&this._columnCount>1){const d=e.getArrayValue();for(let _=0;_<o;_++)s.push(d[0][_])}else return this._batchOperatorArray(e,t,r,n)}else for(let f=0;f<o;f++)s.push(e);const c=[];for(let f=0;f<o;f++){const m=s[f];this._batchOperatorValue(m,f,c,t,r,n)}const l=this._createNewArray(c,u,o);return l.setDefaultValue(F.create(!1)),l}_batchOperatorValue(e,t,r,n,s,u){const o=this._rowCount,c=this.getUnitId(),l=this.getSheetId(),f=this.getCurrentRow(),m=this.getCurrentColumn();if(n===5){const{rowsInCache:d,rowsNotInCache:_}=yt.canUseCache(c,l,t+m,f,f+o-1);if(d.length>0){if(s===B.EQUALS){const E=yt.getCellPositions(c,l,t+m,e.getValue(),d);E!=null&&E.forEach(b=>{if(b<f||b>f+o-1)return;const y=b-f;r[y]==null&&(r[y]=[]),r[y][t]=F.create(!0)})}else{const E=yt.getCellValuePositions(c,l,t+m);E!=null&&E.forEach((b,y)=>{let R=J.create();Mt.has(y)?R=g.create(y):typeof y=="string"?R=T.create(y):typeof y=="number"?R=A.create(y):typeof y=="boolean"&&(R=F.create(y));let p;R.isError()?p=R:e.isError()?p=e:p=R.compare(e,s,u),(p.isError()||p.getValue()===!0)&&b.forEach(N=>{N>=f&&N<=f+o-1&&(r[N-f]==null&&(r[N-f]=[]),r[N-f][t]=p)})})}if(_.length>0)for(const E of _){const[b,y]=E;for(let R=b;R<=y;R++)this.__batchOperatorRowValue(e,t,r,n,R,c,l,f,m,s,u);yt.setContinueBuildingCache(c,l,t+m,b,y)}return}}for(let d=0;d<o;d++)this.__batchOperatorRowValue(e,t,r,n,d,c,l,f,m,s,u);yt.setContinueBuildingCache(c,l,t+m,f,f+o-1)}__batchOperatorRowValue(e,t,r,n,s,u,o,c,l,f,m){const d=this.getValueOrDefault(s,t);if(r[s]==null&&(r[s]=[]),d&&e)if(d.isError())r[s][t]=d;else if(e.isError())r[s][t]=e;else switch(n){case 1:r[s][t]=d.plus(e);break;case 0:r[s][t]=d.minus(e);break;case 2:r[s][t]=d.multiply(e);break;case 3:r[s][t]=d.divided(e);break;case 4:r[s][t]=d.mod(e);break;case 5:f?r[s][t]=d.compare(e,f,m):r[s][t]=g.create(h.VALUE);break;case 6:r[s][t]=d.concatenateFront(e);break;case 7:r[s][t]=d.concatenateBack(e);break;case 8:r[s][t]=d.pow(e);break;case 9:r[s][t]=d.round(e);break;case 10:r[s][t]=d.floor(e);break;case 12:r[s][t]=d.atan2(e);break;case 11:r[s][t]=d.ceil(e);break}else r[s][t]=g.create(h.NA);d!=null&&(d.isError()?yt.set(u,o,t+l,d.getErrorType(),s+c):yt.set(u,o,t+l,d.getValue(),s+c))}_batchOperatorArray(e,t,r,n){let s=e.getRowCount(),u=e.getColumnCount();s<this._rowCount&&(s=this._rowCount),u<this._columnCount&&(u=this._columnCount);const o=[],c=this._checkArrayCalculateType(this),l=this._checkArrayCalculateType(e);for(let f=0;f<s;f++){const m=[];for(let d=0;d<u;d++){let _;c===3?_=this.getValueOrDefault(0,0):c===1?_=this.getValueOrDefault(0,d):c===2?_=this.getValueOrDefault(f,0):_=this.getValueOrDefault(f,d);let E;if(l===3?E=e.getValueOrDefault(0,0):l===1?E=e.getValueOrDefault(0,d):l===2?E=e.getValueOrDefault(f,0):E=e.getValueOrDefault(f,d),_&&E)if(_.isError())m[d]=_;else if(E.isError())m[d]=E;else switch(t){case 1:m[d]=_.plus(E);break;case 0:m[d]=_.minus(E);break;case 2:m[d]=_.multiply(E);break;case 3:m[d]=_.divided(E);break;case 4:m[d]=_.mod(E);break;case 5:r?m[d]=_.compare(E,r,n):m[d]=g.create(h.VALUE);break;case 6:m[d]=_.concatenateFront(E);break;case 7:m[d]=_.concatenateBack(E);break;case 8:m[d]=_.pow(E);break;case 9:m[d]=_.round(E);break;case 12:m[d]=_.atan2(E);break;case 10:m[d]=_.floor(E);break;case 11:m[d]=_.ceil(E);break}else m[d]=g.create(h.NA)}o.push(m)}return this._createNewArray(o,s,u)}_checkArrayCalculateType(e){return e.getRowCount()===1&&e.getColumnCount()===1?3:e.getRowCount()===1?1:e.getColumnCount()===1?2:0}_formatValue(e){if(typeof e!="string")return e=e,this._rowCount=e.rowCount,this._columnCount=e.columnCount,this._unitId=e.unitId,this._sheetId=e.sheetId,this._currentRow=e.row,this._currentColumn=e.column,e.calculateValueList;e=e.slice(1,-1);const t=e.split(";"),r=t.length,n=[];let s=0;for(let u=0;u<r;u++){const c=t[u].split(","),l=c.length;s<l&&(s=l);const f=[];for(let m=0;m<l;m++){const d=c[m].trim();f.push(mt.create(d))}n.push(f)}return this._rowCount=r,this._columnCount=s,n}_createNewArray(e,t,r,n=-1,s=-1){(this._currentColumn===-1||this._currentRow===-1)&&(n=-1,s=-1);const u={calculateValueList:e,rowCount:t,columnCount:r,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:n,column:s};return ee.create(u)}}class mt{static create(i){if(i==null)return J.create();if(typeof i=="boolean")return F.create(i);if(typeof i=="string"){const e=i.toLocaleUpperCase().trim();if(Mt.has(e))return g.create(e);if(e===dt.TRUE||e===dt.FALSE)return en(i);if(O.isRealNum(i))return A.create(Number(i));const{isNumberPattern:t,value:r,pattern:n}=Xo(i);if(t)return A.create(r,n);const s=i.replace(/\n/g,"").replace(/\r/g,"");return!ll(s)&&oo(s)?ee.create(s):ul(i)}return typeof i=="number"?tn(i):g.create(h.VALUE)}}function ll(a){const i=a.trim();return i.startsWith('"')&&i.endsWith('"')}function D(a,i,e,t){const r=[];if(e.isArray()){const n=e.getRowCount(),s=e.getColumnCount();if(n===1&&s===1){const u=e.getFirstCell();for(let o=0;o<a;o++){const c=[];for(let l=0;l<i;l++)c.push(u);r.push(c)}}else if(n===1&&s>1)for(let u=0;u<a;u++){const o=[];for(let c=0;c<i;c++){const l=e.getRealValue(0,c)||(t!=null?t:J.create());o.push(l)}r.push(o)}else if(s===1&&n>1)for(let u=0;u<a;u++){const o=[];for(let c=0;c<i;c++){const l=e.getRealValue(u,0)||(t!=null?t:J.create());o.push(l)}r.push(o)}else for(let u=0;u<a;u++){const o=[];for(let c=0;c<i;c++){const l=e.getRealValue(u,c)||(t!=null?t:J.create());o.push(l)}r.push(o)}}else for(let n=0;n<a;n++){const s=[];for(let u=0;u<i;u++)s.push(e);r.push(s)}return Ut(r,a,i)}function Ut(a,i,e,t="",r=""){const n={calculateValueList:a,rowCount:i,columnCount:e,unitId:t,sheetId:r,row:-1,column:-1};return ee.create(n)}function Kt(a){const i=[B.EQUALS,B.NOT_EQUAL,B.GREATER_THAN_OR_EQUAL,B.GREATER_THAN,B.LESS_THAN_OR_EQUAL,B.LESS_THAN];for(const e of i)if(a.startsWith(e)){const t=a.substring(e.length);return[e,mt.create(t)]}return[B.EQUALS,mt.create(a)]}function rn(a,i,e,t){if(!e)if(i.isString()){const r=`${i.getValue()}`,[n,s]=Kt(r);e=n,i=s}else e=B.EQUALS;return a.compare(i,e,t)}function fl(a,i){const e=Math.max(a.isArray()?a.getRowCount():1,i.isArray()?i.getRowCount():1),t=Math.max(a.isArray()?a.getColumnCount():1,i.isArray()?i.getColumnCount():1),r=D(e,t,a),n=D(e,t,i);return r.mapValue((s,u,o)=>{const c=n.get(u,o);return s!=null&&s.isError()?s:c!=null&&c.isError()?c:s!=null&&s.isBoolean()&&(c!=null&&c.isBoolean())?en(s.getValue()&&c.getValue()):F.create(!1)})}function ml(a){const i=a.getValue();let e=0;return i&&(e=1),A.create(e)}function Ga(a){return a.isArray()&&a.getRowCount()===1&&a.getColumnCount()===1?!0:a.isReferenceObject()?!!(a.isCell()||a.getRowCount()===1&&a.getColumnCount()===1):(a=a,!!(a.isString()||a.isNumber()||a.isBoolean()||a.isError()||a.isNull()))}function Tt(a){const i=a==null?void 0:a.getPattern();let e={};if(i&&(e={s:{n:{pattern:i}}}),a==null)return{v:null,...e};if(a.isError())return{v:a.getErrorType(),t:O.CellValueType.STRING,...e};if(a.isValueObject()){const t=a,r=t.getValue();return t.isNumber()?{v:r,t:O.CellValueType.NUMBER,...e}:t.isBoolean()?{v:r?1:0,t:O.CellValueType.BOOLEAN,...e}:t.isString()?{v:r,t:O.CellValueType.STRING,...e}:t.isNull()?{v:null,...e}:{v:r,t:O.CellValueType.STRING,...e}}}function Zt(a){let i=0,e=0;return a.forEach((t,r)=>{if(r%2===1)if(t.isArray()){const n=t;i=Math.max(i,n.getRowCount()),e=Math.max(e,n.getColumnCount())}else i=Math.max(i,1),e=Math.max(e,1)}),{maxRowLength:i,maxColumnLength:e}}function _r(a,i,e,t){const r=i.getRowCount(),n=i.getColumnCount();for(let s=0;s<a.length;s++){if(s%2===1)continue;const u=a[s],o=u.getRowCount(),c=u.getColumnCount();if(o!==r||c!==n)return D(e,t,g.create(h.VALUE))}return null}function Er(a,i,e,t=!1){const r=[];for(let n=0;n<a.length;n++){if(n%2===1)continue;const s=a[n],u=a[n+1];D(i,e,u,g.create(h.NA)).iterator((c,l,f)=>{if(!c)return;let m=rn(s,c);const[,d]=Kt(`${c.getValue()}`);if(t&&(m=nn(m,s,d)),r[l]===void 0&&(r[l]=[]),r[l][f]===void 0){r[l][f]=m;return}r[l][f]=fl(r[l][f],m)})}return r}function nn(a,i,e){return a.mapValue((t,r,n)=>{const s=i.get(r,n);return s&&hl(s,e)?t:s!=null&&s.isError()&&e.isError()&&s.getValue()===e.getValue()?F.create(!0):F.create(!1)})}function hl(a,i){if(a.isNumber()&&i.isNumber()||a.isBoolean()&&i.isBoolean())return!0;const e=a.isString()&&a.getValue()==="",t=i.isString()&&i.getValue()==="";return!!((e||a.isNull())&&(t||i.isNull())||a.isString()&&!e&&i.isString()&&!t)}var gl=Object.defineProperty,dl=Object.getOwnPropertyDescriptor,Cl=(a,i,e,t)=>{for(var r=t>1?void 0:t?dl(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&gl(i,e,r),r},_l=(a,i)=>(e,t)=>i(e,t,a),ze=(a=>(a[a.IDLE=0]="IDLE",a[a.START=1]="START",a[a.START_DEPENDENCY=2]="START_DEPENDENCY",a[a.START_CALCULATION=3]="START_CALCULATION",a[a.CURRENTLY_CALCULATING=4]="CURRENTLY_CALCULATING",a[a.START_DEPENDENCY_ARRAY_FORMULA=5]="START_DEPENDENCY_ARRAY_FORMULA",a[a.START_CALCULATION_ARRAY_FORMULA=6]="START_CALCULATION_ARRAY_FORMULA",a[a.CURRENTLY_CALCULATING_ARRAY_FORMULA=7]="CURRENTLY_CALCULATING_ARRAY_FORMULA",a[a.CALCULATION_COMPLETED=8]="CALCULATION_COMPLETED",a))(ze||{}),zt=(a=>(a[a.INITIAL=0]="INITIAL",a[a.STOP_EXECUTION=1]="STOP_EXECUTION",a[a.NOT_EXECUTED=2]="NOT_EXECUTED",a[a.SUCCESS=3]="SUCCESS",a))(zt||{});L.FormulaRuntimeService=class extends O.Disposable{constructor(e){super();C(this,"_formulaExecuteStage",0);C(this,"_stopState",!1);C(this,"_currentRow",-1);C(this,"_currentColumn",-1);C(this,"_currentRowCount",Number.NEGATIVE_INFINITY);C(this,"_currentColumnCount",Number.NEGATIVE_INFINITY);C(this,"_currentSubUnitId","");C(this,"_currentUnitId","");C(this,"_runtimeData",{});C(this,"_runtimeOtherData",{});C(this,"_unitArrayFormulaRange",{});C(this,"_runtimeArrayFormulaCellData",{});C(this,"_runtimeClearArrayFormulaCellData",{});C(this,"_runtimeFeatureRange",{});C(this,"_runtimeFeatureCellData",{});C(this,"_functionsExecutedState",0);C(this,"_functionDefinitionPrivacyVar",new Map);C(this,"_totalFormulasToCalculate",0);C(this,"_completedFormulasCount",0);C(this,"_totalArrayFormulasToCalculate",0);C(this,"_completedArrayFormulasCount",0);C(this,"_formulaCycleIndex",0);C(this,"_isCycleDependency",!1);this._currentConfigService=e}get currentRow(){return this._currentRow}get currentColumn(){return this._currentColumn}get currentRowCount(){return this._currentRowCount}get currentColumnCount(){return this._currentColumnCount}get currentSubUnitId(){return this._currentSubUnitId}get currentUnitId(){return this._currentUnitId}dispose(){this.reset(),this._runtimeFeatureCellData={},this._runtimeFeatureRange={},this.clearReferenceAndNumberformatCache()}enableCycleDependency(){this._isCycleDependency=!0}disableCycleDependency(){this._isCycleDependency=!1}isCycleDependency(){return this._isCycleDependency}setFormulaCycleIndex(e){this._formulaCycleIndex=e}getFormulaCycleIndex(){return this._formulaCycleIndex}setTotalArrayFormulasToCalculate(e){this._totalArrayFormulasToCalculate=e}getTotalArrayFormulasToCalculate(){return this._totalArrayFormulasToCalculate}setCompletedArrayFormulasCount(e){this._completedArrayFormulasCount=e}getCompletedArrayFormulasCount(){return this._completedArrayFormulasCount}setTotalFormulasToCalculate(e){this._totalFormulasToCalculate=e}getTotalFormulasToCalculate(){return this._totalFormulasToCalculate}setCompletedFormulasCount(e){this._completedFormulasCount=e}getCompletedFormulasCount(){return this._completedFormulasCount}markedAsSuccessfullyExecuted(){this._functionsExecutedState=3}markedAsNoFunctionsExecuted(){this._functionsExecutedState=2}markedAsStopFunctionsExecuted(){this._functionsExecutedState=1}markedAsInitialFunctionsExecuted(){this._functionsExecutedState=0}stopExecution(){this._stopState=!0,this.setFormulaExecuteStage(0)}isStopExecution(){return this._stopState}setFormulaExecuteStage(e){this._formulaExecuteStage=e}getFormulaExecuteStage(){return this._formulaExecuteStage}reset(){this._formulaExecuteStage=0,this._runtimeData={},this._runtimeOtherData={},this._unitArrayFormulaRange={},this._runtimeArrayFormulaCellData={},this._runtimeClearArrayFormulaCellData={},this._functionDefinitionPrivacyVar.clear(),this.markedAsInitialFunctionsExecuted(),this._stopState=!1,this._isCycleDependency=!1,this._totalFormulasToCalculate=0,this._completedFormulasCount=0}clearReferenceAndNumberformatCache(){Ho(),Ko(),Oo()}setCurrent(e,t,r,n,s,u){this._currentRow=e,this._currentColumn=t,this._currentRowCount=r,this._currentColumnCount=n,this._currentSubUnitId=s,this._currentUnitId=u}clearFunctionDefinitionPrivacyVar(){this._functionDefinitionPrivacyVar.clear()}registerFunctionDefinitionPrivacyVar(e,t){this._functionDefinitionPrivacyVar.set(e,t)}getFunctionDefinitionPrivacyVar(e){return this._functionDefinitionPrivacyVar.get(e)}setRuntimeOtherData(e,t){const r=this._currentSubUnitId,n=this._currentUnitId;this._runtimeOtherData[n]===void 0&&(this._runtimeOtherData[n]={});const s=this._runtimeOtherData[n];s[r]===void 0&&(s[r]={});const u=s[r];let o=[];if(t.isReferenceObject()||t.isValueObject()&&t.isArray()){const c=t,{startRow:l,startColumn:f}=c.getRangePosition();c.iterator((m,d,_)=>{const E=Tt(m),b=d-l,y=_-f;o[b]==null&&(o[b]=[]),o[b][y]=E})}else o=[[Tt(t)]];u[e]=o}setRuntimeData(e){const t=this._currentRow,r=this._currentColumn,n=this._currentRowCount,s=this.currentColumnCount,u=this._currentSubUnitId,o=this._currentUnitId;this._runtimeData[o]==null&&(this._runtimeData[o]={});const c=this._runtimeData[o];c[u]==null&&(c[u]=new O.ObjectMatrix),this._unitArrayFormulaRange[o]==null&&(this._unitArrayFormulaRange[o]={});const l=this._unitArrayFormulaRange[o];(l[u]===null||l[u]===void 0)&&(l[u]={});const f=new O.ObjectMatrix(l[u]);this._runtimeArrayFormulaCellData[o]===void 0&&(this._runtimeArrayFormulaCellData[o]={});const m=this._runtimeArrayFormulaCellData[o];m[u]==null&&(m[u]=new O.ObjectMatrix),this._runtimeClearArrayFormulaCellData[o]===void 0&&(this._runtimeClearArrayFormulaCellData[o]={});const d=this._runtimeClearArrayFormulaCellData[o];d[u]==null&&(d[u]=new O.ObjectMatrix);const _=c[u],E=m[u],b=d[u];if(e.isReferenceObject()||e.isValueObject()&&e.isArray()){const y=e,{startRow:R,startColumn:p,endRow:N,endColumn:S}=y.getRangePosition();if(R===N&&p===S){const M=y.getFirstCell(),w=Tt(M);_.setValue(t,r,w),b.setValue(t,r,w);return}const P={startRow:t,startColumn:r,endRow:N-R+t,endColumn:S-p+r};if(f.setValue(t,r,P),this._checkIfArrayFormulaRangeHasData(o,u,t,r,P)||this._checkIfArrayFormulaExceeded(n,s,P)){const M=Tt(g.create(h.SPILL));_.setValue(t,r,M),b.setValue(t,r,M);const w=this._currentConfigService.getUnitData();y.iterator((x,I,Y)=>{var te,H;const W=I-R+t,X=Y-p+r,oe=(H=(te=w[o])==null?void 0:te[u])==null?void 0:H.cellData.getValue(W,X);if(I===R&&Y===p)E.setValue(t,r,M);else if(oe!=null)oe.v==null&&(oe.v=""),E.setValue(W,X,oe);else{if(this._isInOtherArrayFormulaRange(o,u,t,r,W,X))return!0;E.setValue(W,X,{v:""})}})}else{const M=g.create(h.SPILL);y.iterator((w,x,I)=>{const Y=Tt(w);if(x===R&&I===p){if(w!=null&&w.isError()&&w.isEqualType(M))return b.setValue(t,r,{}),_.setValue(t,r,{...Tt(M)}),!1;_.setValue(t,r,{...Y})}const W=x-R+t,X=I-p+r;E.setValue(W,X,Y)})}}else{const y=Tt(e);_.setValue(t,r,y),b.setValue(t,r,y)}}getUnitData(){return this._runtimeData}getUnitArrayFormula(){return this._unitArrayFormulaRange}getRuntimeOtherData(){return this._runtimeOtherData}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}getRuntimeClearArrayFormulaCellData(){return this._runtimeClearArrayFormulaCellData}getRuntimeFeatureRange(){return this._runtimeFeatureRange}setRuntimeFeatureRange(e,t){this._runtimeFeatureRange[e]=t}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e,t){this._runtimeFeatureCellData[e]=t}getAllRuntimeData(){return{unitData:this.getUnitData(),arrayFormulaRange:this.getUnitArrayFormula(),unitOtherData:this.getRuntimeOtherData(),functionsExecutedState:this._functionsExecutedState,arrayFormulaCellData:this.getRuntimeArrayFormulaCellData(),clearArrayFormulaCellData:this.getRuntimeClearArrayFormulaCellData(),runtimeFeatureRange:this.getRuntimeFeatureRange(),runtimeFeatureCellData:this.getRuntimeFeatureCellData()}}getRuntimeState(){return{totalFormulasToCalculate:this.getTotalFormulasToCalculate(),completedFormulasCount:this.getCompletedFormulasCount(),totalArrayFormulasToCalculate:this.getTotalArrayFormulasToCalculate(),completedArrayFormulasCount:this.getCompletedArrayFormulasCount(),stage:this.getFormulaExecuteStage(),formulaCycleIndex:this.getFormulaCycleIndex()}}_checkIfArrayFormulaRangeHasData(e,t,r,n,s){var d,_,E,b,y,R,p,N,S,P,M;const{startRow:u,startColumn:o,endRow:c,endColumn:l}=s,f=this._currentConfigService.getUnitData(),m=this._currentConfigService.getArrayFormulaCellData();(E=(_=(d=this._unitArrayFormulaRange[e])==null?void 0:d[t])==null?void 0:_[r])==null||E[n];for(let w=u;w<=c;w++)for(let x=o;x<=l;x++){if(w===r&&n===x)continue;const I=(R=(y=(b=this._runtimeData)==null?void 0:b[e])==null?void 0:y[t])==null?void 0:R.getValue(w,x);(N=(p=m==null?void 0:m[e])==null?void 0:p[t])==null||N.getValue(w,x);const Y=(M=(P=(S=f==null?void 0:f[e])==null?void 0:S[t])==null?void 0:P.cellData)==null?void 0:M.getValue(w,x),W=this._getRuntimeFeatureCellValue(w,x,t,e);if(!O.isNullCell(I)||this._isInOtherArrayFormulaRange(e,t,r,n,w,x)||!O.isNullCell(Y)||!O.isNullCell(W))return!0}return!1}_getRuntimeFeatureCellValue(e,t,r,n){return Ra(e,t,r,n,this._runtimeFeatureCellData)}_arrayCellHasData(e){return e==null?!1:e.v!==void 0}_isInOtherArrayFormulaRange(e,t,r,n,s,u){var f;const o=(f=this._currentConfigService.getArrayFormulaRange()[e])==null?void 0:f[t];if(o==null)return!1;let c=!1;return new O.ObjectMatrix(o).forValue((m,d,_)=>{var y,R;if(m===r&&d===n)return;const E=this._isInArrayFormulaRange(_,s,u),b=(R=(y=this._runtimeData[e])==null?void 0:y[t])==null?void 0:R.getValue(m,d);E&&(b==null?void 0:b.v)!==h.SPILL&&(c=!0)}),c}_isInArrayFormulaRange(e,t,r){if(e==null)return!1;const{startRow:n,startColumn:s,endRow:u,endColumn:o}=e;return t>=n&&t<=u&&r>=s&&r<=o}_checkIfArrayFormulaExceeded(e,t,r){return r.endRow>=e||r.endColumn>=t}_isInDirtyRange(e,t,r,n){const s=this._currentConfigService.getDirtyRanges();return s.length===0?!0:Ys(s,e,t,r,n)}},L.FormulaRuntimeService=Cl([_l(0,ct)],L.FormulaRuntimeService);const Je=O.createIdentifier("univer.formula.runtime.service");var ue=(a=>(a[a.REFERENCE=1]="REFERENCE",a[a.VALUE=2]="VALUE",a[a.OPERATOR=3]="OPERATOR",a[a.FUNCTION=4]="FUNCTION",a[a.LAMBDA=5]="LAMBDA",a[a.LAMBDA_PARAMETER=6]="LAMBDA_PARAMETER",a[a.ERROR=7]="ERROR",a[a.BASE=8]="BASE",a[a.ROOT=9]="ROOT",a[a.UNION=10]="UNION",a[a.PREFIX=11]="PREFIX",a[a.SUFFIX=12]="SUFFIX",a[a.NULL=13]="NULL",a))(ue||{});const at=new Map([[1,7],[2,9],[3,8],[4,6],[5,1],[6,2],[9,10],[10,3],[11,4],[12,5]]);class Fe{constructor(i){C(this,"_children",[]);C(this,"_definedNames",[]);C(this,"_parent");C(this,"_valueObject");C(this,"_calculateState",!1);C(this,"_async",!1);C(this,"_address",!1);C(this,"_isForcedCalculateFunction",!1);this._token=i}dispose(){var i;this._children.forEach(e=>{e.dispose()}),(i=this._valueObject)==null||i.dispose(),this._parent=null}get nodeType(){return ue.BASE}isAsync(){return this._async}isAddress(){return this._address}isForcedCalculateFunction(){return this._isForcedCalculateFunction}setAsync(){this._async=!0}setAddress(){this._address=!0}getParent(){return this._parent}setParent(i){this._parent=i,i.addChildren(this)}setForcedCalculateFunction(){this._isForcedCalculateFunction=!0}getChildren(){return this._children}addChildren(...i){this._children.push(...i)}getToken(){return this._token}setValue(i){this._valueObject=i}getValue(){return this._valueObject}isCalculated(){return this._calculateState}setCalculated(){this._calculateState=!0}execute(){}setNotEmpty(i=!0){}async executeAsync(){return Promise.resolve(Ct.SUCCESS)}serialize(){const i=this.getToken(),e=this.getChildren(),t=[],r=e.length;for(let s=0;s<r;s++){const u=e[s];t.push(u.serialize())}const n={token:i,nodeType:this.nodeType};return r>0&&(n.children=t),n}hasDefinedName(i){return this._definedNames.includes(i)}setDefinedNames(i){this._definedNames=i}}class Le extends Fe{constructor(e){super(e);C(this,"_errorValueObject");this._errorValueObject=g.create(e)}get nodeType(){return ue.ERROR}static create(e){return new Le(e)}getValue(){return this._errorValueObject}}const it=100;class ut{get zIndex(){return 0}dispose(){}create(i,e,t){let r;return i instanceof ae?r=i.getToken():r=i,new Fe(r)}}class ts extends Fe{get nodeType(){return ue.ROOT}execute(){const i=this.getChildren();if(i.length>1){this.setValue(g.create(h.VALUE));return}const e=i[0];e==null?this.setValue(g.create(h.VALUE)):this.setValue(e.getValue())}}class rs extends ut{get zIndex(){return at.get(ue.ROOT)||it}checkAndCreateNodeType(i){if(!(i instanceof ae))return;if(i.getToken()===At)return new ts(At)}}const ht=O.createIdentifier("univer.formula-function.service");class qa extends O.Disposable{constructor(){super(...arguments);C(this,"_functionExecutors",new Map);C(this,"_functionDescriptions",new Map)}dispose(){this._functionExecutors.clear(),this._functionDescriptions.clear()}registerExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.set(r.name,r)}}getExecutors(){return this._functionExecutors}getExecutor(e){return this._functionExecutors.get(e)}hasExecutor(e){return this._functionExecutors.has(e)}unregisterExecutors(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionExecutors.delete(r)}}registerDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.set(r.functionName,r)}return O.toDisposable(()=>{for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r.functionName)}})}getDescriptions(){return this._functionDescriptions}getDescription(e){return this._functionDescriptions.get(e)}hasDescription(e){return this._functionDescriptions.has(e)}unregisterDescriptions(...e){for(let t=0;t<e.length;t++){const r=e[t];this._functionDescriptions.delete(r)}}}var je=(a=>(a.COMPARE="COMPARE",a.DIVIDED="DIVIDED",a.MINUS="MINUS",a.MULTIPLY="MULTIPLY",a.PLUS="PLUS",a.UNION="UNION",a.CUBE="CUBE",a))(je||{}),El=Object.defineProperty,bl=Object.getOwnPropertyDescriptor,Al=(a,i,e,t)=>{for(var r=t>1?void 0:t?bl(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&El(i,e,r),r},Xa=(a,i)=>(e,t)=>i(e,t,a);class sn extends Fe{constructor(i,e,t){super(e),this._accessor=i,this._operatorString=e,this._functionExecutor=t}get nodeType(){return ue.PREFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");this._operatorString===Ne.MINUS?(e.isReferenceObject()&&(e=e.toArrayValueObject()),t=this._functionExecutor.calculate(A.create(0),e)):this._operatorString===Ne.AT?t=this._handlerAT(e):t=g.create(h.VALUE),this.setValue(t)}_handlerAT(i){if(!i.isReferenceObject())return g.create(h.VALUE);const e=i;if(e.isCell())return g.create(h.VALUE);const t=this._accessor.get(Je),r=t.currentRow||0,n=t.currentColumn||0,s=e.getRangePosition(),{startRow:u,startColumn:o,endRow:c,endColumn:l}=s;return l!==o&&c!==u||u===c&&o===l?g.create(h.VALUE):c===u&&n>=o&&n<=l?e.getCellByColumn(n):o===l&&r>=u&&r<=c?e.getCellByRow(r):e.isTable()?e.getCellByPosition(r):g.create(h.VALUE)}}L.PrefixNodeFactory=class extends ut{constructor(i,e){super(),this._functionService=i,this._injector=e}get zIndex(){return at.get(ue.PREFIX)||it}checkAndCreateNodeType(i){if(!(i instanceof ae))return;const e=i.getToken(),t=e.trim();if(t.charAt(0)==='"'&&t.charAt(t.length-1)==='"')return;let r="";if(t===Ne.MINUS)r=je.MINUS;else return t===Ne.AT?new sn(this._injector,t):void 0;const n=this._functionService.getExecutor(r);return n?new sn(this._injector,t,n):(console.error(`No function ${e}`),Le.create(h.NAME))}},L.PrefixNodeFactory=Al([Xa(0,ht),Xa(1,O.Inject(O.Injector))],L.PrefixNodeFactory),new RegExp(Ne.MINUS,"g"),new RegExp(Ne.AT,"g");function Ka(a,i,e){let t,r,n=a;const s=n.slice(0,2);let u=0;if(s[0]===Ne.MINUS){const o=i.getExecutor(je.MINUS);t=new sn(e,Ne.MINUS,o),u++}return s[0]===Ne.AT&&(r=new sn(e,Ne.AT),t&&r.setParent(t),u++),u>0&&(n=n.slice(u)),{tokenTrim:n,minusPrefixNode:t,atPrefixNode:r}}var yl=Object.defineProperty,Rl=Object.getOwnPropertyDescriptor,pl=(a,i,e,t)=>{for(var r=t>1?void 0:t?Rl(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&yl(i,e,r),r},br=(a,i)=>(e,t)=>i(e,t,a);class Nl extends Fe{constructor(i,e,t,r,n){super(i),this._functionExecutor=e,this._currentConfigService=t,this._runtimeService=r,this._definedNamesService=n,this._functionExecutor.isAsync()&&this.setAsync(),this._functionExecutor.isAddress()&&this.setAddress(),this._functionExecutor.needsLocale&&this._setLocale(),this._functionExecutor.needsSheetsInfo&&this._setSheetsInfo()}get nodeType(){return ue.FUNCTION}async executeAsync(){const i=[],e=this.getChildren(),t=e.length;this._compatibility();for(let s=0;s<t;s++){const u=e[s].getValue();u!=null&&(u.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?i.push(u.toArrayValueObject()):i.push(u))}const r=this._calculate(i);let n;return r.isAsyncObject()||r.isAsyncArrayObject()?n=await r.getValue():n=r,this._setRefData(n),this.setValue(n),Promise.resolve(Ct.SUCCESS)}execute(){const i=[],e=this.getChildren(),t=e.length;this._compatibility();for(let n=0;n<t;n++){const s=e[n].getValue();s!=null&&(s.isReferenceObject()&&!this._functionExecutor.needsReferenceObject?i.push(s.toArrayValueObject()):i.push(s))}const r=this._calculate(i);this._setRefData(r),this.setValue(r)}_compatibility(){this._lookupCompatibility()}_lookupCompatibility(){const i=this.getChildren(),e=i.length;if(!this._functionExecutor.needsExpandParams||e!==3)return;const t=i[1].getValue(),r=i[2].getValue();if(!(t!=null&&t.isReferenceObject())&&!(r!=null&&r.isReferenceObject()))return;const n=t.getRangeData(),s=r.getRangeData(),{startRow:u,startColumn:o,endRow:c,endColumn:l}=n,f=c-u+1,m=l-o+1,{startRow:d,startColumn:_,endRow:E,endColumn:b}=s,y=E-d+1,R=b-_+1;f!==y&&(s.endRow+=f-y),m!==R&&(s.endColumn+=m-R)}_calculate(i){var n;const{minParams:e,maxParams:t}=this._functionExecutor;if(e!==-1&&t!==-1&&(i.length<e||i.length>t))return g.create(h.NA);let r;if(this._setRefInfo(),this._functionExecutor.isCustom()){const s=this._functionExecutor.calculateCustom(...i.map(u=>u.isArray()?u.toValue():u.getValue()));if(typeof s!="object"||s==null)r=mt.create(s);else{const u=Wa(s);r=ee.create({calculateValueList:u,rowCount:u.length,columnCount:((n=u[0])==null?void 0:n.length)||0,unitId:"",sheetId:"",row:-1,column:-1})}}else this._functionExecutor.isAddress()&&this._setDefinedNamesForFunction(),r=this._functionExecutor.calculate(...i);return r}_setDefinedNamesForFunction(){const i=this._currentConfigService.getExecuteUnitId();if(i==null)return;const e=this._definedNamesService.getDefinedNameMap(i);e!=null&&this._functionExecutor.setDefinedNames(e)}_setRefInfo(){const{currentUnitId:i,currentSubUnitId:e,currentRow:t,currentColumn:r}=this._runtimeService;this._functionExecutor.setRefInfo(i,e,t,r)}_setRefData(i){if(!i.isReferenceObject())return;const e=i;e.setForcedSheetId(this._currentConfigService.getSheetNameMap()),e.setUnitData(this._currentConfigService.getUnitData()),e.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()),e.setRuntimeData(this._runtimeService.getUnitData()),e.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData())}_setLocale(){this._functionExecutor.setLocale(this._currentConfigService.getLocale())}_setSheetsInfo(){this._functionExecutor.setSheetsInfo(this._currentConfigService.getSheetsInfo())}}class Vl extends Fe{constructor(i="Error"){super(i)}get nodeType(){return ue.FUNCTION}async executeAsync(){return this.setValue(g.create(h.NAME)),Promise.resolve(Ct.SUCCESS)}execute(){this.setValue(g.create(h.NAME))}}L.FunctionNodeFactory=class extends ut{constructor(i,e,t,r,n){super(),this._functionService=i,this._currentConfigService=e,this._runtimeService=t,this._definedNamesService=r,this._injector=n}get zIndex(){return at.get(ue.FUNCTION)||it}create(i){const e=this._functionService.getExecutor(i);return e?new Nl(i,e,this._currentConfigService,this._runtimeService,this._definedNamesService):(console.error(`No function ${i}`),Le.create(h.NAME))}checkAndCreateNodeType(i){if(typeof i=="string")return;const e=i.getToken(),{tokenTrim:t,minusPrefixNode:r,atPrefixNode:n}=Ka(e.trim(),this._functionService,this._injector);if(!Number.isNaN(Number(t))&&!this._isParentUnionNode(i))return Le.create(h.VALUE);const s=t.toUpperCase();if(this._functionService.hasExecutor(s)){const u=this.create(s);return n?u.setParent(n):r&&u.setParent(r),u}}_isParentUnionNode(i){var e,t;return((t=(e=i.getParent())==null?void 0:e.getParent())==null?void 0:t.getToken())===Q.COLON}},L.FunctionNodeFactory=pl([br(0,ht),br(1,ct),br(2,Je),br(3,Qt),br(4,O.Inject(O.Injector))],L.FunctionNodeFactory);var Ol=Object.defineProperty,Dl=Object.getOwnPropertyDescriptor,Sl=(a,i,e,t)=>{for(var r=t>1?void 0:t?Dl(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&Ol(i,e,r),r},Ll=(a,i)=>(e,t)=>i(e,t,a);L.Interpreter=class extends O.Disposable{constructor(i){super(),this._runtimeService=i}async executeAsync(i){if(!i)return Promise.resolve(g.create(h.VALUE));const e=i.node,t=i.refOffsetX,r=i.refOffsetY;await this._executeAsync(e,t,r);const n=e.getValue();return n==null?Promise.resolve(g.create(h.VALUE)):Promise.resolve(n)}execute(i){if(!i)return g.create(h.VALUE);const e=i.node,t=i.refOffsetX,r=i.refOffsetY;this._execute(e,t,r);const n=e.getValue();return n==null?g.create(h.VALUE):n}executePreCalculateNode(i){return i.execute(),i.getValue()}checkAsyncNode(i){const e=[];this._checkAsyncNode(i,e);for(let t=0,r=e.length;t<r;t++)if(e[t]===!0)return!0;return!1}_checkAsyncNode(i,e){const t=i.getChildren(),r=t.length;for(let n=0;n<r;n++){const s=t[n];e.push(s.isAsync()),this._checkAsyncNode(s,e)}}async _executeAsync(i,e=0,t=0){if(this._runtimeService.isStopExecution())return Promise.resolve(Ct.ERROR);const r=i.getChildren(),n=r.length;for(let s=0;s<n;s++){const u=r[s];if(u.getToken().toUpperCase()===dr&&u.isEmptyParamFunction()){u.execute();continue}await this._executeAsync(u,e,t)}return i.nodeType===ue.REFERENCE&&i.setRefOffset(e,t),i.nodeType===ue.FUNCTION&&i.isAsync()?await i.executeAsync():i.execute(),Promise.resolve(Ct.SUCCESS)}_execute(i,e=0,t=0){if(this._runtimeService.isStopExecution())return Ct.ERROR;const r=i.getChildren(),n=r.length;for(let s=0;s<n;s++){const u=r[s];if(u.getToken().toUpperCase()===dr&&u.isEmptyParamFunction()){u.execute();continue}this._execute(u,e,t)}return i.nodeType===ue.REFERENCE&&i.setRefOffset(e,t),i.execute(),Ct.SUCCESS}},L.Interpreter=Sl([Ll(0,Je)],L.Interpreter);function Za(a){return a instanceof ae?a.getToken()===Wt:!1}function Pl(a){return a instanceof ae?a.getToken()===_a:!1}function ns(a,i,e){const t=a.getChildren(),r=t.length,n=t[0];for(let s=0;s<r;s++){const u=t[s];if(!(Za(n)&&s!==0))if(u instanceof ae)ns(u,i,e);else{const o=u.trim();if(e.has(o)){const c=new ae;c.setToken(gr),c.setLambdaId(i),c.setLambdaPrivacyVar(e),c.setLambdaParameter(o),t[s]=c}}}}function Ml(a){if(a===null)return 0;if(a!=null&&a.p){const i=a==null?void 0:a.p.body;if(i==null)return 0;const e=i.dataStream;return O.BuildTextUtils.transform.getPlainText(e)}return(a==null?void 0:a.v)||0}const wl=1e5,ss=new rt(wl);class Ar extends Hr{constructor(e){super();C(this,"_forcedSheetId","");C(this,"_forcedSheetName","");C(this,"_defaultSheetId","");C(this,"_rangeData",{startColumn:-1,startRow:-1,endRow:-1,endColumn:-1});C(this,"_unitData",{});C(this,"_unitStylesData",{});C(this,"_defaultUnitId","");C(this,"_forcedUnitId","");C(this,"_runtimeData",{});C(this,"_arrayFormulaCellData",{});C(this,"_runtimeArrayFormulaCellData",{});C(this,"_runtimeFeatureCellData",{});C(this,"_refOffsetX",0);C(this,"_refOffsetY",0);this._token=e}dispose(){this._unitData={},this._unitStylesData={},this._runtimeData={}}getToken(){return this._token}setToken(e){this._token=e}isExceedRange(){const{startRow:e,endRow:t,startColumn:r,endColumn:n}=this.getRangePosition();return e<0||r<0||t>=this.getActiveSheetRowCount()||n>=this.getActiveSheetColumnCount()}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}getRangePosition(){let{startRow:e,startColumn:t,endRow:r,endColumn:n}=O.moveRangeByOffset(this._rangeData,this._refOffsetX,this._refOffsetY);return Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),Number.isNaN(r)&&(r=this.getActiveSheetRowCount()-1),Number.isNaN(n)&&(n=this.getActiveSheetColumnCount()-1),{...this._rangeData,startRow:e,endRow:r,startColumn:t,endColumn:n}}isReferenceObject(){return!0}iterator(e){const{startRow:t,endRow:r,startColumn:n,endColumn:s}=this.getRangePosition();if(this._checkIfWorksheetMiss())return e(g.create(h.VALUE),t,n);const u=this._forcedUnitId||this._defaultUnitId,o=this._forcedSheetId||this._defaultSheetId;for(let c=t;c<=r;c++)for(let l=n;l<=s;l++){if(c<0||l<0)return e(g.create(h.REF),c,l);const f=this.getCellData(c,l);let m=!1;if(O.isNullCell(f)){m=e(null,c,l);continue}let d=this.getCellValueObject(f);if(c===t&&l===n){const _=this.getCellPattern(u,o,c,l);if(_&&d.isNumber()){const E=Number(d.getValue());d=A.create(E,_)}}if(m=e(d,c,l),m===!1)return}}getFirstCell(){const{startRow:e,startColumn:t}=this.getRangePosition(),r=this.getCellData(e,t);if(!r)return A.create(0);let n=this.getCellValueObject(r);const s=this._forcedUnitId||this._defaultUnitId,u=this._forcedSheetId||this._defaultSheetId,o=this.getCellPattern(s,u,e,t);if(o&&n.isNumber()){const c=Number(n.getValue());n=A.create(c,o)}return n}getRangeData(){return this._rangeData}setRangeData(e){this._rangeData=e}getUnitId(){return this._forcedUnitId&&this._forcedUnitId.length>0?this._forcedUnitId:this._defaultUnitId}getSheetId(){return this._forcedSheetId&&this._forcedSheetId.length>0?this._forcedSheetId:this._defaultSheetId}setForcedUnitIdDirect(e){e.length>0&&(this._forcedUnitId=e)}getForcedUnitId(){return this._forcedUnitId}setForcedSheetId(e){var t;this._forcedSheetId=(t=e[this.getUnitId()])==null?void 0:t[this._forcedSheetName]}setForcedSheetIdDirect(e){this._forcedSheetId=e}getForcedSheetId(){return this._forcedSheetId}setForcedSheetName(e){e.length>0&&(this._forcedSheetName=e)}getForcedSheetName(){return this._forcedSheetName}setDefaultSheetId(e){this._defaultSheetId=e}getDefaultSheetId(){return this._defaultSheetId}setDefaultUnitId(e){this._defaultUnitId=e}getDefaultUnitId(){return this._defaultUnitId}getUnitData(){return this._unitData}setUnitData(e){this._unitData=e}getUnitStylesData(){return this._unitStylesData}setUnitStylesData(e){this._unitStylesData=e}getRuntimeData(){return this._runtimeData}setRuntimeData(e){this._runtimeData=e}getArrayFormulaCellData(){return this._arrayFormulaCellData}setArrayFormulaCellData(e){this._arrayFormulaCellData=e}getRuntimeArrayFormulaCellData(){return this._runtimeArrayFormulaCellData}setRuntimeArrayFormulaCellData(e){this._runtimeArrayFormulaCellData=e}getRuntimeFeatureCellData(){return this._runtimeFeatureCellData}setRuntimeFeatureCellData(e){this._runtimeFeatureCellData=e}getActiveSheetRowCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowCount)||0}getActiveSheetColumnCount(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnCount)||0}getRowCount(){return this._rangeData.endRow-this._rangeData.startRow+1}getColumnCount(){return this._rangeData.endColumn-this._rangeData.startColumn+1}getRowData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.rowData)||{}}getColumnData(){var e;return((e=this.getCurrentActiveSheetData())==null?void 0:e.columnData)||{}}isCell(){return!1}isColumn(){return!1}isRow(){return!1}isRange(){return!1}isTable(){return!1}unionBy(e){return g.create(h.REF)}unionRange(e,t){return{startRow:-1,startColumn:-1,endRow:-1,endColumn:-1}}getCellValueObject(e){const t=Ml(e);if(Mt.has(t))return g.create(t);if(e.t===O.CellValueType.NUMBER){const r=this._getPatternByCell(e);return tn(t,r)}return e.t===O.CellValueType.STRING||e.t===O.CellValueType.FORCE_STRING?T.create(t.toString()):e.t===O.CellValueType.BOOLEAN?en(t):mt.create(t)}_getPatternByCell(e){var n;const t=this._unitStylesData[this.getUnitId()];if(!t)return"";const r=t.getStyleByCell(e);return((n=r==null?void 0:r.n)==null?void 0:n.pattern)||""}getCellByRow(e){return this.getCellByPosition(e)}getCellByColumn(e){return this.getCellByPosition(void 0,e)}getCurrentActiveSheetData(){var e;return(e=this._unitData[this.getUnitId()])==null?void 0:e[this.getSheetId()]}getCurrentStylesData(){return this._unitStylesData[this.getUnitId()]}getCurrentRuntimeSheetData(){var e,t;return(t=(e=this._runtimeData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentActiveArrayFormulaCellData(){var e,t;return(t=(e=this._arrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCurrentRuntimeActiveArrayFormulaCellData(){var e,t;return(t=(e=this._runtimeArrayFormulaCellData)==null?void 0:e[this.getUnitId()])==null?void 0:t[this.getSheetId()]}getCellData(e,t){const r=this.getCurrentActiveSheetData(),n=this.getCurrentRuntimeSheetData(),s=this.getCurrentActiveArrayFormulaCellData(),u=this.getCurrentRuntimeActiveArrayFormulaCellData();return(n==null?void 0:n.getValue(e,t))||(u==null?void 0:u.getValue(e,t))||this.getRuntimeFeatureCellValue(e,t)||(s==null?void 0:s.getValue(e,t))||(r==null?void 0:r.cellData.getValue(e,t))}getRuntimeFeatureCellValue(e,t){return Ra(e,t,this.getSheetId(),this.getUnitId(),this._runtimeFeatureCellData)}getCellByPosition(e,t){let r=e,n=t;r||(r=this._rangeData.startRow),n||(n=this._rangeData.startColumn);const s=this.getCellData(r,n);return s?this.getCellValueObject(s):g.create(h.VALUE)}getCellPattern(e,t,r,n){var c,l,f,m;const s=this._unitStylesData[e];if(!s)return"";const u=(f=(l=(c=this._unitData[e])==null?void 0:c[t])==null?void 0:l.cellData)==null?void 0:f.getValue(r,n);if(!u)return"";const o=s.getStyleByCell(u);return((m=o==null?void 0:o.n)==null?void 0:m.pattern)||""}toArrayValueObject(e=!0){var _;const{startRow:t,endRow:r,startColumn:n,endColumn:s}=this.getRangePosition(),u=`${this.getUnitId()}_${this.getSheetId()}_${t}_${r}_${n}_${s}`,o=ss.get(u);if(o&&e)return o;const c=r-t+1,l=s-n+1;if(c<0||l<0)return this._getBlankArrayValueObject();const f=new Array(c);this.iterator((E,b,y)=>{const R=b-t,p=y-n;f[R]||(f[R]=new Array(l)),E==null&&(E=J.create()),f[R][p]=E});const m={calculateValueList:f,rowCount:f.length,columnCount:((_=f[0])==null?void 0:_.length)||0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:t,column:n},d=ee.create(m);return e&&ss.set(u,d),d}toUnitRange(){return{range:this.getRangePosition(),sheetId:this.getSheetId(),unitId:this.getUnitId()}}_checkIfWorksheetMiss(){return(this._forcedSheetId==null||this._forcedSheetId.length===0)&&this._forcedSheetName.length>0}_getBlankArrayValueObject(){const e={calculateValueList:[],rowCount:0,columnCount:0,unitId:this.getUnitId(),sheetId:this.getSheetId(),row:0,column:0};return ee.create(e)}}class za extends Hr{constructor(i){super(),this._promise=i}isAsyncObject(){return!0}async getValue(){return this._promise}}class Ja extends Hr{constructor(i){super(),this._promiseList=i}isAsyncArrayObject(){return!0}async getValue(){var t;const i=[];for(let r=0;r<this._promiseList.length;r++){const n=this._promiseList[r];i[r]==null&&(i[r]=[]);for(let s=0;s<n.length;s++){const u=n[s];u.isAsyncObject()?i[r][s]=await u.getValue():i[r][s]=u}}const e={calculateValueList:i,rowCount:i.length,columnCount:((t=i[0])==null?void 0:t.length)||0,unitId:"",sheetId:"",row:0,column:0};return ee.create(e)}}function jl(a){let i=a;for(;i!=null&&i.getParent();)i=i.getParent();return i}function an(a,i=0,e=0){return{node:a,refOffsetX:i,refOffsetY:e}}function ei(a){if(!a)return;if(a.getToken()!==gr)return a;const i=a,e=i.getCurrentLambdaPrivacyVar(),t=i.getLambdaParameter();if(!e)return;const r=e.get(t);return r==null&&a.getValue()?a:ei(r)}class as extends lt{constructor(e,t,r){super(0);C(this,"_lambdaPrivacyValueMap",new Map);this._lambdaNode=e,this._interpreter=t,this._lambdaPrivacyVarKeys=r,this._lambdaPrivacyValueMap.clear()}static create(e,t,r){return new as(e,t,r)}isLambda(){return!0}execute(...e){const t=this._lambdaPrivacyVarKeys.length;if(e.length!==t)return g.create(h.VALUE);this._setLambdaPrivacyValueMap(e),this._setLambdaNodeValue(this._lambdaNode),this._lambdaNode.setNotEmpty(!1);let r;if(this._interpreter.checkAsyncNode(this._lambdaNode))r=new za(this._interpreter.executeAsync(an(this._lambdaNode)));else{const n=this._interpreter.execute(an(this._lambdaNode));n.isReferenceObject()?r=n.toArrayValueObject():r=n}return this._lambdaNode.setNotEmpty(!0),r}_setLambdaNodeValue(e){const t=e.getChildren(),r=t.length;for(let n=0;n<r;n++){const s=t[n];if(s.getToken()===gr){const o=s.getLambdaParameter(),c=this._lambdaPrivacyValueMap.get(o);if(c)s.setValue(c);else{const l=s.getCurrentLambdaPrivacyVar(),f=ei(l.get(o));f!=null&&s.setValue(f.getValue())}continue}this._setLambdaNodeValue(s)}}_setLambdaPrivacyValueMap(e){for(let t=0;t<e.length;t++){const r=e[t],n=this._lambdaPrivacyVarKeys[t];this._lambdaPrivacyValueMap.set(n,r)}}getLambdaPrivacyVarKeys(){return this._lambdaPrivacyVarKeys}}var xl=Object.defineProperty,Ul=Object.getOwnPropertyDescriptor,Tl=(a,i,e,t)=>{for(var r=t>1?void 0:t?Ul(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&xl(i,e,r),r},ti=(a,i)=>(e,t)=>i(e,t,a);class vl extends Fe{constructor(e,t,r,n){super(e);C(this,"_isNotEmpty",!0);this._lambdaId=t,this._interpreter=r,this._lambdaPrivacyVarKeys=n}get nodeType(){return ue.LAMBDA}setNotEmpty(e=!1){this._isNotEmpty=e}isEmptyParamFunction(){return this.getChildren().length<2&&this._isNotEmpty}isFunctionParameter(){return this._lambdaId===null}getLambdaId(){return this._lambdaId}execute(){if(this.isEmptyParamFunction())this.setValue(as.create(this,this._interpreter,this._lambdaPrivacyVarKeys));else{const e=this.getChildren(),t=e.length;this.setValue(e[t-1].getValue())}}}L.LambdaNodeFactory=class extends ut{constructor(i,e){super(),this._runtimeService=i,this._interpreter=e}get zIndex(){return at.get(ue.LAMBDA)||it}create(i){const e=i.getChildren(),t=e[0];let r=e.slice(1,-1);const n=e[e.length-1];if(!(t instanceof ae&&n instanceof ae))return Le.create(h.NAME);if(t.getToken()===Wt){const o=t.getChildren();if(r.length!==o.length)return Le.create(h.VALUE)}else r=e.slice(0,-1);const s=O.Tools.generateRandomId(8),u=new Map;for(let o=0;o<r.length;o++){const c=r[o];if(c instanceof ae){const l=c.getChildren()[0];c.setToken(_a),u.set(l.trim(),void 0)}else return Le.create(h.VALUE)}return this._runtimeService.registerFunctionDefinitionPrivacyVar(s,u),this._updateLambdaStatement(n,s,u),new vl(i.getToken(),s,this._interpreter,[...u.keys()])}checkAndCreateNodeType(i){if(!(!(i instanceof ae)||i.getToken().trim().toUpperCase()!==dr))return this.create(i)}_updateLambdaStatement(i,e,t){ns(i,e,t)}},L.LambdaNodeFactory=Tl([ti(0,Je),ti(1,O.Inject(L.Interpreter))],L.LambdaNodeFactory);function ri(a){if(!a)return;if(a.getToken()!==gr)return a;const i=a,e=i.getCurrentLambdaPrivacyVar(),t=i.getLambdaParameter();if(e)return ri(e.get(t))}class Bl extends Fe{constructor(i,e,t){super(i),this._lambdaParameter=e,this._currentLambdaPrivacyVar=t}getLambdaParameter(){return this._lambdaParameter}getCurrentLambdaPrivacyVar(){return this._currentLambdaPrivacyVar}get nodeType(){return ue.LAMBDA_PARAMETER}execute(){const i=ri(this._currentLambdaPrivacyVar.get(this._lambdaParameter));if(i)this.setValue(i.getValue());else{const e=this.getValue();(e==null||e.isError())&&this.setValue(g.create(h.NAME))}}}class is extends ut{get zIndex(){return at.get(ue.LAMBDA_PARAMETER)||it}create(i){const e=i.getFunctionDefinitionPrivacyVar(),t=i.getLambdaParameter();return e?new Bl(i.getToken(),t,e):new Le(h.NAME)}checkAndCreateNodeType(i){if(!(!(i instanceof ae)||i.getToken().trim()!==gr))return this.create(i)}}class Fl extends Fe{constructor(i){super(i),this._operatorString=i}get nodeType(){return ue.NULL}execute(){this.setValue(J.create())}}var k=(a=>(a.ABS="ABS",a.ACOS="ACOS",a.ACOSH="ACOSH",a.ACOT="ACOT",a.ACOTH="ACOTH",a.AGGREGATE="AGGREGATE",a.ARABIC="ARABIC",a.ASIN="ASIN",a.ASINH="ASINH",a.ATAN="ATAN",a.ATAN2="ATAN2",a.ATANH="ATANH",a.BASE="BASE",a.CEILING="CEILING",a.CEILING_MATH="CEILING.MATH",a.CEILING_PRECISE="CEILING.PRECISE",a.COMBIN="COMBIN",a.COMBINA="COMBINA",a.COS="COS",a.COSH="COSH",a.COT="COT",a.COTH="COTH",a.CSC="CSC",a.CSCH="CSCH",a.DECIMAL="DECIMAL",a.DEGREES="DEGREES",a.EVEN="EVEN",a.EXP="EXP",a.FACT="FACT",a.FACTDOUBLE="FACTDOUBLE",a.FLOOR="FLOOR",a.FLOOR_MATH="FLOOR.MATH",a.FLOOR_PRECISE="FLOOR.PRECISE",a.GCD="GCD",a.INT="INT",a.ISO_CEILING="ISO.CEILING",a.LCM="LCM",a.LET="LET",a.LN="LN",a.LOG="LOG",a.LOG10="LOG10",a.MDETERM="MDETERM",a.MINVERSE="MINVERSE",a.MMULT="MMULT",a.MOD="MOD",a.MROUND="MROUND",a.MULTINOMIAL="MULTINOMIAL",a.MUNIT="MUNIT",a.ODD="ODD",a.PI="PI",a.POWER="POWER",a.PRODUCT="PRODUCT",a.QUOTIENT="QUOTIENT",a.RADIANS="RADIANS",a.RAND="RAND",a.RANDARRAY="RANDARRAY",a.RANDBETWEEN="RANDBETWEEN",a.ROMAN="ROMAN",a.ROUND="ROUND",a.ROUNDDOWN="ROUNDDOWN",a.ROUNDUP="ROUNDUP",a.SEC="SEC",a.SECH="SECH",a.SERIESSUM="SERIESSUM",a.SEQUENCE="SEQUENCE",a.SIGN="SIGN",a.SIN="SIN",a.SINH="SINH",a.SQRT="SQRT",a.SQRTPI="SQRTPI",a.SUBTOTAL="SUBTOTAL",a.SUM="SUM",a.SUMIF="SUMIF",a.SUMIFS="SUMIFS",a.SUMPRODUCT="SUMPRODUCT",a.SUMSQ="SUMSQ",a.SUMX2MY2="SUMX2MY2",a.SUMX2PY2="SUMX2PY2",a.SUMXMY2="SUMXMY2",a.TAN="TAN",a.TANH="TANH",a.TRUNC="TRUNC",a))(k||{}),ce=(a=>(a.ASC="ASC",a.ARRAYTOTEXT="ARRAYTOTEXT",a.BAHTTEXT="BAHTTEXT",a.CHAR="CHAR",a.CLEAN="CLEAN",a.CODE="CODE",a.CONCAT="CONCAT",a.CONCATENATE="CONCATENATE",a.DBCS="DBCS",a.DOLLAR="DOLLAR",a.EXACT="EXACT",a.FIND="FIND",a.FINDB="FINDB",a.FIXED="FIXED",a.LEFT="LEFT",a.LEFTB="LEFTB",a.LEN="LEN",a.LENB="LENB",a.LOWER="LOWER",a.MID="MID",a.MIDB="MIDB",a.NUMBERVALUE="NUMBERVALUE",a.PHONETIC="PHONETIC",a.PROPER="PROPER",a.REGEXEXTRACT="REGEXEXTRACT",a.REGEXMATCH="REGEXMATCH",a.REGEXREPLACE="REGEXREPLACE",a.REPLACE="REPLACE",a.REPLACEB="REPLACEB",a.REPT="REPT",a.RIGHT="RIGHT",a.RIGHTB="RIGHTB",a.SEARCH="SEARCH",a.SEARCHB="SEARCHB",a.SUBSTITUTE="SUBSTITUTE",a.T="T",a.TEXT="TEXT",a.TEXTAFTER="TEXTAFTER",a.TEXTBEFORE="TEXTBEFORE",a.TEXTJOIN="TEXTJOIN",a.TEXTSPLIT="TEXTSPLIT",a.TRIM="TRIM",a.UNICHAR="UNICHAR",a.UNICODE="UNICODE",a.UPPER="UPPER",a.VALUE="VALUE",a.VALUETOTEXT="VALUETOTEXT",a.CALL="CALL",a.EUROCONVERT="EUROCONVERT",a.REGISTER_ID="REGISTER.ID",a))(ce||{}),Il=Object.defineProperty,kl=Object.getOwnPropertyDescriptor,$l=(a,i,e,t)=>{for(var r=t>1?void 0:t?kl(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&Il(i,e,r),r},Yl=(a,i)=>(e,t)=>i(e,t,a);class Hl extends Fe{constructor(i,e){super(i),this._operatorString=i,this._functionExecutor=e}get nodeType(){return ue.OPERATOR}execute(){var n,s;const i=this.getChildren();this._functionExecutor.name===je.COMPARE&&this._functionExecutor.setCompareType(this.getToken());let e=(n=i[0])==null?void 0:n.getValue(),t=(s=i[1])==null?void 0:s.getValue();const r=this.getToken();if((e==null||t==null)&&r!==G.MINUS&&r!==G.PLUS){this.setValue(g.create(h.VALUE));return}e==null&&(e=J.create()),t==null&&(t=J.create()),e.isReferenceObject()&&(e=e.toArrayValueObject()),t.isReferenceObject()&&(t=t.toArrayValueObject()),this.setValue(this._functionExecutor.calculate(e,t))}}L.OperatorNodeFactory=class extends ut{constructor(i){super(),this._functionService=i}get zIndex(){return at.get(ue.OPERATOR)||it}create(i){let e="";const t=i;t===G.PLUS?e=je.PLUS:t===G.MINUS?e=je.MINUS:t===G.MULTIPLY?e=je.MULTIPLY:t===G.DIVIDED?e=je.DIVIDED:t===G.CONCATENATE?e=ce.CONCATENATE:t===G.POWER?e=k.POWER:Hu.has(t)&&(e=je.COMPARE);const r=this._functionService.getExecutor(e);return r?new Hl(t,r):(console.error(`No function ${i}`),Le.create(h.NAME))}checkAndCreateNodeType(i){if(i instanceof ae)return;const e=i.trim();if(!(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')&&_t.has(e))return this.create(e)}},L.OperatorNodeFactory=$l([Yl(0,ht)],L.OperatorNodeFactory);class ni extends O.Disposable{constructor(){super(...arguments);C(this,"_tableMap",new Map);C(this,"_tableOptionMap",new Map)}dispose(){this._tableMap.clear(),this._tableOptionMap.clear()}remove(e,t){var r;(r=this._tableMap.get(e))==null||r.delete(t)}getTableMap(e){return this._tableMap.get(e)}getTableOptionMap(){return this._tableOptionMap}registerTable(e,t,r){var n;this._tableMap.get(e)==null&&this._tableMap.set(e,new Map),(n=this._tableMap.get(e))==null||n.set(t,r)}registerTableOptionMap(e,t){this._tableOptionMap.set(e,t)}}const un=O.createIdentifier("univer.formula.super-table.service");class yr extends Ar{constructor(i,e,t){super(""),this.setRangeData(i),e&&this.setForcedSheetIdDirect(e),t&&this.setForcedUnitIdDirect(t)}isRange(){return!0}}class us extends Ar{constructor(i){super(i);const e=wt(i);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName),this.setRangeData(e.range)}isCell(){return!0}unionBy(i){if(!i.isCell())return g.create(h.REF);const e=i,t=this.unionRange(this.getRangeData(),e.getRangeData());return this._createRange(t)}unionRange(i,e){const t=i.startRow,r=i.startColumn,n=e.startRow,s=e.startColumn,u={startRow:-1,startColumn:-1,endRow:-1,endColumn:-1};return t>n?(u.startRow=n,u.endRow=t):(u.startRow=t,u.endRow=n),r>s?(u.startColumn=s,u.endColumn=r):(u.startColumn=r,u.endColumn=s),i.startAbsoluteRefType&&(u.startAbsoluteRefType=i.startAbsoluteRefType),e.startAbsoluteRefType&&(u.endAbsoluteRefType=e.startAbsoluteRefType),u}_createRange(i){const e=new yr(i,this.getForcedSheetId(),this.getForcedUnitId());e.setUnitData(this.getUnitData()),e.setDefaultSheetId(this.getDefaultSheetId()),e.setDefaultUnitId(this.getDefaultUnitId()),e.setRuntimeData(this.getRuntimeData()),e.setUnitStylesData(this.getUnitStylesData()),e.setArrayFormulaCellData(this.getArrayFormulaCellData()),e.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()),e.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData());const{x:t,y:r}=this.getRefOffset();e.setRefOffset(t,r);const n=this.getForcedSheetId();e.setForcedSheetName(this.getForcedSheetName()),n!=null&&e.setForcedSheetIdDirect(n);const s=this.getForcedUnitId();return s&&e.setForcedUnitIdDirect(s),e}}class os extends Ar{constructor(i){super(i);const e=wt(i);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={...e.range,startColumn:e.range.startColumn,startRow:Number.NaN,endColumn:e.range.endColumn,endRow:Number.NaN,rangeType:O.RANGE_TYPE.COLUMN};this.setRangeData(t)}isColumn(){return!0}unionBy(i){if(!i.isColumn())return g.create(h.REF);const e=i;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return g.create(h.REF);const t=this.getRangeData(),r=e.getRangeData(),n=r.startColumn;if(n>=t.startColumn&&n<=t.endColumn)return this;const s=t.startColumn;return n>s?t.endColumn=n:(t.startColumn=n,t.endColumn=s),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=O.RANGE_TYPE.COLUMN,this.setToken(`${this.getToken()}${Q.COLON}${e.getToken()}`),this}}class cs extends Ar{constructor(i){super(i);const e=wt(i);this.setForcedUnitIdDirect(e.unitId),this.setForcedSheetName(e.sheetName);const t={...e.range,startColumn:Number.NaN,startRow:e.range.startRow,endColumn:Number.NaN,endRow:e.range.endRow,rangeType:O.RANGE_TYPE.ROW};this.setRangeData(t)}isRow(){return!0}unionBy(i){if(!i.isRow())return g.create(h.REF);const e=i;if(e.getForcedSheetName()!==void 0&&e.getForcedSheetName()!=="")return g.create(h.REF);const t=this.getRangeData(),r=e.getRangeData(),n=r.startRow;if(n>=t.startRow&&n<=t.endRow)return this;const s=t.startRow;return n>s?t.endRow=n:(t.startRow=n,t.endRow=s),r.startAbsoluteRefType&&(t.endAbsoluteRefType=r.startAbsoluteRefType),t.rangeType=O.RANGE_TYPE.ROW,this.setToken(`${this.getToken()}${Q.COLON}${e.getToken()}`),this}}var Ql=Object.defineProperty,Wl=Object.getOwnPropertyDescriptor,Gl=(a,i,e,t)=>{for(var r=t>1?void 0:t?Wl(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&Ql(i,e,r),r},on=(a,i)=>(e,t)=>i(e,t,a);class ls extends Fe{constructor(e,t,r,n=!1){super(t);C(this,"_refOffsetX",0);C(this,"_refOffsetY",0);this._accessor=e,this._operatorString=t,this._referenceObject=r,this._isPrepareMerge=n}get nodeType(){return ue.REFERENCE}execute(){const e=this._accessor.get(ct),t=this._accessor.get(Je);this._referenceObject.setDefaultUnitId(t.currentUnitId),this._referenceObject.setDefaultSheetId(t.currentSubUnitId),this._referenceObject.setForcedSheetId(e.getSheetNameMap()),this._referenceObject.setUnitData(e.getUnitData()),this._referenceObject.setArrayFormulaCellData(e.getArrayFormulaCellData()),this._referenceObject.setRuntimeData(t.getUnitData()),this._referenceObject.setUnitStylesData(e.getUnitStylesData()),this._referenceObject.setRuntimeArrayFormulaCellData(t.getRuntimeArrayFormulaCellData()),this._referenceObject.setRuntimeFeatureCellData(t.getRuntimeFeatureCellData());const{x:r,y:n}=this.getRefOffset();this._referenceObject.setRefOffset(r,n),!this._isPrepareMerge&&this._referenceObject.isExceedRange()?this.setValue(g.create(h.NAME)):this.setValue(this._referenceObject)}setRefOffset(e=0,t=0){this._refOffsetX=e,this._refOffsetY=t}getRefOffset(){return{x:this._refOffsetX,y:this._refOffsetY}}}L.ReferenceNodeFactory=class extends ut{constructor(i,e,t,r){super(),this._superTableService=i,this._formulaRuntimeService=e,this._functionService=t,this._injector=r}get zIndex(){return at.get(ue.REFERENCE)||it}checkAndCreateNodeType(i){var c,l;let e=!1,t,r=!1;i instanceof ae?(e=!0,t=i.getToken().trim(),((l=(c=i.getParent())==null?void 0:c.getParent())==null?void 0:l.getToken().trim())===Q.COLON&&(r=!0)):t=i.trim();const{tokenTrim:n,minusPrefixNode:s,atPrefixNode:u}=Ka(t,this._functionService,this._injector);if(!e&&n.charAt(0)==='"'&&n.charAt(n.length-1)==='"')return;let o;if(cr(n)?o=new ls(this._injector,n,new us(n),r):e&&this._checkParentIsUnionOperator(i)&&(ia(n)?o=new ls(this._injector,n,new cs(n),r):ua(n)&&(o=new ls(this._injector,n,new os(n),r))),o)return u?o.setParent(u):s&&o.setParent(s),o}_checkParentIsUnionOperator(i){var e,t;return((t=(e=i.getParent())==null?void 0:e.getParent())==null?void 0:t.getToken().trim())===Q.COLON}},L.ReferenceNodeFactory=Gl([on(0,un),on(1,Je),on(2,ht),on(3,O.Inject(O.Injector))],L.ReferenceNodeFactory);var ql=Object.defineProperty,Xl=Object.getOwnPropertyDescriptor,Kl=(a,i,e,t)=>{for(var r=t>1?void 0:t?Xl(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&ql(i,e,r),r},si=(a,i)=>(e,t)=>i(e,t,a);class ai extends Fe{constructor(i,e,t){super(e),this._accessor=i,this._operatorString=e,this._functionExecutor=t}get nodeType(){return ue.SUFFIX}execute(){let e=this.getChildren()[0].getValue(),t;if(e==null)throw new Error("object is null");if(this._operatorString===Ye.PERCENTAGE){if(e.isReferenceObject()&&(e=e.toArrayValueObject()),t=this._functionExecutor.calculate(e,A.create(100)),t.isNumber()){const r=Number(t.getValue());t=A.create(r,"0.00%")}}else this._operatorString===Ye.POUND?t=this._handlerPound(e):t=g.create(h.VALUE);this.setValue(t)}_handlerPound(i){var l,f,m,d;if(!i.isReferenceObject()||!i.isCell())return g.create(h.VALUE);const e=this._accessor.get(ct),t=this._accessor.get(L.Lexer),r=i,n=r.getRangePosition(),s=r.getUnitId(),u=r.getSheetId(),o=e.getFormulaData(),c=(d=(m=(f=(l=o==null?void 0:o[s])==null?void 0:l[u])==null?void 0:f[n.startRow])==null?void 0:m[n.startColumn])==null?void 0:d.f;return c&&t.treeBuilder(c),g.create(h.VALUE)}}L.SuffixNodeFactory=class extends ut{constructor(i,e){super(),this._functionService=i,this._injector=e}get zIndex(){return at.get(ue.SUFFIX)||it}checkAndCreateNodeType(i){if(!(i instanceof ae))return;const e=i.getToken().trim();if(e.charAt(0)==='"'&&e.charAt(e.length-1)==='"')return;let t="";if(e===Ye.PERCENTAGE)t=je.DIVIDED;else return e===Ye.POUND?new ai(this._injector,e):void 0;const r=this._functionService.getExecutor(t);return r?new ai(this._injector,e,r):(console.error(`No function ${i}`),Le.create(h.NAME))}},L.SuffixNodeFactory=Kl([si(0,ht),si(1,O.Inject(O.Injector))],L.SuffixNodeFactory);var Zl=Object.defineProperty,zl=Object.getOwnPropertyDescriptor,Jl=(a,i,e,t)=>{for(var r=t>1?void 0:t?zl(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&Zl(i,e,r),r},ef=(a,i)=>(e,t)=>i(e,t,a);class tf extends Fe{constructor(i){super(i),this._operatorString=i}get nodeType(){return ue.UNION}execute(){const i=this.getChildren(),e=i[0].getValue(),t=i[1].getValue();if(e==null||t==null)throw new Error("leftNode and rightNode");let r;this._operatorString===Q.COLON?r=this._unionFunction(e,t):r=g.create(h.NAME),this.setValue(r)}_unionFunction(i,e){return i.isError()||e.isError()||!i.isReferenceObject()||!e.isReferenceObject()?g.create(h.REF):(i=i,e=e,i.isCell()&&e.isCell()||i.isRow()&&e.isRow()||i.isColumn()&&e.isColumn()?i.unionBy(e):g.create(h.NAME))}}L.UnionNodeFactory=class extends ut{constructor(i){super(),this._functionService=i}get zIndex(){return at.get(ue.UNION)||it}create(i){return new tf(i)}checkAndCreateNodeType(i){if(!(i instanceof ae))return;const t=i.getToken().trim();if(!(t.charAt(0)==='"'&&t.charAt(t.length-1)==='"')&&t===Q.COLON)return this.create(t)}},L.UnionNodeFactory=Jl([ef(0,ht)],L.UnionNodeFactory);class rf extends Fe{constructor(i){super(i),this._operatorString=i}get nodeType(){return ue.VALUE}execute(){this.setValue(mt.create(this._operatorString))}}class fs extends ut{get zIndex(){return at.get(ue.VALUE)||it}_checkValueNode(i){if(Number.isNaN(Number(i))){const e=i.trim(),t=e.charAt(0),r=e.charAt(e.length-1);if(Mt.has(e))return this.create(e);if(t==='"'&&r==='"')return this.create(e);if(t==="{"&&r==="}")return this.create(e);const n=e.toUpperCase();if(n===dt.TRUE||n===dt.FALSE)return this.create(n)}else return this.create(i)}create(i){return new rf(i)}checkAndCreateNodeType(i){if(!(i instanceof ae))return this._checkValueNode(i)}}var nf=Object.defineProperty,sf=Object.getOwnPropertyDescriptor,af=(a,i,e,t)=>{for(var r=t>1?void 0:t?sf(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&nf(i,e,r),r},et=(a,i)=>(e,t)=>i(e,t,a);L.AstTreeBuilder=class extends O.Disposable{constructor(e,t,r,n,s,u,o,c,l,f,m){super();C(this,"_astNodeFactoryList",[]);C(this,"_refOffsetX",0);C(this,"_refOffsetY",0);this._runtimeService=e,this._astRootNodeFactory=t,this._functionNodeFactory=r,this._lambdaNodeFactory=n,this._lambdaParameterNodeFactory=s,this._operatorNodeFactory=u,this._prefixNodeFactory=o,this._referenceNodeFactory=c,this._suffixNodeFactory=l,this._unionNodeFactory=f,this._valueNodeFactory=m,this._initializeAstNode()}dispose(){this._astNodeFactoryList.forEach(e=>{e.dispose()}),this._astNodeFactoryList=[]}parse(e){const t=new ts(At),r=this._parse(e,t);return e.hasDefinedNames()&&(r==null||r.setDefinedNames(e.getDefinedNames())),r}_lambdaParameterHandler(e,t){if(t.getLambdaId==null)return Le.create(h.VALUE);const r=t.getLambdaId(),n=new ts(At),s=this._runtimeService.getFunctionDefinitionPrivacyVar(r);if(!s)return!1;const u=[...s.keys()],o=e.getChildren(),c=o.length;for(let l=0;l<c;l++){const f=o[l];if(f instanceof ae){ns(f,r,s),this._parse(f,n);const d=n.getChildren()[l];d!=null&&s.set(u[l],d)}else return!1}return n.setParent(t),t}_changeLetToLambda(e){const t=e.getChildren(),r=t.length;if(r%2!==1||r===0)return;const n=new ae;n.setToken(dr);const s=new ae;s.setToken(Wt);const u=[...t];for(let c=0;c<r;c++){const l=u[c];if(!(l instanceof ae))return;c%2===0?l.changeToParent(n):l.changeToParent(s)}n.addChildrenFirst(s),s.setParent(n);const o=e.getParent();return o==null||o.replaceChild(e,n),n}_parse(e,t){const r=e.getChildren(),n=r.length,s=[];let u=null;const o=e.getToken().trim().toUpperCase();if(o===po){const f=this._changeLetToLambda(e);return f!=null?this._parse(f,t):Le.create(h.ERROR)}if(o===ot){if(u=t,n===0)return new Fl(At).setParent(t),u}else{if(o===Wt){let f=this._lambdaParameterHandler(e,t);return f===!1&&(f=Le.create(h.ERROR)),f}if(u=this._checkAstNode(e),u==null)return Le.create(h.NAME)}const c=r[0];for(let f=0;f<n;f++){const m=r[f];if(Za(c)){if(f!==0&&f!==n-1)continue}else if(Pl(m)&&f!==n-1)continue;let d=null;if(m instanceof ae){if(d=this._parse(m,u),d===u)continue}else d=this._checkAstNode(m);if(d==null)return Le.create(h.NAME);if(d=jl(d),d==null)return;switch(d.nodeType){case ue.FUNCTION:{const _=d.getToken().trim().toUpperCase();Vo.has(_)&&d.setForcedCalculateFunction(),s.push(d);break}case ue.LAMBDA:s.push(d);break;case ue.LAMBDA_PARAMETER:s.push(d);break;case ue.OPERATOR:{const _=s.pop(),E=s.pop();E&&E.setParent(d),_&&_.setParent(d),s.push(d);break}case ue.REFERENCE:s.push(d);break;case ue.ROOT:s.push(d);break;case ue.UNION:s.push(d);break;case ue.VALUE:s.push(d);break;case ue.PREFIX:s.push(d);break;case ue.SUFFIX:s.push(d);break}}const l=s.length;for(let f=0;f<l;f++)s[f].setParent(u);return u}_checkAstNode(e){let t=null;const r=this._astNodeFactoryList.length;for(let n=0;n<r&&(t=this._astNodeFactoryList[n].checkAndCreateNodeType(e),t==null);n++);return t==null?new Vl:t}_initializeAstNode(){this._astNodeFactoryList=[this._astRootNodeFactory,this._functionNodeFactory,this._lambdaNodeFactory,this._lambdaParameterNodeFactory,this._operatorNodeFactory,this._prefixNodeFactory,this._referenceNodeFactory,this._suffixNodeFactory,this._unionNodeFactory,this._valueNodeFactory].sort(O.sortRules)}},L.AstTreeBuilder=af([et(0,Je),et(1,O.Inject(rs)),et(2,O.Inject(L.FunctionNodeFactory)),et(3,O.Inject(L.LambdaNodeFactory)),et(4,O.Inject(is)),et(5,O.Inject(L.OperatorNodeFactory)),et(6,O.Inject(L.PrefixNodeFactory)),et(7,O.Inject(L.ReferenceNodeFactory)),et(8,O.Inject(L.SuffixNodeFactory)),et(9,O.Inject(L.UnionNodeFactory)),et(10,O.Inject(fs))],L.AstTreeBuilder);class ii extends O.Disposable{constructor(){super(...arguments);C(this,"_otherFormulaData",{});C(this,"_featureFormulaData",{});C(this,"_formulaData",{});C(this,"_allTreeMap",new Map);C(this,"_dependencyRTreeCache",new O.RTree(!0));C(this,"_dependencyTreeIdLast",0)}dispose(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={},this._dependencyRTreeCache.dispose(),this._restDependencyTreeId(),this._allTreeMap.clear()}getAllTree(){const e=[];return this._allTreeMap.forEach(t=>{t.resetState(),e.push(t)}),e}getTreeById(e){return this._allTreeMap.get(e)}buildDependencyTree(e,t=[]){const r=this.getAllTree();return e.length===0?(this._buildReverseDependency(r,t),r):(this._buildDependencyTree(r,e),this._buildReverseDependency(r,e),r)}searchDependency(e){return this._dependencyRTreeCache.bulkSearch(e)}_buildDependencyTree(e,t){const r=new Map;for(let n=0;n<t.length;n++){const s=t[n];r.set(s.treeId,s)}for(let n=0;n<e.length;n++){const s=e[n],u=s.toRTreeItem(),o=this._dependencyRTreeCache.search(u);for(let c=0;c<o.length;c++){const l=o[c],f=r.get(l);f&&s!==f&&!f.hasChildren(s.treeId)&&f.pushChildren(s)}}r.clear()}_buildReverseDependency(e,t){const r=new Map;for(let n=0;n<e.length;n++){const s=e[n];r.set(s.treeId,s)}for(let n=0;n<t.length;n++){const s=t[n],u=s.toRTreeItem(),o=this._dependencyRTreeCache.search(u);for(let c=0;c<o.length;c++){const l=o[c],f=r.get(l);f&&s!==f&&!f.hasChildren(s.treeId)&&f.pushChildren(s)}}r.clear()}clearDependencyForTree(e){if(e==null)return;const t=e.parents,r=e.children,n=this._allTreeMap;for(const s of t){const u=n.get(s);u==null||u.children.delete(e.treeId)}for(const s of r){const u=n.get(s);u==null||u.parents.delete(e.treeId)}e.dispose()}reset(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={},this._dependencyRTreeCache.clear(),this._allTreeMap.clear(),this._restDependencyTreeId()}addOtherFormulaDependency(e,t,r,n){this._otherFormulaData[e]||(this._otherFormulaData[e]={}),this._otherFormulaData[e][t]||(this._otherFormulaData[e][t]={}),this._otherFormulaData[e][t][r]=n.treeId,this._allTreeMap.set(n.treeId,n)}removeOtherFormulaDependency(e,t,r){this._otherFormulaData[e]&&this._otherFormulaData[e][t]&&r.forEach(n=>{const s=this._otherFormulaData[e][t][n];if(s==null)return;const u=this._allTreeMap.get(s);this._removeDependencyRTreeCache(u),this.clearDependencyForTree(u),delete this._otherFormulaData[e][t][n],this._removeAllTreeMap(s)})}getOtherFormulaDependency(e,t,r){var s,u;let n=(u=(s=this._otherFormulaData[e])==null?void 0:s[t])==null?void 0:u[r];return n==null&&(n=-1),this._allTreeMap.get(n)}hasOtherFormulaDependency(e,t,r){return this.getOtherFormulaDependency(e,t,r)!=null}clearOtherFormulaDependency(e,t){if(t&&this._otherFormulaData[e]&&this._otherFormulaData[e][t])this._removeDependencyRTreeCacheById(e,t),Object.values(this._otherFormulaData[e][t]).forEach(r=>{if(r==null)return;const n=this._allTreeMap.get(r);this.clearDependencyForTree(n),this._removeAllTreeMap(r)}),this._otherFormulaData[e][t]={};else if(this._otherFormulaData[e]){const r=this._otherFormulaData[e];Object.keys(r).forEach(n=>{n!=null&&(this._removeDependencyRTreeCacheById(e,n),Object.values(r[n]).forEach(s=>{if(s==null)return;const u=this._allTreeMap.get(s);this.clearDependencyForTree(u),this._removeAllTreeMap(s)}))}),this._otherFormulaData[e]=null}}addFeatureFormulaDependency(e,t,r,n){this._featureFormulaData[e]||(this._featureFormulaData[e]={}),this._featureFormulaData[e][t]||(this._featureFormulaData[e][t]={}),this._featureFormulaData[e][t][r]=n.treeId,this._allTreeMap.set(n.treeId,n)}removeFeatureFormulaDependency(e,t,r){this._featureFormulaData[e]&&this._featureFormulaData[e][t]&&r.forEach(n=>{const s=this._featureFormulaData[e][t][n];if(s==null)return;const u=this._allTreeMap.get(s);this._removeDependencyRTreeCache(u),this.clearDependencyForTree(u),delete this._featureFormulaData[e][t][n],this._removeAllTreeMap(s)})}clearFeatureFormulaDependency(e,t){if(t&&this._featureFormulaData[e]&&this._featureFormulaData[e][t])this._removeDependencyRTreeCacheById(e,t),Object.values(this._featureFormulaData[e][t]).forEach(r=>{if(r==null)return;const n=this._allTreeMap.get(r);this._removeDependencyRTreeCache(n),this.clearDependencyForTree(n),this._removeAllTreeMap(r)}),this._featureFormulaData[e][t]={};else if(this._featureFormulaData[e]){const r=this._featureFormulaData[e];Object.keys(r).forEach(n=>{n!=null&&(this._removeDependencyRTreeCacheById(e,n),Object.values(r[n]).forEach(s=>{if(s==null)return;const u=this._allTreeMap.get(s);this.clearDependencyForTree(u),this._removeAllTreeMap(s)}))}),this._featureFormulaData[e]=null}}getFeatureFormulaDependency(e,t,r){var s,u;const n=(u=(s=this._featureFormulaData[e])==null?void 0:s[t])==null?void 0:u[r];return n==null?null:this._allTreeMap.get(n)}addFormulaDependency(e,t,r,n,s){this._formulaData[e]||(this._formulaData[e]={}),this._formulaData[e][t]||(this._formulaData[e][t]=new O.ObjectMatrix),this._formulaData[e][t].setValue(r,n,s.treeId),this._allTreeMap.set(s.treeId,s)}removeFormulaDependency(e,t,r,n){if(this._formulaData[e]&&this._formulaData[e][t]){const s=this._formulaData[e][t].getValue(r,n);if(s==null)return;const u=this._allTreeMap.get(s);this._removeDependencyRTreeCache(u),this.clearDependencyForTree(u),this._formulaData[e][t].realDeleteValue(r,n),this._removeAllTreeMap(s)}}clearFormulaDependency(e,t){if(t&&this._formulaData[e]&&this._formulaData[e][t])this._removeDependencyRTreeCacheById(e,t),this._formulaData[e][t].forValue((r,n,s)=>{if(s==null)return!0;const u=this._allTreeMap.get(s);this.clearDependencyForTree(u),this._removeAllTreeMap(s)}),this._formulaData[e][t].reset();else if(this._formulaData[e]){const r=this._formulaData[e];Object.keys(r).forEach(n=>{n!=null&&(this._removeDependencyRTreeCacheById(e,n),r[n].forValue((s,u,o)=>{if(o==null)return!0;const c=this._allTreeMap.get(o);this.clearDependencyForTree(c),this._removeAllTreeMap(o)}))}),this._formulaData[e]=null}}clearDependencyAll(){this._otherFormulaData={},this._featureFormulaData={},this._formulaData={},this._dependencyRTreeCache.clear(),this._restDependencyTreeId()}getFormulaDependency(e,t,r,n){var u,o;const s=(o=(u=this._formulaData[e])==null?void 0:u[t])==null?void 0:o.getValue(r,n);return s==null?null:this._allTreeMap.get(s)}addDependencyRTreeCache(e){const t=[];for(let r=0;r<e.rangeList.length;r++){const n=e.rangeList[r],{unitId:s,sheetId:u,range:o}=n;t.push({unitId:s,sheetId:u,range:o,id:e.treeId})}this._dependencyRTreeCache.bulkInsert(t)}_restDependencyTreeId(){this._dependencyTreeIdLast=0}getLastTreeId(){const e=this._dependencyTreeIdLast;return this._dependencyTreeIdLast++,e}_removeDependencyRTreeCacheById(e,t){this._dependencyRTreeCache.removeById(e,t)}_removeDependencyRTreeCache(e){if(e==null)return;const t=[];for(let r=0;r<e.rangeList.length;r++){const n=e.rangeList[r],{unitId:s,sheetId:u,range:o}=n;t.push({unitId:s,sheetId:u,range:o,id:e.treeId})}this._dependencyRTreeCache.bulkRemove(t)}removeFormulaDependencyByDefinedName(e,t){this._formulaData[e]&&Object.values(this._formulaData[e]).forEach(r=>{r.forValue((n,s,u)=>{var c;const o=this._allTreeMap.get(u);(c=o==null?void 0:o.nodeData)!=null&&c.node.hasDefinedName(t)&&(this._removeDependencyRTreeCache(o),this.clearDependencyForTree(o),r.realDeleteValue(n,s))})})}openKdTree(){this._dependencyRTreeCache.openKdTree()}closeKdTree(){this._dependencyRTreeCache.closeKdTree()}_removeAllTreeMap(e){e!=null&&this._allTreeMap.delete(e)}}const Rr=O.createIdentifier("univer.formula.dependency-manager.service");class ui extends O.Disposable{constructor(){super(...arguments);C(this,"_referenceExecutorMap",new Map);C(this,"_onChanged$",new qe.Subject);C(this,"onChanged$",this._onChanged$.asObservable())}dispose(){this._referenceExecutorMap.clear()}remove(e,t,r){r.forEach(n=>{var s,u;(u=(s=this._referenceExecutorMap.get(e))==null?void 0:s.get(t))==null||u.delete(n)}),this._onChanged$.next({unitId:e,subUnitId:t,featureIds:r})}get(e,t,r){var n,s;return(s=(n=this._referenceExecutorMap.get(e))==null?void 0:n.get(t))==null?void 0:s.get(r)}has(e,t,r){var n,s;return!!((s=(n=this._referenceExecutorMap.get(e))==null?void 0:n.get(t))!=null&&s.has(r))}register(e,t,r,n){let s=this._referenceExecutorMap.get(e);s||(s=new Map,this._referenceExecutorMap.set(e,s));let u=s.get(t);u||(u=new Map,s.set(t,u)),this._onChanged$.next({unitId:e,subUnitId:t,featureIds:[r]}),u.set(r,n)}getReferenceExecutorMap(){return this._referenceExecutorMap}}const Jt=O.createIdentifier("univer.formula.feature-calculation-manager.service");class oi extends O.Disposable{constructor(){super(...arguments);C(this,"_otherFormulaData",{})}dispose(){this._otherFormulaData={}}remove(e){var s,u,o;const{unitId:t,subUnitId:r,formulaId:n}=e;(o=(u=(s=this._otherFormulaData)==null?void 0:s[t])==null?void 0:u[r])==null||delete o[n]}get(e){var s,u;const{unitId:t,subUnitId:r,formulaId:n}=e;return(u=(s=this._otherFormulaData[t])==null?void 0:s[r])==null?void 0:u[n]}has(e){var s,u;const{unitId:t,subUnitId:r,formulaId:n}=e;return((u=(s=this._otherFormulaData[t])==null?void 0:s[r])==null?void 0:u[n])!=null}register(e){const{unitId:t,subUnitId:r,formulaId:n,item:s}=e;this._otherFormulaData[t]||(this._otherFormulaData[t]={}),this._otherFormulaData[t][r]||(this._otherFormulaData[t][r]={}),this._otherFormulaData[t][r][n]=s}batchRegister(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(n=>{const s=r[n];if(s==null)return!0;Object.keys(s).forEach(u=>{const o=s[u];if(o==null)return!0;this.register({unitId:t,subUnitId:n,formulaId:u,item:o})})})})}batchRemove(e){Object.keys(e).forEach(t=>{const r=e[t];if(r==null)return!0;Object.keys(r).forEach(n=>{const s=r[n];if(s==null)return!0;Object.keys(s).forEach(u=>{this.remove({unitId:t,subUnitId:n,formulaId:u})})})})}getOtherFormulaData(){return this._otherFormulaData}}const cn=O.createIdentifier("univer.formula.other-formula-manager.service");class ms{constructor(i){C(this,"treeId",-1);C(this,"nodeData");C(this,"children",new Set);C(this,"parents",new Set);C(this,"formula","");C(this,"row",-1);C(this,"column",-1);C(this,"rowCount",Number.NEGATIVE_INFINITY);C(this,"columnCount",Number.NEGATIVE_INFINITY);C(this,"subUnitId","");C(this,"unitId","");C(this,"rangeList",[]);C(this,"formulaId");C(this,"featureId");C(this,"isCache",!1);C(this,"getDirtyData");C(this,"_state",0);this.treeId=i}toJson(){return{formula:this.formula,row:this.row,column:this.column,subUnitId:this.subUnitId,unitId:this.unitId,formulaId:this.formulaId,featureId:this.featureId}}dispose(){var i;this.children.clear(),this.rangeList=[],this.parents.clear(),(i=this.nodeData)==null||i.node.dispose(),this.nodeData=null}resetState(){this._state=0}setAdded(){this._state=1}isAdded(){return this._state===1}setSkip(){this._state=2}isSkip(){return this._state===2}inRangeData(i){const e=i.startRow,t=i.startColumn,r=i.endRow,n=i.endColumn;return!(this.row<e||this.row>r||this.column<t||this.column>n)}dependencySheetName(i){var e;if(this.rangeList.length===0||i==null)return!1;for(let t=0,r=this.rangeList.length;t<r;t++){const n=this.rangeList[t],{unitId:s,sheetId:u}=n;if(((e=i[s])==null?void 0:e[u])!=null)return!0}return!1}isExcludeRange(i){var e;if(this.rangeList.length===0)return!1;for(let t=0,r=this.rangeList.length;t<r;t++){const n=this.rangeList[t],{unitId:s,sheetId:u,range:o}=n,c=(e=i==null?void 0:i[s])==null?void 0:e[u];let{startRow:l,endRow:f,startColumn:m,endColumn:d}=o;Number.isNaN(l)&&(l=0),Number.isNaN(m)&&(m=0),Number.isNaN(f)&&(f=Number.POSITIVE_INFINITY),Number.isNaN(d)&&(d=Number.POSITIVE_INFINITY);let _=!1;if(c==null||c.forValue((E,b)=>{if(E>=l&&E<=f&&b>=m&&b<=d)return _=!0,!1}),_)return!0}return!1}pushChildren(i){this.children.add(i.treeId),i._pushParent(this)}pushRangeList(i){this.rangeList.push(...i)}hasChildren(i){return this.children.has(i)}toRTreeItem(){return{unitId:this.unitId,sheetId:this.subUnitId,range:{startRow:this.row,startColumn:this.column,endRow:this.row,endColumn:this.column},id:this.treeId}}dependency(i){if(this.rangeList.length===0)return!1;for(let e=0,t=this.rangeList.length;e<t;e++){const r=this.rangeList[e],n=r.unitId,s=r.sheetId,u=r.range;if(i.unitId===n&&i.subUnitId===s&&i.inRangeData(u))return!0}return!1}_pushParent(i){this.parents.add(i.treeId)}}var uf=Object.defineProperty,of=Object.getOwnPropertyDescriptor,cf=(a,i,e,t)=>{for(var r=t>1?void 0:t?of(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&uf(i,e,r),r},Dt=(a,i)=>(e,t)=>i(e,t,a);const lf=1e5;function hs(a){return a.getLastTreeId()||0}L.FormulaDependencyGenerator=class extends O.Disposable{constructor(e,t,r,n,s,u,o,c){super();C(this,"_formulaASTCache",new rt(lf));C(this,"_updateRangeFlattenCache",new Map);this._currentConfigService=e,this._runtimeService=t,this._otherFormulaManagerService=r,this._featureCalculationManagerService=n,this._interpreter=s,this._astTreeBuilder=u,this._lexer=o,this._dependencyManagerService=c}dispose(){this._formulaASTCache.clear()}async generate(){this._updateRangeFlatten();const e=this._currentConfigService.getFormulaData(),t=this._otherFormulaManagerService.getOtherFormulaData(),r=this._currentConfigService.getClearDependencyTreeCache();r!=null&&Object.keys(r).forEach(f=>{f!=null&&Object.keys(r[f]).forEach(m=>{m!=null&&(this._dependencyManagerService.clearOtherFormulaDependency(f,m),this._dependencyManagerService.clearFeatureFormulaDependency(f,m),this._dependencyManagerService.clearFormulaDependency(f,m))})});const n=this._currentConfigService.getUnitData(),s=await this._generateTreeList(e,t,n),u=this._getUpdateTreeListAndMakeDependency(s);let o=this._calculateRunList(u);return this._dependencyFeatureCalculation(o)&&(o.forEach(f=>{f.resetState()}),o=this._calculateRunList(o)),this._checkIsCycleDependency(o)&&this._runtimeService.enableCycleDependency(),Promise.resolve(o)}_isCyclicUtil(e,t,r){const n=this._dependencyManagerService.getTreeById(e);if(n==null)return!1;if(!t.has(n.treeId)){t.add(n.treeId),r.add(n.treeId);for(const s of n.children)if(!t.has(s)&&this._isCyclicUtil(s,t,r)||r.has(s))return!0}return r.delete(n.treeId),!1}_checkIsCycleDependency(e){const t=new Set,r=new Set;for(let n=0,s=e.length;n<s;n++){const u=e[n];if(this._isCyclicUtil(u.treeId,t,r)===!0)return!0}return!1}async _generateTreeList(e,t,r){const n=Object.keys(e),s=Object.keys(t),u=[],o=new Map;this._currentConfigService.isForceCalculate()&&(this._dependencyManagerService.reset(),this._formulaASTCache.clear()),this._registerFormulas(n,e,r,u,o),this._registerOtherFormulas(t,s,u,o),this._registerFeatureFormulas(u);for(let l=0,f=u.length;l<f;l++){const m=u[l];this._runtimeService.setCurrent(m.row,m.column,m.rowCount,m.columnCount,m.subUnitId,m.unitId);const{unitId:d,formula:_,nodeData:E}=m;if(E==null)continue;const{refOffsetX:b,refOffsetY:y}=E;let R=!1;if(b!==0||y!==0){const p=o.get(`${d}${_}`);p&&p.rangeList.length>0&&(m.pushRangeList(this._moveRangeList(p,b,y)),R=!0)}if(!R){const p=await this._getRangeListByNode(E);m.pushRangeList(p)}m.isCache||this._dependencyManagerService.addDependencyRTreeCache(m)}return o.clear(),u}_moveRangeList(e,t,r){const n=e.rangeList,s=[];for(let u=0,o=n.length;u<o;u++){const c=n[u],l={unitId:e.unitId,sheetId:e.subUnitId,range:O.moveRangeByOffset(c.range,t,r)};s.push(l)}return s}_registerFeatureFormulas(e){this._featureCalculationManagerService.getReferenceExecutorMap().forEach((r,n)=>{r.forEach((s,u)=>{s.forEach((o,c)=>{const l=this._dependencyManagerService.getFeatureFormulaDependency(o.unitId,o.subUnitId,c);if(l){l.isCache=!0;return}e.push(this._getFeatureFormulaTree(c,o))})})})}_getFeatureFormulaTree(e,t){const{unitId:r,subUnitId:n,dependencyRanges:s,getDirtyData:u}=t,o=new ms(hs(this._dependencyManagerService));return o.unitId=r,o.subUnitId=n,o.getDirtyData=u,o.featureId=e,o.rangeList=s,this._dependencyManagerService.addFeatureFormulaDependency(r,n,e,o),o}_registerOtherFormulas(e,t,r,n){for(const s of t){const u=e[s];if(u==null)continue;const o=Object.keys(u);for(const c of o){const l=u[c];if(l==null)continue;const f=Object.keys(l);for(const m of f){const d=this._dependencyManagerService.getOtherFormulaDependency(s,c,m),_=l[m],{f:E,x:b=0,y=0}=_;if(d){d.isCache=!0,b===0&&y===0&&n.set(`${s}${E}`,d);continue}const R=this._generateAstNode(s,E,b,y),p=new ms(hs(this._dependencyManagerService));p.nodeData=R,p.formula=E,p.unitId=s,p.subUnitId=c,p.formulaId=m,b===0&&y===0&&n.set(`${s}${E}`,p),this._dependencyManagerService.addOtherFormulaDependency(s,c,m,p),r.push(p)}}}}_registerFormulas(e,t,r,n,s){for(const u of e){const o=t[u];if(o==null)continue;const c=Object.keys(o);for(const l of c)new O.ObjectMatrix(o[l]||{}).forValue((m,d,_)=>{if(_==null)return!0;const{f:E,x:b=0,y=0}=_,R=this._dependencyManagerService.getFormulaDependency(u,l,m,d);if(R)return R.isCache=!0,b===0&&y===0&&s.set(`${u}${E}`,R),!0;const p=this._generateAstNode(u,E,b,y),N=new ms(hs(this._dependencyManagerService)),S=r[u][l];N.nodeData=p,N.formula=E,N.unitId=u,N.subUnitId=l,N.row=m,N.column=d,N.rowCount=S.rowCount,N.columnCount=S.columnCount,b===0&&y===0&&s.set(`${u}${E}`,N),this._dependencyManagerService.addFormulaDependency(u,l,m,d,N),n.push(N)})}}_updateRangeFlatten(){const e=this._currentConfigService.isForceCalculate(),t=this._currentConfigService.getDirtyRanges();if(!e){this._updateRangeFlattenCache.clear();for(let r=0;r<t.length;r++){const n=t[r],s=n.range,u=n.sheetId,o=n.unitId;this._addFlattenCache(o,u,s)}}}_generateAstNode(e,t,r=0,n=0){let s=this._formulaASTCache.get(`${e}${t}`);if(s&&!this._isDirtyDefinedForNode(s))return an(s,r,n);const u=this._lexer.treeBuilder(t);if(Mt.has(u))return{node:Le.create(u),refOffsetX:r,refOffsetY:n};if(s=this._astTreeBuilder.parse(u),s==null)throw new Error("astNode is null");return this._formulaASTCache.set(`${e}${t}`,s),an(s,r,n)}_addFlattenCache(e,t,r){let n=this._updateRangeFlattenCache.get(e);n==null&&(n=new Map,this._updateRangeFlattenCache.set(e,n));let s=n.get(t);s==null&&(s=[],n.set(t,s)),s.push(r)}_isPreCalculateNode(e){return e.nodeType===ue.UNION||e.nodeType===ue.PREFIX&&e.getToken()===Ne.AT||e.nodeType===ue.SUFFIX&&e.getToken()===Ye.POUND}_nodeTraversalRef(e,t){const r=e.getChildren(),n=r.length;for(let s=0;s<n;s++){const u=r[s];if(this._isPreCalculateNode(u)){t.push(u);continue}else u.nodeType===ue.REFERENCE&&t.push(u);this._nodeTraversalRef(u,t)}}_nodeTraversalReferenceFunction(e,t){const r=e.getChildren(),n=r.length;for(let s=0;s<n;s++){const u=r[s];if(u.nodeType===ue.FUNCTION&&u.isAddress()){t.push(u);continue}this._nodeTraversalReferenceFunction(u,t)}}async _executeNode(e,t=0,r=0){let n;const s={node:e,refOffsetX:t,refOffsetY:r};return this._interpreter.checkAsyncNode(e)?n=await this._interpreter.executeAsync(s):n=this._interpreter.execute(s),n}async _getRangeListByNode(e){const t=[],r=[],n=e.refOffsetX,s=e.refOffsetY;this._nodeTraversalRef(e.node,t),this._nodeTraversalReferenceFunction(e.node,r);const u=[];for(let o=0,c=t.length;o<c;o++){const l=t[o],m=(await this._executeNode(l,n,s)).toUnitRange();u.push(m)}for(let o=0,c=r.length;o<c;o++){const l=r[o],m=(await this._executeNode(l,n,s)).toUnitRange();u.push(m)}return u}_isDirtyDefinedForNode(e){const t=this._currentConfigService.getDirtyDefinedNameMap(),r=this._currentConfigService.getExecuteUnitId();if(r!=null&&t[r]!=null){const n=Object.keys(t[r]);for(let s=0,u=n.length;s<u;s++){const o=n[s];if(e.hasDefinedName(o))return!0}}return!1}_getUpdateTreeListAndMakeDependency(e){const t=[],r=new Set,n=this._currentConfigService.isForceCalculate();this._dependencyManagerService.openKdTree();const s=this._dependencyManagerService.buildDependencyTree(e),u=this._currentConfigService.getDirtyRanges(),o=this._dependencyManagerService.searchDependency(u);for(let c=0,l=s.length;c<l;c++){const f=s[c];(n||f.dependencySheetName(this._currentConfigService.getDirtyNameMap())||o.has(f.treeId)&&!f.isExcludeRange(this._currentConfigService.getExcludedRange())||this._includeTree(f))&&!r.has(f)&&(t.push(f),r.add(f))}return this._dependencyManagerService.closeKdTree(),t}_dependencyFeatureCalculation(e){const t=this._featureCalculationManagerService.getReferenceExecutorMap();if(t.size===0)return;this._clearFeatureCalculationNode(e);let r=!1;return t.forEach((n,s)=>{n.forEach((u,o)=>{u.forEach((c,l)=>{const{unitId:f,subUnitId:m,getDirtyData:d}=c,_=d(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData()),E=this._convertDirtyRangesToUnitRange(_.dirtyRanges),b=this._intersectFeatureCalculation(E,e,{unitId:f,subUnitId:m,featureId:l});if(b.length>0){let y=this._getExistTreeList({unitId:f,subUnitId:m,featureId:l},e);y==null&&(y=this._getFeatureFormulaTree(l,c),e.push(y)),y.parents=new Set,b.forEach(R=>{R.hasChildren(y.treeId)||R.pushChildren(y)}),r=!0}})})}),r}_clearFeatureCalculationNode(e){const t=this._featureCalculationManagerService.getReferenceExecutorMap();e.forEach(r=>{var u,o,c,l;const n=new Set;for(const f of r.children){const m=this._dependencyManagerService.getTreeById(f);m&&(m.featureId&&(o=(u=t.get(r.unitId))==null?void 0:u.get(r.subUnitId))!=null&&o.has(m.featureId)||n.add(f))}r.children=n;const s=new Set;for(const f of r.parents){const m=this._dependencyManagerService.getTreeById(f);m&&(m.featureId&&(l=(c=t.get(r.unitId))==null?void 0:c.get(r.subUnitId))!=null&&l.has(m.featureId)||s.add(f))}r.parents=s})}_getExistTreeList(e,t){const{unitId:r,subUnitId:n,featureId:s}=e;for(let u=0,o=t.length;u<o;u++){const c=t[u];if(c.unitId===r&&c.subUnitId===n&&c.featureId===s)return c}}_convertDirtyRangesToUnitRange(e){const t=[];for(const r in e){const n=e[r];for(const s in n){const u=n[s];for(const o of u)t.push({unitId:r,sheetId:s,range:o})}}return t}_intersectFeatureCalculation(e,t,r){const n=[],s=this._dependencyManagerService.searchDependency(e);for(let u=0,o=t.length;u<o;u++){const c=t[u];if(c.unitId===r.unitId&&c.subUnitId===r.subUnitId&&c.featureId===r.featureId)continue;s.has(c.treeId)&&n.push(c)}return n}_includeTreeFeature(e){var s,u;const t=e.unitId,r=e.subUnitId,n=e.featureId;if(n!=null){const o=this._currentConfigService.getDirtyUnitFeatureMap();if(((u=(s=o==null?void 0:o[t])==null?void 0:s[r])==null?void 0:u[n])!=null)return!0}return!1}_includeOtherFormula(e){var s,u;const t=e.unitId,r=e.subUnitId,n=e.formulaId;if(n!=null){const o=this._currentConfigService.getDirtyUnitOtherFormulaMap();if(((u=(s=o==null?void 0:o[t])==null?void 0:s[r])==null?void 0:u[n])!=null)return!0}return!1}_includeDefinedName(e){var r;const t=(r=e.nodeData)==null?void 0:r.node;return!!(t!=null&&this._isDirtyDefinedForNode(t))}_detectForcedRecalculationNode(e){var r;const t=(r=e.nodeData)==null?void 0:r.node;return t==null?!1:this._detectForcedRecalculationNodeRecursion(t)}_detectForcedRecalculationNodeRecursion(e){if(e.isForcedCalculateFunction())return!0;const t=e.getChildren();for(let r=0,n=t.length;r<n;r++){const s=t[r];if(this._detectForcedRecalculationNodeRecursion(s))return!0}return!1}_includeTree(e){var c,l,f;const t=e.unitId,r=e.subUnitId;if(this._detectForcedRecalculationNode(e)===!0||this._includeTreeFeature(e)===!0||this._includeOtherFormula(e)===!0||this._includeDefinedName(e)===!0)return!0;const n=(l=(c=this._currentConfigService.getExcludedRange())==null?void 0:c[t])==null?void 0:l[r];let s=!1;if(n==null||n.forValue((m,d)=>{if(e.row===m&&e.column===d)return s=!0,!1}),s)return!1;if(((f=this._currentConfigService.getDirtyNameMap()[t])==null?void 0:f[r])!=null)return!0;if(!this._updateRangeFlattenCache.has(t))return!1;const u=this._updateRangeFlattenCache.get(t);if(!u.has(r))return!1;const o=u.get(r);for(const m of o)if(e.inRangeData(m))return!0;return!1}_calculateRunList(e){const t=e,r=[],n=[];for(;t.length>0;){const s=t.pop();if(!(s===void 0||s.isSkip())){if(s.isAdded()){r.push(s),s.setSkip();continue}n.length=0;for(const u of s.parents){const o=this._dependencyManagerService.getTreeById(u);if(!o)throw new Error("ParentDependencyTree object is null");o.isAdded()||s.isSkip()||n.push(o)}n.length===0?(r.push(s),s.setSkip()):(s.setAdded(),t.push(s,...n))}}return r.reverse()}},L.FormulaDependencyGenerator=cf([Dt(0,ct),Dt(1,Je),Dt(2,cn),Dt(3,Jt),Dt(4,O.Inject(L.Interpreter)),Dt(5,O.Inject(L.AstTreeBuilder)),Dt(6,O.Inject(L.Lexer)),Dt(7,Rr)],L.FormulaDependencyGenerator);var ff=Object.defineProperty,mf=Object.getOwnPropertyDescriptor,hf=(a,i,e,t)=>{for(var r=t>1?void 0:t?mf(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&ff(i,e,r),r},vt=(a,i)=>(e,t)=>i(e,t,a);const gf=1,df=500;L.CalculateFormulaService=class extends O.Disposable{constructor(e,t,r,n,s,u,o){super();C(this,"_executionInProgressListener$",new qe.Subject);C(this,"executionInProgressListener$",this._executionInProgressListener$.asObservable());C(this,"_executionCompleteListener$",new qe.Subject);C(this,"executionCompleteListener$",this._executionCompleteListener$.asObservable());this._configService=e,this._lexer=t,this._currentConfigService=r,this._runtimeService=n,this._formulaDependencyGenerator=s,this._interpreter=u,this._astTreeBuilder=o}stopFormulaExecution(){this._runtimeService.stopExecution()}setRuntimeFeatureCellData(e,t){this._runtimeService.setRuntimeFeatureCellData(e,t)}setRuntimeFeatureRange(e,t){this._runtimeService.setRuntimeFeatureRange(e,t)}async execute(e){this._runtimeService.setFormulaExecuteStage(ze.START),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._currentConfigService.load(e),this._runtimeService.reset();const t=this._configService.getConfig("CYCLE_REFERENCE_COUNT")||gf;for(let r=0;r<t&&(this._runtimeService.setFormulaCycleIndex(r),await this._execute(),ss.clear(),!!this._runtimeService.isCycleDependency());r++);this._runtimeService.setFormulaExecuteStage(ze.CALCULATION_COMPLETED),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()),yt.clear()}async _execute(){const e=await this._apply();if(e==null)return;const{arrayFormulaRange:t,runtimeFeatureRange:r}=e,{dirtyRanges:n,excludedCell:s}=this._getArrayFormulaDirtyRangeAndExcludedRange(t,r);return n==null||n.length===0||(this._currentConfigService.loadDirtyRangesAndExcludedCell(n,s),await this._apply(!0)),!0}_getArrayFormulaDirtyRangeAndExcludedRange(e,t){const r=[],n={};return Object.keys(e).forEach(s=>{const u=e[s];if(u==null)return!0;Object.keys(u).forEach(o=>{const c=new O.ObjectMatrix(u[o]);if(c==null)return!0;const l=new O.ObjectMatrix;c.forValue((f,m,d)=>{l.setValue(f,m,!0),r.push({unitId:s,sheetId:o,range:d})}),n[s]==null&&(n[s]={}),n[s][o]=l})}),Object.keys(t).forEach(s=>{const u=t[s];Object.keys(u).forEach(o=>{const c=u[o];if(c==null)return!0;Object.keys(c).forEach(l=>{const f=c[l];if(f==null)return!0;for(const m of f)r.push({unitId:o,sheetId:l,range:m})})})}),{dirtyRanges:r,excludedCell:n}}async _apply(e=!1){e?this._runtimeService.setFormulaExecuteStage(ze.START_DEPENDENCY_ARRAY_FORMULA):this._runtimeService.setFormulaExecuteStage(ze.START_DEPENDENCY),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());const t=await this._formulaDependencyGenerator.generate(),r=this._interpreter;e?(this._runtimeService.setFormulaExecuteStage(ze.START_CALCULATION_ARRAY_FORMULA),this._runtimeService.setTotalArrayFormulasToCalculate(t.length)):(this._runtimeService.setFormulaExecuteStage(ze.START_CALCULATION),this._runtimeService.setTotalFormulasToCalculate(t.length)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState());let n=[];const s=this._configService.getConfig(Fn),u=(s==null?void 0:s.intervalCount)||df;for(let o=0,c=t.length;o<c;o++){const l=t[o],f=l.nodeData,m=l.getDirtyData;if(o%u===0&&(await new Promise(_=>{const E=O.requestImmediateMacroTask(_);n.push(E)}),e?(this._runtimeService.setFormulaExecuteStage(ze.CURRENTLY_CALCULATING_ARRAY_FORMULA),this._runtimeService.setCompletedArrayFormulasCount(o+1)):(this._runtimeService.setFormulaExecuteStage(ze.CURRENTLY_CALCULATING),this._runtimeService.setCompletedFormulasCount(o+1)),this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()),this._runtimeService.isStopExecution()||f==null&&m==null)){this._runtimeService.setFormulaExecuteStage(ze.IDLE),this._runtimeService.markedAsStopFunctionsExecuted(),this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData());return}this._runtimeService.setCurrent(l.row,l.column,l.rowCount,l.columnCount,l.subUnitId,l.unitId);let d;if(m!=null&&l.featureId!=null){const{runtimeCellData:_,dirtyRanges:E}=m(this._currentConfigService.getDirtyData(),this._runtimeService.getAllRuntimeData());this._runtimeService.setRuntimeFeatureCellData(l.featureId,_),this._runtimeService.setRuntimeFeatureRange(l.featureId,E)}else f!=null&&(r.checkAsyncNode(f.node)?d=await r.executeAsync(f):d=r.execute(f),l.formulaId!=null?this._runtimeService.setRuntimeOtherData(l.formulaId,d):this._runtimeService.setRuntimeData(d))}return n.forEach(o=>o()),n=[],t.length>0?this._runtimeService.markedAsSuccessfullyExecuted():e||this._runtimeService.markedAsNoFunctionsExecuted(),this._runtimeService.clearReferenceAndNumberformatCache(),this._runtimeService.getAllRuntimeData()}calculate(e,t=!0){const r=this._lexer.treeBuilder(e,t);if(Object.values(h).includes(r))return Le.create(r);const n=this._astTreeBuilder.parse(r);n==null||n.serialize()}},L.CalculateFormulaService=hf([vt(0,O.IConfigService),vt(1,O.Inject(L.Lexer)),vt(2,ct),vt(3,Je),vt(4,O.Inject(L.FormulaDependencyGenerator)),vt(5,O.Inject(L.Interpreter)),vt(6,O.Inject(L.AstTreeBuilder))],L.CalculateFormulaService);var Cf=Object.defineProperty,_f=Object.getOwnPropertyDescriptor,Ef=(a,i,e,t)=>{for(var r=t>1?void 0:t?_f(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&Cf(i,e,r),r},gs=(a,i)=>(e,t)=>i(e,t,a);L.CalculateController=class extends O.Disposable{constructor(i,e,t){super(),this._commandService=i,this._calculateFormulaService=e,this._formulaDataModel=t,this._initialize()}_initialize(){this._commandExecutedListener(),this._initialExecuteFormulaListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===Mn.id)this._calculateFormulaService.stopFormulaExecution();else if(i.id===Fr.id){const e=i.params.formulaData;this._formulaDataModel.mergeFormulaData(e)}else if(i.id===Pn.id){const e=i.params;this._calculate(e)}else if(i.id===Pr.id){const e=i.params;if(e==null)return;const{arrayFormulaRange:t,arrayFormulaCellData:r}=e;this._formulaDataModel.setArrayFormulaRange(t),this._formulaDataModel.setArrayFormulaCellData(r)}}))}async _calculate(i){const{forceCalculation:e=!1,dirtyRanges:t=[],dirtyNameMap:r={},dirtyDefinedNameMap:n={},dirtyUnitFeatureMap:s={},dirtyUnitOtherFormulaMap:u={},clearDependencyTreeCache:o={}}=i;if(t.length===0&&Object.keys(r).length===0&&Object.keys(n).length===0&&Object.keys(s).length===0&&Object.keys(u).length===0&&e===!1)return;const c=this._formulaDataModel.getFormulaData(),l=this._formulaDataModel.getArrayFormulaCellData(),f=this._formulaDataModel.getArrayFormulaRange();this._calculateFormulaService.execute({formulaData:c,arrayFormulaCellData:l,arrayFormulaRange:f,forceCalculate:e,dirtyRanges:t,dirtyNameMap:r,dirtyDefinedNameMap:n,dirtyUnitFeatureMap:s,dirtyUnitOtherFormulaMap:u,clearDependencyTreeCache:o})}_initialExecuteFormulaListener(){this._calculateFormulaService.executionCompleteListener$.subscribe(i=>{const e=i.functionsExecutedState;switch(e){case zt.NOT_EXECUTED:break;case zt.STOP_EXECUTION:break;case zt.SUCCESS:this._applyResult(i);break;case zt.INITIAL:break}this._commandService.executeCommand(Br.id,{functionsExecutedState:e},{onlyLocal:!0})}),this._calculateFormulaService.executionInProgressListener$.subscribe(i=>{this._commandService.executeCommand(Br.id,{stageInfo:i},{onlyLocal:!0})})}async _applyResult(i){const{unitData:e,unitOtherData:t,arrayFormulaRange:r,arrayFormulaCellData:n,clearArrayFormulaCellData:s}=i;if(!e){console.error("No sheetData from Formula Engine!");return}r&&(this._formulaDataModel.clearPreviousArrayFormulaCellData(s),this._formulaDataModel.mergeArrayFormulaCellData(n),this._formulaDataModel.mergeArrayFormulaRange(r),this._commandService.executeCommand(Pr.id,{arrayFormulaRange:this._formulaDataModel.getArrayFormulaRange(),arrayFormulaCellData:this._formulaDataModel.getArrayFormulaCellData()},{onlyLocal:!0})),this._commandService.executeCommand(wn.id,{unitData:zu(e),unitOtherData:t},{onlyLocal:!0})}},L.CalculateController=Ef([gs(0,O.ICommandService),gs(1,O.Inject(L.CalculateFormulaService)),gs(2,O.Inject(L.FormulaDataModel))],L.CalculateController);var bf=Object.defineProperty,Af=Object.getOwnPropertyDescriptor,yf=(a,i,e,t)=>{for(var r=t>1?void 0:t?Af(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&bf(i,e,r),r},ci=(a,i)=>(e,t)=>i(e,t,a);L.SetDefinedNameController=class extends O.Disposable{constructor(i,e){super(),this._commandService=i,this._definedNamesService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===hr.id){const e=i.params;if(e==null)return;const{id:t,unitId:r,name:n,formulaOrRefString:s,comment:u,hidden:o,localSheetId:c}=e;this._definedNamesService.registerDefinedName(r,{id:t,name:n.trim(),formulaOrRefString:s.trim(),comment:u==null?void 0:u.trim(),hidden:o,localSheetId:c})}else if(i.id===Ur.id){const e=i.params;if(e==null)return;const{unitId:t,id:r}=e;this._definedNamesService.removeDefinedName(t,r)}}))}},L.SetDefinedNameController=yf([ci(0,O.ICommandService),ci(1,Qt)],L.SetDefinedNameController);const li=/[\[\]]/g;function fi(a,i){if(li.test(a)){const e=Number(a.replace(li,""));return i+e}return Number(a)-1}function ds(a,i=0,e=0){a=a.toLocaleUpperCase();const t=a.split(/[RC]/),r=t[1],n=t[2],s=fi(r,i),u=fi(n,e);return{row:s,column:u,absoluteRefType:O.AbsoluteRefType.NONE}}function mi(a,i=0,e=0){const{refBody:t,sheetName:r,unitId:n}=jr(a),s=t.indexOf(":");if(s===-1){const E=ds(t,i,e),b=E.row,y=E.column,R=E.absoluteRefType;return{unitId:n,sheetName:r,range:{startRow:b,startColumn:y,endRow:b,endColumn:y,startAbsoluteRefType:R,endAbsoluteRefType:R}}}const u=t.substring(0,s),o=t.substring(s+1),c=ds(u,i,e),l=ds(o,i,e),f=c.row,m=c.column,d=l.row,_=l.column;return{unitId:n,sheetName:r,range:{startRow:f,startColumn:m,endRow:d,endColumn:_,startAbsoluteRefType:c.absoluteRefType,endAbsoluteRefType:l.absoluteRefType}}}function Rf(a){const i=ln(a.startRow,a.startAbsoluteRefType,!0),e=ln(a.startColumn,a.startAbsoluteRefType,!1),t=ln(a.endRow,a.endAbsoluteRefType,!0),r=ln(a.endColumn,a.endAbsoluteRefType,!1);return i===t&&e===r?`R${i}C${e}`:`R${i}C${e}:R${t}C${r}`}function ln(a,i=O.AbsoluteRefType.ALL,e){switch(a+=1,i){case O.AbsoluteRefType.ALL:return`${a}`;case O.AbsoluteRefType.ROW:return e?`${a}`:`[${a}]`;case O.AbsoluteRefType.COLUMN:return e?`[${a}]`:`${a}`;case O.AbsoluteRefType.NONE:return`[${a}]`}}const hi=[];var gi=(a=>a)(gi||{});class V{constructor(i){C(this,"_unitId");C(this,"_subUnitId");C(this,"_row",-1);C(this,"_column",-1);C(this,"_definedNames");C(this,"_locale");C(this,"_sheetOrder");C(this,"_sheetNameMap");C(this,"needsExpandParams",!1);C(this,"needsReferenceObject",!1);C(this,"needsLocale",!1);C(this,"needsSheetsInfo",!1);C(this,"minParams",-1);C(this,"maxParams",-1);this._name=i}get name(){return this._name}get unitId(){return this._unitId}get subUnitId(){return this._subUnitId}get row(){return this._row}get column(){return this._column}dispose(){}getDefinedName(i){var t;const e=this._definedNames;return e==null?null:(t=Array.from(Object.values(e)).filter(r=>r.name===i))==null?void 0:t[0]}setDefinedNames(i){this._definedNames=i}getLocale(){return this._locale}setLocale(i){this._locale=i}getSheetsInfo(){return{sheetOrder:this._sheetOrder,sheetNameMap:this._sheetNameMap}}setSheetsInfo({sheetOrder:i,sheetNameMap:e}){this._sheetOrder=i,this._sheetNameMap=e}isAsync(){return!1}isAddress(){return!1}isCustom(){return!1}setRefInfo(i,e,t,r){this._unitId=i,this._subUnitId=e,this._row=t,this._column=r}calculateCustom(...i){return null}calculate(...i){return g.create(h.VALUE)}checkArrayType(i){return i.isReferenceObject()||i.isValueObject()&&i.isArray()}getIndexNumValue(i,e=1){let t=i;if(t.isArray()&&(t=t.getFirstCell()),t.isBoolean())return t.getValue()===!1?g.create(h.VALUE):e;if(t.isString()){const r=Number(t.getValue());return Number.isNaN(r)?g.create(h.REF):r}else if(t.isNumber())return t.getValue();return g.create(h.VALUE)}getZeroOrOneByOneDefault(i){if(i==null)return 1;let e=1;if(i.isArray()&&(i=i.getFirstCell()),i.isBoolean())i.getValue()===!1&&(e=0);else{if(i.isString())return;i.isNumber()&&i.getValue()===0&&(e=0)}return e}getMatchTypeValue(i){if(i==null)return 1;let e=1;if(i.isArray()&&(i=i.getFirstCell()),i.isBoolean())i.getValue()===!1&&(e=0);else{if(i.isString())return;if(i.isNumber()){const t=i.getValue();t<=0&&(e=t)}}return e}binarySearch(i,e,t,r,n){const s=e.binarySearch(i,r,n);if(s==null)return g.create(h.NA);let u;return t.getRowCount()===1?u=t.get(0,s)||J.create():u=t.get(s,0)||J.create(),u.isNull()?g.create(h.NA):u}_getOneFirstByRaw(i){return i.length===0?g.create(h.NA):i[0][0]||g.create(h.NA)}_getOneLastByRaw(i){return i.length===0?g.create(h.NA):i[i.length-1][i[0].length-1]||g.create(h.NA)}equalSearch(i,e,t,r=!0){const n=t.pickRaw(e.isEqual(i));return r?this._getOneFirstByRaw(n):this._getOneLastByRaw(n)}fuzzySearch(i,e,t,r=!0){const n=t.pickRaw(e.compare(i,B.EQUALS));return r?this._getOneFirstByRaw(n):this._getOneLastByRaw(n)}orderSearch(i,e,t,r=De.MIN,n=!1){const s=e.orderSearch(i,r,n);if(s==null)return g.create(h.NA);const u=t.get(s.row,s.column)||J.create();return u.isNull()?g.create(h.NA):u}binarySearchExpand(i,e,t,r=0,n,s){const u=e.binarySearch(i,n,s);return u==null?g.create(h.NA):r===0?t.slice([u,u+1]):t.slice(void 0,[u,u+1])}equalSearchExpand(i,e,t,r=!0,n=0){const s=e.isEqual(i);let u;return r?u=s.getFirstTruePosition():u=s.getLastTruePosition(),u==null?g.create(h.NA):n===0?t.slice([u.row,u.row+1]):t.slice(void 0,[u.column,u.column+1])}fuzzySearchExpand(i,e,t,r=!0,n=0){const s=e.compare(i,B.EQUALS);let u;return r?u=s.getFirstTruePosition():u=s.getLastTruePosition(),u==null?g.create(h.NA):n===0?t.slice([u.row,u.row+1]):t.slice(void 0,[u.column,u.column+1])}orderSearchExpand(i,e,t,r=De.MIN,n=!1,s=0){const u=e.orderSearch(i,r,n);return u==null?g.create(h.NA):s===0?t.slice([u.row,u.row+1]):t.slice(void 0,[u.column,u.column+1])}flattenArray(i,e=!0){const t=[];t[0]=[];for(let r=0;r<i.length;r++){let n=i[r];if((n.isString()||n.isBoolean()||n.isNull())&&(n=n.convertToNumberObjectValue()),n.isError())return n;if(n.isArray()){let s;if(n.iterator(u=>{if(u==null||u.isNull()||e&&(u.isString()||u.isBoolean()))return!0;if(u=this._includingLogicalValuesAndText(u),u.isError())return s=u,!1;t[0].push(u)}),s!=null&&s.isError())return s}else t[0].push(n)}return Ut(t,1,t[0].length)}_includingLogicalValuesAndText(i){if(i.isBoolean()&&(i=ml(i)),i.isString()){const e=Number(i.getValue());i=A.create(Number.isNaN(e)?0:e)}return i}createReferenceObject(i,e){const t=i.getForcedUnitId(),r=i.getForcedSheetId()||"",n=i.getForcedSheetName(),u=Mr({unitId:t,sheetName:n,range:e});let o;return cr(u)?o=new us(u):ia(u)?o=new cs(u):ua(u)?o=new os(u):o=new yr(e,r,t),this._setReferenceDefault(i,o)}_setReferenceDefault(i,e){return this.unitId==null||this.subUnitId==null?g.create(h.REF):(e.setDefaultUnitId(this.unitId),e.setDefaultSheetId(this.subUnitId),e.setUnitData(i.getUnitData()),e.setRuntimeData(i.getRuntimeData()),e.setArrayFormulaCellData(i.getArrayFormulaCellData()),e.setRuntimeArrayFormulaCellData(i.getRuntimeArrayFormulaCellData()),e)}}var er;(a=>{const i=.636619772;function e(n,s){let u=0;for(let o=0;o<n.length;++o)u=s*u+n[o];return u}function t(n,s,u,o,c){if(s===0)return u;if(s===1)return o;const l=2/n;let f=u,m=o,d=o;for(let _=1;_<s;++_)d=m*_*l+c*f,f=m,m=d;return d}function r(n,s,u,o){return function(l,f){if(u){if(l===0)return u===1?-1/0:1/0;if(l<0)return Number.NaN}if(f===0)return n(l);if(f===1)return s(l);if(f<0)return Number.NaN;const m=f|0,d=n(l),_=s(l);return t(l,m,d,_,o)}}a.besselj=(()=>{const n=[-184.9052456,77392.33017,-1121442418e-2,6516196407e-1,-13362590354,57568490574],s=[1,267.8532712,59272.64853,9494680718e-3,1029532985,57568490411],u=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],o=[-934935152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function c(E){let b=0,y=0,R=0,p=E*E;if(E<8)y=e(n,p),R=e(s,p),b=y/R;else{const N=E-.785398164;p=64/p,y=e(u,p),R=e(o,p),b=Math.sqrt(i/E)*(Math.cos(N)*y-Math.sin(N)*R*8/E)}return b}const l=[-30.16036606,15704.4826,-2972611439e-3,2423968531e-1,-7895059235,72362614232],f=[1,376.9991397,99447.43394,1858330474e-2,2300535178,144725228442],m=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],d=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function _(E){let b=0,y=0,R=0,p=E*E;const N=Math.abs(E)-2.356194491;return Math.abs(E)<8?(y=E*e(l,p),R=e(f,p),b=y/R):(p=64/p,y=e(m,p),R=e(d,p),b=Math.sqrt(i/Math.abs(E))*(Math.cos(N)*y-Math.sin(N)*R*8/Math.abs(E)),E<0&&(b=-b)),b}return function E(b,y){const R=Math.round(y);if(!Number.isFinite(b))return Number.isNaN(b)?b:0;if(R<0)return(R%2?-1:1)*E(b,-R);if(b<0)return(R%2?-1:1)*E(-b,R);if(R===0)return c(b);if(R===1)return _(b);if(b===0)return 0;let p=0;if(b>R)p=t(b,R,c(b),_(b),-1);else{const N=2*Math.floor((R+Math.floor(Math.sqrt(40*R)))/2);let S=!1,P=0,M=0,w=1,x=0;const I=2/b;for(let Y=N;Y>0;Y--)if(x=Y*I*w-P,P=w,w=x,Math.abs(w)>1e10&&(w*=1e-10,P*=1e-10,p*=1e-10,M*=1e-10),S&&(M+=w),S=!S,Y===R&&(p=P),N-Y>100&&p===0)return Number.NaN;M=2*M-w,p/=M}return p}})(),a.bessely=(()=>{const n=[228.4622733,-86327.92757,1087988129e-2,-5123598036e-1,7062834065,-2957821389],s=[1,226.1030244,47447.2647,7189466438e-3,7452499648e-1,40076544269],u=[2093887211e-16,-2073370639e-15,2734510407e-14,-.001098628627,1],o=[-934945152e-16,7621095161e-16,-6911147651e-15,.0001430488765,-.01562499995];function c(E){let b=0,y=0,R=0,p=E*E;const N=E-.785398164;return E<8?(y=e(n,p),R=e(s,p),b=y/R+i*(0,a.besselj)(E,0)*Math.log(E)):(p=64/p,y=e(u,p),R=e(o,p),b=Math.sqrt(i/E)*(Math.sin(N)*y+Math.cos(N)*R*8/E)),b}const l=[8511.937935,-4237922726e-3,7349264551e-1,-51534381390,127527439e4,-4900604943e3],f=[1,354.9632885,102042.605,2245904002e-2,3733650367,424441966400,249958057e5],m=[-240337019e-15,2457520174e-15,-3516396496e-14,.00183105,1],d=[105787412e-15,-88228987e-14,8449199096e-15,-.0002002690873,.04687499995];function _(E){let b=0,y=0,R=0,p=E*E;const N=E-2.356194491;return E<8?(y=E*e(l,p),R=e(f,p),b=y/R+i*((0,a.besselj)(E,1)*Math.log(E)-1/E)):(p=64/p,y=e(m,p),R=e(d,p),b=Math.sqrt(i/E)*(Math.sin(N)*y+Math.cos(N)*R*8/E)),b}return r(c,_,1,-1)})(),a.besseli=(()=>{const n=[.0045813,.0360768,.2659732,1.2067492,3.0899424,3.5156229,1],s=[.00392377,-.01647633,.02635537,-.02057706,.00916281,-.00157565,.00225319,.01328592,.39894228];function u(f){return f<=3.75?e(n,f*f/(3.75*3.75)):Math.exp(Math.abs(f))/Math.sqrt(Math.abs(f))*e(s,3.75/Math.abs(f))}const o=[32411e-8,.00301532,.02658733,.15084934,.51498869,.87890594,.5],c=[-.00420059,.01787654,-.02895312,.02282967,-.01031555,.00163801,-.00362018,-.03988024,.39894228];function l(f){return f<3.75?f*e(o,f*f/(3.75*3.75)):(f<0?-1:1)*Math.exp(Math.abs(f))/Math.sqrt(Math.abs(f))*e(c,3.75/Math.abs(f))}return function f(m,d){const _=Math.round(d);if(_===0)return u(m);if(_===1)return l(m);if(_<0)return Number.NaN;if(Math.abs(m)===0)return 0;if(m===1/0)return 1/0;let E=0,b;const y=2/Math.abs(m);let R=0,p=1,N=0;const S=2*Math.round((_+Math.round(Math.sqrt(40*_)))/2);for(b=S;b>0;b--)if(N=b*y*p+R,R=p,p=N,Math.abs(p)>1e10&&(p*=1e-10,R*=1e-10,E*=1e-10),b===_&&(E=R),S-b>100&&E===0)return Number.NaN;return E*=f(m,0)/p,m<0&&_%2?-E:E}})(),a.besselk=(()=>{const n=[74e-7,1075e-7,.00262698,.0348859,.23069756,.4227842,-.57721566],s=[53208e-8,-.0025154,.00587872,-.01062446,.02189568,-.07832358,1.25331414];function u(f){return f<=2?-Math.log(f/2)*(0,a.besseli)(f,0)+e(n,f*f/4):Math.exp(-f)/Math.sqrt(f)*e(s,2/f)}const o=[-4686e-8,-.00110404,-.01919402,-.18156897,-.67278579,.15443144,1],c=[-68245e-8,.00325614,-.00780353,.01504268,-.0365562,.23498619,1.25331414];function l(f){return f<=2?Math.log(f/2)*(0,a.besseli)(f,1)+1/f*e(o,f*f/4):Math.exp(-f)/Math.sqrt(f)*e(c,2/f)}return r(u,l,2,1)})()})(er||(er={}));function Cs(a){return/^[01]{1,10}$/.test(a)}function _s(a){return/^[0-7]{1,10}$/.test(a)}function Es(a){return/^[0-9A-Fa-f]{1,10}$/.test(a)}function tr(a){if(a===0)return 0;const i=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,15626441722e-18,-85238095915e-18,6529054439e-18,5059343495e-18,-991364156e-18,-227365122e-18,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18];let e=a,t=!1;e<0&&(e=-e,t=!0);const r=2/(2+e),n=4*r-2;let s=0,u=0,o;for(let l=i.length-1;l>0;l--)o=s,s=n*s-u+i[l],u=o;const c=r*Math.exp(-e*e+.5*(i[0]+n*s)-u);return t?c-1:1-c}function bs(a){return 1-tr(a)}function pf(a){if(a>=2)return-100;if(a<=0)return 100;const i=a<1?a:2-a,e=Math.sqrt(-2*Math.log(i/2));let t=-.70711*((2.30753+e*.27061)/(1+e*(.99229+e*.04481))-e);for(let r=0;r<2;r++){const n=bs(t)-i;t+=n/(1.1283791670955126*Math.exp(-t*t)-t*n)}return a<1?t:-t}function pr(a,i=1){let e=Math.floor(a);if(a<0)return Number.NaN;let t=1;for(;e>1&&Number.isFinite(t);)t*=e,e-=i;return t}function As(a,i){const e=Math.min(a-i,i);let t=1;for(let r=1;r<=e&&Number.isFinite(t);r++)t*=a-r+1,t/=r;return t}function ys(a,i){let e=Math.floor(a),t=Math.floor(i);for(;t!==0;){const r=t;t=e%t,e=r}return e}function di(a,i){const e=ys(a,i);return e===0?0:Math.abs(a*i)/e}function fn(a){const i=a.length;if(i===1)return a[0][0];if(i===2)return a[0][0]*a[1][1]-a[0][1]*a[1][0];let e=0;for(let t=0;t<i;t++)e+=(t%2===0?1:-1)*a[0][t]*fn(Ci(a,0,t));return e}function Nf(a){const i=fn(a);return i===0?null:a.length===1?[[1/i]]:Vf(a).map(r=>r.map(n=>n/i))}function Ci(a,i,e){return a.filter((t,r)=>r!==i).map(t=>t.filter((r,n)=>n!==e))}function Vf(a){const i=a.length,e=Array.from({length:i},()=>new Array(i).fill(0));for(let t=0;t<i;t++)for(let r=0;r<i;r++){const n=(t+r)%2===0?1:-1;e[r][t]=n*fn(Ci(a,t,r))}return e}const mn=new Map([["I",1],["V",5],["X",10],["L",50],["C",100],["D",500],["M",1e3]]),Of=new Map([[1,"I"],[4,"IV"],[5,"V"],[9,"IX"],[10,"X"],[40,"XL"],[45,"VL"],[49,"IL"],[50,"L"],[90,"XC"],[95,"VC"],[99,"IC"],[100,"C"],[400,"CD"],[450,"LD"],[490,"XD"],[495,"VD"],[499,"ID"],[500,"D"],[900,"CM"],[950,"LM"],[990,"XM"],[995,"VM"],[999,"IM"],[1e3,"M"]]),Df=[[1,4,5,9,10,40,50,90,100,400,500,900,1e3,4e3],[1,4,5,9,10,40,45,50,90,95,100,400,450,500,900,950,1e3,4e3],[1,4,5,9,10,40,45,49,50,90,95,99,100,400,450,490,500,900,950,990,1e3,4e3],[1,4,5,9,10,40,45,49,50,90,95,99,100,400,450,490,495,500,900,950,990,995,1e3,4e3],[1,4,5,9,10,40,45,49,50,90,95,99,100,400,450,490,495,499,500,900,950,990,995,999,1e3,4e3]];function _i(a,i,e){return a<=0?0:a>=1?1:ps(a,i,e)}function Sf(a,i,e){return a<=0||a>=1?0:i===1&&e===1?1:i<512&&e<512?a**(i-1)*(1-a)**(e-1)/bi(i,e):Math.exp((i-1)*Math.log(a)+(e-1)*Math.log(1-a)-Ns(i,e))}function Rs(a,i,e){if(a<=0)return 0;if(a>=1)return 1;const t=1e-8;let r;if(i>=1&&e>=1){const c=a<.5?a:1-a,l=Math.sqrt(-2*Math.log(c));r=(2.30753+l*.27061)/(1+l*(.99229+l*.04481))-l,a<.5&&(r=-r);const f=(r*r-3)/6,m=2/(1/(2*i-1)+1/(2*e-1)),d=r*Math.sqrt(f+m)/m-(1/(2*e-1)-1/(2*i-1))*(f+5/6-2/(3*m));r=i/(i+e*Math.exp(2*d))}else{const c=Math.exp(i*Math.log(i/(i+e)))/i,l=Math.exp(e*Math.log(e/(i+e)))/e,f=c+l;a<c/f?r=(i*f*a)**(1/i):r=1-(e*f*(1-a))**(1/e)}const n=-Ns(i,e);let s,u,o;for(let c=0;c<10;c++){if(r===0||r===1)return r;if(s=ps(r,i,e)-a,u=Math.exp((i-1)*Math.log(r)+(e-1)*Math.log(1-r)+n),o=s/u,r-=u=o/(1-.5*Math.min(1,o*((i-1)/r-(e-1)/(1-r)))),r<=0&&(r=.5*(r+u)),r>=1&&(r=.5*(r+u+1)),Math.abs(u)<t*r&&c>0)break}return r}function ps(a,i,e){const t=a===0||a===1?0:Math.exp(gt(i+e)-gt(i)-gt(e)+i*Math.log(a)+e*Math.log(1-a));return a<(i+1)/(i+e+2)?t*Ei(a,i,e)/i:1-t*Ei(1-a,e,i)/e}function Ei(a,i,e){let n=1-(i+e)*a/(i+1);Math.abs(n)<1e-8&&(n=1e-8),n=1/n;let s=1,u=n;for(let o=1;o<=100;o++){let c=o*(e-o)*a/((i-1+o*2)*(i+o*2));if(n=1+c*n,Math.abs(n)<1e-8&&(n=1e-8),s=1+c/s,Math.abs(s)<1e-8&&(s=1e-8),n=1/n,u*=n*s,c=-(i+o)*(i+e+o)*a/((i+o*2)*(i+1+o*2)),n=1+c*n,Math.abs(n)<1e-8&&(n=1e-8),s=1+c/s,Math.abs(s)<1e-8&&(s=1e-8),n=1/n,u*=n*s,Math.abs(n*s-1)<1e-8)break}return u}function bi(a,i){return a+i>170?Math.exp(Ns(a,i)):Vs(a)*Vs(i)/Vs(a+i)}function Ns(a,i){return gt(a)+gt(i)-gt(a+i)}function gt(a){const i=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18];let e=a,t=a+5.5;t-=(a+.5)*Math.log(t);let r=1.000000000190015;for(let n=0;n<6;n++)e+=1,r+=i[n]/e;return-t+Math.log(2.5066282746310007*r/a)}function Vs(a){const i=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],e=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535];let t=0,r=a;if(a>171.6243769536076)return 1/0;if(r<=0){const f=r%1+36e-17;if(f)t=(r&1?-1:1)*Math.PI/Math.sin(Math.PI*f),r=1-r;else return 1/0}const n=r;let s=0,u;r<1?u=r++:u=(r-=s=(r|0)-1)-1;let o=0,c=0;for(let f=0;f<8;++f)o=(o+i[f])*u,c=c*u+e[f];let l=o/c+1;if(n<r)l/=n;else if(n>r)for(let f=0;f<s;++f)l*=r,r++;return t&&(l=t/l),l}function Ai(a,i,e){if(a<0)return 0;if(a>=i)return 1;if(e<0||e>1||i<=0)return Number.NaN;let t=0;for(let r=0;r<=a;r++)t+=Os(r,i,e);return t}function Os(a,i,e){return e===0||e===1?i*e===a?1:0:As(i,a)*e**a*(1-e)**(i-a)}function Ds(a,i){return a<=0?0:Ri(i/2,a/2)}function Lf(a,i){return a<0?0:a===0&&i===2?.5:Math.exp((i/2-1)*Math.log(a)-a/2-i/2*Math.log(2)-gt(i/2))}function yi(a,i){return a<=0?0:a>=1?1/0:2*Pf(a,i/2)}function Ri(a,i){if(i<0||a<=0)return Number.NaN;const e=Math.min(-~(Math.log(a>=1?a:1/a)*8.5+a*.4+17),1e4),t=gt(a),r=Math.exp(-i+a*Math.log(i)-t);let n=a,s=1/a,u=s;if(i<a+1){if(r===0)return 0;for(let m=1;m<=e;m++)s+=u*=i/++n;return s*r}if(r===0)return 1;let o=i+1-a,c=1/1e-30,l=1/o,f=l;for(let m=1;m<=e;m++){const d=-m*(m-a);o+=2,l=d*l+o,c=o+d/c,l=1/l,f*=l*c}return 1-f*r}function Pf(a,i){if(a<=0)return 0;if(a>=1)return Math.max(100,i+100*Math.sqrt(i));let e;if(i>1){const u=a<.5?a:1-a,o=Math.sqrt(-2*Math.log(u));e=(2.30753+o*.27061)/(1+o*(.99229+o*.04481))-o,a<.5&&(e=-e),e=Math.max(.001,i*(1-1/(9*i)-e/(3*Math.sqrt(i)))**3)}else{const u=1-i*(.253+i*.12);a<u?e=(a/u)**(1/i):e=1-Math.log(1-(a-u)/(1-u))}const t=1e-8,r=gt(i);let n,s;for(let u=0;u<12;u++){if(e<=0)return 0;if(n=Ri(i,e)-a,i>1?s=Math.exp((i-1)*(Math.log(i-1)-1)-r)*Math.exp(-(e-(i-1))+(i-1)*(Math.log(e)-Math.log(i-1))):s=Math.exp(-e+(i-1)*Math.log(e)-r),s!==0&&(s=n/s/(1-.5*Math.min(1,n/s*((i-1)/e-1)))),e-=s,e<=0&&(e=.5*(e+s)),Math.abs(s)<t*e)break}return e}function Mf(a,i){let e=Rs(2*Math.min(a,1-a),.5*i,.5);return e=Math.sqrt(i*(1-e)/e),a>.5?e:-e}function wf(a,i){return a<0?0:1-Math.exp(-i*a)}function jf(a,i){return a<0?0:i*Math.exp(-i*a)}function Ss(a,i,e){return a<0?0:ps(i*a/(i*a+e),i/2,e/2)}function xf(a,i,e){if(a<0)return 0;if(a===0&&i<2)return 1/0;if(a===0&&i===2)return 1;let t=1/bi(i/2,e/2);return t*=(i/e)**(i/2),t*=a**(i/2-1),t*=(1+i/e*a)**(-(i+e)/2),t}function pi(a,i,e){return a<=0?0:a>=1?1/0:e/(i*(1/Rs(a,i/2,e/2)-1))}function Ni(a,i,e){const t=i.length;let r=0,n=0;for(let m=0;m<t;m++)r+=i[m],n+=e[m];const s=r/t,u=n/t;let o=0,c=0;for(let m=0;m<t;m++)o+=(i[m]-s)*(e[m]-u),c+=(e[m]-u)**2;if(c===0)return 1/0;const l=o/c;return s-l*u+l*a}function Ls(a,i,e){return .5*(1+tr((a-i)/Math.sqrt(2*e*e)))}function Vi(a,i,e){return Math.exp(-.5*Math.log(2*Math.PI)-Math.log(e)-(a-i)**2/(2*e*e))}function Ps(a,i,e){return-1.4142135623730951*e*pf(2*a)+i}function rr(a,i,e,t,r){const n=[],s=[];let u=!0;for(let o=0;o<e;o++){const c=Math.floor(o/t),l=o%t,f=Math.floor(o/r),m=o%r,d=a.isArray()?a.get(c,l):a,_=i.isArray()?i.get(f,m):i;if(d.isError())return{isError:!0,errorObject:d,array1Values:n,array2Values:s,noCalculate:u};if(_.isError())return{isError:!0,errorObject:_,array1Values:n,array2Values:s,noCalculate:u};if(d.isNull()||_.isNull()||d.isBoolean()||_.isBoolean())continue;const E=d.getValue(),b=_.getValue();!O.isRealNum(E)||!O.isRealNum(b)||(n.push(+E),s.push(+b),u=!1)}return{isError:!1,errorObject:null,array1Values:n,array2Values:s,noCalculate:u}}function nr(a){let i=a;if(a.isArray()){const e=a.getRowCount(),t=a.getColumnCount();if(e>1||t>1)return g.create(h.VALUE);i=a.get(0,0)}return i.isError(),i}function Ms(...a){for(let i=0;i<a.length;i++){const e=nr(a[i]);if(e.isError())return{isError:!0,errorObject:e};a[i]=e}return{isError:!1,variants:a}}function $(...a){for(let i=0;i<a.length;i++){const e=nr(a[i]);if(e.isError())return{isError:!0,errorObject:e};if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE)};a[i]=e}return{isError:!1,variants:a}}function xe(...a){for(let i=0;i<a.length;i++){let e=a[i];if(e.isError())return{isError:!0,errorObject:e};if(e.isNull())return{isError:!0,errorObject:g.create(h.NA)};if(e=nr(a[i]),e.isError())return{isError:!0,errorObject:e};if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE)};a[i]=e}return{isError:!1,variants:a}}function ne(...a){for(let i=0;i<a.length;i++){let e=a[i];if(e.isString()&&(e=e.convertToNumberObjectValue()),e.isError())return{isError:!0,errorObject:e};a[i]=e}return{isError:!1,variants:a}}class Oi extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",5)}calculate(e,t,r,n,s){let u=n!=null?n:A.create(0),o=s!=null?s:A.create(1);u.isNull()&&(u=A.create(0)),o.isNull()&&(o=A.create(1));const c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,u.isArray()?u.getRowCount():1,o.isArray()?o.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,u.isArray()?u.getColumnCount():1,o.isArray()?o.getColumnCount():1),f=D(c,l,e,g.create(h.NA)),m=D(c,l,t,g.create(h.NA)),d=D(c,l,r,g.create(h.NA)),_=D(c,l,u,g.create(h.NA)),E=D(c,l,o,g.create(h.NA)),b=f.mapValue((y,R,p)=>{const N=m.get(R,p),S=d.get(R,p),P=_.get(R,p),M=E.get(R,p);return this._handleSignleObject(y,N,S,P,M)});return c===1&&l===1?b.get(0,0):b}_handleSignleObject(e,t,r,n,s){const{isError:u,errorObject:o,variants:c}=ne(e,t,r,n,s);if(u)return o;const[l,f,m,d,_]=c,E=+l.getValue(),b=+f.getValue(),y=+m.getValue(),R=+d.getValue(),p=+_.getValue();if(b<=0||y<=0||E<=0||E>=1||R>=p)return g.create(h.NUM);const N=Rs(E,b,y)*(p-R)+R;return A.create(N)}}class Di extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),o=D(s,u,e,g.create(h.NA)),c=D(s,u,t,g.create(h.NA)),l=D(s,u,r,g.create(h.NA)),f=D(s,u,n,g.create(h.NA)),m=o.mapValue((d,_,E)=>{const b=c.get(_,E),y=l.get(_,E),R=f.get(_,E);return this._handleSignleObject(d,b,y,R)});return s===1&&u===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:u,variants:o}=ne(e,t,r,n);if(s)return u;const[c,l,f,m]=o,d=Math.floor(+c.getValue()),_=Math.floor(+l.getValue()),E=+f.getValue(),b=+m.getValue();if(d<0||d>_||E<0||E>1)return g.create(h.NUM);let y;return b?y=Ai(d,_,E):y=Os(d,_,E),A.create(y)}}class Si extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.mapValue((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d);return this._handleSignleObject(f,_,E)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:u}=ne(e,t,r);if(n)return s;const[o,c,l]=u,f=Math.floor(+o.getValue()),m=+c.getValue(),d=+l.getValue();if(f<0||m<=0||m>=1||d<=0||d>=1)return g.create(h.NUM);let _=0;for(;_<=f&&!(Ai(_,f,m)>=d);)_++;return A.create(_)}}class Li extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.mapValue((c,l,f)=>{const m=u.get(l,f);return this._handleSignleObject(c,m)});return r===1&&n===1?o.get(0,0):o}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=ne(e,t);if(r)return n;const[u,o]=s,c=+u.getValue(),l=Math.floor(+o.getValue());if(c<0||l<1||l>10**10)return g.create(h.NUM);const f=1-Ds(c,l);return A.create(f)}}class Pi extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.mapValue((c,l,f)=>{const m=u.get(l,f);return this._handleSignleObject(c,m)});return r===1&&n===1?o.get(0,0):o}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=ne(e,t);if(r)return n;const[u,o]=s,c=+u.getValue(),l=Math.floor(+o.getValue());if(c<0||c>1||l<1)return g.create(h.NUM);const f=yi(1-c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):A.create(f)}}class Mi extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1;let o=e;if(e.isArray()&&r===1&&n===1&&(o=e.get(0,0)),o.isError())return o;let c=t;if(t.isArray()&&s===1&&u===1&&(c=t.get(0,0)),c.isError())return c;if(r*n===1||s*u===1)return o.isNull()||c.isNull()?g.create(h.VALUE):g.create(h.NA);if(r*n!==s*u)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:_}=rr(e,t,r*n,n,u);return l?f:_?g.create(h.DIV_BY_ZERO):this._getResult(m,d,r,n)}_getResult(e,t,r,n){let s=0;for(let c=0;c<e.length;c++){if(t[c]===0)return g.create(h.DIV_BY_ZERO);s+=(e[c]-t[c])**2/t[c]}let u=(r-1)*(n-1);r===1?u=n-1:n===1&&(u=r-1);const o=1-Ds(s,u);return A.create(o)}}class wi extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.mapValue((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d),{isError:b,errorObject:y,variants:R}=ne(f,_,E);if(b)return y;const[p,N,S]=R,P=+p.getValue(),M=+N.getValue(),w=Math.floor(+S.getValue());if(P<=0||P>=1||M<=0||w<1)return g.create(h.NUM);const x=Math.abs(Ps(P/2,0,1)*M/Math.sqrt(w));return A.create(x)});return n===1&&s===1?l.get(0,0):l}}class ji extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1;let o=e;if(e.isArray()&&r===1&&n===1&&(o=e.get(0,0)),o.isError())return o;let c=t;if(t.isArray()&&s===1&&u===1&&(c=t.get(0,0)),c.isError())return c;if((r*n===1||s*u===1)&&(o.isNull()||c.isNull()))return g.create(h.VALUE);if(r*n!==s*u)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:_}=rr(e,t,r*n,n,u);return l?f:_?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){if(e.length===0)return g.create(h.DIV_BY_ZERO);const r=e.length;let n=0,s=0;for(let l=0;l<r;l++)n+=e[l],s+=t[l];const u=n/r,o=s/r;let c=0;for(let l=0;l<r;l++){const f=e[l]-u,m=t[l]-o;c+=f*m}return A.create(c/r)}}class xi extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.mapValue((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d);return this._handleSignleObject(f,_,E)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:u}=ne(e,t,r);if(n)return s;const[o,c,l]=u,f=+o.getValue(),m=+c.getValue(),d=+l.getValue();if(f<0||m<=0)return g.create(h.NUM);let _;return d?_=wf(f,m):_=jf(f,m),A.create(_)}}class Ui extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.mapValue((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d);return this._handleSignleObject(f,_,E)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:u}=ne(e,t,r);if(n)return s;const[o,c,l]=u,f=+o.getValue(),m=Math.floor(+c.getValue()),d=Math.floor(+l.getValue());if(f<0||m<1||m>10**10||d<1||d>10**10)return g.create(h.NUM);const _=1-Ss(f,m,d);return A.create(_)}}class Ti extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.mapValue((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d);return this._handleSignleObject(f,_,E)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:u}=ne(e,t,r);if(n)return s;const[o,c,l]=u,f=+o.getValue(),m=Math.floor(+c.getValue()),d=Math.floor(+l.getValue());if(f<0||f>1||m<1||m>10**10||d<1||d>10**10)return g.create(h.NUM);const _=pi(1-f,m,d);return Number.isNaN(_)||!Number.isFinite(_)?g.create(h.NUM):A.create(_)}}class vi extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variance:s,ns1:u}=this._getValues(e);if(r)return n;const{isError:o,errorObject:c,variance:l,ns1:f}=this._getValues(t);if(o)return c;let m=2*(1-Ss(s/l,u,f));return m>1&&(m=2-m),A.create(m)}_getValues(e){let t=0,r=0;const n=e.isArray()?e.getRowCount():1,s=e.isArray()?e.getColumnCount():1;if(n===1&&s===1){const f=e.isArray()?e.get(0,0):e;return f.isError()?{isError:!0,errorObject:f,variance:t,ns1:r}:f.isNull()?{isError:!0,errorObject:g.create(h.VALUE),variance:t,ns1:r}:{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),variance:t,ns1:r}}const u=[];let o=0;for(let f=0;f<n;f++)for(let m=0;m<s;m++){const d=e.isArray()?e.get(f,m):e;if(d.isError())return{isError:!0,errorObject:d,variance:t,ns1:r};if(d.isNull()||d.isBoolean())continue;const _=d.getValue();O.isRealNum(_)&&(u.push(+_),o+=+_)}if(u.length<=1)return{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),variance:t,ns1:r};const c=o/u.length;let l=0;for(let f=0;f<u.length;f++)l+=(u[f]-c)**2;return r=u.length-1,t=l/r,t===0?{isError:!0,errorObject:g.create(h.DIV_BY_ZERO),variance:t,ns1:r}:{isError:!1,errorObject:null,variance:t,ns1:r}}}class Bi extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),o=D(s,u,e,g.create(h.NA)),c=D(s,u,t,g.create(h.NA)),l=D(s,u,r,g.create(h.NA)),f=D(s,u,n,g.create(h.NA)),m=o.mapValue((d,_,E)=>{const b=c.get(_,E),y=l.get(_,E),R=f.get(_,E);return this._handleSignleObject(d,b,y,R)});return s===1&&u===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:u,variants:o}=ne(e,t,r,n);if(s)return u;const[c,l,f,m]=o,d=+c.getValue(),_=+l.getValue(),E=+f.getValue(),b=+m.getValue();if(E<=0)return g.create(h.NUM);let y;return b?y=Ls(d,_,E):y=Vi(d,_,E),A.create(y)}}class Fi extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.mapValue((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d);return this._handleSignleObject(f,_,E)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:u}=ne(e,t,r);if(n)return s;const[o,c,l]=u,f=+o.getValue(),m=+c.getValue(),d=+l.getValue();if(f<=0||f>=1||d<=0)return g.create(h.NUM);const _=Ps(f,m,d);return A.create(_)}}class Ii extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSignleObject(r));return e.getRowCount()===1&&e.getColumnCount()===1?t.get(0,0):t}return this._handleSignleObject(e)}_handleSignleObject(e){const{isError:t,errorObject:r,variants:n}=ne(e);if(t)return r;const[s]=n,u=+s.getValue();if(u<=0||u>=1)return g.create(h.NUM);const o=Ps(u,0,1);return A.create(o)}}class ki extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std()}}class $i extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.std(1)}}class Yi extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var()}}class Hi extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e);return t.isError()?t:t.var(1)}}class Uf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",5)}calculate(e,t,r,n,s){let u=n!=null?n:A.create(0),o=s!=null?s:A.create(1);u.isNull()&&(u=A.create(0)),o.isNull()&&(o=A.create(1));const c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,u.isArray()?u.getRowCount():1,o.isArray()?o.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,u.isArray()?u.getColumnCount():1,o.isArray()?o.getColumnCount():1),f=D(c,l,e,g.create(h.NA)),m=D(c,l,t,g.create(h.NA)),d=D(c,l,r,g.create(h.NA)),_=D(c,l,u,g.create(h.NA)),E=D(c,l,o,g.create(h.NA)),b=f.mapValue((y,R,p)=>{const N=m.get(R,p),S=d.get(R,p),P=_.get(R,p),M=E.get(R,p);return this._handleSignleObject(y,N,S,P,M)});return c===1&&l===1?b.get(0,0):b}_handleSignleObject(e,t,r,n,s){const{isError:u,errorObject:o,variants:c}=ne(e,t,r,n,s);if(u)return o;const[l,f,m,d,_]=c,E=+l.getValue(),b=+f.getValue(),y=+m.getValue(),R=+d.getValue(),p=+_.getValue();if(b<=0||y<=0||E<R||E>p||R===p)return g.create(h.NUM);const N=_i((E-R)/(p-R),b,y);return A.create(N)}}var pe=(a=>(a.BETADIST="BETADIST",a.BETAINV="BETAINV",a.BINOMDIST="BINOMDIST",a.CHIDIST="CHIDIST",a.CHIINV="CHIINV",a.CHITEST="CHITEST",a.CONFIDENCE="CONFIDENCE",a.COVAR="COVAR",a.CRITBINOM="CRITBINOM",a.EXPONDIST="EXPONDIST",a.FDIST="FDIST",a.FINV="FINV",a.FTEST="FTEST",a.GAMMADIST="GAMMADIST",a.GAMMAINV="GAMMAINV",a.HYPGEOMDIST="HYPGEOMDIST",a.LOGINV="LOGINV",a.LOGNORMDIST="LOGNORMDIST",a.MODE="MODE",a.NEGBINOMDIST="NEGBINOMDIST",a.NORMDIST="NORMDIST",a.NORMINV="NORMINV",a.NORMSDIST="NORMSDIST",a.NORMSINV="NORMSINV",a.PERCENTILE="PERCENTILE",a.PERCENTRANK="PERCENTRANK",a.POISSON="POISSON",a.QUARTILE="QUARTILE",a.RANK="RANK",a.STDEV="STDEV",a.STDEVP="STDEVP",a.TDIST="TDIST",a.TINV="TINV",a.TTEST="TTEST",a.VAR="VAR",a.VARP="VARP",a.WEIBULL="WEIBULL",a.ZTEST="ZTEST",a))(pe||{});class Tf extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSignleObject(r));return e.getRowCount()===1&&e.getColumnCount()===1?t.get(0,0):t}return this._handleSignleObject(e)}_handleSignleObject(e){const{isError:t,errorObject:r,variants:n}=ne(e);if(t)return r;const[s]=n,u=+s.getValue(),o=Ls(u,0,1);return A.create(o)}}class vf extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3);C(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=e;n.isReferenceObject()&&(n=n.toArrayValueObject());const{refHasError:s,refErrorObject:u,refNumbers:o}=this._checkRefReferenceObject(t);let c=r!=null?r:A.create(0);c.isReferenceObject()&&(c=c.toArrayValueObject());const l=Math.max(n.isArray()?n.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(n.isArray()?n.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=D(l,f,n,g.create(h.NA)),d=D(l,f,c,g.create(h.NA)),_=m.map((E,b,y)=>{const R=d.get(b,y);if(!e.isReferenceObject()&&e.isNull())return g.create(h.NA);if(s)return u;if(R.isError())return R;const p=+E.getValue(),N=+R.getValue();if(Number.isNaN(p)||Number.isNaN(N))return g.create(h.VALUE);const P=o.sort((M,w)=>N?M-w:w-M).indexOf(p);return P===-1?g.create(h.NA):A.create(P+1)});return l===1&&f===1?_.get(0,0):_}_checkRefReferenceObject(e){let t=!1,r=g.create(h.NA);const n=[];return e.isReferenceObject()?(e.toArrayValueObject().iterator(u=>{const o=u;if(o.isError())return t=!0,r=o,!1;if(o.isNull()||o.isBoolean())return!0;const c=+o.getValue();if(Number.isNaN(c))return!0;n.push(c)}),{refHasError:t,refErrorObject:r,refNumbers:n}):{refHasError:!0,refErrorObject:r,refNumbers:n}}}const Qi=[[Uf,pe.BETADIST],[Oi,pe.BETAINV],[Di,pe.BINOMDIST],[Li,pe.CHIDIST],[Pi,pe.CHIINV],[Mi,pe.CHITEST],[wi,pe.CONFIDENCE],[ji,pe.COVAR],[Si,pe.CRITBINOM],[xi,pe.EXPONDIST],[Ui,pe.FDIST],[Ti,pe.FINV],[vi,pe.FTEST],[Bi,pe.NORMDIST],[Fi,pe.NORMINV],[Tf,pe.NORMSDIST],[Ii,pe.NORMSINV],[vf,pe.RANK],[$i,pe.STDEV],[ki,pe.STDEVP],[Hi,pe.VAR],[Yi,pe.VARP]],Wi=[];var Gi=(a=>(a.CUBEKPIMEMBER="CUBEKPIMEMBER",a.CUBEMEMBER="CUBEMEMBER",a.CUBEMEMBERPROPERTY="CUBEMEMBERPROPERTY",a.CUBERANKEDMEMBER="CUBERANKEDMEMBER",a.CUBESET="CUBESET",a.CUBESETCOUNT="CUBESETCOUNT",a.CUBEVALUE="CUBEVALUE",a))(Gi||{});class Bf extends V{isCustom(){return!0}}function He(a){const i=[];if(a.isError())return{isError:!0,errorObject:a,databaseValues:i};const e=a.isArray()?a.getRowCount():1,t=a.isArray()?a.getColumnCount():1;if(e<2)return{isError:!0,errorObject:g.create(h.VALUE),databaseValues:i};for(let r=0;r<e;r++){const n=[];for(let s=0;s<t;s++){const u=a.get(r,s);if(u.isNull()){n.push(null);continue}let o=`${u.getValue()}`;if(u.isBoolean()&&(o=o.toLocaleUpperCase()),u.isNumber()||O.isRealNum(o)){n.push(+o);continue}n.push(o)}i.push(n)}return{isError:!1,errorObject:null,databaseValues:i}}function Qe(a,i){let e=-1;if(a.isError())return{isError:!0,errorObject:a,fieldIndex:e};const t=a.isArray()?a.getRowCount():1,r=a.isArray()?a.getColumnCount():1;if(t>1||r>1)return{isError:!0,errorObject:g.create(h.VALUE),fieldIndex:e};const n=a.isArray()?a.get(0,0):a;let s=`${n.getValue()}`;if(n.isNull()?s=0:n.isBoolean()?s=n.getValue()?1:0:(n.isNumber()||O.isRealNum(s))&&(s=Math.floor(+s)),typeof s=="number"){if(s<1||s>i[0].length)return{isError:!0,errorObject:g.create(h.VALUE),fieldIndex:e};e=s-1}else if(e=i[0].findIndex(u=>u===null?!1:`${u}`.toLocaleLowerCase()===s.toLocaleLowerCase()),e===-1)return{isError:!0,errorObject:g.create(h.VALUE),fieldIndex:e};return{isError:!1,errorObject:null,fieldIndex:e}}function We(a){const i=[];if(a.isError())return{isError:!0,errorObject:a,criteriaValues:i};const e=a.isArray()?a.getRowCount():1,t=a.isArray()?a.getColumnCount():1;if(e<2)return{isError:!0,errorObject:g.create(h.VALUE),criteriaValues:i};for(let r=0;r<e;r++){const n=[];for(let s=0;s<t;s++){const u=a.get(r,s);if(u.isNull()){n.push(null);continue}const o=`${u.getValue()}`;if(u.isBoolean()){n.push(u.getValue()?1:0);continue}if(u.isNumber()||O.isRealNum(o)){n.push(+o);continue}n.push(o)}i.push(n)}return{isError:!1,errorObject:null,criteriaValues:i}}function Ge(a,i,e){const t=a.length,r=a[0].length,n={};let s=!1;for(let u=1;u<t;u++){let o=!0;for(let c=0;c<r;c++){const l=a[u][c];if(l===null)continue;let f=n[c];if(f===void 0){const m=a[0][c];f=i[0].findIndex(d=>d===null||m===null?!1:`${d}`.toLocaleLowerCase()===`${m}`.toLocaleLowerCase()),n[c]=f}if(f===-1&&(typeof l=="string"||l===0)){o=!1;break}else if(f>-1){const m=i[e][f];if(m===null){o=!1;break}const[d,_]=Kt(`${l}`);if(!mt.create(`${m}`).compare(_,d).getValue()){o=!1;break}}}if(o){s=!0;break}}return s}class Ff extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;let _=0,E=0;for(let b=1;b<u.length;b++){const y=u[b][l];typeof y=="number"&&Ge(d,u,b)&&(_+=y,E++)}return E===0?g.create(h.DIV_BY_ZERO):A.create(_/E)}}class If extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;let _=0;for(let E=1;E<u.length;E++)typeof u[E][l]=="number"&&Ge(d,u,E)&&_++;return A.create(_)}}class kf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;let _=0;for(let E=1;E<u.length;E++){const b=u[E][l];b!=null&&Ge(d,u,E)&&_++}return A.create(_)}}class $f extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;let _=0,E=0;for(let b=1;b<u.length;b++){const y=u[b][l];y!=null&&Ge(d,u,b)&&(_++,E=b)}return _===0?g.create(h.VALUE):_>1?g.create(h.NUM):e.get(E,l)}}class Yf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;let _=-1/0,E=0;for(let b=1;b<u.length;b++){const y=u[b][l];typeof y=="number"&&Ge(d,u,b)&&(_=Math.max(_,y),E++)}return E===0?A.create(0):A.create(_)}}class Hf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;let _=1/0,E=0;for(let b=1;b<u.length;b++){const y=u[b][l];typeof y=="number"&&Ge(d,u,b)&&(_=Math.min(_,y),E++)}return E===0?A.create(0):A.create(_)}}class Qf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;let _=1,E=0;for(let b=1;b<u.length;b++){const y=u[b][l];typeof y=="number"&&Ge(d,u,b)&&(_*=y,E++)}return E===0?A.create(0):A.create(_)}}class Wf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;const _=[];let E=0,b=0;for(let N=1;N<u.length;N++){const S=u[N][l];typeof S=="number"&&Ge(d,u,N)&&(_.push(S),E+=S,b++)}if(b<=1)return g.create(h.DIV_BY_ZERO);const y=E/b;let R=0;for(let N=0;N<b;N++)R+=(_[N]-y)**2;const p=Math.sqrt(R/(b-1));return A.create(p)}}class Gf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;const _=[];let E=0,b=0;for(let N=1;N<u.length;N++){const S=u[N][l];typeof S=="number"&&Ge(d,u,N)&&(_.push(S),E+=S,b++)}if(b===0)return g.create(h.DIV_BY_ZERO);const y=E/b;let R=0;for(let N=0;N<b;N++)R+=(_[N]-y)**2;const p=Math.sqrt(R/b);return A.create(p)}}class qf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;let _=0;for(let E=1;E<u.length;E++){const b=u[E][l];typeof b=="number"&&Ge(d,u,E)&&(_+=b)}return A.create(_)}}class Xf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;const _=[];let E=0,b=0;for(let N=1;N<u.length;N++){const S=u[N][l];typeof S=="number"&&Ge(d,u,N)&&(_.push(S),E+=S,b++)}if(b<=1)return g.create(h.DIV_BY_ZERO);const y=E/b;let R=0;for(let N=0;N<b;N++)R+=(_[N]-y)**2;const p=R/(b-1);return A.create(p)}}class Kf extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,databaseValues:u}=He(e);if(n)return s;const{isError:o,errorObject:c,fieldIndex:l}=Qe(t,u);if(o)return c;const{isError:f,errorObject:m,criteriaValues:d}=We(r);if(f)return m;const _=[];let E=0,b=0;for(let N=1;N<u.length;N++){const S=u[N][l];typeof S=="number"&&Ge(d,u,N)&&(_.push(S),E+=S,b++)}if(b===0)return g.create(h.DIV_BY_ZERO);const y=E/b;let R=0;for(let N=0;N<b;N++)R+=(_[N]-y)**2;const p=R/b;return A.create(p)}}var Ie=(a=>(a.DAVERAGE="DAVERAGE",a.DCOUNT="DCOUNT",a.DCOUNTA="DCOUNTA",a.DGET="DGET",a.DMAX="DMAX",a.DMIN="DMIN",a.DPRODUCT="DPRODUCT",a.DSTDEV="DSTDEV",a.DSTDEVP="DSTDEVP",a.DSUM="DSUM",a.DVAR="DVAR",a.DVARP="DVARP",a))(Ie||{});const qi=[[Ff,Ie.DAVERAGE],[If,Ie.DCOUNT],[kf,Ie.DCOUNTA],[$f,Ie.DGET],[Yf,Ie.DMAX],[Hf,Ie.DMIN],[Qf,Ie.DPRODUCT],[Wf,Ie.DSTDEV],[Gf,Ie.DSTDEVP],[qf,Ie.DSUM],[Xf,Ie.DVAR],[Kf,Ie.DVARP]];var ye=(a=>(a.DATE="DATE",a.DATEDIF="DATEDIF",a.DATEVALUE="DATEVALUE",a.DAY="DAY",a.DAYS="DAYS",a.DAYS360="DAYS360",a.EDATE="EDATE",a.EOMONTH="EOMONTH",a.HOUR="HOUR",a.ISOWEEKNUM="ISOWEEKNUM",a.MINUTE="MINUTE",a.MONTH="MONTH",a.NETWORKDAYS="NETWORKDAYS",a.NETWORKDAYS_INTL="NETWORKDAYS.INTL",a.NOW="NOW",a.SECOND="SECOND",a.TIME="TIME",a.TIMEVALUE="TIMEVALUE",a.TODAY="TODAY",a.WEEKDAY="WEEKDAY",a.WEEKNUM="WEEKNUM",a.WORKDAY="WORKDAY",a.WORKDAY_INTL="WORKDAY.INTL",a.YEAR="YEAR",a.YEARFRAC="YEARFRAC",a))(ye||{});const ws="yyyy/mm/dd;@",Zf="yyyy/mm/dd hh:mm",zf="h:mm A/P";function Ee(a){const i=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28)),t=Date.UTC(a.getFullYear(),a.getMonth(),a.getDate());let r=(t-i.getTime())/(1e3*3600*24);return t>e.getTime()&&(r+=1),Math.floor(r)+1}function hn(a){const i=new Date(Date.UTC(1900,0,1,0,0,0)),e=new Date(Date.UTC(1900,1,28,0,0,0));let r=(a.getTime()-i.getTime())/(1e3*3600*24);return a>e&&(r+=1),r+1}function se(a){const i=new Date(Date.UTC(1900,0,1)),e=new Date(Date.UTC(1900,1,28));let t=Math.floor(a)-1;return t>(e.getTime()-i.getTime())/(1e3*3600*24)&&(t-=1),new Date(i.getTime()+t*(1e3*3600*24))}function js(a){const i=new Date(Date.UTC(1900,0,1,0,0,0)),e=new Date(Date.UTC(1900,1,28,0,0,0));let t=a-1;return t>(e.getTime()-i.getTime())/(1e3*3600*24)&&(t-=1),t<0&&(t=a),new Date(i.getTime()+t*(1e3*3600*24))}function xs(a){if(!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(a))return!1;const e=a.replace(/-/g,"/").replace(/T.+/,""),t=new Date(`${e}`);if(Number.isNaN(t.getTime()))return!1;const r=t.getFullYear(),n=(t.getMonth()+1).toString().padStart(2,"0"),s=t.getDate().toString().padStart(2,"0"),u=`${r}-${n}-${s}`;return a.replace(/\//g,"-").split("-").map(c=>c.padStart(2,"0")).join("-")===u}function Xi(a){return O.numfmt.parseDate(a)}function Ki(a){return O.numfmt.parseValue(a)}function Zi(a){return O.numfmt.parseTime(a)}function zi(a){return O.numfmt.isDate(a)}const Ji={1:[6,0],2:[0,1],3:[1,2],4:[2,3],5:[3,4],6:[4,5],7:[5,6],11:[0],12:[1],13:[2],14:[3],15:[4],16:[5],17:[6]};function Nr(a){return!!(typeof a=="string"&&/^[0|1]{7}/.test(a)||Ji[Number(a)])}function eu(a){if(!Nr(a))return[];if(typeof a=="string"&&/^[0|1]{7}/.test(a)){const i=[];for(let e=1;e<=a.length;e++)`${a[e-1]}`=="1"&&(e===a.length?i.push(0):i.push(e));return i}return Ji[Number(a)]||[]}function gn(a,i,e=1,t){const r=eu(e),n=Math.floor(a),s=Math.floor(i),u=s>n?n:s;let o=0;const c=Math.abs(Math.floor(i)-Math.floor(a))+1;for(let l=0;l<c;l++){const f=u+l;if(t&&t.length>0&&t.some(d=>Math.floor(d)===f))continue;const m=Bt(f);r.includes(m)||o++}return s>n?o:-o}function dn(a,i,e=1,t){const r=eu(e),n=Math.floor(a);let s=n,u=Math.abs(i);for(let o=1;o<=u;o++){const c=i<0?n-o:n+o;if(c<0)return g.create(h.NUM);if(t&&t.length>0&&t.some(f=>Math.floor(f)===c)){u++;continue}const l=Bt(c);if(r.includes(l)){u++;continue}s=c}return s}function v(a){if(a.isError())return a;const i=a.getValue();if(a.isString()){let e;if(Xi(`${i}`))e=Xi(`${i}`).v;else if(Zi(`${i}`))e=Zi(`${i}`).v;else if(O.isRealNum(i))e=+i;else return g.create(h.VALUE);return e instanceof Date&&(e=hn(e)),+e<0||+e>2958465?g.create(h.NUM):+e}else{const e=+a.getValue();return e<0||e>2958465?g.create(h.NUM):e}}function Bt(a){const i=Math.floor(a)===60;let e=se(a);const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())).getTime(),r=new Date(Date.UTC(1900,1,28)).getTime();return!i&&t<=r&&(e=new Date(t-24*3600*1e3)),new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())).getUTCDay()}function Ce(a,i,e){switch(e){case 0:return Jf(a,i);case 1:return em(a,i);case 2:return{days:Math.abs(i-a),yearDays:360};case 3:return{days:Math.abs(i-a),yearDays:365};case 4:return tm(a,i);default:return{days:Math.abs(i-a),yearDays:365}}}function Jf(a,i){const e=se(a),t=a>0?e.getUTCFullYear():1900,r=a>0?e.getUTCMonth()+1:1;let n=a>0?e.getUTCDate():0,s=se(i),u=i>0?s.getUTCFullYear():1900,o=i>0?s.getUTCMonth()+1:1,c=i>0?s.getUTCDate():0;r===2?se(a+1).getUTCMonth()+1===3&&(n=30):n===31&&(n=30),c===31&&(n<30?(s=se(i+1),u=s.getUTCFullYear(),o=s.getUTCMonth()+1,c=s.getUTCDate()):c=30);const l=(u-t)*360,f=i>=a?30-n:-n,m=i>=a?c:c-30,d=(i>=a?o-r-1:o-r+1)*30;return{days:Math.abs(l+f+m+d),yearDays:360}}function em(a,i){const e=se(a),t=a>0?e.getUTCFullYear():1900,r=se(i),n=i>0?r.getUTCFullYear():1900,s=Math.abs(i-a),u=Math.abs(n-t)+1;let o,c;if(n<t){const l=new Date(Date.UTC(n,0,1)),f=new Date(Date.UTC(t,11,31));o=Ee(l),c=Ee(f),n===1900&&(o+=1)}else{const l=new Date(Date.UTC(t,0,1)),f=new Date(Date.UTC(n,11,31));o=Ee(l),c=Ee(f),t===1900&&(o+=1)}return{days:s,yearDays:(c-o+1)/u}}function tm(a,i){const e=se(a),t=a>0?e.getUTCFullYear():1900,r=a>0?e.getUTCMonth()+1:1;let n=a>0?e.getUTCDate():0;const s=se(i),u=i>0?s.getUTCFullYear():1900,o=i>0?s.getUTCMonth()+1:1;let c=i>0?s.getUTCDate():0;n===31&&(n=30),c===31&&(c=30);const l=(u-t)*360,f=i>=a?30-n:-n,m=i>=a?c:c-30,d=(i>=a?o-r-1:o-r+1)*30;return{days:Math.abs(l+f+m+d),yearDays:360}}function rm(a){return a%4===0&&a%100!==0||a%400===0}function nm(a){return a%4===0&&a%100!==0||a%400===0||a===1900}const sm=[31,29,31,30,31,30,31,31,30,31,30,31],am=[31,28,31,30,31,30,31,31,30,31,30,31];function Vr(a,i){return rm(a)?sm[i]:am[i]}function Cn(a){return nm(a)?366:365}function tu(a,i){switch(i){case 0:case 2:case 4:return 360;case 1:return Cn(se(a).getUTCFullYear());case 3:return 365;default:return-1}}function sr(a,i,e){return Vr(a,i)===e}function ar(a,i){let e=a.getUTCFullYear(),t=a.getUTCMonth();const r=a.getUTCDate();return sr(e,t,r)?(a.setUTCDate(1),a.setUTCMonth(a.getUTCMonth()+i),e=a.getUTCFullYear(),t=a.getUTCMonth(),a.setUTCDate(Vr(e,t))):a.setUTCMonth(a.getUTCMonth()+i),a}class im extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e),o=D(n,s,t),c=D(n,s,r);return u.map((l,f,m)=>{const d=o.get(f,m)||J.create(),_=c.get(f,m)||J.create();if(l.isError())return l;if(d.isError())return d;if(_.isError())return _;if(l.isString()||d.isString()||_.isString())return g.create(h.VALUE);let E=+l.getValue();const b=Math.floor(+d.getValue()),y=+_.getValue();if(E<0||E>9999)return g.create(h.NUM);E>=0&&E<1899&&(E+=1900);const R=new Date(E,b-1,y),p=Ee(R);return p<0?g.create(h.NUM):A.create(p,ws)})}}class um extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){let n=e,s=t,u=r;if(n.isArray()&&(n=n.get(0,0)),s.isArray()&&(s=s.get(0,0)),u.isArray()&&(u=u.get(0,0)),n.isError())return n;if(s.isError())return s;if(u.isError())return u;const o=v(n);if(typeof o!="number")return o;const c=v(s);return typeof c!="number"?c:c<o||!u.isString()?g.create(h.NUM):this._getResultByUnit(o,c,u)}_getResultByUnit(e,t,r){const n=se(e),s=n.getUTCFullYear(),u=n.getUTCMonth()+1,o=n.getUTCDate(),c=se(t),l=c.getUTCFullYear(),f=c.getUTCMonth()+1,m=c.getUTCDate(),d=`${r.getValue()}`.toLocaleUpperCase();let _=0,E;switch(d){case"Y":_=l-s,(f<u||f===u&&m<o)&&(_-=1);break;case"M":_=(l-s)*12+f-u,m<o&&(_-=1);break;case"D":_=Math.floor(t)-Math.floor(e);break;case"MD":_=m-o,m<o&&(E=new Date(Date.UTC(l,f-1,0)),_+=Vr(E.getUTCFullYear(),E.getUTCMonth()));break;case"YM":_=f-u,(f<u||f===u&&m<o)&&(_+=12),m<o&&(_-=1);break;case"YD":E=new Date(Date.UTC(s,f-1,m)),(f<u||f===u&&m<o)&&(E=new Date(Date.UTC(s+1,f-1,m))),_=Math.floor(Ee(E))-Math.floor(e);break;default:return g.create(h.NUM)}return A.create(_)}}class om extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=Ki(t);if(r){let{v:n,z:s}=r;if(s&&zi(s))return n instanceof Date&&(n=hn(n)),A.create(Math.trunc(+n))}}return g.create(h.VALUE)}}class cm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t;const r=e.getValue();if(e.isString()){if(!xs(`${r}`))return g.create(h.VALUE);t=new Date(`${r}`)}else{const u=+e.getValue();if(u<0)return g.create(h.NUM);if(u===0)return A.create(0);t=se(u)}const n=t.getDate();return A.create(n)}}class lm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e),u=D(r,n,t),o=s.map((c,l,f)=>{const m=u.get(l,f);if(c.isError())return c;if(m.isError())return m;const d=v(c);if(typeof d!="number")return d;const _=v(m);if(typeof _!="number")return _;const E=Math.floor(d)-Math.floor(_);return A.create(E)});return r===1&&n===1?o.get(0,0):o}}class fm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:F.create(!1);if(e.isError())return e;if(t.isError())return t;if(n.isError())return n;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),o=D(s,u,e,g.create(h.NA)),c=D(s,u,t,g.create(h.NA)),l=D(s,u,n,g.create(h.NA)),f=o.map((m,d,_)=>{const E=c.get(d,_);let b=l.get(d,_);if(m.isError())return m;const y=v(m);if(typeof y!="number")return y;if(E.isError())return E;const R=v(E);if(typeof R!="number")return R;if(b.isString()&&(b=b.convertToNumberObjectValue()),b.isError())return b;const p=+b.getValue(),{days:N}=Ce(y,R,p?4:0),S=R>=y?N:-N;return A.create(S)});return s===1&&u===1?f.get(0,0):f}}class mm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e),u=D(r,n,t);return s.map((o,c,l)=>{const f=u.get(c,l)||J.create();if(o.isError())return o;if(f.isError())return f;if(o.isString()||o.isBoolean()||f.isString()||f.isBoolean())return g.create(h.VALUE);const m=+o.getValue();if(m<0)return g.create(h.NUM);const d=Math.floor(+f.getValue()),_=se(m),E=_.getUTCFullYear(),b=_.getUTCMonth()+d,y=_.getUTCDate(),R=new Date(Date.UTC(E,b,y)),p=Ee(R);return A.create(p,ws)})}}class hm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e,n=t;if(r.isArray()){const d=r.getRowCount(),_=r.getColumnCount();if(d>1||_>1)return g.create(h.VALUE);r=r.get(0,0)}if(n.isArray()){const d=n.getRowCount(),_=n.getColumnCount();if(d>1||_>1)return g.create(h.VALUE);n=n.get(0,0)}if(r.isError())return r;if(n.isError())return n;const s=v(r);if(typeof s!="number")return s;if(n.isBoolean())return g.create(h.VALUE);const u=se(s),o=s>0?u.getUTCFullYear():1900,c=s>0?u.getUTCMonth():0,l=Math.floor(+n.getValue());if(Number.isNaN(l))return g.create(h.VALUE);const f=new Date(Date.UTC(o,c+l+1,0)),m=Ee(f);return A.create(m)}}class gm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=v(e);if(typeof t!="number")return t;if(t===0)return A.create(0);const n=js(t).getUTCHours();return A.create(n)}}class dm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=v(e);if(typeof t!="number")return t;const r=se(t),n=t>0?r.getUTCFullYear():1900;let s=new Date(Date.UTC(n,0,1)),u=Ee(s),o=Bt(u),c;o<1?c=u+1:o<=4?c=u-(o-1):c=u+(11-o),t<c&&(s=new Date(Date.UTC(n-1,0,1)),u=Ee(s),o=Bt(u),o<1?c=u+1:o<=4?c=u-(o-1):c=u+(11-o));const l=Math.ceil((t-c+1)/7);return A.create(l)}}class Cm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=v(e);if(typeof t!="number")return t;if(t===0)return A.create(0);const n=js(t).getUTCMinutes();return A.create(n)}}class _m extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!xs(`${r}`))return g.create(h.VALUE);t=new Date(`${r}`)}else{const u=+e.getValue();if(u<0)return g.create(h.NUM);if(u===0)return A.create(1);t=se(u)}const n=t.getUTCMonth()+1;return A.create(n)}}class Em extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){let n=e,s=t;if(n.isArray()){const l=n.getRowCount(),f=n.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(s.isArray()){const l=s.getRowCount(),f=s.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);s=s.get(0,0)}if(s.isError())return s;if(r!=null&&r.isError())return r;if(n.isBoolean()||s.isBoolean())return g.create(h.VALUE);const u=v(n);if(typeof u!="number")return u;const o=v(s);if(typeof o!="number")return o;if(r)return this._getResultByHolidays(u,o,r);const c=gn(u,o);return A.create(c)}_getResultByHolidays(e,t,r){const n=[];if(r!=null&&r.isArray()){const u=r.getRowCount(),o=r.getColumnCount();for(let c=0;c<u;c++)for(let l=0;l<o;l++){const f=r.get(c,l);if(f.isBoolean())return g.create(h.VALUE);const m=v(f);if(typeof m!="number")return m;n.push(m)}}else{if(r.isBoolean())return g.create(h.VALUE);const u=v(r);if(typeof u!="number")return u;n.push(u)}const s=gn(e,t,1,n);return A.create(s)}}class bm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",4)}calculate(e,t,r,n){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:n!=null&&n.isError()?n:r!=null&&r.isArray()?r.map(s=>this._handleSingleObject(e,t,s,n)):this._handleSingleObject(e,t,r,n)}_handleSingleObject(e,t,r,n){let s=e,u=t;if(s.isArray()){const m=s.getRowCount(),d=s.getColumnCount();if(m>1||d>1)return g.create(h.VALUE);s=s.get(0,0)}if(s.isError())return s;if(u.isArray()){const m=u.getRowCount(),d=u.getColumnCount();if(m>1||d>1)return g.create(h.VALUE);u=u.get(0,0)}if(u.isError())return u;let o=1;if(r){if(o=r.getValue(),r.isBoolean()&&(o=+o),r.isString()&&!Nr(o))return g.create(h.VALUE);if(!Nr(o))return g.create(h.NUM)}if(s.isBoolean()||u.isBoolean())return g.create(h.VALUE);const c=v(s);if(typeof c!="number")return c;const l=v(u);if(typeof l!="number")return l;if(n)return this._getResultByHolidays(c,l,o,n);const f=gn(c,l,o);return A.create(f)}_getResultByHolidays(e,t,r,n){const s=[];if(n!=null&&n.isArray()){const o=n.getRowCount(),c=n.getColumnCount();for(let l=0;l<o;l++)for(let f=0;f<c;f++){const m=n.get(l,f);if(m.isBoolean())return g.create(h.VALUE);const d=v(m);if(typeof d!="number")return d;s.push(d)}}else{if(n.isBoolean())return g.create(h.VALUE);const o=v(n);if(typeof o!="number")return o;s.push(o)}const u=gn(e,t,r,s);return A.create(u)}}class Am extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",0)}calculate(){const e=new Date,t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())),r=hn(t);return A.create(r,Zf)}}class ym extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>t.isError()?t:this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=v(e);if(typeof t!="number")return t;if(t===0)return A.create(0);const n=js(t).getUTCSeconds();return A.create(n)}}class Rm extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e),o=D(n,s,t),c=D(n,s,r);return u.map((l,f,m)=>this._calculateTime(l,o,c,f,m))}_calculateTime(e,t,r,n,s){let u=e,o=t.get(n,s)||J.create(),c=r.get(n,s)||J.create();if((u.isString()||u.isBoolean())&&(u=u.convertToNumberObjectValue()),(o.isString()||o.isBoolean())&&(o=o.convertToNumberObjectValue()),(c.isString()||c.isBoolean())&&(c=c.convertToNumberObjectValue()),u.isError())return u;if(o.isError())return o;if(c.isError())return c;let l=Math.floor(+u.getValue()),f=Math.floor(+o.getValue()),m=Math.floor(+c.getValue());if(l<0||f<0||m<0||l>32767||f>32767||m>32767)return g.create(h.NUM);f+=Math.floor(m/60),m%=60,l+=Math.floor(f/60),f%=60,l%=24;const _=(l*3600+f*60+m)/86400;return A.create(_,zf)}}class pm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isString()){const t=`${e.getValue()}`,r=Ki(t);if(r){let{v:n,z:s}=r;if(s&&zi(s))return n instanceof Date&&(n=hn(n)),A.create(sl(+n))}}return g.create(h.VALUE)}}class Nm extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",0)}calculate(){const e=Ee(new Date);return A.create(e,ws)}}class Vm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2);C(this,"_returnTypeMap",{1:[1,2,3,4,5,6,7],2:[7,1,2,3,4,5,6],3:[6,0,1,2,3,4,5],11:[7,1,2,3,4,5,6],12:[6,7,1,2,3,4,5],13:[5,6,7,1,2,3,4],14:[4,5,6,7,1,2,3],15:[3,4,5,6,7,1,2],16:[2,3,4,5,6,7,1],17:[1,2,3,4,5,6,7]})}calculate(e,t){const r=t!=null?t:A.create(1);if(e.isError())return e;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,r,g.create(h.NA)),c=u.map((l,f,m)=>{const d=o.get(f,m);return this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){let r=t;if(e.isError())return e;if(r.isError())return r;const n=v(e);if(typeof n!="number")return n;if(r.isString()&&(r=r.convertToNumberObjectValue(),r.isError()))return r;const s=Math.floor(+r.getValue());if(!this._returnTypeMap[s])return g.create(h.NUM);const u=Bt(n),o=this._returnTypeMap[s][u];return A.create(o)}}class Om extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2);C(this,"_returnTypeMap",{1:0,2:1,11:1,12:2,13:3,14:4,15:5,16:6,17:0,21:4})}calculate(e,t){let r=e,n=t!=null?t:A.create(1);if(r.isArray()){const o=r.getRowCount(),c=r.getColumnCount();if(o>1||c>1)return g.create(h.VALUE);r=r.get(0,0)}if(r.isError())return r;if(n.isArray()){const o=n.getRowCount(),c=n.getColumnCount();if(o>1||c>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(r.isBoolean())return g.create(h.VALUE);const s=v(r);if(typeof s!="number")return s;if(n.isBoolean())return g.create(h.VALUE);const u=Math.floor(+n.getValue());return Number.isNaN(u)?g.create(h.VALUE):u in this._returnTypeMap?this._getResult(s,u):g.create(h.NUM)}_getResult(e,t){const r=se(e),n=e>0?r.getUTCFullYear():1900;let s=new Date(Date.UTC(n,0,1)),u=Ee(s),o=Bt(u),c;if(t===21)o<1?c=u+1:o<=4?c=u-(o-1):c=u+(11-o),e<c&&(s=new Date(Date.UTC(n-1,0,1)),u=Ee(s),o=Bt(u),o<1?c=u+1:o<=4?c=u-(o-1):c=u+(11-o));else{const f=this._returnTypeMap[t];o<f?c=u-(o+7-f):c=u-(o-f)}const l=Math.ceil((e-c+1)/7);return A.create(l)}}class Dm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){let n=e,s=t;if(n.isArray()){const l=n.getRowCount(),f=n.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(s.isArray()){const l=s.getRowCount(),f=s.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);s=s.get(0,0)}if(s.isError())return s;if(r!=null&&r.isError())return r;if(n.isBoolean()||s.isBoolean())return g.create(h.VALUE);const u=v(n);if(typeof u!="number")return u;const o=+s.getValue();if(Number.isNaN(o))return g.create(h.VALUE);if(r)return this._getResultByHolidays(u,o,r);const c=dn(u,o);return typeof c!="number"?c:A.create(c)}_getResultByHolidays(e,t,r){const n=[];if(r!=null&&r.isArray()){const u=r.getRowCount(),o=r.getColumnCount();for(let c=0;c<u;c++)for(let l=0;l<o;l++){const f=r.get(c,l);if(f.isBoolean())return g.create(h.VALUE);const m=v(f);if(typeof m!="number")return m;n.push(m)}}else{if(r.isBoolean())return g.create(h.VALUE);const u=v(r);if(typeof u!="number")return u;n.push(u)}const s=dn(e,t,1,n);return typeof s!="number"?s:A.create(s)}}class Sm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",4)}calculate(e,t,r,n){return e.isError()?e:t.isError()?t:r!=null&&r.isError()?r:n!=null&&n.isError()?n:r!=null&&r.isArray()?r.map(s=>this._handleSingleObject(e,t,s,n)):this._handleSingleObject(e,t,r,n)}_handleSingleObject(e,t,r,n){const s=r!=null?r:A.create(1),u=this._checkArrayError(e);if(u.isError())return u;const o=this._checkArrayError(t);if(o.isError())return o;if(u.isBoolean()||o.isBoolean())return g.create(h.VALUE);const c=v(e);if(typeof c!="number")return c;const l=+t.getValue();if(Number.isNaN(l))return g.create(h.VALUE);let f=s.getValue();if(s.isBoolean()&&(f=+f),s.isString()&&(!Nr(f)||f==="1111111"))return g.create(h.VALUE);if(!Nr(f))return g.create(h.NUM);if(n)return this._getResultByHolidays(c,l,f,n);const m=dn(c,l,f);return typeof m!="number"?m:A.create(m)}_checkArrayError(e){let t=e;if(t.isArray()){const r=t.getRowCount(),n=t.getColumnCount();if(r>1||n>1)return g.create(h.VALUE);t=t.get(0,0)}return t.isError(),t}_getResultByHolidays(e,t,r,n){const s=[];if(n!=null&&n.isArray()){const o=n.getRowCount(),c=n.getColumnCount();for(let l=0;l<o;l++)for(let f=0;f<c;f++){const m=n.get(l,f);if(m.isBoolean())return g.create(h.VALUE);const d=v(m);if(typeof d!="number")return d;s.push(d)}}else{if(n.isBoolean())return g.create(h.VALUE);const o=v(n);if(typeof o!="number")return o;s.push(o)}const u=dn(e,t,r,s);return typeof u!="number"?u:A.create(u)}}class Lm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;let t;const r=e.getValue();if(e.isString()){if(!xs(`${r}`))return g.create(h.VALUE);t=new Date(`${r}`)}else{const u=+r;if(u<0)return g.create(h.NUM);if(u===0)return A.create(1900);t=se(u)}const n=t.getUTCFullYear();return A.create(n)}}class Pm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){let n=r!=null?r:A.create(0);const s=nr(e);if(s.isError())return s;const u=nr(t);if(u.isError())return u;if(n=nr(n),n.isError())return n;if(s.isBoolean()||u.isBoolean()||n.isBoolean())return g.create(h.VALUE);const o=v(s);if(typeof o!="number")return o;const c=v(u);if(typeof c!="number")return c;const l=Math.floor(+n.getValue());if(Number.isNaN(l))return g.create(h.VALUE);if(l<0||l>4)return g.create(h.NUM);const{days:f,yearDays:m}=Ce(o,c,l),d=f/m;return A.create(d)}}const ru=[[im,ye.DATE],[um,ye.DATEDIF],[om,ye.DATEVALUE],[cm,ye.DAY],[lm,ye.DAYS],[fm,ye.DAYS360],[mm,ye.EDATE],[hm,ye.EOMONTH],[gm,ye.HOUR],[dm,ye.ISOWEEKNUM],[Cm,ye.MINUTE],[_m,ye.MONTH],[Em,ye.NETWORKDAYS],[bm,ye.NETWORKDAYS_INTL],[Am,ye.NOW],[ym,ye.SECOND],[Rm,ye.TIME],[pm,ye.TIMEVALUE],[Nm,ye.TODAY],[Vm,ye.WEEKDAY],[Om,ye.WEEKNUM],[Dm,ye.WORKDAY],[Sm,ye.WORKDAY_INTL],[Lm,ye.YEAR],[Pm,ye.YEARFRAC]];var Z=(a=>(a.BESSELI="BESSELI",a.BESSELJ="BESSELJ",a.BESSELK="BESSELK",a.BESSELY="BESSELY",a.BIN2DEC="BIN2DEC",a.BIN2HEX="BIN2HEX",a.BIN2OCT="BIN2OCT",a.BITAND="BITAND",a.BITLSHIFT="BITLSHIFT",a.BITOR="BITOR",a.BITRSHIFT="BITRSHIFT",a.BITXOR="BITXOR",a.COMPLEX="COMPLEX",a.CONVERT="CONVERT",a.DEC2BIN="DEC2BIN",a.DEC2HEX="DEC2HEX",a.DEC2OCT="DEC2OCT",a.DELTA="DELTA",a.ERF="ERF",a.ERF_PRECISE="ERF.PRECISE",a.ERFC="ERFC",a.ERFC_PRECISE="ERFC.PRECISE",a.GESTEP="GESTEP",a.HEX2BIN="HEX2BIN",a.HEX2DEC="HEX2DEC",a.HEX2OCT="HEX2OCT",a.IMABS="IMABS",a.IMAGINARY="IMAGINARY",a.IMARGUMENT="IMARGUMENT",a.IMCONJUGATE="IMCONJUGATE",a.IMCOS="IMCOS",a.IMCOSH="IMCOSH",a.IMCOT="IMCOT",a.IMCSC="IMCSC",a.IMCSCH="IMCSCH",a.IMDIV="IMDIV",a.IMEXP="IMEXP",a.IMLN="IMLN",a.IMLOG10="IMLOG10",a.IMLOG2="IMLOG2",a.IMPOWER="IMPOWER",a.IMPRODUCT="IMPRODUCT",a.IMREAL="IMREAL",a.IMSEC="IMSEC",a.IMSECH="IMSECH",a.IMSIN="IMSIN",a.IMSINH="IMSINH",a.IMSQRT="IMSQRT",a.IMSUB="IMSUB",a.IMSUM="IMSUM",a.IMTAN="IMTAN",a.OCT2BIN="OCT2BIN",a.OCT2DEC="OCT2DEC",a.OCT2HEX="OCT2HEX",a))(Z||{});class Mm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=+u.getValue(),l=Math.floor(+o.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);const f=er.besseli(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):A.create(f)}}class wm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=+u.getValue(),l=Math.floor(+o.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);const f=er.besselj(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):A.create(f)}}class jm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=+u.getValue(),l=Math.floor(+o.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);const f=er.besselk(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):A.create(f)}}class xm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=+u.getValue(),l=Math.floor(+o.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);const f=er.bessely(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):A.create(f)}}class Um extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`;if(!Cs(u))return g.create(h.NUM);let o;return u.length===10&&u.substring(0,1)==="1"?o=Number.parseInt(u.substring(1),2)-512:o=Number.parseInt(u,2),A.create(o)}}class Tm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=$(t);if(f)return m;const[_]=d;if(r=Math.floor(+_.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=`${o.getValue()}`;if(!Cs(c))return g.create(h.NUM);let l;if(c.length===10&&c.substring(0,1)==="1")l=(0xfffffffe00+Number.parseInt(c.substring(1),2)).toString(16);else if(l=Number.parseInt(c,2).toString(16),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return T.create(l.toLocaleUpperCase())}}class vm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=$(t);if(f)return m;const[_]=d;if(r=Math.floor(+_.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=`${o.getValue()}`;if(!Cs(c))return g.create(h.NUM);let l;if(c.length===10&&c.substring(0,1)==="1")l=(1073741312+Number.parseInt(c.substring(1),2)).toString(8);else if(l=Number.parseInt(c,2).toString(8),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return T.create(l)}}class Bm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=u.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+m.getValue(),E=+d.getValue();if(_<0||E<0||Math.floor(_)!==_||Math.floor(E)!==E||_>0xffffffffffff||E>0xffffffffffff)return g.create(h.NUM);const b=_&E;return A.create(b)});return r===1&&n===1?o.get(0,0):o}}class Fm extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=u.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+m.getValue();let E=+d.getValue();if(_<0||Math.floor(_)!==_||_>0xffffffffffff||Math.abs(E)>53)return g.create(h.NUM);E=Math.trunc(E);const b=Number(E>=0?BigInt(_)<<BigInt(E):BigInt(_)>>BigInt(-E));return b>0xffffffffffff?g.create(h.NUM):A.create(b)});return r===1&&n===1?o.get(0,0):o}}class Im extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=u.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+m.getValue(),E=+d.getValue();if(_<0||E<0||Math.floor(_)!==_||Math.floor(E)!==E||_>0xffffffffffff||E>0xffffffffffff)return g.create(h.NUM);const b=Number(BigInt(_)|BigInt(E));return A.create(b)});return r===1&&n===1?o.get(0,0):o}}class km extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=u.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+m.getValue();let E=+d.getValue();if(_<0||Math.floor(_)!==_||_>0xffffffffffff||Math.abs(E)>53)return g.create(h.NUM);E=Math.trunc(E);const b=Number(E>=0?BigInt(_)>>BigInt(E):BigInt(_)<<BigInt(-E));return b>0xffffffffffff?g.create(h.NUM):A.create(b)});return r===1&&n===1?o.get(0,0):o}}class $m extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.map((c,l,f)=>{let m=c;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;let d=u.get(l,f);if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+m.getValue(),E=+d.getValue();if(_<0||E<0||Math.floor(_)!==_||Math.floor(E)!==E||_>0xffffffffffff||E>0xffffffffffff)return g.create(h.NUM);const b=_^E;return A.create(b)});return r===1&&n===1?o.get(0,0):o}}j.prototype.cos=function(){const a=this.toNumber();return new j(Math.cos(a))};let ge=class le{constructor(i){C(this,"_inumber","");C(this,"_realNum",0);C(this,"_iNum",0);C(this,"_suffix","");C(this,"_isError",!1);if(`${i}`.trim()===""){this._isError=!0;return}this._inumber=i,this._getImReal(),this._getImAginary(),this._getImSuffix()}static getComplex(i,e,t){const r=new j(i).toSignificantDigits(15).toNumber(),n=new j(e).toSignificantDigits(15).toNumber(),s=t===""?"i":t;let u;if(r===0&&n===0)u=0;else if(r===0)u=n===1?s:`${n}${s}`;else if(n===0)u=r;else{const o=n>0?"+":"",c=n===1?s:`${n}${s}`;u=`${r}${o}${c}`}return u}static createByComplexStr(i,e,t){const r=le.getComplex(i,e,t);return new le(r)}_getImReal(){if(this._inumber===0||this._inumber==="0"){this._realNum=0;return}const i=`${this._inumber}`;if(["i","+i","1i","+1i","-i","-1i","j","+j","1j","+1j","-j","-1j"].indexOf(i)>=0){this._realNum=0;return}let e=i.indexOf("+"),t=i.indexOf("-");e===0&&(e=i.indexOf("+",1)),t===0&&(t=i.indexOf("-",1));const r=i.substring(i.length-1,i.length),n=r==="i"||r==="j";if(e>=0||t>=0){if(!n){this._isError=!0;return}e>=0?Number.isNaN(+i.substring(0,e))||Number.isNaN(+i.substring(e+1,i.length-1))?this._isError=!0:this._realNum=+i.substring(0,e):Number.isNaN(+i.substring(0,t))||Number.isNaN(+i.substring(t+1,i.length-1))?this._isError=!0:this._realNum=+i.substring(0,t)}else n?Number.isNaN(+i.substring(0,i.length-1))?this._isError=!0:this._realNum=0:Number.isNaN(+i)?this._isError=!0:this._realNum=+i}_getImAginary(){if(this._isError)return;if(this._inumber===0||this._inumber==="0"){this._iNum=0;return}let i=`${this._inumber}`;if(["i","j"].indexOf(i)>=0){this._iNum=1;return}i=i.replace("+i","+1i").replace("-i","-1i").replace("+j","+1j").replace("-j","-1j");let e=i.indexOf("+"),t=i.indexOf("-");e===0&&(e=i.indexOf("+",1)),t===0&&(t=i.indexOf("-",1));const r=i.substring(i.length-1,i.length),n=r==="i"||r==="j";if(e>=0||t>=0){if(!n){this._isError=!0;return}e>=0?Number.isNaN(+i.substring(0,e))||Number.isNaN(+i.substring(e+1,i.length-1))?this._isError=!0:this._iNum=+i.substring(e+1,i.length-1):Number.isNaN(+i.substring(0,t))||Number.isNaN(+i.substring(t+1,i.length-1))?this._isError=!0:this._iNum=-+i.substring(t+1,i.length-1)}else n?Number.isNaN(+i.substring(0,i.length-1))?this._isError=!0:this._iNum=+i.substring(0,i.length-1):Number.isNaN(+i)?this._isError=!0:this._iNum=0}_getImSuffix(){const i=`${this._inumber}`,e=i.substring(i.length-1);this._suffix=e==="i"||e==="j"?e:""}getRealNum(){return this._realNum}getINum(){return this._iNum}getSuffix(){return this._suffix}isError(){return this._isError}toString(){return le.getComplex(this._realNum,this._iNum,this._suffix)}isDifferentSuffixes(i){const e=i.getSuffix();return this._suffix===""||e===""?!1:this._suffix!==e}Abs(){return j.sqrt(j.pow(this._realNum,2).add(j.pow(this._iNum,2))).toSignificantDigits(16).toNumber()}Argument(){const i=j.sqrt(j.pow(this._realNum,2).add(j.pow(this._iNum,2)));let e=j.acos(new j(this._realNum).div(i)).toSignificantDigits(16).toNumber();return this._iNum<0&&(e=-e),e}Conjugate(){return le.getComplex(this._realNum,-this._iNum,this._suffix)}Cos(){if(this._iNum){const i=j.cos(this._realNum).mul(j.cosh(this._iNum)).toNumber(),e=j.sin(this._realNum).mul(j.sinh(this._iNum)).negated().toNumber();return le.getComplex(i,e,this._suffix)}else{const i=j.cos(this._realNum).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}Cosh(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return this._isError=!0,"";if(this._iNum){const i=j.cosh(this._realNum).mul(j.cos(this._iNum)).toNumber(),e=j.sinh(this._realNum).mul(j.sin(this._iNum)).toNumber();return le.getComplex(i,e,this._suffix)}else{const i=j.cosh(this._realNum).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}Cot(){if(this._iNum){const i=j.cosh(this._iNum*2).sub(j.cos(this._realNum*2)),e=j.sin(this._realNum*2).div(i).toNumber(),t=j.sinh(this._iNum*2).div(i).negated().toNumber();return le.getComplex(e,t,this._suffix)}else{const i=new j(1).div(j.tan(this._realNum)).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}Csc(){if(this._iNum){const i=j.cosh(this._iNum*2).sub(j.cos(this._realNum*2)),e=j.sin(this._realNum).mul(j.cosh(this._iNum)).mul(2).div(i).toNumber(),t=j.cos(this._realNum).mul(j.sinh(this._iNum)).mul(-2).div(i).toNumber();return le.getComplex(e,t,this._suffix)}else{const i=new j(1).div(j.sin(this._realNum)).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}Csch(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return le.getComplex(0,0,this._suffix);if(this._iNum){const i=j.cosh(this._realNum*2).sub(j.cos(this._iNum*2)),e=j.sinh(this._realNum).mul(j.cos(this._iNum)).mul(2).div(i).toNumber(),t=j.cosh(this._realNum).mul(j.sin(this._iNum)).mul(-2).div(i).toNumber();return le.getComplex(e,t,this._suffix)}else{const i=new j(1).div(j.sinh(this._realNum)).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}Div(i){const e=new j(this._realNum),t=new j(this._iNum),r=new j(i.getRealNum()),n=new j(i.getINum()),s=r.mul(r).add(n.mul(n)),u=e.mul(r).add(t.mul(n)).div(s).toNumber(),o=t.mul(r).sub(e.mul(n)).div(s).toNumber(),c=this._suffix===""?i.getSuffix():this._suffix;return le.getComplex(u,o,c)}Exp(){if(!Number.isFinite(Math.exp(this._realNum)))return this._isError=!0,"";const i=j.exp(this._realNum).mul(j.cos(this._iNum)).toNumber(),e=j.exp(this._realNum).mul(j.sin(this._iNum)).toNumber();return le.getComplex(i,e,this._suffix)}Ln(){const i=j.sqrt(j.pow(this._realNum,2).add(j.pow(this._iNum,2))),e=j.ln(i).toNumber(),t=j.acos(new j(this._realNum).div(i)).toNumber();return le.getComplex(e,t,this._suffix)}Log10(){const i=j.sqrt(j.pow(this._realNum,2).add(j.pow(this._iNum,2))),e=j.ln(i);let t=j.acos(new j(this._realNum).div(i));this._iNum<0&&(t=t.negated());const r=j.ln(10),n=new j(0),s=r.mul(r).add(n.mul(n)),u=e.mul(r).add(t.mul(n)).div(s).toNumber(),o=t.mul(r).sub(e.mul(n)).div(s).toNumber();return le.getComplex(u,o,this._suffix)}Log2(){const i=j.sqrt(j.pow(this._realNum,2).add(j.pow(this._iNum,2))),e=j.ln(i);let t=j.acos(new j(this._realNum).div(i));this._iNum<0&&(t=t.negated());const r=j.ln(2),n=new j(0),s=r.mul(r).add(n.mul(n)),u=e.mul(r).add(t.mul(n)).div(s).toNumber(),o=t.mul(r).sub(e.mul(n)).div(s).toNumber();return le.getComplex(u,o,this._suffix)}Power(i){if(this._realNum===0&&this._iNum===0)return i>0?le.getComplex(this._realNum,this._iNum,this._suffix):(this._isError=!0,"");let e=j.sqrt(j.pow(this._realNum,2).add(j.pow(this._iNum,2))),t=j.acos(new j(this._realNum).div(e));this._iNum<0&&(t=t.negated()),e=j.pow(e,i),t=t.mul(i);const r=j.cos(t).mul(e).toNumber(),n=j.sin(t).mul(e).toNumber();return!Number.isFinite(r)||!Number.isFinite(n)?(this._isError=!0,""):le.getComplex(r,n,this._suffix)}Product(i){const e=new j(this._realNum),t=new j(this._iNum),r=new j(i.getRealNum()),n=new j(i.getINum()),s=e.mul(r).sub(t.mul(n)).toNumber(),u=e.mul(n).add(t.mul(r)).toNumber(),o=this._suffix===""?i.getSuffix():this._suffix;return le.getComplex(s,u,o)}Sec(){if(this._iNum){const i=j.cosh(this._iNum*2).add(j.cos(this._realNum*2)),e=j.cos(this._realNum).mul(j.cosh(this._iNum)).mul(2).div(i).toNumber(),t=j.sin(this._realNum).mul(j.sinh(this._iNum)).mul(2).div(i).toNumber();return le.getComplex(e,t,this._suffix)}else{const i=new j(1).div(j.cos(this._realNum)).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}Sech(){if(!Number.isFinite(Math.sinh(this._realNum*2))||!Number.isFinite(Math.cosh(this._realNum*2)))return le.getComplex(0,0,this._suffix);if(this._iNum){const i=j.cosh(this._realNum*2).add(j.cos(this._iNum*2)),e=j.cosh(this._realNum).mul(j.cos(this._iNum)).mul(2).div(i).toNumber(),t=j.sinh(this._realNum).mul(j.sin(this._iNum)).mul(-2).div(i).toNumber();return le.getComplex(e,t,this._suffix)}else{const i=new j(1).div(j.cosh(this._realNum)).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}Sin(){if(this._iNum){const i=j.sin(this._realNum).mul(j.cosh(this._iNum)).toNumber(),e=j.cos(this._realNum).mul(j.sinh(this._iNum)).toNumber();return le.getComplex(i,e,this._suffix)}else{const i=j.sin(this._realNum).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}Sinh(){if(!Number.isFinite(Math.sinh(this._realNum))||!Number.isFinite(Math.cosh(this._realNum)))return this._isError=!0,"";if(this._iNum){const i=j.sinh(this._realNum).mul(j.cos(this._iNum)).toNumber(),e=j.cosh(this._realNum).mul(j.sin(this._iNum)).toNumber();return le.getComplex(i,e,this._suffix)}else{const i=j.sinh(this._realNum).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}Sqrt(){const i=j.sqrt(j.pow(this._realNum,2).add(j.pow(this._iNum,2))),e=j.sqrt(i);let t=j.acos(new j(this._realNum).div(i));this._iNum<0&&(t=t.negated());const r=e.mul(j.cos(t.div(2).toNumber())).toNumber(),n=e.mul(j.sin(t.div(2))).toNumber();return le.getComplex(r,n,this._suffix)}Sub(i){const e=new j(this._realNum),t=new j(this._iNum),r=new j(i.getRealNum()),n=new j(i.getINum()),s=e.sub(r).toNumber(),u=t.sub(n).toNumber(),o=this._suffix===""?i.getSuffix():this._suffix;return le.getComplex(s,u,o)}Sum(i){const e=new j(this._realNum),t=new j(this._iNum),r=new j(i.getRealNum()),n=new j(i.getINum()),s=e.add(r).toNumber(),u=t.add(n).toNumber(),o=this._suffix===""?i.getSuffix():this._suffix;return le.getComplex(s,u,o)}Tan(){if(this._iNum){const i=j.cos(this._realNum*2).add(j.cosh(this._iNum*2)),e=j.sin(this._realNum*2).div(i).toNumber(),t=j.sinh(this._iNum*2).div(i).toNumber();return le.getComplex(e,t,this._suffix)}else{const i=j.tan(this._realNum).toNumber();return le.getComplex(i,this._iNum,this._suffix)}}};class Ym extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:T.create("i"),{isError:s,errorObject:u,variants:o}=$(e,t,n);if(s)return u;const[c,l,f]=o,m=+c.getValue(),d=+l.getValue(),_=`${f.getValue()}`;if(Number.isNaN(m)||Number.isNaN(d)||_!=="i"&&_!=="j")return g.create(h.VALUE);const E=ge.getComplex(m,d,_);return typeof E=="number"?A.create(E):T.create(E)}}class Hm extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3);C(this,"_units",[["a.u. of action","?",null,"action",!1,!1,105457168181818e-48],["a.u. of charge","e",null,"electric_charge",!1,!1,160217653141414e-33],["a.u. of energy","Eh",null,"energy",!1,!1,435974417757576e-32],["a.u. of length","a?",null,"length",!1,!1,529177210818182e-25],["a.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["a.u. of time","?/Eh",null,"time",!1,!1,241888432650516e-31],["admiralty knot","admkn",null,"speed",!1,!0,.514773333],["ampere","A",null,"electric_current",!0,!1,1],["ampere per meter","A/m",null,"magnetic_field_intensity",!0,!1,1],["ångström","Å",["ang"],"length",!1,!0,1e-10],["are","ar",null,"area",!1,!0,100],["astronomical unit","ua",null,"length",!1,!1,149597870691667e-25],["bar","bar",null,"pressure",!1,!1,1e5],["barn","b",null,"area",!1,!1,1e-28],["becquerel","Bq",null,"radioactivity",!0,!1,1],["bit","bit",["b"],"information",!1,!0,1],["btu","BTU",["btu"],"energy",!1,!0,1055.05585262],["byte","byte",null,"information",!1,!0,8],["candela","cd",null,"luminous_intensity",!0,!1,1],["candela per square metre","cd/m?",null,"luminance",!0,!1,1],["centigrade","C",["cel"],"temperature",!0,!1,1],["cubic ångström","ang3",["ang^3"],"volume",!1,!0,1e-30],["cubic foot","ft3",["ft^3"],"volume",!1,!0,.028316846592],["cubic inch","in3",["in^3"],"volume",!1,!0,16387064e-12],["cubic light-year","ly3",["ly^3"],"volume",!1,!0,846786664623715e-61],["cubic metre","m3",["m^3"],"volume",!0,!0,1],["cubic mile","mi3",["mi^3"],"volume",!1,!0,416818182544058e-5],["cubic nautical mile","Nmi3",["Nmi^3"],"volume",!1,!0,6352182208],["cubic Pica","Pica3",["Picapt3","Pica^3","Picapt^3"],"volume",!1,!0,758660370370369e-22],["cubic yard","yd3",["yd^3"],"volume",!1,!0,.764554857984],["cup","cup",null,"volume",!1,!0,.0002365882365],["dalton","Da",["u"],"mass",!1,!1,166053886282828e-41],["day","d",["day"],"time",!1,!0,86400],["degree","°",null,"angle",!1,!1,.0174532925199433],["dyne","dyn",["dy"],"force",!1,!0,1e-5],["electronvolt","eV",["ev"],"energy",!1,!0,1.60217656514141],["ell","ell",null,"length",!1,!0,1.143],["erg","erg",["e"],"energy",!1,!0,1e-7],["fahrenheit","F",["fah"],"temperature",!0,!1,1],["fluid ounce","oz",null,"volume",!1,!0,295735295625e-16],["foot","ft",null,"length",!1,!0,.3048],["foot-pound","flb",null,"energy",!1,!0,1.3558179483314],["gal","Gal",null,"acceleration",!1,!1,.01],["gallon","gal",null,"volume",!1,!0,.003785411784],["gauss","G",["ga"],"magnetic_flux_density",!1,!0,1],["grain","grain",null,"mass",!1,!0,647989e-10],["gram","g",null,"mass",!1,!0,.001],["gray","Gy",null,"absorbed_dose",!0,!1,1],["gross registered ton","GRT",["regton"],"volume",!1,!0,2.8316846592],["hectare","ha",null,"area",!1,!0,1e4],["henry","H",null,"inductance",!0,!1,1],["hertz","Hz",null,"frequency",!0,!1,1],["horsepower","HP",["h"],"power",!1,!0,745.69987158227],["horsepower-hour","HPh",["hh","hph"],"energy",!1,!0,2684519538e-3],["hour","h",["hr"],"time",!1,!0,3600],["imperial gallon (U.K.)","uk_gal",null,"volume",!1,!0,.00454609],["imperial hundredweight","lcwt",["uk_cwt","hweight"],"mass",!1,!0,50.802345],["imperial quart (U.K)","uk_qt",null,"volume",!1,!0,.0011365225],["imperial ton","brton",["uk_ton","LTON"],"mass",!1,!0,1016.046909],["inch","in",null,"length",!1,!0,.0254],["international acre","uk_acre",null,"area",!1,!0,4046.8564224],["IT calorie","cal",null,"energy",!1,!0,4.1868],["joule","J",null,"energy",!0,!0,1],["katal","kat",null,"catalytic_activity",!0,!1,1],["kelvin","K",["kel"],"temperature",!0,!0,1],["kilogram","kg",null,"mass",!0,!0,1],["knot","kn",null,"speed",!1,!0,.514444444444444],["light-year","ly",null,"length",!1,!0,9460730472580800],["litre","L",["l","lt"],"volume",!1,!0,.001],["lumen","lm",null,"luminous_flux",!0,!1,1],["lux","lx",null,"illuminance",!0,!1,1],["maxwell","Mx",null,"magnetic_flux",!1,!1,1e-18],["measurement ton","MTON",null,"volume",!1,!0,1.13267386368],["meter per hour","m/h",["m/hr"],"speed",!1,!0,.00027777777777778],["meter per second","m/s",["m/sec"],"speed",!0,!0,1],["meter per second squared","m?s??",null,"acceleration",!0,!1,1],["parsec","pc",["parsec"],"length",!1,!0,0x6da012f958ee1c],["meter squared per second","m?/s",null,"kinematic_viscosity",!0,!1,1],["metre","m",null,"length",!0,!0,1],["miles per hour","mph",null,"speed",!1,!0,.44704],["millimetre of mercury","mmHg",null,"pressure",!1,!1,133.322],["minute","?",null,"angle",!1,!1,.000290888208665722],["minute","min",["mn"],"time",!1,!0,60],["modern teaspoon","tspm",null,"volume",!1,!0,5e-6],["mole","mol",null,"amount_of_substance",!0,!1,1],["morgen","Morgen",null,"area",!1,!0,2500],["n.u. of action","?",null,"action",!1,!1,105457168181818e-48],["n.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["n.u. of speed","c?",null,"speed",!1,!1,299792458],["n.u. of time","?/(me?c??)",null,"time",!1,!1,128808866778687e-35],["nautical mile","M",["Nmi"],"length",!1,!0,1852],["newton","N",null,"force",!0,!0,1],["œrsted","Oe ",null,"magnetic_field_intensity",!1,!1,79.5774715459477],["ohm","Ω",null,"electric_resistance",!0,!1,1],["ounce mass","ozm",null,"mass",!1,!0,.028349523125],["pascal","Pa",null,"pressure",!0,!1,1],["pascal second","Pa?s",null,"dynamic_viscosity",!0,!1,1],["pferdestärke","PS",null,"power",!1,!0,735.49875],["phot","ph",null,"illuminance",!1,!1,1e-4],["pica (1/6 inch)","pica",null,"length",!1,!0,.00035277777777778],["pica (1/72 inch)","Pica",["Picapt"],"length",!1,!0,.00423333333333333],["poise","P",null,"dynamic_viscosity",!1,!1,.1],["pond","pond",null,"force",!1,!0,.00980665],["pound force","lbf",null,"force",!1,!0,4.4482216152605],["pound mass","lbm",null,"mass",!1,!0,.45359237],["quart","qt",null,"volume",!1,!0,.000946352946],["radian","rad",null,"angle",!0,!1,1],["rankine","Rank",null,"temperature",!1,!0,1],["reaumur","Reau",null,"temperature",!1,!0,1],["second","?",null,"angle",!1,!1,484813681109536e-20],["second","s",["sec"],"time",!0,!0,1],["short hundredweight","cwt",["shweight"],"mass",!1,!0,45.359237],["siemens","S",null,"electrical_conductance",!0,!1,1],["sievert","Sv",null,"equivalent_dose",!0,!1,1],["slug","sg",null,"mass",!1,!0,14.59390294],["square ångström","ang2",["ang^2"],"area",!1,!0,1e-20],["square foot","ft2",["ft^2"],"area",!1,!0,.09290304],["square inch","in2",["in^2"],"area",!1,!0,64516e-8],["square light-year","ly2",["ly^2"],"area",!1,!0,895054210748189e17],["square meter","m?",null,"area",!0,!0,1],["square mile","mi2",["mi^2"],"area",!1,!0,2589988110336e-6],["square nautical mile","Nmi2",["Nmi^2"],"area",!1,!0,3429904],["square Pica","Pica2",["Picapt2","Pica^2","Picapt^2"],"area",!1,!0,1792111111111e-17],["square yard","yd2",["yd^2"],"area",!1,!0,.83612736],["statute mile","mi",null,"length",!1,!0,1609.344],["steradian","sr",null,"solid_angle",!0,!1,1],["stilb","sb",null,"luminance",!1,!1,1e-4],["stokes","St",null,"kinematic_viscosity",!1,!1,1e-4],["stone","stone",null,"mass",!1,!0,6.35029318],["tablespoon","tbs",null,"volume",!1,!0,147868e-10],["teaspoon","tsp",null,"volume",!1,!0,492892e-11],["tesla","T",null,"magnetic_flux_density",!0,!0,1],["thermodynamic calorie","c",null,"energy",!1,!0,4.184],["ton","ton",null,"mass",!1,!0,907.18474],["tonne","t",null,"mass",!1,!1,1e3],["U.K. pint","uk_pt",null,"volume",!1,!0,.00056826125],["U.S. bushel","bushel",null,"volume",!1,!0,.03523907],["U.S. oil barrel","barrel",null,"volume",!1,!0,.158987295],["U.S. pint","pt",["us_pt"],"volume",!1,!0,.000473176473],["U.S. survey mile","survey_mi",null,"length",!1,!0,1609.347219],["U.S. survey/statute acre","us_acre",null,"area",!1,!0,4046.87261],["volt","V",null,"voltage",!0,!1,1],["watt","W",null,"power",!0,!0,1],["watt-hour","Wh",["wh"],"energy",!1,!0,3600],["weber","Wb",null,"magnetic_flux",!0,!1,1],["yard","yd",null,"length",!1,!0,.9144],["year","yr",null,"time",!1,!0,31557600]]);C(this,"_binaryPrefixes",{Yi:["yobi",80,12089258196146292e8,"Yi","yotta"],Zi:["zebi",70,11805916207174113e5,"Zi","zetta"],Ei:["exbi",60,1152921504606847e3,"Ei","exa"],Pi:["pebi",50,0x4000000000000,"Pi","peta"],Ti:["tebi",40,1099511627776,"Ti","tera"],Gi:["gibi",30,1073741824,"Gi","giga"],Mi:["mebi",20,1048576,"Mi","mega"],ki:["kibi",10,1024,"ki","kilo"]});C(this,"_unitPrefixes",{Y:["yotta",1e24,"Y"],Z:["zetta",1e21,"Z"],E:["exa",1e18,"E"],P:["peta",1e15,"P"],T:["tera",1e12,"T"],G:["giga",1e9,"G"],M:["mega",1e6,"M"],k:["kilo",1e3,"k"],h:["hecto",100,"h"],e:["dekao",10,"e"],d:["deci",.1,"d"],c:["centi",.01,"c"],m:["milli",.001,"m"],u:["micro",1e-6,"u"],n:["nano",1e-9,"n"],p:["pico",1e-12,"p"],f:["femto",1e-15,"f"],a:["atto",1e-18,"a"],z:["zepto",1e-21,"z"],y:["yocto",1e-24,"y"]})}calculate(e,t,r){const{isError:n,errorObject:s,variants:u}=$(e,t,r);if(n)return s;const[o,c,l]=u,f=+o.getValue(),m=`${c.getValue()}`,d=`${l.getValue()}`;if(Number.isNaN(f))return g.create(h.VALUE);let _,E=1,b,y=1;const{_from:R,_to:p}=this._lookupFromAndToUnits(m,d);if(_=R,b=p,_===null){const{_from:S,_fromMultiplier:P}=this._lookupFromPrefix(m);_=S,E=P}if(b===null){const{_to:S,_toMultiplier:P}=this._lookupToPrefix(d);b=S,y=P}if(_===null||b===null||_[3]!==b[3])return g.create(h.NA);let N;return _[3]==="temperature"?(N=this._getTemperatureConversion(f,_[1],b[1]),N=+N.toFixed(2)):N=f*_[6]*E/(b[6]*y),A.create(N)}_lookupFromAndToUnits(e,t){let r=null,n=null,s;for(let u=0;u<this._units.length;u++)s=this._units[u][2]===null?[]:this._units[u][2],(this._units[u][1]===e||s.indexOf(e)>=0)&&(r=this._units[u]),(this._units[u][1]===t||s.indexOf(t)>=0)&&(n=this._units[u]);return{_from:r,_to:n}}_lookupFromPrefix(e){let t=null,r=1,n=e,s;const u=this._binaryPrefixes[e.substring(0,2)];let o=this._unitPrefixes[e.substring(0,1)];e.substring(0,2)==="da"&&(o=["dekao",10,"da"]),u?(r=u[2],n=e.substring(2)):o&&(r=o[1],n=e.substring(o[2].length));for(let c=0;c<this._units.length;c++)s=this._units[c][2]===null?[]:this._units[c][2],(this._units[c][1]===n||s.indexOf(n)>=0)&&(t=this._units[c]);return{_from:t,_fromMultiplier:r}}_lookupToPrefix(e){let t=null,r=1,n=e,s;const u=this._binaryPrefixes[e.substring(0,2)];let o=this._unitPrefixes[e.substring(0,1)];e.substring(0,2)==="da"&&(o=["dekao",10,"da"]),u?(r=u[2],n=e.substring(2)):o&&(r=o[1],n=e.substring(o[2].length));for(let c=0;c<this._units.length;c++)s=this._units[c][2]===null?[]:this._units[c][2],(this._units[c][1]===n||s.indexOf(n)>=0)&&(t=this._units[c]);return{_to:t,_toMultiplier:r}}_getTemperatureConversion(e,t,r){switch(t){case"C":return this._centigradeConversion(e,r);case"F":return this._fahrenheitConversion(e,r);case"K":return this._kelvinConversion(e,r);case"Rank":return this._rankineConversion(e,r);case"Reau":return this._reaumurConversion(e,r);default:return e}}_centigradeConversion(e,t){switch(t){case"F":return e*9/5+32;case"K":return e+273.15;case"Rank":return(e+273.15)*9/5;case"Reau":return e*4/5;default:return e}}_fahrenheitConversion(e,t){switch(t){case"C":return(e-32)*5/9;case"K":return(e-32)*5/9+273.15;case"Rank":return e+459.67;case"Reau":return(e-32)*4/9;default:return e}}_kelvinConversion(e,t){switch(t){case"C":return e-273.15;case"F":return(e-273.15)*9/5+32;case"Rank":return e*9/5;case"Reau":return(e-273.15)*4/5;default:return e}}_rankineConversion(e,t){switch(t){case"C":return(e-491.67)*5/9;case"F":return e-459.67;case"K":return e*5/9;case"Reau":return(e-491.67)*4/9;default:return e}}_reaumurConversion(e,t){switch(t){case"C":return e*5/4;case"F":return e*9/4+32;case"K":return e*5/4+273.15;case"Rank":return e*9/4+491.67;default:return e}}}class Qm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=$(t);if(f)return m;const[_]=d;if(r=Math.floor(+_.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=Math.trunc(+o.getValue());if(Number.isNaN(c))return g.create(h.VALUE);if(!/^-?[0-9]{1,3}$/.test(`${c}`)||c<-512||c>511)return g.create(h.NUM);let l;if(c<0){const f=(512+c).toString(2);l=`1${"0".repeat(9-f.length)}${f}`}else if(l=Number.parseInt(`${c}`,10).toString(2),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return T.create(l)}}class Wm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=$(t);if(f)return m;const[_]=d;if(r=Math.floor(+_.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=Math.trunc(+o.getValue());if(Number.isNaN(c))return g.create(h.VALUE);if(!/^-?[0-9]{1,12}$/.test(`${c}`)||c<-549755813888||c>549755813887)return g.create(h.NUM);let l;if(c<0)l=(1099511627776+c).toString(16);else if(l=Number.parseInt(`${c}`,10).toString(16),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return T.create(l.toLocaleUpperCase())}}class Gm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:f,errorObject:m,variants:d}=$(t);if(f)return m;const[_]=d;if(r=Math.floor(+_.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=Math.trunc(+o.getValue());if(Number.isNaN(c))return g.create(h.VALUE);if(!/^-?[0-9]{1,9}$/.test(`${c}`)||c<-536870912||c>536870911)return g.create(h.NUM);let l;if(c<0)l=(1073741824+c).toString(8);else if(l=Number.parseInt(`${c}`,10).toString(8),t){if(r<l.length)return g.create(h.NUM);l="0".repeat(r-l.length)+l}return T.create(l)}}class qm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(0),{isError:n,errorObject:s,variants:u}=$(e,r);if(n)return s;const[o,c]=u,l=+o.getValue(),f=+c.getValue();if(Number.isNaN(l)||Number.isNaN(f))return g.create(h.VALUE);const m=l===f?1:0;return A.create(m)}}class Xm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){let r;if(t){const{isError:n,errorObject:s,variants:u}=$(e,t);if(n)return s;const[o,c]=u,l=+o.getValue(),f=+c.getValue();if(Number.isNaN(l)||Number.isNaN(f))return g.create(h.VALUE);r=tr(f)-tr(l)}else{const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=+o.getValue();if(Number.isNaN(c))return g.create(h.VALUE);r=tr(c)}return A.create(r)}}class Km extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=+s.getValue();if(Number.isNaN(u))return g.create(h.VALUE);const o=tr(u);return A.create(o)}}class Zm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=+s.getValue();if(Number.isNaN(u))return g.create(h.VALUE);const o=bs(u);return A.create(o)}}class zm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=+s.getValue();if(Number.isNaN(u))return g.create(h.VALUE);const o=bs(u);return A.create(o)}}class Jm extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);const r=t!=null?t:A.create(0),{isError:n,errorObject:s,variants:u}=$(e,r);if(n)return s;const[o,c]=u,l=+o.getValue(),f=+c.getValue();if(Number.isNaN(l)||Number.isNaN(f))return g.create(h.VALUE);const m=l>=f?1:0;return A.create(m)}}class eh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:d,errorObject:_,variants:E}=$(t);if(d)return _;const[b]=E;if(r=Math.floor(+b.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=`${o.getValue()}`;if(!Es(c))return g.create(h.NUM);const l=c.length===10&&c.substring(0,1).toLocaleUpperCase()==="F",f=l?Number.parseInt(c,16)-1099511627776:Number.parseInt(c,16);if(f<-512||f>511)return g.create(h.NUM);let m;if(l){const d=(512+f).toString(2);m=`1${"0".repeat(9-d.length)}${d}`}else if(m=f.toString(2),t){if(r<m.length)return g.create(h.NUM);m="0".repeat(r-m.length)+m}return T.create(m)}}class th extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`;if(!Es(u))return g.create(h.NUM);let o=Number.parseInt(u,16);return o>=549755813888&&(o-=1099511627776),A.create(o)}}class rh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:m,errorObject:d,variants:_}=$(t);if(m)return d;const[E]=_;if(r=Math.floor(+E.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=`${o.getValue()}`;if(!Es(c))return g.create(h.NUM);const l=Number.parseInt(c,16);if(l>536870911&&l<0xffe0000000)return g.create(h.NUM);let f;if(l>=0xffe0000000)f=(l-0xffc0000000).toString(8);else if(f=l.toString(8),t){if(r<f.length)return g.create(h.NUM);f="0".repeat(r-f.length)+f}return T.create(f)}}class nh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Abs();return A.create(c)}}class sh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.getINum();return A.create(c)}}class ah extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);if(o.getRealNum()===0&&o.getINum()===0)return g.create(h.DIV_BY_ZERO);const c=o.Argument();return A.create(c)}}class ih extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Conjugate();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class uh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Cos();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class oh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Cosh();return o.isError()?g.create(h.NUM):typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class ch extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError()||o.getRealNum()===0&&o.getINum()===0)return g.create(h.NUM);const c=o.Cot();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class lh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError()||o.getRealNum()===0&&o.getINum()===0)return g.create(h.NUM);const c=o.Csc();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class fh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError()||o.getRealNum()===0&&o.getINum()===0)return g.create(h.NUM);const c=o.Csch();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class mh extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=`${u.getValue()}`,l=`${o.getValue()}`,f=new ge(c),m=new ge(l);if(f.isError()||m.isError()||f.isDifferentSuffixes(m)||m.getRealNum()===0&&m.getINum()===0)return g.create(h.NUM);const d=f.Div(m);return typeof d=="number"||O.isRealNum(d)?A.create(+d):T.create(d)}}class hh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Exp();return o.isError()?g.create(h.NUM):typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class gh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError()||o.getRealNum()===0&&o.getINum()===0)return g.create(h.NUM);const c=o.Ln();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class dh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError()||o.getRealNum()===0&&o.getINum()===0)return g.create(h.NUM);const c=o.Log10();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class Ch extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError()||o.getRealNum()===0&&o.getINum()===0)return g.create(h.NUM);const c=o.Log2();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class _h extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=`${u.getValue()}`,l=new ge(c);if(l.isError())return g.create(h.NUM);const f=+o.getValue();if(Number.isNaN(f))return g.create(h.VALUE);const m=l.Power(f);return l.isError()?g.create(h.NUM):typeof m=="number"||O.isRealNum(m)?A.create(+m):T.create(m)}}class Eh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t="";for(let r=0;r<e.length;r++){if(t instanceof g)return t;const n=e[r];if(n.isArray()){let s=!1,u;if(n.iterator(o=>{if(t=this._handleSingleObject(o,t),t instanceof g)return s=!0,u=t,!1}),s)return u}else t=this._handleSingleObject(n,t)}return t instanceof g?t:typeof t=="number"||O.isRealNum(t)?A.create(+t):T.create(t)}_handleSingleObject(e,t){let r=t;if(e.isError())return e;if(e.isBoolean())return g.create(h.VALUE);const n=`${e.getValue()}`;if(typeof t!="number"&&!t){const s=new ge(n);if(s.isError())return g.create(h.NUM);r=s.toString()}else{const s=new ge(t),u=new ge(n);if(s.isError()||u.isError())return g.create(h.NUM);if(s.isDifferentSuffixes(u))return g.create(h.VALUE);r=s.Product(u)}return r}}class bh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.getRealNum();return A.create(c)}}class Ah extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Sec();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class yh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Sech();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class Rh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Sin();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class ph extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Sinh();return o.isError()?g.create(h.NUM):typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class Nh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);if(o.getRealNum()===0&&o.getINum()===0)return A.create(0);const c=o.Sqrt();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class Vh extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=`${u.getValue()}`,l=`${o.getValue()}`,f=new ge(c),m=new ge(l);if(f.isError()||m.isError()||f.isDifferentSuffixes(m))return g.create(h.NUM);const d=f.Sub(m);return typeof d=="number"||O.isRealNum(d)?A.create(+d):T.create(d)}}class Oh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t="";for(let r=0;r<e.length;r++){if(t instanceof g)return t;const n=e[r];if(n.isArray()){let s=!1,u;if(n.iterator(o=>{if(t=this._handleSingleObject(o,t),t instanceof g)return s=!0,u=t,!1}),s)return u}else t=this._handleSingleObject(n,t)}return t instanceof g?t:typeof t=="number"||O.isRealNum(t)?A.create(+t):T.create(t)}_handleSingleObject(e,t){let r=t;if(e.isError())return e;if(e.isBoolean())return g.create(h.VALUE);const n=`${e.getValue()}`;if(typeof t!="number"&&!t){const s=new ge(n);if(s.isError())return g.create(h.NUM);r=s.toString()}else{const s=new ge(t),u=new ge(n);if(s.isError()||u.isError())return g.create(h.NUM);if(s.isDifferentSuffixes(u))return g.create(h.VALUE);r=s.Sum(u)}return r}}class Dh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`,o=new ge(u);if(o.isError())return g.create(h.NUM);const c=o.Tan();return typeof c=="number"||O.isRealNum(c)?A.create(+c):T.create(c)}}class Sh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:d,errorObject:_,variants:E}=$(t);if(d)return _;const[b]=E;if(r=Math.floor(+b.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=`${o.getValue()}`;if(!_s(c))return g.create(h.NUM);const l=c.length===10&&c.substring(0,1)==="7",f=l?Number.parseInt(c,8)-1073741824:Number.parseInt(c,8);if(f<-512||f>511)return g.create(h.NUM);let m;if(l){const d=(512+f).toString(2);m=`1${"0".repeat(9-d.length)}${d}`}else if(m=f.toString(2),t){if(r<m.length)return g.create(h.NUM);m="0".repeat(r-m.length)+m}return T.create(m)}}class Lh extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const{isError:t,errorObject:r,variants:n}=$(e);if(t)return r;const[s]=n,u=`${s.getValue()}`;if(!_s(u))return g.create(h.NUM);let o=Number.parseInt(u,8);return o>=536870912&&(o-=1073741824),A.create(o)}}class Ph extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){if(e.isNull())return g.create(h.NA);let r=0;if(t){const{isError:m,errorObject:d,variants:_}=$(t);if(m)return d;const[E]=_;if(r=Math.floor(+E.getValue()),Number.isNaN(r))return g.create(h.VALUE);if(r<0||r>10)return g.create(h.NUM)}const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=`${o.getValue()}`;if(!_s(c))return g.create(h.NUM);const l=Number.parseInt(c,8);let f;if(l>=536870912)f=`ff${(l+3221225472).toString(16)}`;else if(f=l.toString(16),t){if(r<f.length)return g.create(h.NUM);f="0".repeat(r-f.length)+f}return T.create(f.toLocaleUpperCase())}}const nu=[[Mm,Z.BESSELI],[wm,Z.BESSELJ],[jm,Z.BESSELK],[xm,Z.BESSELY],[Um,Z.BIN2DEC],[Tm,Z.BIN2HEX],[vm,Z.BIN2OCT],[Bm,Z.BITAND],[Fm,Z.BITLSHIFT],[Im,Z.BITOR],[km,Z.BITRSHIFT],[$m,Z.BITXOR],[Ym,Z.COMPLEX],[Hm,Z.CONVERT],[Qm,Z.DEC2BIN],[Wm,Z.DEC2HEX],[Gm,Z.DEC2OCT],[qm,Z.DELTA],[Xm,Z.ERF],[Km,Z.ERF_PRECISE],[Zm,Z.ERFC],[zm,Z.ERFC_PRECISE],[Jm,Z.GESTEP],[eh,Z.HEX2BIN],[th,Z.HEX2DEC],[rh,Z.HEX2OCT],[nh,Z.IMABS],[sh,Z.IMAGINARY],[ah,Z.IMARGUMENT],[ih,Z.IMCONJUGATE],[uh,Z.IMCOS],[oh,Z.IMCOSH],[ch,Z.IMCOT],[lh,Z.IMCSC],[fh,Z.IMCSCH],[mh,Z.IMDIV],[hh,Z.IMEXP],[gh,Z.IMLN],[dh,Z.IMLOG10],[Ch,Z.IMLOG2],[_h,Z.IMPOWER],[Eh,Z.IMPRODUCT],[bh,Z.IMREAL],[Ah,Z.IMSEC],[yh,Z.IMSECH],[Rh,Z.IMSIN],[ph,Z.IMSINH],[Nh,Z.IMSQRT],[Vh,Z.IMSUB],[Oh,Z.IMSUM],[Dh,Z.IMTAN],[Sh,Z.OCT2BIN],[Lh,Z.OCT2DEC],[Ph,Z.OCT2HEX]];var z=(a=>(a.ACCRINT="ACCRINT",a.ACCRINTM="ACCRINTM",a.AMORDEGRC="AMORDEGRC",a.AMORLINC="AMORLINC",a.COUPDAYBS="COUPDAYBS",a.COUPDAYS="COUPDAYS",a.COUPDAYSNC="COUPDAYSNC",a.COUPNCD="COUPNCD",a.COUPNUM="COUPNUM",a.COUPPCD="COUPPCD",a.CUMIPMT="CUMIPMT",a.CUMPRINC="CUMPRINC",a.DB="DB",a.DDB="DDB",a.DISC="DISC",a.DOLLARDE="DOLLARDE",a.DOLLARFR="DOLLARFR",a.DURATION="DURATION",a.EFFECT="EFFECT",a.FV="FV",a.FVSCHEDULE="FVSCHEDULE",a.INTRATE="INTRATE",a.IPMT="IPMT",a.IRR="IRR",a.ISPMT="ISPMT",a.MDURATION="MDURATION",a.MIRR="MIRR",a.NOMINAL="NOMINAL",a.NPER="NPER",a.NPV="NPV",a.ODDFPRICE="ODDFPRICE",a.ODDFYIELD="ODDFYIELD",a.ODDLPRICE="ODDLPRICE",a.ODDLYIELD="ODDLYIELD",a.PDURATION="PDURATION",a.PMT="PMT",a.PPMT="PPMT",a.PRICE="PRICE",a.PRICEDISC="PRICEDISC",a.PRICEMAT="PRICEMAT",a.PV="PV",a.RATE="RATE",a.RECEIVED="RECEIVED",a.RRI="RRI",a.SLN="SLN",a.SYD="SYD",a.TBILLEQ="TBILLEQ",a.TBILLPRICE="TBILLPRICE",a.TBILLYIELD="TBILLYIELD",a.VDB="VDB",a.XIRR="XIRR",a.XNPV="XNPV",a.YIELD="YIELD",a.YIELDDISC="YIELDDISC",a.YIELDMAT="YIELDMAT",a))(z||{});function _n(a,i,e,t){const r=St(a,i,e),{days:n}=Ce(r,a,t);return n}function $e(a,i,e,t){let r;if(t===1){const n=St(a,i,e);let s=se(n);s=ar(s,12/e);const u=Ee(s);n<0&&e===1?r=365:r=u-n}else t===3?r=365/e:r=360/e;return r}function su(a,i,e){const t=se(a);let r=se(i);for(r.setUTCFullYear(t.getUTCFullYear()),r<t&&r.setUTCFullYear(r.getUTCFullYear()+1);r>t;)r=ar(r,-12/e);return r=ar(r,12/e),Ee(r)}function Ft(a,i,e){let t=0;const r=se(a);let n=se(i);for(;n>r;)n=ar(n,-12/e),t++;return t}function St(a,i,e){const t=se(a);let r=se(i);for(r.setUTCFullYear(t.getUTCFullYear()),r<t&&r.setUTCFullYear(r.getUTCFullYear()+1);r>t;)r=ar(r,-12/e);return Ee(r)}function au(a,i,e,t,r,n){const s=_n(a,i,r,n),u=$e(a,i,r,n),o=Ft(a,i,r),c=(u-s)/u-1,l=t/r+1,f=e*100/r;let m=0,d=0;for(let b=1;b<=o;b++){const y=b+c,R=f/l**y;m+=y*R,d+=R}const _=o+c,E=100/l**_;return m+=_*E,d+=E,m/d/r}function Or(a,i,e,t,r){let n;if(a===0)n=(e+t)/i;else{const s=(1+a)**i;n=r===1?(t*a/(s-1)+e*a/(1-1/s))/(1+a):t*a/(s-1)+e*a/(1-1/s)}return-n}function It(a,i,e,t,r){let n;if(a===0)n=t+e*i;else{if(a===-1&&i===0)return Number.NaN;const s=(1+a)**i;n=r===1?t*s+e*(1+a)*(s-1)/a:t*s+e*(s-1)/a}return-n}function iu(a,i,e,t,r,n){const s=Or(a,e,t,r,n);return(i===1?n===1?0:-t:n===1?It(a,i-2,s,t,1)-s:It(a,i-1,s,t,0))*a}function uu(a,i){let e=0;for(let t=1;t<=i.length;t++)e+=i[t-1]/(1+a)**t;return e}function ou(a,i,e,t,r,n,s,u,o){const c=kt(e,t,o),l=$e(a,t,u,o);return c<l?Mh(a,i,e,t,r,n,s,u,o,c,l):wh(a,i,e,t,r,n,s,u,o,l)}function Mh(a,i,e,t,r,n,s,u,o,c,l){let f=0;const m=Ft(a,i,u),d=kt(a,t,o);f+=s/(1+n/u)**(m-1+d/l),f+=100*r/u*c/l/(1+n/u)**(d/l);for(let E=2;E<=m;E++)f+=100*r/u/(1+n/u)**(E-1+d/l);const _=kt(e,a,o);return f-=100*r/u*_/l,f}function wh(a,i,e,t,r,n,s,u,o,c){let l=0;const f=Ft(t,i,u),m=jh(t,a,12/u,!0);let d;if(o===2||o===3){const R=su(a,t,u);d=kt(a,R,o)}else{const R=St(a,t,u),{days:p}=Ce(R,a,o);d=c-p}l+=s/(1+n/u)**(f+m+d/c);const _=Ft(e,t,u);let E=t,b=0,y=0;for(let R=_;R>=1;R--){const p=$t(E,-12/u,!1),N=o===1?kt(p,E,o):c,S=R>1?N:kt(e,E,o);b+=S/N;const P=e>p?e:p,M=a<E?a:E,w=kt(P,M,o);y+=w/N,E=p}l+=100*r/u*b/(1+n/u)**(m+d/c);for(let R=1;R<=f;R++)l+=100*r/u/(1+n/u)**(R+m+d/c);return l-=100*r/u*y,l}function kt(a,i,e){const{days:t}=Ce(a,i,e);return a<i?t:0}function cu(a,i,e){const t=se(a),r=t.getUTCFullYear(),n=t.getUTCMonth(),s=t.getUTCDate(),u=sr(r,n,s),o=se(i),c=o.getUTCFullYear(),l=o.getUTCMonth(),f=o.getUTCDate(),m=sr(c,l,f);return!(s!==f&&!(u&&m)||Math.abs((c-r)*12+(l-n))%(12/e)!==0)}function ir(a,i,e){return St(a,i,e)>=0}function $t(a,i,e){let t=se(a);if(t=ar(t,i),e){const r=t.getUTCFullYear(),n=t.getUTCMonth(),s=Vr(r,n);t.setUTCDate(s)}return Ee(t)}function jh(a,i,e,t){const r=se(a),n=se(i),s=r.getUTCFullYear(),u=r.getUTCMonth(),o=r.getUTCDate(),c=n.getUTCFullYear(),l=n.getUTCMonth(),f=n.getUTCDate(),m=sr(s,u,o),d=!m&&u!==1&&o>28&&o<Vr(s,u)?sr(c,l,f):m,_=$t(i,0,d);let E=+t-0+ +(i<_),b=$t(_,e,d);for(;!(e>0?b>=i:b<=i);)b=$t(b,e,d),E++;return E}function Us(a,i){let n=1,s=0,u=a,o;for(;n>1e-7&&s<500;){const c=(i(u+1e-7)-i(u-1e-7))/2e-7;o=u-i(u)/c,s++,n=Math.abs(o-u),u=o}return Number.isNaN(u)||Math.abs(u)===1/0||s===500?xh(a,i):u}function xh(a,i){const r=Number.MAX_VALUE,n=-1,s=1.6;let u=a-.01<=n?n+1e-7:a-.01,o=a+.01>=r?r-1e-7:a+.01,c,l,f=0;if(a<=n||a>=r)return g.create(h.NUM);for(let b=0;b<60;b++){c=u<=n?n+1e-7:u,l=o>=r?r-1e-7:o;const y=i(c),R=i(l);if(y*R<=0)break;if(y*R>0)u=c+s*(c-l),o=l+s*(l-c);else return g.create(h.NUM);if(b===59)return g.create(h.NUM)}c=c,l=l;let m=i(c);const d=i(l);let _,E;if(Math.abs(m)<1e-7||Math.abs(d)<1e-7)return g.create(h.NUM);do E=c+(l-c)/2,_=i(E),m*_<0?l=E:c=E,m=i(c),f++;while(Math.abs(_)>1e-7&&f<60);return E}function En(a,i,e,t,r,n,s){const u=Ft(a,i,n),o=$e(a,i,n,s),c=_n(a,i,n,s);if(u===1){const m=o-c,d=100*e/n+r,_=t/n*m/o+1,E=100*e/n*c/o;return d/_-E}const l=o-c;let f=r/(1+t/n)**(u-1+l/o);for(let m=1;m<=u;m++)f+=100*e/n/(1+t/n)**(m-1+l/o);return f-=100*e/n*c/o,f}function Ts(a,i,e,t,r){let n=0,s=r/e;s>=1?(s=1,n=t===1?a:0):n=a*(1-s)**(t-1);const u=a*(1-s)**t;let o=0;return u<i?o=n-i:o=n-u,o<0&&(o=0),o}class Uh extends V{constructor(){super(...arguments);C(this,"minParams",6);C(this,"maxParams",8)}calculate(e,t,r,n,s,u,o,c){const l=o!=null?o:A.create(0),f=c!=null?c:F.create(!0),{isError:m,errorObject:d,variants:_}=$(e,t,r,n,s,u,l);if(m)return d;const[E,b,y,R,p,N,S]=_,P=v(E);if(typeof P!="number")return P;const M=v(b);if(typeof M!="number")return M;const w=v(y);if(typeof w!="number")return w;const x=+R.getValue(),I=+p.getValue(),Y=Math.floor(+N.getValue()),W=Math.floor(+S.getValue()),X=+f.getValue();return Number.isNaN(x)||Number.isNaN(I)||Number.isNaN(Y)||Number.isNaN(W)||Number.isNaN(X)?g.create(h.VALUE):x<=0||I<=0||![1,2,4].includes(Y)||W<0||W>4||Math.floor(P)>=Math.floor(w)?g.create(h.NUM):this._getResult(P,M,w,x,I,Y,W,X)}_getResult(e,t,r,n,s,u,o,c){let l=St(e,t,u);if(l<=0)return A.create(0);l=St(r,t,u);const f=12/u,m=se(t),d=m.getUTCFullYear(),_=m.getUTCMonth(),E=m.getUTCDate(),b=sr(d,_,E);let y=$t(t,-f,b);if(r>t&&c)for(y=t;y<r;)y=$t(y,f,b);let R=e>y?e:y,{days:p}=Ce(R,r,o);if(l>=e){const{days:x}=Ce(R,r,o?4:0);p=x}r<R&&(p=-p);let N=$e(y,t,u,o),S=p/N,P=y,M=e;for(;P>e;){M=P,P=$t(P,-f,b),R=e>P?e:P;const{days:x}=Ce(R,M,o);if(o===0)M>=R||e<=P?p=x:p=-x,N=$e(P,M,u,o);else if(p=M<R?-x:x,o===3)N=365/u;else{const{days:I}=Ce(P,M,o);N=M<P?-I:I}S+=e<=P?c?1:0:p/N}const w=s*n/u*S;return A.create(w)}}class Th extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",5)}calculate(e,t,r,n,s){const u=s!=null?s:A.create(0),{isError:o,errorObject:c,variants:l}=$(e,t,r,n,u);if(o)return c;const[f,m,d,_,E]=l,b=v(f);if(typeof b!="number")return b;const y=v(m);if(typeof y!="number")return y;const R=+d.getValue(),p=+_.getValue(),N=Math.floor(+E.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(N))return g.create(h.VALUE);if(R<=0||p<=0||N<0||N>4||Math.floor(b)>Math.floor(y))return g.create(h.NUM);if(Math.floor(b)===Math.floor(y))return A.create(0);const{days:S,yearDays:P}=Ce(b,y,N),M=p*R*S/P;return A.create(M)}}class vh extends V{constructor(){super(...arguments);C(this,"minParams",6);C(this,"maxParams",7)}calculate(e,t,r,n,s,u,o){const c=o!=null?o:A.create(0),{isError:l,errorObject:f,variants:m}=$(e,t,r,n,s,u,c);if(l)return f;const[d,_,E,b,y,R,p]=m,N=v(_);if(typeof N!="number")return N;const S=v(E);if(typeof S!="number")return S;const P=+d.getValue(),M=+b.getValue();let w=+y.getValue();const x=+R.getValue(),I=Math.floor(+p.getValue());return Number.isNaN(P)||Number.isNaN(M)||Number.isNaN(w)||Number.isNaN(x)||Number.isNaN(I)?g.create(h.VALUE):P<=0||M<0||P<M||Math.floor(N)>Math.floor(S)||w<0||x<=0||![0,1,3,4].includes(I)?g.create(h.NUM):(w>1?w=Math.floor(w):w=Math.ceil(w),this._getResult(P,N,S,M,w,x,I))}_getResult(e,t,r,n,s,u,o){const c=e-n,l=e*u,{days:f,yearDays:m}=Ce(t,r,o),d=f/m,_=Math.ceil(c/l-d);if(_<0)return A.create(0);let E=l;return s===0?E=l*d:s===_?E=c-l*(d+s-1):s>_&&(E=0),A.create(E)}}class Bh extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:A.create(0),{isError:u,errorObject:o,variants:c}=$(e,t,r,s);if(u)return o;const[l,f,m,d]=c,_=v(l);if(typeof _!="number")return _;const E=v(f);if(typeof E!="number")return E;const b=Math.floor(+m.getValue()),y=Math.floor(+d.getValue());if(Number.isNaN(b)||Number.isNaN(y))return g.create(h.VALUE);if(![1,2,4].includes(b)||y<0||y>4||Math.floor(_)>=Math.floor(E))return g.create(h.NUM);const R=_n(_,E,b,y);return A.create(R)}}class Fh extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:A.create(0),{isError:u,errorObject:o,variants:c}=$(e,t,r,s);if(u)return o;const[l,f,m,d]=c,_=v(l);if(typeof _!="number")return _;const E=v(f);if(typeof E!="number")return E;const b=Math.floor(+m.getValue()),y=Math.floor(+d.getValue());if(Number.isNaN(b)||Number.isNaN(y))return g.create(h.VALUE);if(![1,2,4].includes(b)||y<0||y>4||Math.floor(_)>=Math.floor(E))return g.create(h.NUM);const R=$e(_,E,b,y);return A.create(R)}}class Ih extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:A.create(0),{isError:u,errorObject:o,variants:c}=$(e,t,r,s);if(u)return o;const[l,f,m,d]=c,_=v(l);if(typeof _!="number")return _;const E=v(f);if(typeof E!="number")return E;const b=Math.floor(+m.getValue()),y=Math.floor(+d.getValue());if(Number.isNaN(b)||Number.isNaN(y))return g.create(h.VALUE);if(![1,2,4].includes(b)||y<0||y>4||Math.floor(_)>=Math.floor(E))return g.create(h.NUM);const R=se(_),p=se(E);for(p.setUTCFullYear(R.getUTCFullYear()),p<R&&p.setUTCFullYear(p.getUTCFullYear()+1);p>R;)p.setUTCMonth(p.getUTCMonth()-12/b);p.setUTCMonth(p.getUTCMonth()+12/b);const N=Ee(p),{days:S}=Ce(_,N,y);return A.create(S)}}class kh extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:A.create(0),{isError:u,errorObject:o,variants:c}=$(e,t,r,s);if(u)return o;const[l,f,m,d]=c,_=v(l);if(typeof _!="number")return _;const E=v(f);if(typeof E!="number")return E;const b=Math.floor(+m.getValue()),y=Math.floor(+d.getValue());if(Number.isNaN(b)||Number.isNaN(y))return g.create(h.VALUE);if(![1,2,4].includes(b)||y<0||y>4||Math.floor(_)>=Math.floor(E))return g.create(h.NUM);const R=su(_,E,b);return A.create(R)}}class $h extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:A.create(0),{isError:u,errorObject:o,variants:c}=$(e,t,r,s);if(u)return o;const[l,f,m,d]=c,_=v(l);if(typeof _!="number")return _;const E=v(f);if(typeof E!="number")return E;const b=Math.floor(+m.getValue()),y=Math.floor(+d.getValue());if(Number.isNaN(b)||Number.isNaN(y))return g.create(h.VALUE);if(![1,2,4].includes(b)||y<0||y>4||Math.floor(_)>=Math.floor(E)||St(_,E,b)<0)return g.create(h.NUM);const p=Ft(_,E,b);return A.create(p)}}class Yh extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){const s=n!=null?n:A.create(0),{isError:u,errorObject:o,variants:c}=$(e,t,r,s);if(u)return o;const[l,f,m,d]=c,_=v(l);if(typeof _!="number")return _;const E=v(f);if(typeof E!="number")return E;const b=Math.floor(+m.getValue()),y=Math.floor(+d.getValue());if(Number.isNaN(b)||Number.isNaN(y))return g.create(h.VALUE);if(![1,2,4].includes(b)||y<0||y>4||Math.floor(_)>=Math.floor(E))return g.create(h.NUM);let R=St(_,E,b);return R<0&&(R=0),A.create(R)}}class Hh extends V{constructor(){super(...arguments);C(this,"minParams",6);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){const{isError:o,errorObject:c,variants:l}=$(e,t,r,n,s,u);if(o)return c;const[f,m,d,_,E,b]=l,y=+f.getValue(),R=+m.getValue(),p=+d.getValue(),N=+_.getValue(),S=+E.getValue(),P=+b.getValue();return Number.isNaN(y)||Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(N)||Number.isNaN(S)||Number.isNaN(P)?g.create(h.VALUE):y<=0||R<=0||p<=0||N<1||S<1||N>S||N>R||S>R||![0,1].includes(P)?g.create(h.NUM):Math.trunc(N)!==N&&Math.trunc(S)!==S&&Math.trunc(N)===Math.trunc(S)?A.create(0):this._getResult(y,R,p,N,S,P)}_getResult(e,t,r,n,s,u){const o=Or(e,t,r,0,u);let c=0,l=Math.ceil(n);l===1&&(u===0&&(c=-r),l++);let f=!1;for(let m=l;m<=s;m++){const d=u===1?It(e,m-2,o,r,1):It(e,m-1,o,r,0);if(d===0){f=!0;break}c+=u===1?d-o:d}return c*=e,(c<o*(s-n+1)||f)&&(c=o*(s-n+1)),A.create(c)}}class Qh extends V{constructor(){super(...arguments);C(this,"minParams",6);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){const{isError:o,errorObject:c,variants:l}=$(e,t,r,n,s,u);if(o)return c;const[f,m,d,_,E,b]=l,y=+f.getValue(),R=+m.getValue(),p=+d.getValue(),N=+_.getValue(),S=+E.getValue(),P=+b.getValue();return Number.isNaN(y)||Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(N)||Number.isNaN(S)||Number.isNaN(P)?g.create(h.VALUE):y<=0||R<=0||p<=0||N<1||S<1||N>S||![0,1].includes(P)?g.create(h.NUM):Math.trunc(N)!==N&&Math.trunc(S)!==S&&Math.trunc(N)===Math.trunc(S)?A.create(0):this._getResult(y,R,p,N,S,P)}_getResult(e,t,r,n,s,u){const o=Or(e,t,r,0,u);let c=0,l=Math.ceil(n);l===1&&(c=u===0?o+r*e:o,l++);for(let f=l;f<=s;f++)c+=u===1?o-(It(e,f-2,o,r,1)-o)*e:o-It(e,f-1,o,r,0)*e;return A.create(c)}}class Wh extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",5);C(this,"needsLocale",!0)}calculate(e,t,r,n,s){let u=s!=null?s:A.create(12);u.isNull()&&(u=A.create(12));const o=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,u.isArray()?u.getRowCount():1),c=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,u.isArray()?u.getColumnCount():1),l=D(o,c,e,g.create(h.NA)),f=D(o,c,t,g.create(h.NA)),m=D(o,c,r,g.create(h.NA)),d=D(o,c,n,g.create(h.NA)),_=D(o,c,u,g.create(h.NA)),E=l.map((b,y,R)=>{const p=f.get(y,R),N=m.get(y,R),S=d.get(y,R),P=_.get(y,R),{isError:M,errorObject:w,variants:x}=ne(b,p,N,S,P);if(M)return w;const[I,Y,W,X,oe]=x,te=+I.getValue(),H=+Y.getValue(),he=+W.getValue();let de=+X.getValue();const be=Math.floor(+oe.getValue());return te<0||H<0||he<=0||de<=0||Math.floor(de)>Math.floor(he)||be<1||be>12?g.create(h.NUM):(de<1&&(de=1),de=Math.floor(de),this._getResult(te,H,he,de,be,y,R))});return o===1&&c===1?E.get(0,0):E}_getResult(e,t,r,n,s,u,o){const c=+(1-(t/e)**(1/r)).toFixed(3),l=e*c*s/12;let f=l,m=0;const d=n===r?r-1:n;for(let E=2;E<=d;E++)m=(e-f)*c,f+=m;let _;return n===1?_=l:n===r?_=(e-f)*c:_=m,Number.isNaN(_)||!Number.isFinite(_)?g.create(h.NUM):u===0&&o===0?A.create(_,ke(this.getLocale())):A.create(_)}}class Gh extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",5);C(this,"needsLocale",!0)}calculate(e,t,r,n,s){let u=s!=null?s:A.create(2);u.isNull()&&(u=A.create(2));const o=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,u.isArray()?u.getRowCount():1),c=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,u.isArray()?u.getColumnCount():1),l=D(o,c,e,g.create(h.NA)),f=D(o,c,t,g.create(h.NA)),m=D(o,c,r,g.create(h.NA)),d=D(o,c,n,g.create(h.NA)),_=D(o,c,u,g.create(h.NA)),E=l.map((b,y,R)=>{const p=f.get(y,R),N=m.get(y,R),S=d.get(y,R),P=_.get(y,R),{isError:M,errorObject:w,variants:x}=ne(b,p,N,S,P);if(M)return w;const[I,Y,W,X,oe]=x,te=+I.getValue(),H=+Y.getValue(),he=+W.getValue(),de=+X.getValue(),be=+oe.getValue();if(te<0||H<0||he<=0||de<=0||de>he||be<=0)return g.create(h.NUM);const Re=Ts(te,H,he,de,be);return Number.isNaN(Re)||!Number.isFinite(Re)?g.create(h.NUM):y===0&&R===0?A.create(Re,ke(this.getLocale())):A.create(Re)});return o===1&&c===1?E.get(0,0):E}}class qh extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",5)}calculate(e,t,r,n,s){const u=s!=null?s:A.create(0),{isError:o,errorObject:c,variants:l}=$(e,t,r,n,u);if(o)return c;const[f,m,d,_,E]=l,b=v(f);if(typeof b!="number")return b;const y=v(m);if(typeof y!="number")return y;const R=+d.getValue(),p=+_.getValue(),N=Math.floor(+E.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(N))return g.create(h.VALUE);if(R<=0||p<=0||N<0||N>4||Math.floor(b)>=Math.floor(y))return g.create(h.NUM);const{days:S,yearDays:P}=Ce(b,y,N),M=(p-R)/p*(P/S);return A.create(M)}}class Xh extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=+u.getValue();let l=Math.floor(+o.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);if(l>=0&&l<1)return g.create(h.DIV_BY_ZERO);l=Number.parseInt(`${l}`,10);let f=Number.parseInt(`${c}`,10);f+=c%1*10**Math.ceil(Math.log(l)/Math.LN10)/l;const m=10**(Math.ceil(Math.log(l)/Math.LN2)+1);return f=Math.round(f*m)/m,A.create(f)}}class Kh extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=+u.getValue();let l=Math.floor(+o.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l<0)return g.create(h.NUM);if(l>=0&&l<1)return g.create(h.DIV_BY_ZERO);l=Number.parseInt(`${l}`,10);let f=Number.parseInt(`${c}`,10);return f+=c%1*10**-Math.ceil(Math.log(l)/Math.LN10)*l,A.create(f)}}class Zh extends V{constructor(){super(...arguments);C(this,"minParams",5);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){let o=u!=null?u:A.create(0);o.isNull()&&(o=A.create(0));const{isError:c,errorObject:l,variants:f}=xe(e,t,r,n,s,o);if(c)return l;const[m,d,_,E,b,y]=f,R=v(m);if(typeof R!="number")return R;const p=v(d);if(typeof p!="number")return p;const N=+_.getValue(),S=+E.getValue(),P=Math.floor(+b.getValue()),M=Math.floor(+y.getValue());if(Number.isNaN(N)||Number.isNaN(S)||Number.isNaN(P)||Number.isNaN(M))return g.create(h.VALUE);if(N<0||S<0||![1,2,4].includes(P)||M<0||M>4||Math.floor(R)>=Math.floor(p)||R<=0||p<=366)return g.create(h.NUM);const w=au(R,p,N,S,P,M);return A.create(w)}}class zh extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=+u.getValue();let l=Math.floor(+o.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(c<=0||l<1)return g.create(h.NUM);l=Number.parseInt(`${l}`,10);const f=(1+c/l)**l-1;return A.create(f)}}class Jh extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",5);C(this,"needsLocale",!0)}calculate(e,t,r,n,s){const u=n!=null?n:A.create(0),o=s!=null?s:A.create(0),c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,u.isArray()?u.getRowCount():1,o.isArray()?o.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,u.isArray()?u.getColumnCount():1,o.isArray()?o.getColumnCount():1),f=D(c,l,e,g.create(h.NA)),m=D(c,l,t,g.create(h.NA)),d=D(c,l,r,g.create(h.NA)),_=D(c,l,u,g.create(h.NA)),E=D(c,l,o,g.create(h.NA)),b=f.map((y,R,p)=>{const N=m.get(R,p),S=d.get(R,p),P=_.get(R,p),M=E.get(R,p),{isError:w,errorObject:x,variants:I}=ne(y,N,S,P,M);if(w)return x;const[Y,W,X,oe,te]=I,H=+Y.getValue(),he=+W.getValue(),de=+X.getValue(),be=+oe.getValue(),Re=+te.getValue(),me=It(H,he,de,be,Re?1:0);return Number.isNaN(me)||!Number.isFinite(me)?g.create(h.NUM):R===0&&p===0?A.create(me,ke(this.getLocale())):A.create(me)});return c===1&&l===1?b.get(0,0):b}}class eg extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=$(e);if(r)return n;const[u]=s,o=+u.getValue();if(Number.isNaN(o))return g.create(h.VALUE);let c=o;if(t.isArray()){const l=t.getArrayValue().flat();for(let f=0;f<l.length;f++){const m=l[f];if(m.isBoolean())return g.create(h.VALUE);const d=+m.getValue();if(Number.isNaN(d))return g.create(h.VALUE);c*=1+d}}else{if(t.isBoolean())return g.create(h.VALUE);const l=+t.getValue();if(Number.isNaN(l))return g.create(h.VALUE);c*=1+l}return A.create(c)}}class tg extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",5)}calculate(e,t,r,n,s){const u=s!=null?s:A.create(0),{isError:o,errorObject:c,variants:l}=$(e,t,r,n,u);if(o)return c;const[f,m,d,_,E]=l,b=v(f);if(typeof b!="number")return b;const y=v(m);if(typeof y!="number")return y;const R=+d.getValue(),p=+_.getValue(),N=Math.floor(+E.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(N))return g.create(h.VALUE);if(R<=0||p<=0||N<0||N>4||Math.floor(b)>=Math.floor(y))return g.create(h.NUM);const{days:S,yearDays:P}=Ce(b,y,N),M=(p-R)/R*(P/S);return A.create(M)}}class rg extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",6);C(this,"needsLocale",!0)}calculate(e,t,r,n,s,u){const o=s!=null?s:A.create(0),c=u!=null?u:A.create(0),l=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,o.isArray()?o.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,o.isArray()?o.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=D(l,f,e,g.create(h.NA)),d=D(l,f,t,g.create(h.NA)),_=D(l,f,r,g.create(h.NA)),E=D(l,f,n,g.create(h.NA)),b=D(l,f,o,g.create(h.NA)),y=D(l,f,c,g.create(h.NA)),R=m.map((p,N,S)=>{const P=d.get(N,S),M=_.get(N,S),w=E.get(N,S),x=b.get(N,S),I=y.get(N,S),{isError:Y,errorObject:W,variants:X}=ne(p,P,M,w,x,I);if(Y)return W;const[oe,te,H,he,de,be]=X,Re=+oe.getValue(),me=+te.getValue(),Te=+H.getValue(),Lt=+he.getValue(),ur=+de.getValue(),Pt=+be.getValue();if(me<1||Math.floor(me)>Math.ceil(Te))return g.create(h.NUM);const tt=iu(Re,me,Te,Lt,ur,Pt?1:0);return Number.isNaN(tt)||!Number.isFinite(tt)?g.create(h.NUM):N===0&&S===0?A.create(tt,ke(this.getLocale())):A.create(tt)});return l===1&&f===1?R.get(0,0):R}}class ng extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){let r=t!=null?t:A.create(.1);return r.isNull()&&(r=A.create(.1)),r.isArray()?r.map((n,s,u)=>this._handleSingleObject(e,n,s,u)):this._handleSingleObject(e,r)}_handleSingleObject(e,t,r=0,n=0){if(e.isError())return e;if(t.isError())return t;if(e.isNull())return g.create(h.VALUE);if(!e.isArray())return g.create(h.NUM);const{_values:s,valuesHasError:u}=this._getValues(e);if(u)return g.create(h.VALUE);let o=t;if(o.isString()&&(o=o.convertToNumberObjectValue(),o.isError()))return o;const c=+o.getValue(),{positive:l,negative:f}=this._checkValues(s);if(!l||!f)return g.create(h.NUM);const m=Us(c,d=>uu(d,s));return typeof m!="number"?m:r===0&&n===0?A.create(m,"0%"):A.create(m)}_getValues(e){const t=[];let r=!1;return e.iterator(n=>{const s=n;if(s.isError())return r=!0,!1;if(s.isNull()||s.isBoolean())return!0;const u=+s.getValue();if(Number.isNaN(u))return!0;t.push(u)}),{_values:t,valuesHasError:r}}_checkValues(e){let t=!1,r=!1;for(let n=0;n<e.length;n++)e[n]>0&&(t=!0),e[n]<0&&(r=!0);return{positive:t,negative:r}}}class sg extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),o=D(s,u,e,g.create(h.NA)),c=D(s,u,t,g.create(h.NA)),l=D(s,u,r,g.create(h.NA)),f=D(s,u,n,g.create(h.NA)),m=o.map((d,_,E)=>{const b=c.get(_,E),y=l.get(_,E),R=f.get(_,E),{isError:p,errorObject:N,variants:S}=ne(d,b,y,R);if(p)return N;const[P,M,w,x]=S,I=+P.getValue(),Y=+M.getValue(),W=+w.getValue(),X=+x.getValue();if(W===0)return g.create(h.DIV_BY_ZERO);const oe=X*I*(Y/W-1);return A.create(oe)});return s===1&&u===1?m.get(0,0):m}}class ag extends V{constructor(){super(...arguments);C(this,"minParams",5);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){let o=u!=null?u:A.create(0);o.isNull()&&(o=A.create(0));const{isError:c,errorObject:l,variants:f}=xe(e,t,r,n,s,o);if(c)return l;const[m,d,_,E,b,y]=f,R=v(m);if(typeof R!="number")return R;const p=v(d);if(typeof p!="number")return p;const N=+_.getValue(),S=+E.getValue(),P=Math.floor(+b.getValue()),M=Math.floor(+y.getValue());if(Number.isNaN(N)||Number.isNaN(S)||Number.isNaN(P)||Number.isNaN(M))return g.create(h.VALUE);if(N<0||S<0||![1,2,4].includes(P)||M<0||M>4||Math.floor(R)>=Math.floor(p))return g.create(h.NUM);let w=au(R,p,N,S,P,M);return w/=1+S/P,A.create(w)}}class ig extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{_values:n,numberValues:s,positive:u,negative:o}=this._getValues(e),c=Math.max(t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),l=Math.max(t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),f=D(c,l,t,g.create(h.NA)),m=D(c,l,r,g.create(h.NA)),d=f.map((_,E,b)=>{const y=m.get(E,b);if(e.isError())return e;if(y.isError())return y;if(n.isError())return n;if(!u||!o)return g.create(h.DIV_BY_ZERO);const R=+_.getValue(),p=+y.getValue();if(Number.isNaN(R)||Number.isNaN(p))return g.create(h.VALUE);if(p===-1)return g.create(h.DIV_BY_ZERO);const N=this._getResult(s,R,p);return E===0&&b===0?A.create(N,"0%"):A.create(N)});return c===1&&l===1?d.get(0,0):d}_getValues(e){let t=e,r=[],n=!1,s=!1;if(!e.isError())if(e.isNull())t=g.create(h.VALUE);else if(!e.isArray())t=g.create(h.DIV_BY_ZERO);else{const{numberValues:u,valuesHasError:o,errorObject:c,positive:l,negative:f}=this._checkValues(e);o&&(t=c),r=u,n=l,s=f}return{_values:t,numberValues:r,positive:n,negative:s}}_checkValues(e){const t=[];let r=!1,n=g.create(h.VALUE),s=!1,u=!1;return e.iterator(o=>{const c=o;if(c.isError())return r=!0,n=c,!1;if(c.isNull()||c.isBoolean())return!0;const l=+c.getValue();if(Number.isNaN(l))return!0;l>0&&(s=!0),l<0&&(u=!0),t.push(l)}),{numberValues:t,valuesHasError:r,errorObject:n,positive:s,negative:u}}_getResult(e,t,r){const n=e.length,s=[],u=[];for(let d=0;d<n;d++)e[d]>0?u.push(e[d]):e[d]<0&&s.push(e[d]);const o=this._npv(r,e,"positive"),c=this._npv(t,e,"negative"),l=-o*(1+r)**n,f=c*(1+t);return(l/f)**(1/(n-1))-1}_npv(e,t,r){let n=0;for(let s=1;s<=t.length;s++){const u=t[s-1];(r==="positive"&&u>0||r==="negative"&&u<0)&&(n+=u/(1+e)**s)}return n}}class ug extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=+u.getValue();let l=Math.floor(+o.getValue());if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(c<=0||l<1)return g.create(h.NUM);l=Number.parseInt(`${l}`,10);const f=((c+1)**(1/l)-1)*l;return A.create(f)}}class og extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",5)}calculate(e,t,r,n,s){const u=n!=null?n:A.create(0),o=s!=null?s:A.create(0),c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,u.isArray()?u.getRowCount():1,o.isArray()?o.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,u.isArray()?u.getColumnCount():1,o.isArray()?o.getColumnCount():1),f=D(c,l,e,g.create(h.NA)),m=D(c,l,t,g.create(h.NA)),d=D(c,l,r,g.create(h.NA)),_=D(c,l,u,g.create(h.NA)),E=D(c,l,o,g.create(h.NA)),b=f.map((y,R,p)=>{const N=m.get(R,p),S=d.get(R,p),P=_.get(R,p),M=E.get(R,p),{isError:w,errorObject:x,variants:I}=ne(y,N,S,P,M);if(w)return x;const[Y,W,X,oe,te]=I,H=+Y.getValue(),he=+W.getValue(),de=+X.getValue(),be=+oe.getValue();let Re=+te.getValue();if(Re=Re?1:0,H===0&&he===0)return g.create(h.DIV_BY_ZERO);let me;if(H===0)me=-(de+be)/he;else{const Te=he*(1+H*Re)-be*H,Lt=de*H+he*(1+H*Re);me=Math.log(Te/Lt)/Math.log(1+H)}return Number.isNaN(me)||!Number.isFinite(me)?g.create(h.NUM):A.create(me)});return c===1&&l===1?b.get(0,0):b}}class cg extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",255);C(this,"needsLocale",!0)}calculate(e,...t){if(e.isError())return e;const{isError:r,errorObject:n,values:s}=this._getValues(t);return e.isArray()?e.map((u,o,c)=>this._handleSingleObject(u,r,n,s,o,c)):this._handleSingleObject(e,r,n,s)}_handleSingleObject(e,t,r,n,s=0,u=0){let o=e;if(o.isString()&&(o=o.convertToNumberObjectValue()),o.isError())return o;if(t)return r;const c=+e.getValue(),l=uu(c,n);return Number.isNaN(l)||Math.abs(l)===1/0?g.create(h.DIV_BY_ZERO):s===0&&u===0?A.create(l,ke(this.getLocale())):A.create(l)}_getValues(e){const t=[];for(let r=0;r<e.length;r++){const n=e[r];if(n.isError())return{isError:!0,errorObject:n};if(n.isArray()){let s=!1,u=g.create(h.VALUE);if(n.iterator(o=>{const c=o;if(c.isError())return s=!0,u=c,!1;if(c.isNull()||c.isBoolean())return!0;const l=+c.getValue();if(Number.isNaN(l))return!0;t.push(l)}),s)return{isError:s,errorObject:u}}else{const s=+n.getValue();if(Number.isNaN(s))return{isError:!0,errorObject:g.create(h.VALUE)};t.push(s)}}return{isError:!1,values:t}}}class lg extends V{constructor(){super(...arguments);C(this,"minParams",8);C(this,"maxParams",9)}calculate(e,t,r,n,s,u,o,c,l){let f=l!=null?l:A.create(0);f.isNull()&&(f=A.create(0));const{isError:m,errorObject:d,variants:_}=xe(e,t,r,n,s,u,o,c,f);if(m)return d;const[E,b,y,R,p,N,S,P,M]=_,w=v(E);if(typeof w!="number")return w;const x=v(b);if(typeof x!="number")return x;const I=v(y);if(typeof I!="number")return I;const Y=v(R);if(typeof Y!="number")return Y;const W=+p.getValue(),X=+N.getValue(),oe=+S.getValue(),te=Math.floor(+P.getValue()),H=Math.floor(+M.getValue());if(Number.isNaN(W)||Number.isNaN(X)||Number.isNaN(oe)||Number.isNaN(te)||Number.isNaN(H))return g.create(h.VALUE);if(W<0||X<0||oe<=0||![1,2,4].includes(te)||H<0||H>4||!this._validDate(x,Y,w,I,te))return g.create(h.NUM);const he=ou(w,x,I,Y,W,X,oe,te,H);return A.create(he)}_validDate(e,t,r,n,s){return this._getDateCorrectOrder(e,t,r,n)&&cu(e,t,s)&&ir(n,e,s)}_getDateCorrectOrder(e,t,r,n){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)&&Math.floor(r)>Math.floor(n)}}class fg extends V{constructor(){super(...arguments);C(this,"minParams",8);C(this,"maxParams",9)}calculate(e,t,r,n,s,u,o,c,l){let f=l!=null?l:A.create(0);f.isNull()&&(f=A.create(0));const{isError:m,errorObject:d,variants:_}=xe(e,t,r,n,s,u,o,c,f);if(m)return d;const[E,b,y,R,p,N,S,P,M]=_,w=v(E);if(typeof w!="number")return w;const x=v(b);if(typeof x!="number")return x;const I=v(y);if(typeof I!="number")return I;const Y=v(R);if(typeof Y!="number")return Y;const W=+p.getValue(),X=+N.getValue(),oe=+S.getValue(),te=Math.floor(+P.getValue()),H=Math.floor(+M.getValue());return Number.isNaN(W)||Number.isNaN(X)||Number.isNaN(oe)||Number.isNaN(te)||Number.isNaN(H)?g.create(h.VALUE):W<0||X<=0||oe<=0||![1,2,4].includes(te)||H<0||H>4||!this._validDate(x,Y,w,I,te)?g.create(h.NUM):this._getResult(w,x,I,Y,W,X,oe,te,H)}_validDate(e,t,r,n,s){return this._getDateCorrectOrder(e,t,r,n)&&cu(e,t,s)&&ir(n,e,s)}_getDateCorrectOrder(e,t,r,n){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)&&Math.floor(r)>Math.floor(n)}_getResult(e,t,r,n,s,u,o,c,l){const{days:f}=Ce(e,t,l),m=(s*f*100-(u-100))/((u-100)*.25*(1+2*f)+f*100);function d(E){return u-ou(e,t,r,n,s,E,o,c,l)}const _=Us(m,E=>d(E));return typeof _!="number"?_:A.create(_)}}class mg extends V{constructor(){super(...arguments);C(this,"minParams",7);C(this,"maxParams",8)}calculate(e,t,r,n,s,u,o,c){let l=c!=null?c:A.create(0);l.isNull()&&(l=A.create(0));const{isError:f,errorObject:m,variants:d}=xe(e,t,r,n,s,u,o,l);if(f)return m;const[_,E,b,y,R,p,N,S]=d,P=v(_);if(typeof P!="number")return P;const M=v(E);if(typeof M!="number")return M;const w=v(b);if(typeof w!="number")return w;const x=+y.getValue(),I=+R.getValue(),Y=+p.getValue(),W=Math.floor(+N.getValue()),X=Math.floor(+S.getValue());if(Number.isNaN(x)||Number.isNaN(I)||Number.isNaN(Y)||Number.isNaN(W)||Number.isNaN(X))return g.create(h.VALUE);if(x<0||I<0||Y<=0||![1,2,4].includes(W)||X<0||X>4||!this._validDate(M,P,w,W))return g.create(h.NUM);const oe=this._getResult(P,M,w,x,I,Y,W,X);return A.create(oe)}_validDate(e,t,r,n){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)&&ir(r,e,n)}_getResult(e,t,r,n,s,u,o,c){const l=this._getCoupDate(t,r,o),f=this._getFrac(r,e,l,o,c),m=this._getFrac(r,t,l,o,c),d=this._getFrac(e,t,l,o,c);return(u*o+100*n*(m-f*(1+s*d/o)))/(s*d+o)}_getCoupDate(e,t,r){const n=se(e),s=se(t);for(s.setUTCFullYear(n.getUTCFullYear()),s>n&&s.setUTCFullYear(s.getUTCFullYear()-1);s<n;)s.setUTCMonth(s.getUTCMonth()+12/r);return Ee(s)}_getFrac(e,t,r,n,s){const u=se(e),o=se(t),c=se(r);for(c.setUTCFullYear(u.getUTCFullYear()),c<u&&c.setUTCFullYear(c.getUTCFullYear()+1);c>u;)c.setUTCMonth(c.getUTCMonth()-12/n);let l=Ee(c);c.setUTCMonth(c.getUTCMonth()+12/n);let f=Ee(c);if(f>=t){const{days:p}=Ce(e,t,s),N=$e(l,f,n,s);return p/N}const{days:m}=Ce(e,f,s),d=$e(l,f,n,s);let _=m/d;const E=se(f),b=se(f);for(b.setUTCMonth(b.getUTCMonth()+12/n);b<o;)E.setUTCMonth(E.getUTCMonth()+12/n),b.setUTCMonth(b.getUTCMonth()+12/n),_+=1;l=Ee(E),f=Ee(b);const{days:y}=Ce(l,t,s),R=$e(l,f,n,s);return _+=y/R,_}}class hg extends V{constructor(){super(...arguments);C(this,"minParams",8);C(this,"maxParams",9)}calculate(e,t,r,n,s,u,o,c){let l=c!=null?c:A.create(0);l.isNull()&&(l=A.create(0));const{isError:f,errorObject:m,variants:d}=xe(e,t,r,n,s,u,o,l);if(f)return m;const[_,E,b,y,R,p,N,S]=d,P=v(_);if(typeof P!="number")return P;const M=v(E);if(typeof M!="number")return M;const w=v(b);if(typeof w!="number")return w;const x=+y.getValue(),I=+R.getValue(),Y=+p.getValue(),W=Math.floor(+N.getValue()),X=Math.floor(+S.getValue());if(Number.isNaN(x)||Number.isNaN(I)||Number.isNaN(Y)||Number.isNaN(W)||Number.isNaN(X))return g.create(h.VALUE);if(x<0||I<=0||Y<=0||![1,2,4].includes(W)||X<0||X>4||!this._validDate(M,P,w,W))return g.create(h.NUM);const oe=this._getResult(P,M,w,x,I,Y,W,X);return A.create(oe)}_validDate(e,t,r,n){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)&&ir(r,e,n)}_getResult(e,t,r,n,s,u,o,c){const l=this._getCoupDate(t,r,o),f=this._getFrac(r,e,l,o,c),m=this._getFrac(r,t,l,o,c),d=this._getFrac(e,t,l,o,c);return(o*(u-s)+100*n*(m-f))/(d*s+100*n*f*d/o)}_getCoupDate(e,t,r){const n=se(e),s=se(t);for(s.setUTCFullYear(n.getUTCFullYear()),s>n&&s.setUTCFullYear(s.getUTCFullYear()-1);s<n;)s.setUTCMonth(s.getUTCMonth()+12/r);return Ee(s)}_getFrac(e,t,r,n,s){const u=se(e),o=se(t),c=se(r);for(c.setUTCFullYear(u.getUTCFullYear()),c<u&&c.setUTCFullYear(c.getUTCFullYear()+1);c>u;)c.setUTCMonth(c.getUTCMonth()-12/n);let l=Ee(c);c.setUTCMonth(c.getUTCMonth()+12/n);let f=Ee(c);if(f>=t){const{days:p}=Ce(e,t,s),N=$e(l,f,n,s);return p/N}const{days:m}=Ce(e,f,s),d=$e(l,f,n,s);let _=m/d;const E=se(f),b=se(f);for(b.setUTCMonth(b.getUTCMonth()+12/n);b<o;)E.setUTCMonth(E.getUTCMonth()+12/n),b.setUTCMonth(b.getUTCMonth()+12/n),_+=1;l=Ee(E),f=Ee(b);const{days:y}=Ce(l,t,s),R=$e(l,f,n,s);return _+=y/R,_}}class gg extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.map((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d),{isError:b,errorObject:y,variants:R}=ne(f,_,E);if(b)return y;const[p,N,S]=R,P=+p.getValue(),M=+N.getValue(),w=+S.getValue();if(P<=-1)return g.create(h.NUM);const x=(Math.log(w)-Math.log(M))/Math.log(1+P);return Number.isNaN(x)||!Number.isFinite(x)?g.create(h.NUM):A.create(x)});return n===1&&s===1?l.get(0,0):l}}class dg extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",5);C(this,"needsLocale",!0)}calculate(e,t,r,n,s){const u=n!=null?n:A.create(0),o=s!=null?s:A.create(0),c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,u.isArray()?u.getRowCount():1,o.isArray()?o.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,u.isArray()?u.getColumnCount():1,o.isArray()?o.getColumnCount():1),f=D(c,l,e,g.create(h.NA)),m=D(c,l,t,g.create(h.NA)),d=D(c,l,r,g.create(h.NA)),_=D(c,l,u,g.create(h.NA)),E=D(c,l,o,g.create(h.NA)),b=f.map((y,R,p)=>{const N=m.get(R,p),S=d.get(R,p),P=_.get(R,p),M=E.get(R,p),{isError:w,errorObject:x,variants:I}=ne(y,N,S,P,M);if(w)return x;const[Y,W,X,oe,te]=I,H=+Y.getValue(),he=+W.getValue(),de=+X.getValue(),be=+oe.getValue(),Re=+te.getValue();if(H<=-1)return g.create(h.NUM);const me=Or(H,he,de,be,Re?1:0);return Number.isNaN(me)||!Number.isFinite(me)?g.create(h.NUM):R===0&&p===0?A.create(me,ke(this.getLocale())):A.create(me)});return c===1&&l===1?b.get(0,0):b}}class Cg extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",6);C(this,"needsLocale",!0)}calculate(e,t,r,n,s,u){const o=s!=null?s:A.create(0),c=u!=null?u:A.create(0),l=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,o.isArray()?o.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,o.isArray()?o.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=D(l,f,e,g.create(h.NA)),d=D(l,f,t,g.create(h.NA)),_=D(l,f,r,g.create(h.NA)),E=D(l,f,n,g.create(h.NA)),b=D(l,f,o,g.create(h.NA)),y=D(l,f,c,g.create(h.NA)),R=m.map((p,N,S)=>{const P=d.get(N,S),M=_.get(N,S),w=E.get(N,S),x=b.get(N,S),I=y.get(N,S),{isError:Y,errorObject:W,variants:X}=ne(p,P,M,w,x,I);if(Y)return W;const[oe,te,H,he,de,be]=X,Re=+oe.getValue(),me=+te.getValue(),Te=+H.getValue(),Lt=+he.getValue(),ur=+de.getValue(),Pt=+be.getValue();if(me<1||Math.floor(me)>Math.ceil(Te)||me-Te>=1)return g.create(h.NUM);const tt=Or(Re,Te,Lt,ur,Pt?1:0)-iu(Re,me,Te,Lt,ur,Pt?1:0);return Number.isNaN(tt)||!Number.isFinite(tt)?g.create(h.NUM):N===0&&S===0?A.create(tt,ke(this.getLocale())):A.create(tt)});return l===1&&f===1?R.get(0,0):R}}class _g extends V{constructor(){super(...arguments);C(this,"minParams",6);C(this,"maxParams",7)}calculate(e,t,r,n,s,u,o){let c=o!=null?o:A.create(0);c.isNull()&&(c=A.create(0));const{isError:l,errorObject:f,variants:m}=xe(e,t,r,n,s,u,c);if(l)return f;const[d,_,E,b,y,R,p]=m,N=v(d);if(typeof N!="number")return N;const S=v(_);if(typeof S!="number")return S;const P=+E.getValue(),M=+b.getValue(),w=+y.getValue(),x=Math.floor(+R.getValue()),I=Math.floor(+p.getValue());if(Number.isNaN(P)||Number.isNaN(M)||Number.isNaN(w)||Number.isNaN(x)||Number.isNaN(I))return g.create(h.VALUE);if(P<0||M<0||w<=0||![1,2,4].includes(x)||I<0||I>4||N>=S||!ir(N,S,x))return g.create(h.NUM);const Y=En(N,S,P,M,w,x,I);return A.create(Y)}}class Eg extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",5)}calculate(e,t,r,n,s){let u=s!=null?s:A.create(0);u.isNull()&&(u=A.create(0));const{isError:o,errorObject:c,variants:l}=xe(e,t,r,n,u);if(o)return c;const[f,m,d,_,E]=l,b=v(f);if(typeof b!="number")return b;const y=v(m);if(typeof y!="number")return y;const R=+d.getValue(),p=+_.getValue(),N=Math.floor(+E.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(N))return g.create(h.VALUE);if(R<=0||p<=0||N<0||N>4||b>=y)return g.create(h.NUM);const{days:S,yearDays:P}=Ce(b,y,N),M=p-R*p*S/P;return A.create(M)}}class bg extends V{constructor(){super(...arguments);C(this,"minParams",5);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){let o=u!=null?u:A.create(0);o.isNull()&&(o=A.create(0));const{isError:c,errorObject:l,variants:f}=xe(e,t,r,n,s,o);if(c)return l;const[m,d,_,E,b,y]=f,R=v(m);if(typeof R!="number")return R;const p=v(d);if(typeof p!="number")return p;const N=v(_);if(typeof N!="number")return N;const S=+E.getValue(),P=+b.getValue(),M=Math.floor(+y.getValue());if(Number.isNaN(S)||Number.isNaN(P)||Number.isNaN(M))return g.create(h.VALUE);const w=this._getDateCorrectOrder(p,R,N);if(S<0||P<0||M<0||M>4||!w)return g.create(h.NUM);const x=tu(R,M),{days:I}=Ce(R,p,M),{days:Y}=Ce(N,p,M),{days:W}=Ce(N,R,M),X=(100+Y/x*S*100)/(1+I/x*P)-W/x*S*100;return A.create(X)}_getDateCorrectOrder(e,t,r){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)}}class Ag extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",5);C(this,"needsLocale",!0)}calculate(e,t,r,n,s){const u=n!=null?n:A.create(0),o=s!=null?s:A.create(0),c=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,u.isArray()?u.getRowCount():1,o.isArray()?o.getRowCount():1),l=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,u.isArray()?u.getColumnCount():1,o.isArray()?o.getColumnCount():1),f=D(c,l,e,g.create(h.NA)),m=D(c,l,t,g.create(h.NA)),d=D(c,l,r,g.create(h.NA)),_=D(c,l,u,g.create(h.NA)),E=D(c,l,o,g.create(h.NA)),b=f.map((y,R,p)=>{const N=m.get(R,p),S=d.get(R,p),P=_.get(R,p),M=E.get(R,p),{isError:w,errorObject:x,variants:I}=ne(y,N,S,P,M);if(w)return x;const[Y,W,X,oe,te]=I,H=+Y.getValue(),he=+W.getValue(),de=+X.getValue(),be=+oe.getValue();let Re=+te.getValue();Re=Re?1:0;const me=H===0?-de*he-be:((1-(1+H)**he)/H*de*(1+H*Re)-be)/(1+H)**he;return Number.isNaN(me)||!Number.isFinite(me)?g.create(h.NUM):R===0&&p===0?A.create(me,ke(this.getLocale())):A.create(me)});return c===1&&l===1?b.get(0,0):b}}class yg extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){const o=n!=null?n:A.create(0),c=s!=null?s:A.create(0),l=u!=null?u:A.create(.1),f=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,o.isArray()?o.getRowCount():1,c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1),m=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,o.isArray()?o.getColumnCount():1,c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1),d=D(f,m,e,g.create(h.NA)),_=D(f,m,t,g.create(h.NA)),E=D(f,m,r,g.create(h.NA)),b=D(f,m,o,g.create(h.NA)),y=D(f,m,c,g.create(h.NA)),R=D(f,m,l,g.create(h.NA)),p=d.map((N,S,P)=>{const M=_.get(S,P),w=E.get(S,P),x=b.get(S,P),I=y.get(S,P),Y=R.get(S,P),{isError:W,errorObject:X,variants:oe}=ne(N,M,w,x,I,Y);if(W)return X;const[te,H,he,de,be,Re]=oe,me=+te.getValue(),Te=+H.getValue(),Lt=+he.getValue(),ur=+de.getValue();let Pt=+be.getValue();const tt=+Re.getValue();return Pt=Pt?1:0,me<=0||Te>=0?g.create(h.NUM):this._getResult(me,Te,Lt,ur,Pt,tt,S,P)});return f===1&&m===1?p.get(0,0):p}_getResult(e,t,r,n,s,u,o,c){let m=u;for(let d=0;d<20;d++){if(m<=-1)return g.create(h.NUM);let _,E;if(Math.abs(m)<1e-10?_=r*(1+e*m)+t*(1+m*s)*e+n:(E=(1+m)**e,_=r*E+t*(1/m+s)*(E-1)+n),Math.abs(_)<1e-10)break;let b;if(Math.abs(m)<1e-10)b=r*e+t*s*e;else{E=(1+m)**e;const y=e*(1+m)**(e-1);b=r*y+t*(1/m+s)*y+t*(-1/(m*m))*(E-1)}m-=_/b}return o===0&&c===0?A.create(m,"0%"):A.create(m)}}class Rg extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",5)}calculate(e,t,r,n,s){let u=s!=null?s:A.create(0);u.isNull()&&(u=A.create(0));const{isError:o,errorObject:c,variants:l}=xe(e,t,r,n,u);if(o)return c;const[f,m,d,_,E]=l,b=v(f);if(typeof b!="number")return b;const y=v(m);if(typeof y!="number")return y;const R=+d.getValue(),p=+_.getValue(),N=Math.floor(+E.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(N))return g.create(h.VALUE);if(R<=0||p<=0||N<0||N>4||b>=y)return g.create(h.NUM);const{days:S,yearDays:P}=Ce(b,y,N),M=R/(1-p*S/P);return M<0?g.create(h.NUM):A.create(M)}}class pg extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",6)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.map((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d),{isError:b,errorObject:y,variants:R}=ne(f,_,E);if(b)return y;const[p,N,S]=R,P=+p.getValue(),M=+N.getValue(),w=+S.getValue();if(P<=0)return g.create(h.NUM);if(M===0&&w===0)return A.create(0);const x=(w/M)**(1/P)-1;return Number.isNaN(x)||!Number.isFinite(x)||w/M<0?g.create(h.NUM):A.create(x)});return n===1&&s===1?l.get(0,0):l}}class Ng extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3);C(this,"needsLocale",!0)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.map((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d);if(_.isError())return _;if(E.isError())return E;const b=+f.getValue(),y=+_.getValue(),R=+E.getValue();if(Number.isNaN(b)||Number.isNaN(y)||Number.isNaN(R))return g.create(h.VALUE);if(R===0)return g.create(h.DIV_BY_ZERO);const p=(b-y)/R;return m===0&&d===0?A.create(p,ke(this.getLocale())):A.create(p)});return n===1&&s===1?l.get(0,0):l}}class Vg extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",4);C(this,"needsLocale",!0)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),o=D(s,u,e,g.create(h.NA)),c=D(s,u,t,g.create(h.NA)),l=D(s,u,r,g.create(h.NA)),f=D(s,u,n,g.create(h.NA)),m=o.map((d,_,E)=>{const b=c.get(_,E),y=l.get(_,E),R=f.get(_,E);if(b.isError())return b;if(y.isError())return y;if(R.isError())return R;const p=+d.getValue(),N=+b.getValue(),S=+y.getValue(),P=+R.getValue();if(Number.isNaN(p)||Number.isNaN(N)||Number.isNaN(S)||Number.isNaN(P))return g.create(h.VALUE);if(N<0||S<=0||P>S)return g.create(h.NUM);const M=(p-N)*(S-P+1)*2/(S*(S+1));return _===0&&E===0?A.create(M,ke(this.getLocale())):A.create(M)});return s===1&&u===1?m.get(0,0):m}}class Og extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,variants:u}=xe(e,t,r);if(n)return s;const[o,c,l]=u,f=v(o);if(typeof f!="number")return f;const m=v(c);if(typeof m!="number")return m;const d=+l.getValue();if(Number.isNaN(d))return g.create(h.VALUE);if(d<=0||f>=m)return g.create(h.NUM);const _=Math.floor(m)-Math.floor(f),b=se(f).getUTCFullYear(),y=Cn(b);if(_>y)return g.create(h.NUM);let R=365*d/(360-d*_);if(_>182){const p=100*(1-d*_/360),N=_/365;if(R=(-N+Math.sqrt(N*N-(N*2-1)*(1-100/p)))/(N-.5),Number.isNaN(R))return g.create(h.NUM)}return R<0?g.create(h.NUM):A.create(R)}}class Dg extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3);C(this,"needsLocale",!0)}calculate(e,t,r){const{isError:n,errorObject:s,variants:u}=xe(e,t,r);if(n)return s;const[o,c,l]=u,f=v(o);if(typeof f!="number")return f;const m=v(c);if(typeof m!="number")return m;const d=+l.getValue();if(Number.isNaN(d))return g.create(h.VALUE);if(d<=0||f>=m)return g.create(h.NUM);const _=Math.floor(m)-Math.floor(f),b=se(f).getUTCFullYear(),y=Cn(b);if(_>y)return g.create(h.NUM);const R=100*(1-d*_/360);return R<0?g.create(h.NUM):A.create(R,ke(this.getLocale()))}}class Sg extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,variants:u}=xe(e,t,r);if(n)return s;const[o,c,l]=u,f=v(o);if(typeof f!="number")return f;const m=v(c);if(typeof m!="number")return m;const d=+l.getValue();if(Number.isNaN(d))return g.create(h.VALUE);if(d<=0||f>=m)return g.create(h.NUM);const _=Math.floor(m)-Math.floor(f),b=se(f).getUTCFullYear(),y=Cn(b);if(_>y)return g.create(h.NUM);const R=(100-d)/d*360/_;return A.create(R)}}class Lg extends V{constructor(){super(...arguments);C(this,"minParams",5);C(this,"maxParams",7);C(this,"needsLocale",!0)}calculate(e,t,r,n,s,u,o){let c=u!=null?u:A.create(2);c.isNull()&&(c=A.create(2));let l=o!=null?o:F.create(!1);l.isNull()&&(l=F.create(!1));const f=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1,c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1),m=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1,c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1),d=D(f,m,e,g.create(h.NA)),_=D(f,m,t,g.create(h.NA)),E=D(f,m,r,g.create(h.NA)),b=D(f,m,n,g.create(h.NA)),y=D(f,m,s,g.create(h.NA)),R=D(f,m,c,g.create(h.NA)),p=D(f,m,l,g.create(h.NA));return this._getResultArray(d,_,E,b,y,R,p,f,m)}_getResultArray(e,t,r,n,s,u,o,c,l){const f=e.map((m,d,_)=>{const E=t.get(d,_),b=r.get(d,_),y=n.get(d,_),R=s.get(d,_),p=u.get(d,_),N=o.get(d,_),{isError:S,errorObject:P,variants:M}=ne(m,E,b,y,R,p,N);if(S)return P;const[w,x,I,Y,W,X,oe]=M,te=+w.getValue(),H=+x.getValue(),he=+I.getValue(),de=+Y.getValue(),be=+W.getValue(),Re=+X.getValue(),me=+oe.getValue();if(te<0||H<0||he<0||de<0||be<0||be>he||de>be||Re<0)return g.create(h.NUM);if(he===0&&de===0&&be===0)return g.create(h.DIV_BY_ZERO);const Te=this._getResult(te,H,he,de,be,Re,me);return d===0&&_===0?A.create(Te,ke(this.getLocale())):A.create(Te)});return c===1&&l===1?f.get(0,0):f}_getResult(e,t,r,n,s,u,o){const c=Math.floor(n),l=Math.ceil(s);let f=0;if(e<t){if(n>=1||o)return f;const m=Math.abs(e-t);return f=m*(s-n)>m?m:m*(s-n),-f}if(o)for(let m=c+1;m<=l;m++){let d=Ts(e,t,r,m,u);m===c+1?d*=Math.min(s,c+1)-n:m===l&&(d*=s+1-l),f+=d}else{const m=e-this._getVdb(e,t,r,r,n,u);f=this._getVdb(m,t,r,r-n,s-n,u)}return f}_getVdb(e,t,r,n,s,u){const o=Math.ceil(s);let c=0,l=e-t,f=0,m=0,d=!1;for(let _=1;_<=o;_++){if(d)m=f;else{const E=Ts(e,t,r,_,u);f=l/(n-(_-1)),f>E?(m=f,d=!0):(m=E,l-=E)}_===o&&(m*=s+1-o),c+=m}return c}}class Pg extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){if(e.isNull()||t.isNull())return g.create(h.NA);const{isError:n,errorObejct:s,_values:u,_dates:o}=this._checkErrors(e,t);if(n)return s;let c=r!=null?r:A.create(.1);c.isNull()&&(c=A.create(.1));const{isError:l,errorObject:f,variants:m}=$(c);if(l)return f;const[d]=m,_=+d.getValue();if(Number.isNaN(_))return g.create(h.VALUE);const{positive:E,negative:b}=this._checkValues(u);if(!E||!b||(u==null?void 0:u.length)!==(o==null?void 0:o.length)||_<0)return g.create(h.NUM);const y=Us(_,R=>this._iterF(u,o,R));return typeof y!="number"?y:A.create(y)}_checkErrors(e,t){if(e.isError())return{isError:!0,errorObejct:e};if(t.isError())return{isError:!0,errorObejct:t};const{isError:r,errorObejct:n,_values:s}=this._checkErrorValues(e);if(r)return{isError:r,errorObejct:n};const{isError:u,errorObejct:o,_dates:c}=this._checkErrorDates(t);return u?{isError:u,errorObejct:o}:{isError:!1,_values:s,_dates:c}}_checkErrorValues(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);return e.iterator(s=>{const u=s;if(u.isError())return r=!0,n=u,!1;if(u.isBoolean())return r=!0,n=g.create(h.VALUE),!1;const o=+u.getValue();if(Number.isNaN(o))return r=!0,n=g.create(h.VALUE),!1;t.push(o)}),r?{isError:r,errorObejct:n}:t.length<=1?{isError:!0,errorObejct:g.create(h.NA)}:{isError:r,_values:t}}else{const r=e.getValue();return e.isBoolean()||e.isString()&&!O.isRealNum(r)?{isError:!0,errorObejct:g.create(h.VALUE)}:{isError:!0,errorObejct:g.create(h.NA)}}}_checkErrorDates(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);return e.iterator(s=>{if(s!=null&&s.isError())return r=!0,n=s,!1;if(s!=null&&s.isBoolean())return r=!0,n=g.create(h.VALUE),!1;const u=+s.getValue();if(Number.isNaN(u))return r=!0,n=g.create(h.VALUE),!1;if(u<0)return r=!0,n=g.create(h.NUM),!1;t.push(Math.floor(u))}),r?{isError:r,errorObejct:n}:t.length<=1?{isError:!0,errorObejct:g.create(h.NA)}:{isError:r,_dates:t}}else{const r=e.getValue();return e.isBoolean()||e.isString()&&!O.isRealNum(r)?{isError:!0,errorObejct:g.create(h.VALUE)}:+r<0?{isError:!0,errorObejct:g.create(h.NUM)}:{isError:!0,errorObejct:g.create(h.NA)}}}_checkValues(e){let t=!1,r=!1;for(let n=0;n<e.length;n++)e[n]>0&&(t=!0),e[n]<0&&(r=!0);return{positive:t,negative:r}}_iterF(e,t,r){return e.reduce((n,s,u)=>n+s/(1+r)**((t[u]-t[0])/365),0)}}class Mg extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){if(e.isNull()||t.isNull()||r.isNull())return g.create(h.NA);const{isError:n,errorObject:s,variants:u}=$(e);if(n)return s;const[o]=u,c=+o.getValue();if(Number.isNaN(c))return g.create(h.VALUE);let{isError:l,errorObejct:f,_values:m,_dates:d}=this._checkErrors(t,r);if(l)return f;if(m=m,d=d,c<0||m.length!==d.length)return g.create(h.NUM);let _=0;const E=d[0];for(let b=0;b<d.length;b++){const y=d[b],R=m[b];_+=R/(1+c)**((y-E)/365)}return A.create(_)}_checkErrors(e,t){if(e.isError())return{isError:!0,errorObejct:e};if(t.isError())return{isError:!0,errorObejct:t};const{isError:r,errorObejct:n,_values:s}=this._checkErrorValues(e);if(r)return{isError:r,errorObejct:n};const{isError:u,errorObejct:o,_dates:c}=this._checkErrorDates(t);return u?{isError:u,errorObejct:o}:{isError:!1,_values:s,_dates:c}}_checkErrorValues(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);return e.iterator(s=>{const u=s;if(u.isError())return r=!0,n=u,!1;if(u.isNull()||u.isBoolean())return r=!0,n=g.create(h.VALUE),!1;const o=+u.getValue();if(Number.isNaN(o))return r=!0,n=g.create(h.VALUE),!1;t.push(o)}),r?{isError:r,errorObejct:n}:t.length<=1?{isError:!0,errorObejct:g.create(h.NA)}:{isError:r,_values:t}}else{const r=e.getValue();return e.isNull()||e.isBoolean()||e.isString()&&!O.isRealNum(r)?{isError:!0,errorObejct:g.create(h.VALUE)}:{isError:!0,errorObejct:g.create(h.NA)}}}_checkErrorDates(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);return e.iterator(s=>{const u=s;if(u.isError())return r=!0,n=u,!1;if(u.isNull()||u.isBoolean())return r=!0,n=g.create(h.VALUE),!1;const o=+u.getValue();if(Number.isNaN(o))return r=!0,n=g.create(h.VALUE),!1;if(o<0)return r=!0,n=g.create(h.NUM),!1;t.push(Math.floor(o))}),r?{isError:r,errorObejct:n}:t.length<=1?{isError:!0,errorObejct:g.create(h.NA)}:{isError:r,_dates:t}}else{const r=e.getValue();return e.isNull()||e.isBoolean()||e.isString()&&!O.isRealNum(r)?{isError:!0,errorObejct:g.create(h.VALUE)}:+r<0?{isError:!0,errorObejct:g.create(h.NUM)}:{isError:!0,errorObejct:g.create(h.NA)}}}}class wg extends V{constructor(){super(...arguments);C(this,"minParams",6);C(this,"maxParams",7)}calculate(e,t,r,n,s,u,o){let c=o!=null?o:A.create(0);c.isNull()&&(c=A.create(0));const{isError:l,errorObject:f,variants:m}=xe(e,t,r,n,s,u,c);if(l)return f;const[d,_,E,b,y,R,p]=m,N=v(d);if(typeof N!="number")return N;const S=v(_);if(typeof S!="number")return S;const P=+E.getValue(),M=+b.getValue(),w=+y.getValue(),x=Math.floor(+R.getValue()),I=Math.floor(+p.getValue());if(Number.isNaN(P)||Number.isNaN(M)||Number.isNaN(w)||Number.isNaN(x)||Number.isNaN(I))return g.create(h.VALUE);if(P<0||M<=0||w<=0||![1,2,4].includes(x)||I<0||I>4||N>=S||!ir(N,S,x))return g.create(h.NUM);const Y=this._getResult(N,S,P,M,w,x,I);return A.create(Y)}_getResult(e,t,r,n,s,u,o){if(Ft(e,t,u)>1){let b=r||.01,y=En(e,t,r,b,s,u,o),R=y-n;for(let p=0;p<100&&Math.abs(R)>1e-7;p++)y=En(e,t,r,1.01*b,s,u,o),b+=-R/(y-n-R)*b*.01,R=En(e,t,r,b,s,u,o)-n;return b}const l=_n(e,t,u,o),f=$e(e,t,u,o),{days:m}=Ce(e,t,o),d=n/100+l/f*r/u;return(s/100+r/u-d)/d*u*f/m}}class jg extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",5)}calculate(e,t,r,n,s){let u=s!=null?s:A.create(0);u.isNull()&&(u=A.create(0));const{isError:o,errorObject:c,variants:l}=xe(e,t,r,n,u);if(o)return c;const[f,m,d,_,E]=l,b=v(f);if(typeof b!="number")return b;const y=v(m);if(typeof y!="number")return y;const R=+d.getValue(),p=+_.getValue(),N=Math.floor(+E.getValue());if(Number.isNaN(R)||Number.isNaN(p)||Number.isNaN(N))return g.create(h.VALUE);if(R<=0||p<=0||N<0||N>4||b>=y)return g.create(h.NUM);const{days:S,yearDays:P}=Ce(b,y,N),M=(p/R-1)/(S/P);return A.create(M)}}class xg extends V{constructor(){super(...arguments);C(this,"minParams",5);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){let o=u!=null?u:A.create(0);o.isNull()&&(o=A.create(0));const{isError:c,errorObject:l,variants:f}=xe(e,t,r,n,s,o);if(c)return l;const[m,d,_,E,b,y]=f,R=v(m);if(typeof R!="number")return R;const p=v(d);if(typeof p!="number")return p;const N=v(_);if(typeof N!="number")return N;const S=+E.getValue(),P=+b.getValue(),M=Math.floor(+y.getValue());if(Number.isNaN(S)||Number.isNaN(P)||Number.isNaN(M))return g.create(h.VALUE);const w=this._getDateCorrectOrder(p,R,N);if(S<0||P<=0||M<0||M>4||!w)return g.create(h.NUM);const x=tu(R,M),{days:I}=Ce(R,p,M),{days:Y}=Ce(N,p,M),{days:W}=Ce(N,R,M),X=((1+Y/x*S)/(P/100+W/x*S)-1)/(I/x);return A.create(X)}_getDateCorrectOrder(e,t,r){return Math.floor(e)>Math.floor(t)&&Math.floor(t)>Math.floor(r)}}const lu=[[Uh,z.ACCRINT],[Th,z.ACCRINTM],[vh,z.AMORLINC],[Bh,z.COUPDAYBS],[Fh,z.COUPDAYS],[Ih,z.COUPDAYSNC],[kh,z.COUPNCD],[$h,z.COUPNUM],[Yh,z.COUPPCD],[Hh,z.CUMIPMT],[Qh,z.CUMPRINC],[Wh,z.DB],[Gh,z.DDB],[qh,z.DISC],[Xh,z.DOLLARDE],[Kh,z.DOLLARFR],[Zh,z.DURATION],[zh,z.EFFECT],[Jh,z.FV],[eg,z.FVSCHEDULE],[tg,z.INTRATE],[rg,z.IPMT],[ng,z.IRR],[sg,z.ISPMT],[ag,z.MDURATION],[ig,z.MIRR],[ug,z.NOMINAL],[og,z.NPER],[cg,z.NPV],[lg,z.ODDFPRICE],[fg,z.ODDFYIELD],[mg,z.ODDLPRICE],[hg,z.ODDLYIELD],[gg,z.PDURATION],[dg,z.PMT],[Cg,z.PPMT],[_g,z.PRICE],[Eg,z.PRICEDISC],[bg,z.PRICEMAT],[Ag,z.PV],[yg,z.RATE],[Rg,z.RECEIVED],[pg,z.RRI],[Ng,z.SLN],[Vg,z.SYD],[Og,z.TBILLEQ],[Dg,z.TBILLPRICE],[Sg,z.TBILLYIELD],[Lg,z.VDB],[Pg,z.XIRR],[Mg,z.XNPV],[wg,z.YIELD],[jg,z.YIELDDISC],[xg,z.YIELDMAT]];class Ug extends V{constructor(){super(...arguments);C(this,"needsReferenceObject",!0);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isError())return r;if(r.isReferenceObject()&&(r=r.toArrayValueObject()),r.isArray()){const n=r.getRowCount(),s=r.getColumnCount();if(n===1&&s===1){const u=r.get(0,0);return this._handleSingleObject(u,t)}return r.map(u=>u.isError()?u:this._handleSingleObject(u,t,!0))}return this._handleSingleObject(r,t)}_handleSingleObject(e,t,r=!1){let n=t;if(n.isError())return n;if(!n.isReferenceObject())return g.create(h.NA);const s=n.getCurrentActiveSheetData(),{columnData:u,defaultColumnWidth:o}=s;n=n.toArrayValueObject();const c=n.getCurrentRow(),l=n.getCurrentColumn();n=n.getFirstCell();const f=`${e.getValue()}`;let m;switch(f.toLocaleLowerCase()){case"address":return T.create(`$${O.Tools.chatAtABC(l)}$${c+1}`);case"col":return A.create(l+1);case"color":return A.create(0);case"contents":return n;case"filename":return g.create(h.VALUE);case"format":return T.create("G");case"parentheses":return A.create(0);case"prefix":return T.create("");case"protect":return A.create(1);case"row":return A.create(c+1);case"type":return m="v",n.isNull()&&(m="b"),n.isString()&&(m="l"),T.create(m);case"width":return this._getWidthResult(u,o,l,r);default:return g.create(h.VALUE)}}_getWidthResult(e,t,r,n){var o;let s=(o=e[r])==null?void 0:o.w;if(!s&&s!==0&&(s=t),n)return A.create(s);const u=[[s,s===t]];return ee.createByArray(u)}}class Tg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1);C(this,"_errorTypeValueMap",new Map([[h.NULL,1],[h.DIV_BY_ZERO,2],[h.VALUE,3],[h.REF,4],[h.NAME,5],[h.NUM,6],[h.NA,7],[h.CONNECT,8],[h.CALC,14]]))}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const t=e.getValue(),r=this._errorTypeValueMap.get(t);return r?A.create(r):g.create(h.NA)}}var Ve=(a=>(a.CELL="CELL",a.ERROR_TYPE="ERROR.TYPE",a.INFO="INFO",a.ISBLANK="ISBLANK",a.ISERR="ISERR",a.ISERROR="ISERROR",a.ISEVEN="ISEVEN",a.ISFORMULA="ISFORMULA",a.ISLOGICAL="ISLOGICAL",a.ISNA="ISNA",a.ISNONTEXT="ISNONTEXT",a.ISNUMBER="ISNUMBER",a.ISODD="ISODD",a.ISOMITTED="ISOMITTED",a.ISREF="ISREF",a.ISTEXT="ISTEXT",a.N="N",a.NA="NA",a.SHEET="SHEET",a.SHEETS="SHEETS",a.TYPE="TYPE",a))(Ve||{});class vg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isNull()?F.create(!0):e.isArray()?e.mapValue(t=>t.isNull()?F.create(!0):F.create(!1)):F.create(!1)}}class Bg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.getValue()===h.NA?F.create(!1):e.isError()?F.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===h.NA?F.create(!1):t.isError()?F.create(!0):F.create(!1)):F.create(!1)}}class Fg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?F.create(!0):e.isArray()?e.mapValue(t=>t.isError()?F.create(!0):F.create(!1)):F.create(!1)}}class Ig extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;if(t.isArray()){const s=t.getRowCount(),u=t.getColumnCount();if(s>1||u>1)return g.create(h.VALUE);t=t.get(0,0)}if(t.isError())return t;if(t.isBoolean())return g.create(h.VALUE);const r=Math.trunc(+t.getValue());if(Number.isNaN(r))return g.create(h.VALUE);const n=r%2===0;return F.create(n)}}class kg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1);C(this,"needsReferenceObject",!0)}calculate(e){var o;if(e.isError())return e;if(!e.isReferenceObject())return g.create(h.NA);const t=(o=e.getCurrentActiveSheetData())==null?void 0:o.cellData.getMatrix(),{startRow:r,startColumn:n}=e.getRangePosition(),s=e.toArrayValueObject(),u=s.mapValue((c,l,f)=>{var d;const m=(d=t==null?void 0:t[r+l])==null?void 0:d[n+f];return m!=null&&m.f||m!=null&&m.si?F.create(!0):F.create(!1)});return s.getRowCount()===1&&s.getColumnCount()===1?u.get(0,0):u}}class $g extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isBoolean()?F.create(!0):e.isArray()?e.mapValue(t=>t.isBoolean()?F.create(!0):F.create(!1)):F.create(!1)}}class Yg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.getValue()===h.NA?F.create(!0):e.isArray()?e.mapValue(t=>t.getValue()===h.NA?F.create(!0):F.create(!1)):F.create(!1)}}class Hg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return!e.isArray()&&!e.isString()?F.create(!0):e.isArray()?e.mapValue(t=>t.isString()?F.create(!1):F.create(!0)):F.create(!1)}}class Qg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isNumber()?F.create(!0):e.isArray()?e.mapValue(t=>t.isNumber()?F.create(!0):F.create(!1)):F.create(!1)}}class Wg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;if(t.isArray()){const s=t.getRowCount(),u=t.getColumnCount();if(s>1||u>1)return g.create(h.VALUE);t=t.get(0,0)}if(t.isError())return t;if(t.isBoolean())return g.create(h.VALUE);const r=Math.trunc(+t.getValue());if(Number.isNaN(r))return g.create(h.VALUE);const n=r%2!==0;return F.create(n)}}class Gg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1);C(this,"needsReferenceObject",!0)}calculate(e){return e.isReferenceObject()?F.create(!0):F.create(!1)}}class qg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isString()?F.create(!0):e.isArray()?e.mapValue(t=>t.isString()?F.create(!0):F.create(!1)):F.create(!1)}}class Xg extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;if(e.isArray()&&(t=e.get(0,0)),t.isError())return t;if(t.isString())return A.create(0);const r=+t.getValue();return A.create(r)}}class Kg extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",0)}calculate(){return g.create(h.NA)}}class Zg extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",1);C(this,"needsReferenceObject",!0);C(this,"needsSheetsInfo",!0)}calculate(e){var o;if(e!=null&&e.isError())return e;const{sheetOrder:t,sheetNameMap:r}=this.getSheetsInfo();if(!e){const c=t.findIndex(l=>l===this.subUnitId);return A.create(c+1)}if(e.isReferenceObject()){const c=e.getForcedSheetId(),l=e.getDefaultSheetId(),f=t.findIndex(m=>c?m===c:m===l);return A.create(f+1)}if(e.isArray())return g.create(h.NA);const n=`${e.getValue()}`.toLocaleLowerCase(),s=(o=Object.entries(r).find(([c,l])=>l.toLocaleLowerCase()===n))==null?void 0:o[0];if(!s)return g.create(h.NA);const u=t.findIndex(c=>c===s);return A.create(u+1)}}class zg extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",0);C(this,"needsSheetsInfo",!0)}calculate(){const{sheetOrder:e}=this.getSheetsInfo();return A.create(e.length)}}class Jg extends V{constructor(){super(...arguments);C(this,"needsReferenceObject",!0);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isReferenceObject()){const t=e.getRowCount(),r=e.getColumnCount();if(t===1&&r===1){const n=e.getFirstCell();if(n.isError())return A.create(16);if(n.isBoolean())return A.create(4);if(n.isString())return A.create(2);if(n.isNumber()||n.isNull())return A.create(1)}else return A.create(64)}else{if(e.isArray())return A.create(64);if(e.isError())return A.create(16);if(e.isBoolean())return A.create(4);if(e.isString())return A.create(2);if(e.isNumber()||e.isNull())return A.create(1)}return A.create(128)}}const fu=[[Ug,Ve.CELL],[Tg,Ve.ERROR_TYPE],[vg,Ve.ISBLANK],[Bg,Ve.ISERR],[Fg,Ve.ISERROR],[Ig,Ve.ISEVEN],[kg,Ve.ISFORMULA],[$g,Ve.ISLOGICAL],[Yg,Ve.ISNA],[Hg,Ve.ISNONTEXT],[Qg,Ve.ISNUMBER],[Wg,Ve.ISODD],[Gg,Ve.ISREF],[qg,Ve.ISTEXT],[Xg,Ve.N],[Kg,Ve.NA],[Zg,Ve.SHEET],[zg,Ve.SHEETS],[Jg,Ve.TYPE]];class e1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=!0,r=!0,n=null;for(const s of e){if(s.isError())return s;if(s.isArray()){if(s.iterator(u=>{if(u!=null&&u.isError())return n=u,!1;(u!=null&&u.isBoolean()||u!=null&&u.isNumber())&&(t=t&&!!u.getValue(),r=!1)}),n)return n}else(s.isBoolean()||s.isNumber())&&(t=t&&!!s.getValue(),r=!1)}return r?g.create(h.VALUE):F.create(t)}}class t1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2);C(this,"needsReferenceObject",!0)}calculate(e,t){let r=e,n=null;if(e.isReferenceObject()&&(r=e.toArrayValueObject(),n=e),r.isError())return r;if(t.isError())return t;if(!(t.isValueObject()&&t.isLambda()&&t.getLambdaPrivacyVarKeys().length===1))return g.create(h.VALUE);const s=t,u=r.isArray()?r.getRowCount():1,o=r.isArray()?r.getColumnCount():1;r=D(u,o,r);const c=[[]];for(let l=0;l<o;l++){const f=[];for(let _=0;_<u;_++){const E=r.get(_,l);f.push([E])}let m=ee.create({calculateValueList:f,rowCount:u,columnCount:1,unitId:"",sheetId:"",row:0,column:0});if(n){const{startRow:_,startColumn:E}=n.getRangePosition(),b={startRow:_,startColumn:E+l,endRow:_+u-1,endColumn:E+l};m=this.createReferenceObject(n,b)}let d=s.execute(m);if(d.isArray()){const _=d.getRowCount(),E=d.getColumnCount();if(_>1||E>1)return g.create(h.CALC);d=d.get(0,0)}d.isNull()&&(d=A.create(0)),c[0].push(d)}return o===1?c[0][0]:ee.create({calculateValueList:c,rowCount:1,columnCount:o,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class r1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2);C(this,"needsReferenceObject",!0)}calculate(e,t){let r=e,n=null;if(e.isReferenceObject()&&(r=e.toArrayValueObject(),n=e),r.isError())return r;if(t.isError())return t;if(!(t.isValueObject()&&t.isLambda()&&t.getLambdaPrivacyVarKeys().length===1))return g.create(h.VALUE);const s=t,u=r.isArray()?r.getRowCount():1,o=r.isArray()?r.getColumnCount():1;r=D(u,o,r);const c=[];for(let l=0;l<u;l++){const f=[[]];for(let _=0;_<o;_++){const E=r.get(l,_);f[0].push(E)}let m=ee.create({calculateValueList:f,rowCount:1,columnCount:o,unitId:"",sheetId:"",row:0,column:0});if(n){const{startRow:_,startColumn:E}=n.getRangePosition(),b={startRow:_+l,startColumn:E,endRow:_+l,endColumn:E+o-1};m=this.createReferenceObject(n,b)}let d=s.execute(m);if(d.isArray()){const _=d.getRowCount(),E=d.getColumnCount();if(_>1||E>1)return g.create(h.CALC);d=d.get(0,0)}d.isNull()&&(d=A.create(0)),c.push([d])}return u===1?c[0][0]:ee.create({calculateValueList:c,rowCount:u,columnCount:1,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class n1 extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",0)}calculate(){return F.create(!1)}}var Oe=(a=>(a.AND="AND",a.BYCOL="BYCOL",a.BYROW="BYROW",a.FALSE="FALSE",a.IF="IF",a.IFERROR="IFERROR",a.IFNA="IFNA",a.IFS="IFS",a.LAMBDA="LAMBDA",a.LET="LET",a.MAKEARRAY="MAKEARRAY",a.MAP="MAP",a.NOT="NOT",a.OR="OR",a.REDUCE="REDUCE",a.SCAN="SCAN",a.SWITCH="SWITCH",a.TRUE="TRUE",a.XOR="XOR",a))(Oe||{});class s1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r=F.create(!1)){const n=this._getSingleValueObject(e);if(n.isError())return n;if(!n.isArray())return n.getValue()?t:r;const s=Math.max(n.isArray()?n.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),u=Math.max(n.isArray()?n.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),o=D(s,u,n),c=D(s,u,t,g.create(h.NA)),l=D(s,u,r,g.create(h.NA));return o.map((f,m,d)=>{if(f.isNull())return g.create(h.NA);{const _=c.get(m,d)||J.create(),E=l.get(m,d)||J.create();return this._calculateSingleCell(f,_,E)}})}_getSingleValueObject(e){return e.isArray()&&e.getRowCount()===1&&e.getColumnCount()===1?e.getFirstCell():e}_calculateSingleCell(e,t,r){return e.isNull()?g.create(h.NA):e.getValue()?t.isNull()?g.create(h.NA):t:r.isNull()?g.create(h.NA):r}}class a1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;if(!e.isArray())return e.isError()?t:e;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e),u=D(r,n,t);return s.iterator((o,c,l)=>{o!=null&&o.isError()&&s.set(c,l,u.get(c,l))}),s}}class i1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError()&&e.getErrorType()!==h.NA)return e;if(t.isError())return t;if(!e.isArray())return e.isError()&&e.getErrorType()===h.NA?t:e;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e),u=D(r,n,t);return s.iterator((o,c,l)=>{o!=null&&o.isError()&&o.getErrorType()===h.NA&&s.set(c,l,u.get(c,l))}),s}}class u1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",255)}calculate(...e){if(e.length%2!==0)return g.create(h.NA);for(let u=0;u<e.length;u++)if(e[u].isError())return e[u];const t=Math.max(...e.map(u=>u.isArray()?u.getRowCount():1)),r=Math.max(...e.map(u=>u.isArray()?u.getColumnCount():1)),n=e.map(u=>D(t,r,u,g.create(h.NA))),s=n[0].map((u,o,c)=>{for(let l=0;l<n.length;l+=2){const f=n[l].get(o,c)||J.create(),m=n[l+1].get(o,c)||J.create();if(f.isNull())continue;if(f.isError())return f;const d=f.getValue();if(f.isString()){if(`${d}`.toLocaleUpperCase()==="TRUE")return m;if(`${d}`.toLocaleUpperCase()==="FALSE")continue;return g.create(h.VALUE)}if(+d)return m.isNull()?g.create(h.NA):m}return g.create(h.NA)});return t===1&&r===1?s.get(0,0):s}}class o1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){return g.create(h.VALUE)}}class c1 extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",255)}calculate(...e){return g.create(h.VALUE)}}class l1 extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(...e){const t=this.getIndexNumValue(e[0]);if(typeof t!="number")return t;const r=this.getIndexNumValue(e[1]);if(typeof r!="number")return r;if(!(e[2].isValueObject()&&e[2].isLambda()))return g.create(h.VALUE);const n=e[2],s=[];for(let u=0;u<t;u++){s[u]==null&&(s[u]=[]);for(let o=0;o<r;o++){let c=n.execute(A.create(u+1),A.create(o+1));c.isArray()&&(c=c.get(0,0)),s[u][o]=c}}return new Ja(s)}isAsync(){return!0}}let f1=class extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",255);C(this,"needsReferenceObject",!0)}calculate(...e){const t=[];let r=null,n=0,s=0;for(let o=0;o<e.length;o++){const c=e[o];let l=c;if(l.isReferenceObject()&&(l=c.toArrayValueObject()),l.isError())return l;if(o===e.length-1){if(!(c.isValueObject()&&c.isLambda()))return g.create(h.VALUE);r=c}else t.push(c),n=Math.max(n,l.isArray()?l.getRowCount():1),s=Math.max(s,l.isArray()?l.getColumnCount():1)}const u=this._getResultArray(t,r,n,s);return u instanceof g?u:n===1&&s===1?u[0][0]:ee.create({calculateValueList:u,rowCount:n,columnCount:s,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArray(e,t,r,n){const s=[];for(let u=0;u<r;u++){const o=[];for(let c=0;c<n;c++){const l=[];let f=!1;for(let d=0;d<e.length;d++){let _=e[d],E=null;if(_.isReferenceObject()&&(E=_,_=_.toArrayValueObject()),!_.isArray())if(u===0&&c===0){l.push(E||_);continue}else{o.push(g.create(h.NA)),f=!0;break}let b=_.get(u,c);if(!b){o.push(g.create(h.NA)),f=!0;break}if(E){const{startRow:y,startColumn:R}=E.getRangePosition(),p={startRow:y+u,startColumn:R+c,endRow:y+u,endColumn:R+c};b=this.createReferenceObject(E,p)}l.push(b)}if(f||l.length===0)continue;let m=t.execute(...l);if(m.isArray()){const d=m.getRowCount(),_=m.getColumnCount();if(d>1||_>1)return g.create(h.CALC);m=m.get(0,0)}m.isNull()&&(m=A.create(0)),o.push(m)}s.push(o)}return s}};class m1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;const t=+e.getValue();return Number.isNaN(t)?g.create(h.VALUE):F.create(!t)}}class h1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=!1,r=!0,n=null;for(const s of e){if(s.isError())return s;if(s.isArray()){if(s.iterator(u=>{if(u!=null&&u.isError())return n=u,!1;(u!=null&&u.isBoolean()||u!=null&&u.isNumber())&&(t=t||!!u.getValue(),r=!1)}),n)return n}else(s.isBoolean()||s.isNumber())&&(t=t||!!s.getValue(),r=!1)}return r?new g(h.VALUE):new F(t)}}class g1 extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3);C(this,"needsReferenceObject",!0)}calculate(e,t,r){let n,s;e.isReferenceObject()?(n=e.toArrayValueObject(),s=e):(n=e,s=null);let u,o;return t.isReferenceObject()?(u=t.toArrayValueObject(),o=t):(u=t,o=null),n.isArray()?n.mapValue(c=>this._handleSingleValueObject(c,u,r,s,o)):this._handleSingleValueObject(n,u,r,s,o)}_handleSingleValueObject(e,t,r,n,s){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(!(r.isValueObject()&&r.isLambda()&&r.getLambdaPrivacyVarKeys().length===2))return g.create(h.VALUE);const u=r,o=t.isArray()?t.getRowCount():1,c=t.isArray()?t.getColumnCount():1;let l=e;n&&(l=n);for(let f=0;f<o;f++)for(let m=0;m<c;m++){let d=t.isArray()?t.get(f,m):t;if(d.isError())return d;if(s){const{startRow:E,startColumn:b}=s.getRangePosition(),y={startRow:E+f,startColumn:b+m,endRow:E+f,endColumn:b+m};d=this.createReferenceObject(s,y)}let _=u.execute(l,d);if(_.isError())return _;_.isNull()&&(_=A.create(0)),l=_}return l.isReferenceObject()?l.toArrayValueObject():l}}class d1 extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3);C(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=e,s=null;e.isReferenceObject()&&(n=e.toArrayValueObject(),s=e),n=n;let u=t,o=null;if(t.isReferenceObject()&&(u=t.toArrayValueObject(),o=t),u=u,n.isError())return n;if(u.isError())return u;if(r.isError())return r;if(!(r.isValueObject()&&r.isLambda()&&r.getLambdaPrivacyVarKeys().length===2))return g.create(h.VALUE);if(n.isArray()){const c=n.getRowCount(),l=n.getColumnCount();if(c>1||l>1)return g.create(h.CALC);n=n.get(0,0)}return this._getResult(n,u,r,s,o)}_getResult(e,t,r,n,s){const u=[],o=t.isArray()?t.getRowCount():1,c=t.isArray()?t.getColumnCount():1;let l=e;n&&(l=n);for(let f=0;f<o;f++){const m=[];for(let d=0;d<c;d++){if(l.isError()){m.push(l);continue}let _=t.isArray()?t.get(f,d):t;if(_.isError()){l=_,m.push(_);continue}if(s){const{startRow:b,startColumn:y}=s.getRangePosition(),R={startRow:b+f,startColumn:y+d,endRow:b+f,endColumn:y+d};_=this.createReferenceObject(s,R)}let E=r.execute(l,_);if(E.isArray()){const b=E.getRowCount(),y=E.getColumnCount();if(b>1||y>1)return g.create(h.CALC);E=E.get(0,0)}E.isNull()&&(E=A.create(0)),l=E,m.push(E)}u.push(m)}return o===1&&c===1?u[0][0]:ee.create({calculateValueList:u,rowCount:o,columnCount:c,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class C1 extends V{constructor(){super(...arguments);C(this,"minParams",3)}calculate(e,...t){if(e.isError())return e;const r=t.length%2!==0,n=r?t[t.length-1]:J.create();return!e.isArray()&&!t.some(s=>s.isArray())?this._handleNonArrayInputs(e,t,n,r):this._handleArrayInputs(e,t,n,r)}_handleNonArrayInputs(e,t,r,n){for(let s=0;s<t.length-(n?1:0);s+=2){const u=t[s],o=t[s+1];if(!u.isNull()){if(u.isError())return u;if(`${e.getValue()}`.toLocaleLowerCase()===`${u.getValue()}`.toLocaleLowerCase())return o.isNull()?g.create(h.NA):o}}return r.isNull()?g.create(h.NA):r}_handleArrayInputs(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,...t.map(f=>f.isArray()?f.getRowCount():1),r.isArray()?r.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,...t.map(f=>f.isArray()?f.getColumnCount():1),r.isArray()?r.getColumnCount():1),o=D(s,u,e),c=t.map(f=>D(s,u,f,g.create(h.NA))),l=D(s,u,r,g.create(h.NA));return o.map((f,m,d)=>{for(let E=0;E<c.length-(n?1:0);E+=2){const b=c[E].get(m,d)||J.create(),y=c[E+1].get(m,d)||J.create();if(!b.isNull()){if(b.isError()||f.isError())return b.isError()?b:f;if(`${f.getValue()}`.toLocaleLowerCase()===`${b.getValue()}`.toLocaleLowerCase())return y.isNull()?g.create(h.NA):y}}const _=l.get(m,d)||J.create();return _.isNull()?g.create(h.NA):_})}}class _1 extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",0)}calculate(){return F.create(!0)}}class E1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=0,r=!0,n=null;for(const s of e){if(s.isError())return s;if(s.isArray()){if(s.iterator(u=>{if(u!=null&&u.isError())return n=u,!1;(u!=null&&u.isBoolean()||u!=null&&u.isNumber())&&(u.getValue()&&t++,r=!1)}),n)return n}else(s.isBoolean()||s.isNumber())&&(s.getValue()&&t++,r=!1)}return r?g.create(h.VALUE):F.create(t%2===1)}}const mu=[[e1,Oe.AND],[t1,Oe.BYCOL],[r1,Oe.BYROW],[n1,Oe.FALSE],[s1,Oe.IF],[a1,Oe.IFERROR],[i1,Oe.IFNA],[u1,Oe.IFS],[o1,Oe.LAMBDA],[c1,Oe.LET],[l1,Oe.MAKEARRAY],[f1,Oe.MAP],[m1,Oe.NOT],[h1,Oe.OR],[g1,Oe.REDUCE],[d1,Oe.SCAN],[C1,Oe.SWITCH],[_1,Oe.TRUE],[E1,Oe.XOR]];class b1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",5)}calculate(e,t,r,n,s){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;if(n!=null&&n.isError())return n;if(s!=null&&s.isError())return s;const u=r!=null?r:A.create(1),o=n!=null?n:F.create(!0),c=s!=null?s:T.create(""),l=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,u.isArray()?u.getRowCount():1,o.isArray()?o.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,u.isArray()?u.getColumnCount():1,o.isArray()?o.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=D(l,f,e,g.create(h.NA)),d=D(l,f,t,g.create(h.NA)),_=D(l,f,u,g.create(h.NA)),E=D(l,f,o,g.create(h.NA)),b=D(l,f,c,g.create(h.NA));return m.map((y,R,p)=>{const N=d.get(R,p)||g.create(h.NA),S=_.get(R,p)||g.create(h.NA),P=E.get(R,p)||g.create(h.NA),M=b.get(R,p)||g.create(h.NA);return y.isError()?y:N.isError()?N:S.isError()?S:P.isError()?P:M.isError()?M:this._calculateSingleCell(y,N,S,P,M)})}_calculateSingleCell(e,t,r,n,s){const u=Number.parseInt(`${Number(e.getValue())-1}`),o=Number.parseInt(`${Number(t.getValue())-1}`),c=Number.parseInt(`${Number(r.getValue())}`);if(Number.isNaN(u)||Number.isNaN(o)||Number.isNaN(c)||c<1||c>4)return g.create(h.VALUE);const l=A1(c),f=this.getZeroOrOneByOneDefault(n),m=`${s.getValue()}`,d=xr(m)?`'${m}'`:m,_={startRow:u,startColumn:o,endRow:u,endColumn:o,startAbsoluteRefType:l,endAbsoluteRefType:l},E=n&&!f?Rf(_):bt(_);return T.create(d!==""?`${d}!${E}`:E)}}function A1(a){switch(a){case 1:return O.AbsoluteRefType.ALL;case 2:return O.AbsoluteRefType.ROW;case 3:return O.AbsoluteRefType.COLUMN;case 4:return O.AbsoluteRefType.NONE;default:return O.AbsoluteRefType.ALL}}class y1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1);C(this,"needsReferenceObject",!0)}calculate(e){return e.isReferenceObject()?A.create(1):g.create(h.VALUE)}}class R1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",255);C(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,...t){let r=e;if(r.isError())return r;if(r.isReferenceObject()&&(r=r.toArrayValueObject()),!r.isArray()){const c=r.convertToNumberObjectValue();return c.isError()?c:t[Math.trunc(+c.getValue())-1]||g.create(h.VALUE)}let n=r.isArray()?r.getRowCount():1,s=r.isArray()?r.getColumnCount():1;t.forEach((c,l)=>{if(c.isArray()){const f=c;n=Math.max(n,f.getRowCount()),s=Math.max(s,f.getColumnCount())}else n=Math.max(n,1),s=Math.max(s,1)});const u=D(n,s,r,g.create(h.NA)),o=t.map(c=>{let l=c;return l.isReferenceObject()&&(l=l.toArrayValueObject()),D(n,s,l,g.create(h.NA))});return u.map((c,l,f)=>{if(c.isError())return c;const m=c.convertToNumberObjectValue();if(m.isError())return m;const d=o[Math.trunc(+m.getValue())-1];let _=(d==null?void 0:d.get(l,f))||g.create(h.VALUE);return _!=null&&_.isNull()&&(_=A.create(0)),_})}}class p1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=[];for(let u=0;u<t.length;u++){let o=t[u];if(o.isArray()){const f=o.getRowCount(),m=o.getColumnCount();if(f>1||m>1)return g.create(h.VALUE);o=o.get(0,0)}if(o.isString()&&(o=o.convertToNumberObjectValue()),o.isError())return o;const c=Math.trunc(+o.getValue());if(c===0||Math.abs(c)>n)return g.create(h.VALUE);let l=e;n>1&&(c<0?l=e.slice(void 0,[c+n,c+1+n]):l=e.slice(void 0,[c-1,c]));for(let f=0;f<r;f++)s[f]||(s[f]=[]),e.isArray()?s[f].push(l.get(f,0)):s[f].push(e)}return ee.create({calculateValueList:s,rowCount:s.length,columnCount:s[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class N1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;const r=e.isArray()?e.getRowCount():1,n=[];for(let s=0;s<t.length;s++){let u=t[s];if(u.isArray()){const l=u.getRowCount(),f=u.getColumnCount();if(l>1||f>1)return g.create(h.VALUE);u=u.get(0,0)}if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;const o=Math.trunc(+u.getValue());if(o===0||Math.abs(o)>r)return g.create(h.VALUE);let c=e;r>1&&(o<0?c=e.slice([o+r,o+1+r]):c=e.slice([o-1,o])),e.isArray()?n.push(c.getArrayValue()[0]):n.push([e])}return ee.create({calculateValueList:n,rowCount:n.length,columnCount:n[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class V1 extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",1)}calculate(e){if(e==null)return A.create(this.column+1);if(e.isError())return e;if(!e.isArray())return g.create(h.NA);const t=e.getCurrentColumn(),r=e.getColumnCount(),n=[];for(let u=0;u<r;u++)n.push(A.create(t+u+1));const s={calculateValueList:[n],rowCount:1,columnCount:r,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ee.create(s)}}class O1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return A.create(1);if(!e.isArray())return g.create(h.NA);const t=e.getColumnCount();return A.create(t)}}class D1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:A.create(0),s=e.isArray()?e.getRowCount():1,u=e.isArray()?e.getColumnCount():1,o=Math.max(t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),c=Math.max(t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),l=D(o,c,t,g.create(h.NA)),f=D(o,c,n,g.create(h.NA));if(o>1||c>1)return l.mapValue((R,p,N)=>{const S=f.get(p,N);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const{isError:P,errorObject:M}=this._checkRowsColumns(R,S,s,u);return P?M:e.isArray()?g.create(h.VALUE):e});if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const m=t.isArray()?t.get(0,0):t,d=n.isArray()?n.get(0,0):n,{isError:_,errorObject:E,rowsValue:b,columnsValue:y}=this._checkRowsColumns(m,d,s,u);return _?E:this._getResultArray(e,b,y,s,u)}_checkRowsColumns(e,t,r,n){if(e.isError())return{isError:!0,errorObject:e};if(t.isError())return{isError:!0,errorObject:t};const s=Math.trunc(+e.getValue()),u=Math.trunc(+t.getValue());return Number.isNaN(s)||Number.isNaN(u)?{isError:!0,errorObject:g.create(h.VALUE)}:Math.abs(s)>=r||Math.abs(u)>=n?{isError:!0,errorObject:g.create(h.CALC)}:{isError:!1,rowsValue:s,columnsValue:u}}_getResultArray(e,t,r,n,s){const u=t>=0?[t,n]:[0,n+t],o=r>=0?[r,s]:[0,s+r];let c;return t===0&&r===0?c=e:t===0?c=e.slice(void 0,o):r===0?c=e.slice(u,void 0):c=e.slice(u,o),c=c.map(l=>l.isNull()?A.create(0):l),n-t===1&&s-r===1?c.get(0,0):c}}class S1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",4)}calculate(e,t,r,n){const s=e.isArray()?e.getRowCount():1,u=e.isArray()?e.getColumnCount():1;let o=t,c=r!=null?r:A.create(u);const l=n!=null?n:g.create(h.NA);t.isNull()&&(o=A.create(s)),c.isNull()&&(c=A.create(u));const f=Math.max(o.isArray()?o.getRowCount():1,c.isArray()?c.getRowCount():1),m=Math.max(o.isArray()?o.getColumnCount():1,c.isArray()?c.getColumnCount():1),d=D(f,m,o,g.create(h.NA)),_=D(f,m,c,g.create(h.NA));if(f>1||m>1)return d.mapValue((P,M,w)=>{const x=_.get(M,w);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const{isError:I,errorObject:Y}=this._checkRowsColumnsPadWith(P,x,l,s,u);return I?Y:e.isArray()?e.get(0,0):e});if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const E=o.isArray()?o.get(0,0):o,b=c.isArray()?c.get(0,0):c,{isError:y,errorObject:R,rowsValue:p,columnsValue:N,padWithObject:S}=this._checkRowsColumnsPadWith(E,b,l,s,u);return y?R:this._getResultArray(e,p,N,S,s,u)}_checkRowsColumnsPadWith(e,t,r,n,s){if(e.isError())return{isError:!0,errorObject:e};if(t.isError())return{isError:!0,errorObject:t};const u=Math.trunc(+e.getValue()),o=Math.trunc(+t.getValue());if(Number.isNaN(u)||Number.isNaN(o))return{isError:!0,errorObject:g.create(h.VALUE)};if(Math.abs(u)<n||Math.abs(o)<s)return{isError:!0,errorObject:g.create(h.VALUE)};let c=r;if(r.isArray()){const l=r.getRowCount(),f=r.getColumnCount();if(l>1||f>1)return{isError:!0,errorObject:g.create(h.VALUE)};c=r.get(0,0)}return{isError:!1,rowsValue:u,columnsValue:o,padWithObject:c}}_getResultArray(e,t,r,n,s,u){let o=[];e.isArray()?o=e.map(f=>f.isNull()?A.create(0):f).getArrayValue():o=[[e]];const c=Math.max(0,t-s),l=Math.max(0,r-u);for(let f=0;f<c;f++)o.push(new Array(u).fill(n));for(let f=0;f<l;f++)o.forEach(m=>{m.push(n)});return t===1&&r===1?o[0][0]:ee.create({calculateValueList:o,rowCount:o.length,columnCount:o[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class L1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:g.create(h.CALC);if(e.isError())return e;if(t.isError())return t;const s=e.isArray()?e.getRowCount():1,u=e.isArray()?e.getColumnCount():1,o=t.isArray()?t.getRowCount():1,c=t.isArray()?t.getColumnCount():1;return o>1&&c>1||o===1&&c!==u||c===1&&o!==s?g.create(h.VALUE):s===1&&u===1?this._getResultArrayByR1C1(e,t,n):o===1?c!==u?g.create(h.VALUE):this._getResultArrayByR1(s,u,e,t,n):c===1?o!==s?g.create(h.VALUE):this._getResultArrayByC1(s,u,e,t,n):n}_getResultArrayByR1C1(e,t,r){let n=e,s=t;return n.isArray()&&(n=n.get(0,0)),s.isArray()&&(s=s.get(0,0)),s.isString()&&(s=s.convertToNumberObjectValue()),s.isError()?s:+s.getValue()?n:r}_getResultArrayByR1(e,t,r,n,s){const u=[];for(let o=0;o<t;o++){let c=n.get(0,o);if(c.isString()&&(c=c.convertToNumberObjectValue()),c.isError())return c;if(+c.getValue())for(let f=0;f<e;f++){u[f]||(u[f]=[]);const m=r.get(f,o);u[f].push(m)}}return u.length===0?s:ee.create({calculateValueList:u,rowCount:u.length,columnCount:u[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getResultArrayByC1(e,t,r,n,s){const u=[];for(let o=0;o<e;o++){let c=n.get(o,0);if(c.isString()&&(c=c.convertToNumberObjectValue()),c.isError())return c;if(!+c.getValue())continue;const f=[];for(let m=0;m<t;m++){const d=r.get(o,m);f.push(d)}u.push(f)}return u.length===0?s:ee.create({calculateValueList:u,rowCount:u.length,columnCount:u[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}var fe=(a=>(a.ADDRESS="ADDRESS",a.AREAS="AREAS",a.CHOOSE="CHOOSE",a.CHOOSECOLS="CHOOSECOLS",a.CHOOSEROWS="CHOOSEROWS",a.COLUMN="COLUMN",a.COLUMNS="COLUMNS",a.DROP="DROP",a.EXPAND="EXPAND",a.FILTER="FILTER",a.FORMULATEXT="FORMULATEXT",a.GETPIVOTDATA="GETPIVOTDATA",a.HLOOKUP="HLOOKUP",a.HSTACK="HSTACK",a.HYPERLINK="HYPERLINK",a.IMAGE="IMAGE",a.INDEX="INDEX",a.INDIRECT="INDIRECT",a.LOOKUP="LOOKUP",a.MATCH="MATCH",a.OFFSET="OFFSET",a.ROW="ROW",a.ROWS="ROWS",a.RTD="RTD",a.SORT="SORT",a.SORTBY="SORTBY",a.TAKE="TAKE",a.TOCOL="TOCOL",a.TOROW="TOROW",a.TRANSPOSE="TRANSPOSE",a.UNIQUE="UNIQUE",a.VLOOKUP="VLOOKUP",a.VSTACK="VSTACK",a.WRAPCOLS="WRAPCOLS",a.WRAPROWS="WRAPROWS",a.XLOOKUP="XLOOKUP",a.XMATCH="XMATCH",a))(fe||{});class P1 extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){if(e.isError())return e;if(t.isError())return g.create(h.REF);if(!t.isArray()||r.isError()||n!=null&&n.isError())return g.create(h.NA);const s=this.getZeroOrOneByOneDefault(n);if(s==null)return g.create(h.VALUE);const u=this.getIndexNumValue(r);if(u instanceof g)return u;const o=t.slice([0,1]),c=t.slice([u-1,u]);return o==null||c==null?g.create(h.REF):e.isArray()?e.map(l=>this._handleSingleObject(l,o,c,s)):this._handleSingleObject(e,o,c,s)}_handleSingleObject(e,t,r,n){return n===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class M1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=Math.max(...e.map(n=>n.isArray()?n.getRowCount():1)),r=[];for(let n=0;n<e.length;n++){const s=e[n];if(s.isError())return s;const u=s.isArray()?s.getRowCount():1,o=s.isArray()?s.getColumnCount():1;for(let c=0;c<t;c++){r[c]||(r[c]=[]);for(let l=0;l<o;l++){let f=s;s.isArray()&&(f=s.get(c,l)),c>u-1||!f?r[c].push(g.create(h.NA)):r[c].push(f)}}}return ee.create({calculateValueList:r,rowCount:r.length,columnCount:r[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class w1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",4);C(this,"needsReferenceObject",!0)}calculate(e,t,r,n){if(e.isError())return e;if(t!=null&&t.isError())return t;if(r!=null&&r.isError())return r;if(n!=null&&n.isError())return n;let s=0,u=0;if(e.isValueObject())s=1,u=1;else if(e.isReferenceObject()){const{startRow:d,endRow:_,startColumn:E,endColumn:b}=e.getRangePosition();s=_-d+1,u=b-E+1}else return g.create(h.VALUE);let o,c;s===1&&u>1&&r==null?(c=t!=null?t:A.create(0),o=A.create(0)):(o=t!=null?t:A.create(0),c=r!=null?r:A.create(0));let l=n!=null?n:A.create(1);o.isReferenceObject()&&(o=o.toArrayValueObject()),c.isReferenceObject()&&(c=c.toArrayValueObject()),l.isReferenceObject()&&(l=l.toArrayValueObject());const f=Math.max(o.isArray()?o.getRowCount():1,c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1),m=Math.max(o.isArray()?o.getColumnCount():1,c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1);if(o=o,c=c,l=l,f===1&&m===1)return this._calculateSingleCell(e,o,c,l);{const d=D(f,m,o,g.create(h.NA)),_=D(f,m,c,g.create(h.NA)),E=D(f,m,l,g.create(h.NA));return d.map((b,y,R)=>{const p=_.get(y,R)||J.create(),N=E.get(y,R)||J.create(),S=this._calculateSingleCell(e,b,p,N);return S.isReferenceObject()?S.toArrayValueObject().getFirstCell():S})}}_calculateSingleCell(e,t,r,n){if(t.isError())return t;const s=this._getNumberValue(t);if(s===void 0||s<0)return g.create(h.VALUE);if(r.isError())return r;const u=this._getNumberValue(r);if(u===void 0||u<0)return g.create(h.VALUE);if(n.isError())return n;const o=this._getAreaNumberValue(n);return o===void 0||o<1?g.create(h.VALUE):e.isReferenceObject()?this._getReferenceObject(e,s,u,o):e.isValueObject()&&s===1&&u===1?e:g.create(h.REF)}_getNumberValue(e){if(e==null)return 0;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getAreaNumberValue(e){if(e==null)return 1;let t=0;if(e.isBoolean())e.getValue()===!0&&(t=1);else{if(e.isString())return;e.isNumber()?t=Math.floor(e.getValue()):e.isNull()&&(t=0)}return t}_getReferenceObject(e,t,r,n){const{startRow:s,endRow:u,startColumn:o,endColumn:c}=e.getRangePosition();let l=0,f=0,m=0,d=0;if(t===0?(l=s,f=u):l=f=s+t-1,r===0?(m=o,d=c):m=d=o+r-1,l>u||m>c)return g.create(h.REF);const _={startRow:l,startColumn:m,endRow:f,endColumn:d};return this.createReferenceObject(e,_)}}class j1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}isAddress(){return!0}calculate(e,t){if(e.isError())return e;if(t!=null&&t.isError())return t;let r=this.getZeroOrOneByOneDefault(t);r==null&&(r=1);let n=e;if(e.isArray()){const s=e.getRowCount(),u=e.getColumnCount();if(s>1||u>1)return e.map(()=>g.create(h.VALUE));n=e.getFirstCell()}return this._handleSingleObject(n,r)}_handleSingleObject(e,t){const r=`${e.getValue()}`;if(r.trim()==="")return g.create(h.REF);const n=this._convertToDefinedName(r);if(t===0){const f=mi(n),{range:m,sheetName:d,unitId:_}=f,E=new yr(m);return E.setForcedUnitIdDirect(_),E.setForcedSheetName(d),this._setDefault(E)}if(cr(n))return this._setDefault(new us(n));if(sa(n))return this._setDefault(new cs(n));if(aa(n))return this._setDefault(new os(n));const s=wt(n),{range:u,sheetName:o,unitId:c}=s;if(Number.isNaN(u.startRow)||u.endRow+1>1048576||Number.isNaN(u.startColumn)||u.endColumn+1>16384)return g.create(h.REF);const l=new yr(u);return l.setForcedUnitIdDirect(c),l.setForcedSheetName(o),this._setDefault(l)}_setDefault(e){return this.unitId==null||this.subUnitId==null?g.create(h.REF):(e.setDefaultUnitId(this.unitId),e.setDefaultSheetId(this.subUnitId),e)}_convertToDefinedName(e){const t=this.getDefinedName(e);if(t==null)return e;const r=t.formulaOrRefString;return r==null?e:r.startsWith(G.EQUALS)?r.slice(1):r}}class x1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3);C(this,"needsExpandParams",!0)}calculate(e,t,r){return e.isError()?e:t.isError()?g.create(h.REF):t.isArray()?r!=null&&r.isError()?r:t.getColumnCount()===1||t.getRowCount()===1?r!=null&&!r.isArray()?g.create(h.REF):this._handleVector(e,t,r):this._handleArray(e,t):g.create(h.VALUE)}_handleVector(e,t,r){let n=r;if(n==null)n=t;else if(n.getRowCount()!==t.getRowCount()||n.getColumnCount()!==t.getColumnCount())return g.create(h.REF);return e.isArray()?e.map(s=>this.binarySearch(s,t,n)):this.binarySearch(e,t,n)}_handleArray(e,t){const r=t.getRowCount(),n=t.getColumnCount();let s,u;return n>r?(s=t.slice([0,1]),u=t.slice([r-1,r])):(s=t.slice(void 0,[0,1]),u=t.slice(void 0,[n-1,n])),s==null||u==null?g.create(h.VALUE):e.isArray()?e.map(o=>this.binarySearch(o,s,u)):this.binarySearch(e,s,u)}}class U1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return g.create(h.REF);if(!t.isArray())return g.create(h.VALUE);const n=t.getRowCount(),s=t.getColumnCount();if(n!==1&&s!==1||r!=null&&r.isError())return g.create(h.NA);const u=this.getMatchTypeValue(r);return u==null?g.create(h.VALUE):e.isArray()?e.map(o=>this._handleSingleObject(o,t,u)):this._handleSingleObject(e,t,u)}_handleSingleObject(e,t,r){const n=this._getSearchModeValue(r),s=t.orderSearch(e,n);if(s==null)return g.create(h.NA);if(s instanceof g)return s;const u=t.getRowCount()===1?s.column+1:s.row+1;return A.create(u)}_getSearchModeValue(e){switch(e){case 1:return De.MIN;case 0:return De.NORMAL;case-1:return De.MAX}}}class T1 extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",5);C(this,"needsReferenceObject",!0)}isAddress(){return!0}calculate(e,t,r,n,s){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;if(n!=null&&n.isError())return n;if(s!=null&&s.isError())return s;if(!e.isReferenceObject())return g.create(h.VALUE);const u=e.getRowCount(),o=e.getColumnCount();let c=t;c.isReferenceObject()&&(c=c.toArrayValueObject());let l=r;l.isReferenceObject()&&(l=l.toArrayValueObject());let f=n!=null?n:A.create(u);f.isReferenceObject()&&(f=f.toArrayValueObject()),f.isNull()&&(f=A.create(u));let m=s!=null?s:A.create(o);m.isReferenceObject()&&(m=m.toArrayValueObject()),m.isNull()&&(m=A.create(o));const d=Math.max(c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1,f.isArray()?f.getRowCount():1,m.isArray()?m.getRowCount():1),_=Math.max(c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1,f.isArray()?f.getColumnCount():1,m.isArray()?m.getColumnCount():1);if(c=c,l=l,f=f,m=m,d===1&&_===1)return c=c.isArray()?c.get(0,0):c,l=l.isArray()?l.get(0,0):l,f=f.isArray()?f.get(0,0):f,m=m.isArray()?m.get(0,0):m,this._handleSingleObject(e,c,l,f,m);const E=D(d,_,c,g.create(h.NA)),b=D(d,_,l,g.create(h.NA)),y=D(d,_,f,g.create(h.NA)),R=D(d,_,m,g.create(h.NA));return E.mapValue((p,N,S)=>{const P=b.get(N,S),M=y.get(N,S),w=R.get(N,S);return p.isError()?p:P.isError()?P:M.isError()?M:w.isError()?w:this._handleSingleObject(e,p,P,M,w,!0)})}_handleSingleObject(e,t,r,n,s,u=!1){const{startRow:o,startColumn:c}=e.getRangePosition();let l=t;if(l.isString()&&(l=l.convertToNumberObjectValue()),l.isError())return l;let f=r;if(f.isString()&&(f=f.convertToNumberObjectValue()),f.isError())return f;const m=+l.getValue(),d=+f.getValue();if(typeof m!="number"||typeof d!="number")return g.create(h.VALUE);const _=o+m,E=c+d;if(_<0||E<0)return g.create(h.REF);const b=this.getIndexNumValue(n),y=this.getIndexNumValue(s);if(typeof b!="number"||typeof y!="number")return g.create(h.VALUE);if(b===0||y===0)return g.create(h.REF);const R=b>0?_+b-1:_+b+1,p=y>0?E+y-1:E+y+1;if(R<0||p<0)return g.create(h.REF);if(u)return g.create(h.VALUE);const N=_<R?_:R,S=E<p?E:p,P=_>R?_:R,M=E>p?E:p,w={startRow:N,startColumn:S,endRow:P,endColumn:M};return this.createReferenceObject(e,w)}}class v1 extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",1)}calculate(e){if(e==null)return A.create(this.row+1);if(e.isError())return e;if(!e.isArray())return g.create(h.NA);const t=e.getCurrentRow(),r=e.getRowCount(),n=[];for(let u=0;u<r;u++)n.push([A.create(t+u+1)]);const s={calculateValueList:n,rowCount:r,columnCount:1,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ee.create(s)}}class B1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isString()||e.isNumber()||e.isBoolean())return A.create(1);if(!e.isArray())return g.create(h.NA);const t=e.getRowCount();return A.create(t)}}class F1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",4)}calculate(e,t,r,n){const s=t!=null?t:A.create(1),u=r!=null?r:A.create(1),o=n!=null?n:F.create(!1);if(o.isArray()){const c=o.getRowCount(),l=o.getColumnCount();if(c===1&&l===1){const f=o.get(0,0);return this._handleSingleObject(e,s,u,f)}return o.map(f=>{const m=this._handleSingleObject(e,s,u,f);return m.isArray()?m.get(0,0):m})}return this._handleSingleObject(e,s,u,o)}_handleSingleObject(e,t,r,n){if(e.isError())return e;const s=e.isArray()?e.getRowCount():1,u=e.isArray()?e.getColumnCount():1,o=this._checkArrayError(t);if(o.isError())return o;const c=Math.floor(+o.getValue());if(c<1)return g.create(h.VALUE);const l=this._checkArrayError(r);if(l.isError())return l;const f=Math.floor(+l.getValue());if(f!==-1&&f!==1)return g.create(h.VALUE);let m=n;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;if(!e.isArray()||s===1&&u===1)return e;const d=+m.getValue();return this._getResult(e,c,f,d,s,u)}_checkArrayError(e){let t=e;if(t.isArray()){const r=t.getRowCount(),n=t.getColumnCount();if(r>1||n>1)return g.create(h.VALUE);t=t.get(0,0)}return t.isString()&&(t=t.convertToNumberObjectValue()),t}_getResult(e,t,r,n,s,u){if(n){if(t>s)return g.create(h.VALUE);const o=e.transpose().getArrayValue();return o.sort(this._sort(t-1,r)),ee.create({calculateValueList:o,rowCount:o.length,columnCount:o[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}).transpose()}else{if(t>u)return g.create(h.VALUE);const o=e.getArrayValue();return o.sort(this._sort(t-1,r)),ee.create({calculateValueList:o,rowCount:o.length,columnCount:o[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}_sort(e,t=1){const r=Qr();return t===1?this._sortAsc(e,r):this._sortDesc(e,r)}_sortAsc(e,t){return(r,n)=>{const s=r[e],u=n[e];if(s==null||s.isNull())return 1;if(u==null||u.isNull())return-1;if(s.isError()&&u.isError())return 0;if(s.isError())return 1;if(u.isError())return-1;const o=s.getValue(),c=u.getValue();return s.isBoolean()&&o===!0?1:u.isBoolean()&&c===!0?-1:s.isBoolean()&&o===!1?1:u.isBoolean()&&c===!1?-1:s.isNumber()&&u.isNumber()?+o-+c:t(o,c)}}_sortDesc(e,t){return(r,n)=>{const s=r[e],u=n[e];if(s==null||s.isNull())return 1;if(u==null||u.isNull())return-1;if(s.isError()&&u.isError())return 0;if(s.isError())return-1;if(u.isError())return 1;const o=s.getValue(),c=u.getValue();return s.isBoolean()&&o===!0?-1:u.isBoolean()&&c===!0?1:s.isBoolean()&&o===!1?-1:u.isBoolean()&&c===!1?1:s.isNumber()&&u.isNumber()?+c-+o:t(c,o)}}}class I1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",255)}calculate(e,...t){t.length===1&&t.push(A.create(1));const r=this._getVariantsError(e,...t),{maxRowLength:n,maxColumnLength:s}=Zt(t);if(r.isError()){const c=D(n,s,r);return n===1&&s===1?c.get(0,0):c}const u=t.map((c,l)=>l%2===0?c:D(n,s,c,g.create(h.NA))),o=this._getResultArray(e,u,n,s);return n===1&&s===1?o[0][0]:ee.create({calculateValueList:o,rowCount:o.length,columnCount:o[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}_getVariantsError(e,...t){if(e.isError())return e;for(let o=0;o<t.length;o++){const c=t[o];if(c.isError())return c}if(t.length<2||t.length%2!==0)return g.create(h.VALUE);const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t[0].isArray()?t[0].getRowCount():1,u=t[0].isArray()?t[0].getColumnCount():1;if((s>1||u>1)&&(s>1&&u>1||s===1&&u!==n||u===1&&s!==r))return g.create(h.VALUE);for(let o=2;o<t.length;o++){if(o%2===1)continue;const c=t[o].isArray()?t[o].getRowCount():1,l=t[o].isArray()?t[o].getColumnCount():1;if(c!==s||l!==u)return g.create(h.VALUE)}return F.create(!0)}_getResultArray(e,t,r,n){const s=e.isArray()?e.getRowCount():1,u=e.isArray()?e.getColumnCount():1,o=t[0].isArray()?t[0].getRowCount():1,c=t[0].isArray()?t[0].getColumnCount():1,l=[];for(let f=0;f<r;f++){l[f]=[];for(let m=0;m<n;m++){const{isError:d,errorObject:_,byArrays:E,sortOrders:b}=this._getByArraysAndSortOrders(t,f,m,c);if(d){l[f].push(_);continue}if(!e.isArray()||s===1&&u===1){l[f].push(e);continue}let y=e.getArrayValue();o===1&&c===1||(o===1?(y=y.concat(E),y=this._transposeArray(y),y.sort(this._sort(s,b)),y=this._transposeArray(y).slice(0,s)):c===1&&(y=this._transposeArray(y),y=y.concat(E),y=this._transposeArray(y),y.sort(this._sort(u,b)),y=y.map(p=>p.slice(0,u))));const R=ee.create({calculateValueList:y,rowCount:y.length,columnCount:y[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column});if(r>1||n>1){l[f].push(R.get(0,0));continue}l[f].push(R)}}return l}_getByArraysAndSortOrders(e,t,r,n){const s=[],u=[];let o=!1,c=null;for(let l=0;l<e.length;l++){if(l%2===1)continue;const f=e[l];let m=e[l+1].get(t,r);if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError()){o=!0,c=m;break}const d=Math.floor(+m.getValue());if(d!==-1&&d!==1){o=!0,c=g.create(h.VALUE);break}if(u.push(d),f.isArray()){let _=f.getArrayValue();n===1&&(_=this._transposeArray(_)),s.push(_[0])}else s.push([f])}return{isError:o,errorObject:c,byArrays:s,sortOrders:u}}_transposeArray(e){const t=e.length,r=e[0].length,n=[];for(let s=0;s<r;s++){n[s]=[];for(let u=0;u<t;u++)n[s][u]=e[u][s]}return n}_sort(e,t){const r=Qr();return(n,s)=>{let u=n[e],o=s[e],c=this._compare(u,o,t[0],r);if(c===0&&t.length>1){for(let l=1;l<t.length;l++)if(u=n[e+l],o=s[e+l],c=this._compare(u,o,t[l],r),c!==0)return c}return c}}_compare(e,t,r,n){return r===1?this._asc(e,t,n):this._desc(e,t,n)}_asc(e,t,r){if(e==null||e.isNull())return 1;if(t==null||t.isNull())return-1;if(e.isError()&&t.isError())return 0;if(e.isError())return 1;if(t.isError())return-1;const n=e.getValue(),s=t.getValue();return e.isBoolean()&&n===!0?1:t.isBoolean()&&s===!0?-1:e.isBoolean()&&n===!1?1:t.isBoolean()&&s===!1?-1:e.isNumber()&&t.isNumber()?+n-+s:r(n,s)}_desc(e,t,r){if(e==null||e.isNull())return 1;if(t==null||t.isNull())return-1;if(e.isError()&&t.isError())return 0;if(e.isError())return-1;if(t.isError())return 1;const n=e.getValue(),s=t.getValue();return e.isBoolean()&&n===!0?-1:t.isBoolean()&&s===!0?1:e.isBoolean()&&n===!1?-1:t.isBoolean()&&s===!1?1:e.isNumber()&&t.isNumber()?+s-+n:r(s,n)}}class k1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){const n=e.isArray()?e.getRowCount():1,s=e.isArray()?e.getColumnCount():1;let u=t,o=r!=null?r:A.create(s);t.isNull()&&(u=A.create(n)),o.isNull()&&(o=A.create(s));const c=Math.max(u.isArray()?u.getRowCount():1,o.isArray()?o.getRowCount():1),l=Math.max(u.isArray()?u.getColumnCount():1,o.isArray()?o.getColumnCount():1),f=D(c,l,u,g.create(h.NA)),m=D(c,l,o,g.create(h.NA));if(c>1||l>1)return f.mapValue((p,N,S)=>{const P=m.get(N,S);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const{isError:M,errorObject:w}=this._checkRowsColumns(p,P,n,s);return M?w:e.isArray()?g.create(h.VALUE):e});if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);const d=u.isArray()?u.get(0,0):u,_=o.isArray()?o.get(0,0):o,{isError:E,errorObject:b,rowsValue:y,columnsValue:R}=this._checkRowsColumns(d,_,n,s);return E?b:this._getResultArray(e,y,R,n,s)}_checkRowsColumns(e,t,r,n){if(e.isError())return{isError:!0,errorObject:e};if(t.isError())return{isError:!0,errorObject:t};let s=Math.trunc(+e.getValue()),u=Math.trunc(+t.getValue());return Number.isNaN(s)||Number.isNaN(u)?{isError:!0,errorObject:g.create(h.VALUE)}:Math.abs(s)===0||Math.abs(u)===0?{isError:!0,errorObject:g.create(h.CALC)}:(s>r&&(s=r),u>n&&(u=n),{isError:!1,rowsValue:s,columnsValue:u})}_getResultArray(e,t,r,n,s){if(!e.isArray())return e;const u=t>=0?[0,t]:[n+t,n],o=r>=0?[0,r]:[s+r,s];let c;return t===n&&r===s?c=e:t===n?c=e.slice(void 0,o):r===s?c=e.slice(u,void 0):c=e.slice(u,o),c=c.map(l=>l.isNull()?A.create(0):l),t===1&&r===1?c.get(0,0):c}}class $1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:A.create(0),s=r!=null?r:F.create(!1),u=Math.max(n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),o=Math.max(n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=D(u,o,n,g.create(h.NA)),l=D(u,o,s,g.create(h.NA)),f=c.mapValue((m,d,_)=>{const E=l.get(d,_);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);if(m.isError())return m;if(E.isError())return E;const b=Math.trunc(+m.getValue()),y=+E.getValue();if(Number.isNaN(b)||b<0||b>3||Number.isNaN(y))return g.create(h.VALUE);if(!e.isArray())return e;let R=[];return y?R=this._getArrayValueByColumn(e,b):R=this._getArrayValueByRow(e,b),R.length===0?g.create(h.CALC):u>1||o>1||R.length===1?R[0]:ee.create({calculateValueList:R.map(p=>[p]),rowCount:R.length,columnCount:1,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return u===1&&o===1?f.get(0,0):f}_getArrayValueByColumn(e,t){const r=e,n=r.getRowCount(),s=r.getColumnCount(),u=[];for(let o=0;o<s;o++)for(let c=0;c<n;c++){const l=r.get(c,o);this._isIgnore(l,t)||u.push(l.isNull()?A.create(0):l)}return u}_getArrayValueByRow(e,t){const r=e,n=r.getRowCount(),s=r.getColumnCount(),u=[];for(let o=0;o<n;o++)for(let c=0;c<s;c++){const l=r.get(o,c);this._isIgnore(l,t)||u.push(l.isNull()?A.create(0):l)}return u}_isIgnore(e,t){switch(t){case 0:return!1;case 1:return e.isNull();case 2:return e.isError();case 3:return e.isNull()||e.isError();default:return!1}}}class Y1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:A.create(0),s=r!=null?r:F.create(!1),u=Math.max(n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),o=Math.max(n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=D(u,o,n,g.create(h.NA)),l=D(u,o,s,g.create(h.NA)),f=c.mapValue((m,d,_)=>{const E=l.get(d,_);if(e.isError())return e;if(m.isError())return m;if(E.isError())return E;const b=Math.trunc(+m.getValue()),y=+E.getValue();if(Number.isNaN(b)||b<0||b>3||Number.isNaN(y)||e.isNull())return g.create(h.VALUE);if(!e.isArray())return e;let R=[];return y?R=this._getArrayValueByColumn(e,b):R=this._getArrayValueByRow(e,b),R.length===0?g.create(h.CALC):u>1||o>1||R.length===1?R[0]:ee.create({calculateValueList:[R],rowCount:1,columnCount:R.length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return u===1&&o===1?f.get(0,0):f}_getArrayValueByColumn(e,t){const r=e,n=r.getRowCount(),s=r.getColumnCount(),u=[];for(let o=0;o<s;o++)for(let c=0;c<n;c++){const l=r.get(c,o);this._isIgnore(l,t)||u.push(l.isNull()?A.create(0):l)}return u}_getArrayValueByRow(e,t){const r=e,n=r.getRowCount(),s=r.getColumnCount(),u=[];for(let o=0;o<n;o++)for(let c=0;c<s;c++){const l=r.get(o,c);this._isIgnore(l,t)||u.push(l.isNull()?A.create(0):l)}return u}_isIgnore(e,t){switch(t){case 0:return!1;case 1:return e.isNull();case 2:return e.isError();case 3:return e.isNull()||e.isError();default:return!1}}}class H1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isError())return e;if(e.isArray()){const t=e.getRowCount(),r=e.getColumnCount();return t===1&&r===1?e.get(0,0):e.transpose()}return e}}class Q1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:F.create(!1),s=r!=null?r:F.create(!1),u=e.isArray()?e.getRowCount():1,o=e.isArray()?e.getColumnCount():1,c=Math.max(n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),l=Math.max(n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),f=D(c,l,n,g.create(h.NA)),m=D(c,l,s,g.create(h.NA)),d=f.map((_,E,b)=>{let y=_,R=m.get(E,b);if(e.isError())return e;if(y.isString()&&(y=y.convertToNumberObjectValue()),y.isError())return y;if(R.isString()&&(R=R.convertToNumberObjectValue()),R.isError())return R;const p=+y.getValue(),N=+R.getValue();let S;return!p&&u===1||p&&o===1?S=e:S=this._getResult(e,p,N),(c>1||l>1)&&(S!=null&&S.isArray())?S.get(0,0):S});return c===1&&l===1?d.get(0,0):d}_getResult(e,t,r){const n=e.isArray()?e.getRowCount():1,s=e.isArray()?e.getColumnCount():1;let u=e.getArrayValue(),o=n,c=s;t&&(u=this._transposeArray(u),o=s,c=n);const l=this._getRepeatRows(u,o,c);if(l.length>0){const f=[];l.forEach(m=>{m.forEach((d,_)=>{(_!==0||r)&&f.push(d)})}),u=u.filter((m,d)=>!f.includes(d))}return u.length===0?g.create(h.CALC):(t&&(u=this._transposeArray(u)),ee.create({calculateValueList:u,rowCount:u.length,columnCount:u[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}))}_getRepeatRows(e,t,r){let n=[];for(let s=0;s<r;s++)if(s===0){const u=new Array(t).fill(null).map((o,c)=>({r:c,valueObject:e[c][s]}));n=this._getRepeatRowsByObjects(u)}else{if(n.length===0)break;let u=[];n.forEach(o=>{const c=o.map(f=>({r:f,valueObject:e[f][s]})),l=this._getRepeatRowsByObjects(c);u=u.concat(l)}),n=u}return n}_getRepeatRowsByObjects(e){const t=new Map;return e.forEach(r=>{const n=r.r,s=r.valueObject;let u=s.getValue();if(s.isNull()?u=null:s.isString()&&O.isRealNum(u)&&(u=+u),!t.has(u))t.set(u,[n]);else{const o=t.get(u);o.push(n),t.set(u,o)}}),Array.from(t.values()).filter(r=>r.length>1)}_transposeArray(e){const t=e.length,r=e[0].length,n=[];for(let s=0;s<r;s++){n[s]=[];for(let u=0;u<t;u++)n[s][u]=e[u][s]}return n}}class W1 extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){if(e.isError())return e;if(t.isError())return t;if(!t.isArray())return g.create(h.VALUE);if(r.isError())return r;if(n!=null&&n.isError())return n;const s=n!=null?n:F.create(!0);return Ga(e)&&Ga(s)&&r.isArray()?this._handleArrayColIndexNum(e,t,r,s):this._handleNonArrayColIndexNum(e,t,r,s)}_handleArrayColIndexNum(e,t,r,n){const s=e.isArray()?e.getFirstCell():e,u=this.getZeroOrOneByOneDefault(n);if(u==null)return g.create(h.VALUE);let o;const c=[];return r.iterator((l,f,m)=>{if(l==null)return o=g.create(h.VALUE),!1;const d=this._handleTableArray(s,t,l,u);if(d.isError())return o=d,!1;c[f]===void 0&&(c[f]=[]),c[f][m]=d}),o||Ut(c,c.length,c[0].length,this.unitId||"",this.subUnitId||"")}_handleNonArrayColIndexNum(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1),o=D(s,u,e),c=D(s,u,n);return o.map((l,f,m)=>{if(l.isError())return l;const d=c.get(f,m);if(d==null)return g.create(h.VALUE);if(d.isError())return d;const _=this.getZeroOrOneByOneDefault(d);return _==null?g.create(h.VALUE):this._handleTableArray(l,t,r,_)})}_handleTableArray(e,t,r,n){let s=this.getIndexNumValue(r);if(s instanceof g)return s;if(s=Math.floor(s),s<1)return g.create(h.VALUE);const u=t.slice(void 0,[0,1]);if(u==null)return g.create(h.VALUE);const o=t.slice(void 0,[s-1,s]);return o==null?g.create(h.REF):this._handleSingleObject(e,u,o,n)}_handleSingleObject(e,t,r,n){return n===0?this.equalSearch(e,t,r):this.binarySearch(e,t,r)}}class G1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=Math.max(...e.map(n=>n.isArray()?n.getColumnCount():1)),r=[];for(let n=0;n<e.length;n++){const s=e[n];if(s.isError())return s;const u=s.isArray()?s.getRowCount():1,o=s.isArray()?s.getColumnCount():1;for(let c=0;c<u;c++){const l=[];for(let f=0;f<t;f++){let m=s;s.isArray()&&(m=s.get(c,f)),f>o-1||!m?l.push(g.create(h.NA)):l.push(m)}r.push(l)}}return ee.create({calculateValueList:r,rowCount:r.length,columnCount:r[0].length||0,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})}}class q1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){let n=r!=null?r:g.create(h.NA);n.isNull()&&(n=g.create(h.NA));const s=e.isArray()?e.getRowCount():1,u=e.isArray()?e.getColumnCount():1,o=Math.max(t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),c=Math.max(t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),l=D(o,c,t,g.create(h.NA)),f=D(o,c,n,g.create(h.NA)),m=l.mapValue((d,_,E)=>{const b=f.get(_,E);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);if(d.isError())return d;const y=Math.trunc(+d.getValue());if(s>1&&u>1||Number.isNaN(y))return g.create(h.VALUE);if(y<1)return g.create(h.NUM);const R=e.isArray()?e.getArrayValue().flat():[e],p=this._getWrapArray(R,y,b);return o>1||c>1||p.length===1&&p[0].length===1?p[0][0]:ee.create({calculateValueList:p,rowCount:p.length,columnCount:p[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return o===1&&c===1?m.get(0,0):m}_getWrapArray(e,t,r){const n=Math.ceil(e.length/t),s=n>1?t:e.length,u=[];for(let o=0;o<n;o++)for(let c=0;c<s;c++){u[c]||(u[c]=[]);const l=o*s+c;l<e.length?u[c].push(e[l].isNull()?A.create(0):e[l]):u[c].push(r)}return u}}class X1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){let n=r!=null?r:g.create(h.NA);n.isNull()&&(n=g.create(h.NA));const s=e.isArray()?e.getRowCount():1,u=e.isArray()?e.getColumnCount():1,o=Math.max(t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),c=Math.max(t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),l=D(o,c,t,g.create(h.NA)),f=D(o,c,n,g.create(h.NA)),m=l.mapValue((d,_,E)=>{const b=f.get(_,E);if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);if(d.isError())return d;const y=Math.trunc(+d.getValue());if(s>1&&u>1||Number.isNaN(y))return g.create(h.VALUE);if(y<1)return g.create(h.NUM);const R=e.isArray()?e.getArrayValue().flat():[e],p=this._getWrapArray(R,y,b);return o>1||c>1||p.length===1&&p[0].length===1?p[0][0]:ee.create({calculateValueList:p,rowCount:p.length,columnCount:p[0].length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column})});return o===1&&c===1?m.get(0,0):m}_getWrapArray(e,t,r){const n=Math.ceil(e.length/t),s=n>1?t:e.length,u=[];for(let o=0;o<n;o++){const c=[];for(let l=0;l<s;l++){const f=o*s+l;f<e.length?c.push(e[f].isNull()?A.create(0):e[f]):c.push(r)}u.push(c)}return u}}class K1 extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){if(e.isError())return e;if(t.isError()||r.isError())return g.create(h.REF);if(!t.isArray()||!r.isArray())return g.create(h.VALUE);const o=t.getRowCount(),c=t.getColumnCount(),l=r.getRowCount(),f=r.getColumnCount();if(o!==1&&c!==1||o===1&&c>1&&c!==f||c===1&&o>1&&o!==l)return g.create(h.VALUE);if(n!=null&&n.isError()||s!=null&&s.isError()||u!=null&&u.isError())return g.create(h.NA);const m=n!=null?n:g.create(h.NA),d=this.getIndexNumValue(s||A.create(0));if(d instanceof g)return d;const _=this.getIndexNumValue(u||A.create(1));return _ instanceof g?_:this._getResult(e,t,r,m,d,_,o,c,l,f)}_getResult(e,t,r,n,s,u,o,c,l,f){const m=e.isArray()?e.getRowCount():1,d=e.isArray()?e.getColumnCount():1;if(m>1||d>1){let y;return o===1?y=r.slice([0,1]):y=r.slice(void 0,[0,1]),y==null?g.create(h.NA):e.map(R=>{const p=this._checkErrorCombination(s,u);if(p)return p;const N=this._handleSingleObject(R,t,y,s,u);return N.isError()?n:N})}const _=e.isArray()?e.get(0,0):e;if(c===f&&o===l){const y=this._checkErrorCombination(s,u);if(y)return y;const R=this._handleSingleObject(_,t,r,s,u);return R.isError()?n:R}let E=0;c===f&&(E=1);const b=this._handleExpandObject(_,t,r,s,u,E);return b==null?g.create(h.NA):b}_handleExpandObject(e,t,r,n,s,u=0){if((s===2||s===-2)&&n!==2){const o=Gn(s),c=Wn(n);return this.binarySearchExpand(e,t,r,u,o,c)}return n===2?this.fuzzySearchExpand(e,t,r,s!==-1,u):n===-1||n===1?this.orderSearchExpand(e,t,r,n===1?De.MAX:De.MIN,s===-1,u):this.equalSearchExpand(e,t,r,s!==-1,u)}_handleSingleObject(e,t,r,n,s){if((s===2||s===-2)&&n!==2){const u=Gn(s),o=Wn(n);return this.binarySearch(e,t,r,u,o)}return n===2?this.fuzzySearch(e,t,r,s!==-1):n===-1||n===1?this.orderSearch(e,t,r,n===1?De.MAX:De.MIN,s===-1):this.equalSearch(e,t,r,s!==-1)}_checkErrorCombination(e,t){return e===2&&(t===-2||t===2)?g.create(h.VALUE):null}}class Z1 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",4)}calculate(e,t,r,n){if(e.isError())return e;if(t.isError())return g.create(h.REF);if(!t.isArray())return g.create(h.VALUE);const s=t.getRowCount(),u=t.getColumnCount();if(s!==1&&u!==1)return g.create(h.VALUE);if(r!=null&&r.isError()||n!=null&&n.isError())return g.create(h.NA);const o=this.getIndexNumValue(r||A.create(0));if(o instanceof g)return o;const c=this.getIndexNumValue(n||A.create(1));return c instanceof g?c:e.isArray()?e.map(l=>this._handleSingleObject(l,t,o,c)):this._handleSingleObject(e,t,o,c)}_handleSingleObject(e,t,r,n){let s;if((n===2||n===-2)&&r!==2){const u=Gn(n),o=Wn(r);s=t.binarySearch(e,u,o)}else if(r===2){const u=t.compare(e,B.EQUALS);let o;if(n!==-1?o=u.getFirstTruePosition():o=u.getLastTruePosition(),o==null)return g.create(h.NA);s=t.getRowCount()===1?o.column:o.row}else if(r===-1||r===1){const u=t.orderSearch(e,r===1?De.MAX:De.MIN,n===-1);if(u==null)return g.create(h.NA);if(u instanceof g)return u;s=t.getRowCount()===1?u.column:u.row}else{const u=t.isEqual(e);let o;if(n!==-1?o=u.getFirstTruePosition():o=u.getLastTruePosition(),o==null)return g.create(h.NA);s=t.getRowCount()===1?o.column:o.row}return s==null?g.create(h.NA):A.create(s+1)}}const hu=[[b1,fe.ADDRESS],[y1,fe.AREAS],[R1,fe.CHOOSE],[p1,fe.CHOOSECOLS],[N1,fe.CHOOSEROWS],[V1,fe.COLUMN],[O1,fe.COLUMNS],[D1,fe.DROP],[S1,fe.EXPAND],[L1,fe.FILTER],[P1,fe.HLOOKUP],[M1,fe.HSTACK],[w1,fe.INDEX],[j1,fe.INDIRECT],[x1,fe.LOOKUP],[U1,fe.MATCH],[T1,fe.OFFSET],[v1,fe.ROW],[B1,fe.ROWS],[F1,fe.SORT],[I1,fe.SORTBY],[k1,fe.TAKE],[$1,fe.TOCOL],[Y1,fe.TOROW],[H1,fe.TRANSPOSE],[Q1,fe.UNIQUE],[W1,fe.VLOOKUP],[G1,fe.VSTACK],[q1,fe.WRAPCOLS],[X1,fe.WRAPROWS],[K1,fe.XLOOKUP],[Z1,fe.XMATCH]];class z1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.abs()}}class J1 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.acos()}}class e0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.acosh()}}class t0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.isArray()?t.map(r=>r.isError()?r:gu(r)):gu(t)}}function gu(a){let i=a.getValue();if(a.isBoolean()&&(i=i?1:0),!Number.isFinite(i))return g.create(h.VALUE);i=Number(i);let e=Math.atan(1/i);return i<0&&(e+=Math.PI),Number.isNaN(e)?g.create(h.VALUE):A.create(e)}class r0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.isArray()?t.map(r=>r.isError()?r:du(r)):du(t)}}function du(a){let i=a.getValue();if(a.isBoolean()&&(i=i?1:0),!Number.isFinite(i))return g.create(h.VALUE);if(i=Number(i),Math.abs(i)<=1)return g.create(h.NUM);const e=1/2*Math.log((i+1)/(i-1));return Number.isNaN(e)?g.create(h.VALUE):A.create(e)}class n0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return A.create(0);if(e.isBoolean()||e.isNumber())return g.create(h.VALUE);let t=e.getValue().toLocaleString().toLocaleUpperCase();if(t.length>255)return g.create(h.VALUE);const r=t.startsWith("-");r&&(t=t.slice(1));let n=0;for(let s=0;s<t.length;s++){const u=mn.get(t[s])||0,o=mn.get(t[s+1])||0,c=mn.get(t[s+2])||0,l=mn.get(t[s+3])||0;if(!u||c>=o&&c>u||u===o&&u===c&&u===l||u===o/2)return g.create(h.VALUE);u<o?n-=u:n+=u}return A.create(r?-n:n)}}class s0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.asin()}}class a0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.asinh()}}class i0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.atan()}}class u0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e,n=t;return r.isString()&&(r=r.convertToNumberObjectValue()),r.isError()?r:(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:n.atan2(r))}}class o0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.atanh()}}class c0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3)}calculate(e,t,r){const n=r!=null?r:A.create(0);if(e.isError())return e;if(t.isError())return t;if(n.isError())return n;const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,n.isArray()?n.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,n.isArray()?n.getColumnCount():1),o=D(s,u,e,g.create(h.NA)),c=D(s,u,t,g.create(h.NA)),l=D(s,u,n,g.create(h.NA)),f=o.map((m,d,_)=>{const E=c.get(d,_),b=l.get(d,_);return this._handleSingleObject(m,E,b)});return f.getRowCount()===1&&f.getColumnCount()===1?f.getArrayValue()[0][0]:f}_handleSingleObject(e,t,r){let n=e;if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError())return n;let s=t;if(s.isString()&&(s=s.convertToNumberObjectValue()),s.isError())return s;let u=r;if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return u;const o=Math.floor(+n.getValue()),c=Math.floor(+s.getValue()),l=Math.floor(+u.getValue());if(o<0||o>=2**53||c<2||c>36||l<0)return g.create(h.NUM);let f=o.toString(c);return f.length<l&&(f=new Array(l-f.length+1).join("0")+f),T.create(f.toLocaleUpperCase())}}class l0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.map((c,l,f)=>{let m=c,d=u.get(l,f);if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const _=+m.getValue(),E=+d.getValue();if(_>0&&E<0)return g.create(h.NUM);if(_===0||E===0)return A.create(0);const b=Be(_/E,0)*E;return A.create(b)});return o.getRowCount()===1&&o.getColumnCount()===1?o.getArrayValue()[0][0]:o}}class f0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:A.create(1),s=r!=null?r:A.create(0);if(e.isError())return e;if(n.isError())return n;if(s.isError())return s;const u=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),o=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=D(u,o,e,g.create(h.NA)),l=D(u,o,n,g.create(h.NA)),f=D(u,o,s,g.create(h.NA)),m=c.map((d,_,E)=>{let b=d,y=l.get(_,E),R=f.get(_,E);if(b.isString()&&(b=b.convertToNumberObjectValue()),b.isError())return b;if(y.isString()&&(y=y.convertToNumberObjectValue()),y.isError())return y;if(R.isString()&&(R=R.convertToNumberObjectValue()),R.isError())return R;const p=+b.getValue(),N=+y.getValue(),S=+R.getValue();return p===0||N===0?A.create(0):this._getResult(p,N,S)});return u===1&&o===1?m.get(0,0):m}_getResult(e,t,r){let n;return e<0&&r!==0?n=(t<0?Be(Math.abs(e)/Math.abs(t),0):-Be(Math.abs(e)/t,0))*t:n=(t<0?-Be(e/Math.abs(t),0):Be(e/t,0))*t,A.create(n)}}class m0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(1);if(e.isError())return e;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,r,g.create(h.NA)),c=u.map((l,f,m)=>{let d=o.get(f,m),_=l;if(_.isString()&&(_=_.convertToNumberObjectValue()),_.isError())return _;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const E=+_.getValue(),b=+d.getValue();if(E===0||b===0)return A.create(0);const y=(b<0?-Be(E/Math.abs(b),0):Be(E/b,0))*b;return A.create(y)});return n===1&&s===1?c.get(0,0):c}}class h0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.mapValue((c,l,f)=>{let m=c,d=u.get(l,f);if(m.isString()&&(m=m.convertToNumberObjectValue()),d.isString()&&(d=d.convertToNumberObjectValue()),m.isError())return m;if(d.isError())return d;const _=Math.floor(+m.getValue()),E=Math.floor(+d.getValue());if(_<0||E<0||_<E)return g.create(h.NUM);const b=As(_,E);return Number.isNaN(b)||!Number.isFinite(b)?g.create(h.NUM):A.create(b)});return r===1&&n===1?o.get(0,0):o}}class g0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.mapValue((c,l,f)=>{let m=c,d=u.get(l,f);if(m.isString()&&(m=m.convertToNumberObjectValue()),d.isString()&&(d=d.convertToNumberObjectValue()),m.isError())return m;if(d.isError())return d;const _=Math.floor(+m.getValue()),E=Math.floor(+d.getValue());if(_<0||E<0||_===0&&_<E)return g.create(h.NUM);const b=As(_+E-1,_-1);return Number.isNaN(b)||!Number.isFinite(b)?g.create(h.NUM):A.create(b)});return r===1&&n===1?o.get(0,0):o}}class d0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.cos()}}class C0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.cosh()}}class _0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return Math.abs(r)>=2**27?g.create(h.NUM):r===0?g.create(h.DIV_BY_ZERO):t.tan().getReciprocal()}}class E0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:+t.getValue()===0?g.create(h.DIV_BY_ZERO):t.tanh().getReciprocal()}}class b0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return Math.abs(r)>=2**27?g.create(h.NUM):r===0?g.create(h.DIV_BY_ZERO):t.sin().getReciprocal()}}class A0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return r===0?g.create(h.DIV_BY_ZERO):!Number.isNaN(r)&&!Number.isFinite(Math.sinh(r))?A.create(0):t.sinh().getReciprocal()}}class y0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.map((c,l,f)=>{if(c.isError())return c;let m=u.get(l,f);if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;const d=`${c.getValue()}`,_=Math.floor(+m.getValue());if(O.isRealNum(d)&&(+d<0||+d>=2**53||!Number.isInteger(+d))||d.toLocaleLowerCase()==="true"||d.toLocaleLowerCase()==="false"||_<2||_>36)return g.create(h.NUM);if(d.replace(/\s/g,"")==="")return A.create(0);if(!this._isValidCharForRadix(d,_))return g.create(h.NUM);const E=Number.parseInt(d,_);return Number.isNaN(E)?g.create(h.NUM):A.create(E)});return r===1&&n===1?o.get(0,0):o}_isValidCharForRadix(e,t){for(const r of e){const n=r.toUpperCase().charCodeAt(0);if(t<=10&&!(n>=48&&n<48+t)||t>10&&!(n>=48&&n<58||n>=65&&n<65+t-10))return!1}return!0}}class R0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(!Number.isFinite(r))return g.create(h.VALUE);const n=r*(180/Math.PI);return Number.isNaN(n)?g.create(h.VALUE):A.create(n)}}class p0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(!Number.isFinite(r))return g.create(h.VALUE);const n=(r<0?-Be(Math.abs(r)/2,0):Be(r/2,0))*2;return Number.isNaN(n)?g.create(h.VALUE):n===0?A.create(0):A.create(n)}}class N0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.exp()}}class V0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=Math.floor(+t.getValue()),n=pr(r);return Number.isNaN(n)||!Number.isFinite(n)?g.create(h.NUM):A.create(n)}}class O0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;if(e.isArray()){const r=e.getRowCount(),n=e.getColumnCount();if(r>1||n>1)return g.create(h.VALUE);t=e.get(0,0)}return this._handleSingleObject(t)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=Math.floor(+t.getValue()),n=pr(r,2);return Number.isNaN(n)||!Number.isFinite(n)?g.create(h.NUM):A.create(n)}}class D0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.map((c,l,f)=>{let m=u.get(l,f),d=c;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;if(m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;const _=+d.getValue(),E=+m.getValue();if(_>0&&E<0)return g.create(h.NUM);if(_===0)return A.create(0);if(E===0)return g.create(h.DIV_BY_ZERO);const b=st(_/E,0)*E;return A.create(b)});return r===1&&n===1?o.get(0,0):o}}class S0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:A.create(1),s=r!=null?r:A.create(0),u=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),o=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=D(u,o,e,g.create(h.NA)),l=D(u,o,n,g.create(h.NA)),f=D(u,o,s,g.create(h.NA)),m=c.map((d,_,E)=>{let b=d,y=l.get(_,E),R=f.get(_,E);if(b.isString()&&(b=b.convertToNumberObjectValue()),b.isError())return b;if(y.isString()&&(y=y.convertToNumberObjectValue()),y.isError())return y;if(R.isString()&&(R=R.convertToNumberObjectValue()),R.isError())return R;const p=+b.getValue(),N=+y.getValue(),S=+R.getValue();if(p===0||N===0)return A.create(0);let P;return p<0&&S!==0?P=(N<0?st(Math.abs(p)/Math.abs(N),0):-st(Math.abs(p)/N,0))*N:P=(N<0?-st(p/Math.abs(N),0):st(p/N,0))*N,A.create(P)});return u===1&&o===1?m.get(0,0):m}}class L0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(1);if(e.isError())return e;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,r,g.create(h.NA)),c=u.map((l,f,m)=>{let d=o.get(f,m),_=l;if(_.isString()&&(_=_.convertToNumberObjectValue()),_.isError())return _;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const E=+_.getValue(),b=+d.getValue();if(E===0||b===0)return A.create(0);const y=(b<0?-st(E/Math.abs(b),0):st(E/b,0))*b;return A.create(y)});return n===1&&s===1?c.get(0,0):c}}class P0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];if(!n.isNull())if(n.isArray()){let s=!1,u=g.create(h.VALUE);if(n.iterator(o=>{if(o!=null&&o.isNull())return!0;const{isError:c,errorObject:l,number:f}=this._handleSingleObject(o);if(c)return s=!0,u=l,!1;t=ys(t,f)}),s)return u}else{const{isError:s,errorObject:u,number:o}=this._handleSingleObject(n);if(s)return u;t=ys(t,o)}}return A.create(t)}_handleSingleObject(e){if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE),number:null};let t=e;if(e.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return{isError:!0,errorObject:t,number:null};const r=Math.floor(+t.getValue());return r<0||r>=2**53?{isError:!0,errorObject:g.create(h.NUM),number:null}:{isError:!1,errorObject:null,number:r}}}class M0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=Math.floor(+t.getValue());return A.create(r)}}class w0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=1,r=!0;for(let n=0;n<e.length;n++){const s=e[n];if(!s.isNull())if(s.isArray()){let u=!1,o=g.create(h.VALUE);if(s.iterator(c=>{if(c!=null&&c.isNull())return!0;const{isError:l,errorObject:f,number:m}=this._handleSingleObject(c);if(l)return u=!0,o=f,!1;t=di(t,m),r=!1}),u)return o}else{const{isError:u,errorObject:o,number:c}=this._handleSingleObject(s);if(u)return o;t=di(t,c),r=!1}}return r?A.create(0):Number.isNaN(t)||!Number.isFinite(t)||t>=2**53?g.create(h.VALUE):A.create(t)}_handleSingleObject(e){if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE),number:null};let t=e;if(e.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return{isError:!0,errorObject:t,number:null};const r=Math.floor(+t.getValue());return r<0?{isError:!0,errorObject:g.create(h.NUM),number:null}:{isError:!1,errorObject:null,number:r}}}class j0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.log()}}class x0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(10);if(e.isError())return e;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,r,g.create(h.NA)),c=u.map((l,f,m)=>{let d=o.get(f,m),_=l;if(_.isString()&&(_=_.convertToNumberObjectValue()),_.isError())return _;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const E=+_.getValue(),b=+d.getValue();if(E<=0||b<=0)return g.create(h.NUM);const y=Math.log(b);if(y===0)return g.create(h.DIV_BY_ZERO);const R=Math.log(E)/y;return A.create(R)});return n===1&&s===1?c.get(0,0):c}}class U0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.log10()}}class T0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let u=0;u<t;u++){const o=[];for(let c=0;c<r;c++){let l=e.isArray()?e.get(u,c):e;if(l.isError())return l;if(l.isNull()||l.isBoolean())return g.create(h.VALUE);if(l.isString()&&(l=l.convertToNumberObjectValue()),l.isError())return l;const f=+l.getValue();o.push(f)}n.push(o)}if(t!==r)return g.create(h.VALUE);const s=fn(n);return A.create(s)}}class v0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){const t=e.isArray()?e.getRowCount():1,r=e.isArray()?e.getColumnCount():1,n=[];for(let u=0;u<t;u++){const o=[];for(let c=0;c<r;c++){let l=e.isArray()?e.get(u,c):e;if(l.isError())return l;if(l.isNull()||l.isBoolean())return g.create(h.VALUE);if(l.isString()&&(l=l.convertToNumberObjectValue()),l.isError())return l;const f=+l.getValue();o.push(f)}n.push(o)}if(t!==r)return g.create(h.VALUE);const s=Nf(n);return s===null?g.create(h.NUM):ee.createByArray(s)}}class B0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1;if(n!==s)return g.create(h.VALUE);const o=this._getMatrix(e,r,n),c=this._getMatrix(t,s,u);if(o instanceof g)return o;if(c instanceof g)return c;const l=this._getResult(o,c,r,n,u);return ee.createByArray(l)}_getMatrix(e,t,r){const n=[];for(let s=0;s<t;s++){const u=[];for(let o=0;o<r;o++){let c=e.isArray()?e.get(s,o):e;if(c.isError())return c;if(c.isNull()||c.isBoolean())return g.create(h.VALUE);if(c.isString()&&(c=c.convertToNumberObjectValue()),c.isError())return c;const l=+c.getValue();u.push(l)}n.push(u)}return n}_getResult(e,t,r,n,s){const u=Array.from({length:r},()=>new Array(s).fill(0));for(let o=0;o<r;o++)for(let c=0;c<s;c++){let l=0;for(let f=0;f<n;f++)l+=e[o][f]*t[f][c];u[o][c]=l}return u}}class F0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.mod(n)}}class I0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isArray()){const c=r.getRowCount(),l=r.getColumnCount();if(c>1||l>1)return g.create(h.VALUE);r=r.get(0,0)}if(r.isError())return r;let n=t;if(n.isArray()){const c=n.getRowCount(),l=n.getColumnCount();if(c>1||l>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(r.isBoolean()||n.isBoolean())return g.create(h.VALUE);const s=+r.getValue(),u=+n.getValue();if(Number.isNaN(s)||Number.isNaN(u))return g.create(h.VALUE);if(u===0)return A.create(0);if(s>0&&u<0||s<0&&u>0)return g.create(h.NUM);const o=Ot(s/u,0)*u;return A.create(o)}}class k0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=0,r=1;for(let s=0;s<e.length;s++){const u=e[s];if(!u.isNull())if(u.isArray()){let o=!1,c=g.create(h.VALUE);if(u.iterator(l=>{if(l!=null&&l.isNull())return!0;const{isError:f,errorObject:m,number:d}=this._handleSingleObject(l);if(f)return o=!0,c=m,!1;if(t+=d,t>170)return o=!0,c=g.create(h.NUM),!1;r*=pr(d)}),o)return c}else{const{isError:o,errorObject:c,number:l}=this._handleSingleObject(u);if(o)return c;if(t+=l,t>170)return g.create(h.NUM);r*=pr(l)}}const n=pr(t)/r;return A.create(n)}_handleSingleObject(e){if(e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE),number:null};let t=e;if(e.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return{isError:!0,errorObject:t,number:null};const r=Math.floor(+t.getValue());return r<0?{isError:!0,errorObject:g.create(h.NUM),number:null}:{isError:!1,errorObject:null,number:r}}}class $0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.getRowCount(),r=e.getColumnCount(),n=e.mapValue(s=>{const u=this._handleSingleObject(s);return u.isError()?u:t>1||r>1?u.get(0,0):u});return t===1&&r===1?n.get(0,0):n}return this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=Math.floor(+t.getValue());if(r<=0)return g.create(h.VALUE);const n=[];for(let s=0;s<r;s++){n[s]=[];for(let u=0;u<r;u++)n[s][u]=s===u?1:0}return ee.createByArray(n)}}class Y0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(!Number.isFinite(r))return g.create(h.VALUE);let n=r<0?-Be(Math.abs(r),0):Be(r,0);return Number.isNaN(n)?g.create(h.VALUE):(Math.abs(n)%2===0&&(r<0?n--:n++),A.create(n))}}class H0 extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",0)}calculate(){return A.create(Math.PI)}}class Q0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.pow(n)}}class W0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(1);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isArray()&&(n=this._multiplyArray(n)),n.isError())return n;if(t=t.multiply(n),t.isError())return t}}return t}_multiplyArray(e){let t=A.create(1);return e.iterator(r=>{if(r==null||r.isString()||r.isBoolean()||r.isNull())return!0;if(r.isError())return t=r,!1;t=t.multiply(r)}),t}}class G0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=$(e,t);if(r)return n;const[u,o]=s,c=+u.getValue(),l=+o.getValue();if(Number.isNaN(c)||Number.isNaN(l))return g.create(h.VALUE);if(l===0)return g.create(h.DIV_BY_ZERO);const f=Math.trunc(c/l);return A.create(f)}}class q0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(!Number.isFinite(r))return g.create(h.VALUE);const n=r*(Math.PI/180);return Number.isNaN(n)?g.create(h.VALUE):A.create(n)}}class X0 extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",0)}calculate(){return A.create(Math.random())}}class K0 extends V{constructor(){super(...arguments);C(this,"minParams",0);C(this,"maxParams",5)}calculate(e,t,r,n,s){if(e!=null&&e.isError())return e;if(t!=null&&t.isError())return t;if(r!=null&&r.isError())return r;if(n!=null&&n.isError())return n;if(s!=null&&s.isError())return s;const u=e!=null?e:A.create(1),o=t!=null?t:A.create(1),c=r!=null?r:A.create(0),l=n!=null?n:A.create(1),f=s!=null?s:A.create(0);return this._calculateResult(u,o,c,l,f)}_calculateResult(e,t,r,n,s){const u=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),o=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1);if(u===1&&o===1)return this._calculateSingleCell(e,t,r,n,s);const c=D(u,o,e,g.create(h.NA)),l=D(u,o,t,g.create(h.NA)),f=D(u,o,r,g.create(h.NA)),m=D(u,o,n,g.create(h.NA)),d=D(u,o,s,g.create(h.NA));return c.map((_,E,b)=>{const y=l.get(E,b),R=f.get(E,b),p=m.get(E,b),N=d.get(E,b),S=this._handleError(_,y,R,p,N);if(S.errorObject)return S.errorObject;let{minValue:P,maxValue:M,wholeNumberValue:w}=S,x;return w?(P=Math.ceil(P),M=Math.floor(M),x=Math.floor(Math.random()*(M-P+1))+P):x=Math.random()*(M-P)+P,x<P||x>M?g.create(h.VALUE):A.create(x)})}_calculateSingleCell(e,t,r,n,s){let u=e;u.isArray()&&(u=u.get(0,0));let o=t;o.isArray()&&(o=o.get(0,0));let c=r;c.isArray()&&(c=c.get(0,0));let l=n;l.isArray()&&(l=l.get(0,0));let f=s;f.isArray()&&(f=f.get(0,0));const m=this._handleError(u,o,c,l,f);if(m.errorObject)return m.errorObject;let{rowsValue:d,columnsValue:_,minValue:E,maxValue:b,wholeNumberValue:y}=m;if(y&&(E=Math.ceil(E),b=Math.floor(b),E>b))return g.create(h.VALUE);const R=[];for(let p=0;p<d;p++){const N=[];for(let S=0;S<_;S++)y?N.push(Math.floor(Math.random()*(b-E+1))+E):N.push(Math.random()*(b-E)+E);R.push(N)}return d===1&&_===1?A.create(R[0][0]):ee.createByArray(R)}_handleError(e,t,r,n,s){let u=e;if(u.isString()&&(u=u.convertToNumberObjectValue()),u.isError())return{errorObject:u};let o=t;if(o.isString()&&(o=o.convertToNumberObjectValue()),o.isError())return{errorObject:o};let c=r;if(c.isString()&&(c=c.convertToNumberObjectValue()),c.isError())return{errorObject:c};let l=n;if(l.isString()&&(l=l.convertToNumberObjectValue()),l.isError())return{errorObject:l};let f=s;return f.isString()&&(f=f.convertToNumberObjectValue()),f.isError()?{errorObject:f}:this._getValue(u,o,c,l,f)}_getValue(e,t,r,n,s){const u=Math.floor(+e.getValue()),o=Math.floor(+t.getValue());if(u===0||o===0)return{errorObject:g.create(h.CALC)};if(u<0||o<0)return{errorObject:g.create(h.VALUE)};const c=+r.getValue(),l=+n.getValue(),f=+s.getValue();return c>l?{errorObject:g.create(h.VALUE)}:f&&(!Number.isInteger(c)||!Number.isInteger(l))?{errorObject:g.create(h.VALUE)}:{rowsValue:u,columnsValue:o,minValue:c,maxValue:l,wholeNumberValue:f}}}class Z0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isArray()){const c=r.getRowCount(),l=r.getColumnCount();if(c>1||l>1)return g.create(h.VALUE);r=r.get(0,0)}if(r.isError())return r;let n=t;if(n.isArray()){const c=n.getRowCount(),l=n.getColumnCount();if(c>1||l>1)return g.create(h.VALUE);n=n.get(0,0)}if(n.isError())return n;if(r.isBoolean()||n.isBoolean())return g.create(h.VALUE);let s=+r.getValue(),u=+n.getValue();if(Number.isNaN(s)||Number.isNaN(u))return g.create(h.VALUE);if(s>u)return g.create(h.NUM);s=Math.ceil(s),u=Math.floor(u);const o=Math.floor(Math.random()*(u-s+1))+s;return A.create(o)}}class z0 extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(0),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,r,g.create(h.NA)),c=u.mapValue((l,f,m)=>{const d=o.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const{isError:r,errorObject:n,variants:s}=ne(e);if(r)return n;const[u]=s;let o=Math.floor(+u.getValue()),c=t;if(c.isString()&&(c=c.convertToNumberObjectValue(),c.isError()))return c;let l=Math.floor(+c.getValue());if(c.isBoolean()&&(l=c.getValue()?0:4),o<0||o>3999||l<0||l>4)return g.create(h.VALUE);const f=Df[l];let m=f.length-1,d="";for(;o>0;){m=this._binarySearch(o,0,m,f);const _=f[m];o-=_,d+=Of.get(_)}return T.create(d)}_binarySearch(e,t,r,n){let s=t,u=r;for(;u-s>1;){const o=Math.floor((s+u)/2),c=n[o];if(c===e)return o;c>e?u=o:s=o}return s!==u&&n[u]<=e?u:s}}class J0 extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.round(n)}}class ed extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.floor(n)}}class td extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){let r=e;if(r.isString()&&(r=r.convertToNumberObjectValue()),r.isError())return r;let n=t;return n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()?n:r.ceil(n)}}class rd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return Math.abs(r)>=2**27?g.create(h.NUM):t.cos().getReciprocal()}}class nd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.map(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){let t=e;if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();return Number.isFinite(Math.cosh(r))?Math.abs(r)>=2**27?g.create(h.NUM):t.cosh().getReciprocal():A.create(0)}}class sd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",4)}calculate(e,t,r,n){let s=e,u=t!=null?t:A.create(1),o=r!=null?r:A.create(1),c=n!=null?n:A.create(1);s.isNull()&&(s=A.create(1)),u.isNull()&&(u=A.create(1)),o.isNull()&&(o=A.create(1)),c.isNull()&&(c=A.create(1));const l=Math.max(s.isArray()?s.getRowCount():1,u.isArray()?u.getRowCount():1,o.isArray()?o.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(s.isArray()?s.getColumnCount():1,u.isArray()?u.getColumnCount():1,o.isArray()?o.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=D(l,f,s,g.create(h.NA)),d=D(l,f,u,g.create(h.NA)),_=D(l,f,o,g.create(h.NA)),E=D(l,f,c,g.create(h.NA)),b=m.mapValue((y,R,p)=>{const N=d.get(R,p),S=_.get(R,p),P=E.get(R,p);return y.isError()?y:N.isError()?N:S.isError()?S:P.isError()?P:this._getResult(y,N,S,P,l,f)});return l===1&&f===1?b.get(0,0):b}_getResult(e,t,r,n,s,u){const{isError:o,errorObject:c,variants:l}=ne(e,t,r,n);if(o)return c;const[f,m,d,_]=l,E=Math.floor(+f.getValue()),b=Math.floor(+m.getValue()),y=+d.getValue(),R=+_.getValue();if(E<0||b<0)return g.create(h.VALUE);if(E===0||b===0)return g.create(h.CALC);const p=[];for(let N=0;N<E;N++){p[N]=[];for(let S=0;S<b;S++)p[N][S]=y+(N*b+S)*R}return s>1||u>1?A.create(p[0][0]):ee.createByArray(p)}}class ad extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",4)}calculate(e,t,r,n){if(e.isNull()||t.isNull()||r.isNull()||n.isNull())return g.create(h.NA);const{isError:s,errorObject:u,variants:o}=$(e,t,r);if(s)return u;const{isError:c,errorObject:l,variants:f}=ne(...o);if(c)return l;const[m,d,_]=f,E=+m.getValue(),b=+d.getValue(),y=+_.getValue(),R=[];if(n.isArray()){let N=!1,S=g.create(h.VALUE);if(n.iterator(P=>{const{isError:M,errorObject:w,coefficientsObject:x}=this._handleSingleObject(P);if(M)return N=!0,S=w,!1;const I=+x.getValue();R.push(I)}),N)return S}else{const{isError:N,errorObject:S,coefficientsObject:P}=this._handleSingleObject(n);if(N)return S;const M=+P.getValue();R.push(M)}let p=0;for(let N=0;N<R.length;N++)p+=R[N]*E**(b+N*y);return Number.isNaN(p)||!Number.isFinite(p)?g.create(h.NUM):A.create(p)}_handleSingleObject(e){if(e.isError())return{isError:!0,errorObject:e,coefficientsObject:null};if(e!=null&&e.isBoolean())return{isError:!0,errorObject:g.create(h.VALUE),coefficientsObject:null};let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?{isError:!0,errorObject:t,coefficientsObject:null}:{isError:!1,errorObject:null,coefficientsObject:t}}}class id extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;const{isError:t,errorObject:r,variants:n}=ne(e);if(t)return r;const[s]=n,u=+s.getValue();return u>0?A.create(1):u<0?A.create(-1):A.create(0)}}class ud extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.sin()}}class od extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.sinh()}}class cd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.sqrt()}}class ld extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;if(t.isArray()){const s=t.getRowCount(),u=t.getColumnCount();if(s>1||u>1)return g.create(h.VALUE);t=t.get(0,0)}if(t.isString()&&(t=t.convertToNumberObjectValue()),t.isError())return t;const r=+t.getValue();if(r<0)return g.create(h.NUM);const n=Math.sqrt(r*Math.PI);return A.create(n)}}class fd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",255);C(this,"needsReferenceObject",!0)}calculate(e,...t){if(e.isError())return e;if(e.isReferenceObject()){const r=[];return e.iterator((n,s,u)=>{r[s]==null&&(r[s]=[]),r[s][u]=this._handleSingleObject(n,...t)}),Ut(r,r.length,r[0].length)}return this._handleSingleObject(e,...t)}_handleSingleObject(e,...t){const r=this._getIndexNumValue(e);let n;if(r instanceof g)return r;switch(r){case 1:n=this._average(!1,...t);break;case 2:n=this._count(!1,...t);break;case 3:n=this._counta(!1,...t);break;case 4:n=this._max(!1,...t);break;case 5:n=this._min(!1,...t);break;case 6:n=this._product(!1,...t);break;case 7:n=this._stdev(!1,...t);break;case 8:n=this._stdevp(!1,...t);break;case 9:n=this._sum(!1,...t);break;case 10:n=this._var(!1,...t);break;case 11:n=this._varp(!1,...t);break;case 101:n=this._average(!0,...t);break;case 102:n=this._count(!0,...t);break;case 103:n=this._counta(!0,...t);break;case 104:n=this._max(!0,...t);break;case 105:n=this._min(!0,...t);break;case 106:n=this._product(!0,...t);break;case 107:n=this._stdev(!0,...t);break;case 108:n=this._stdevp(!0,...t);break;case 109:n=this._sum(!0,...t);break;case 110:n=this._var(!0,...t);break;case 111:n=this._varp(!0,...t);break;default:n=g.create(h.VALUE)}return n}_getIndexNumValue(e){const t=e?Number(e.getValue()):0;if(Number.isNaN(t))return g.create(h.VALUE);const r=Math.floor(t);return r>=1&&r<=11||r>=101&&r<=111?r:g.create(h.VALUE)}_average(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.mean()}_count(e,...t){let r=A.create(0);for(let n=0;n<t.length;n++){const s=t[n];if(!s.isReferenceObject())return g.create(h.VALUE);const u=s.getRowData();s.iterator((o,c)=>{if(e&&this._isRowHidden(u,c))return!0;o!=null&&o.isNumber()&&(r=r.plusBy(1))})}return r}_counta(e,...t){let r=A.create(0);for(let n=0;n<t.length;n++){const s=t[n];if(!s.isReferenceObject())return g.create(h.VALUE);const u=s.getRowData();s.iterator((o,c)=>{if(e&&this._isRowHidden(u,c)||o==null||o.isNull())return!0;r=r.plusBy(1)})}return r}_max(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?A.create(0):r.max()}_min(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?A.create(0):r.min()}_product(e,...t){const r=this._flattenRefArray(e,...t);if(r.isError())return r;if(this._isBlankArrayObject(r))return A.create(0);let n=A.create(1);return r.iterator(s=>{n=n.multiply(s)}),n}_stdev(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?g.create(h.DIV_BY_ZERO):r.std(1)}_stdevp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?g.create(h.DIV_BY_ZERO):r.std()}_sum(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:r.sum()}_var(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?g.create(h.DIV_BY_ZERO):r.var(1)}_varp(e,...t){const r=this._flattenRefArray(e,...t);return r.isError()?r:this._isBlankArrayObject(r)?g.create(h.DIV_BY_ZERO):r.var()}_flattenRefArray(e,...t){const r=[];r[0]=[];for(let n=0;n<t.length;n++){const s=t[n];if(s.isError())return s;if(!s.isReferenceObject())return g.create(h.VALUE);const u=s.getRowData();let o;if(s.iterator((c,l)=>{if(e&&this._isRowHidden(u,l)||c==null||c.isNull()||c.isString()||c.isBoolean())return!0;if(c.isError())return o=c,!1;r[0].push(c)}),o!=null&&o.isError())return o}return Ut(r,1,r[0].length)}_isRowHidden(e,t){const r=e[t];return r?r.hd===O.BooleanNumber.TRUE:!1}_isBlankArrayObject(e){return e.getArrayValue()[0].length===0}}class md extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(0);for(let r=0;r<e.length;r++){let n=e[r];if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError()||(n.isArray()&&(n=n.sum()),n.isError()))return n;if(t=t.plus(n),t.isError())return t}return t}}class hd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3);C(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=t;if(t.isReferenceObject()&&(n=t.toArrayValueObject()),n.isArray()){const s=n.mapValue(u=>this._handleSingleObject(e,u,r));return s.getRowCount()===1&&s.getColumnCount()===1?s.get(0,0):s}return this._handleSingleObject(e,n,r)}_handleSingleObject(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;if(!e.isReferenceObject()||r&&!r.isReferenceObject())return g.create(h.VALUE);const n=e.toArrayValueObject();let s=rn(n,t);const[,u]=Kt(`${t.getValue()}`);s=nn(s,n,u);const o=n.getRowCount(),c=n.getColumnCount();let l=n;if(r){l=r.toArrayValueObject();const f=l.getRowCount(),m=l.getColumnCount();if(o!==f||c!==m){const d=r.getRangeData();d.endRow=d.startRow+o-1,d.endColumn=d.startColumn+c-1,r.setRangeData(d),l=r.toArrayValueObject()}}return l.pick(s).sum()}}class gd extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;if(!e.isArray()||t.length<2||t.length%2!==0||t.some((o,c)=>c%2===0&&!o.isArray()))return g.create(h.VALUE);const{maxRowLength:r,maxColumnLength:n}=Zt(t),s=_r(t,e,r,n);if(s)return s;const u=Er(t,r,n,!0);return this._aggregateResults(e,u)}_aggregateResults(e,t){const r=t.map(s=>s.map(u=>e.pick(u).sum())),n={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ee.create(n)}}class dd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(e,...t){if(e.isError())return e;const r=this._initArray1(e);if(t.length>0){const n=r.getRowCount(),s=r.getColumnCount();let u=this._getResultArrayByArray1(n,s,r);if(u instanceof g)return u;u=u;for(let c=0;c<t.length;c++){if(t[c].isError())return t[c];let l=1,f=1;if(t[c].isArray()&&(l=t[c].getRowCount(),f=t[c].getColumnCount()),l!==n||f!==s)return g.create(h.VALUE);for(let m=0;m<n;m++){const d=[];for(let _=0;_<s;_++){let E=t[c];if(t[c].isArray()&&(E=t[c].get(m,_)),E.isError())return E;const b=E.getValue();!b||!O.isRealNum(b)?d.push(0):d.push(+b*u[m][_])}u[m]=d}}const o=u.reduce((c,l)=>c.concat(l)).reduce((c,l)=>c+l,0);return A.create(o)}else return r.sum()}_initArray1(e){let t=e;return t.isArray()||(t=ee.create({calculateValueList:[[t]],rowCount:1,columnCount:1,unitId:"",sheetId:"",row:0,column:0})),t}_getResultArrayByArray1(e,t,r){const n=[];for(let s=0;s<e;s++){const u=[];for(let o=0;o<t;o++){const c=r.get(s,o);if(c.isError())return c;const l=c.getValue();!l||!O.isRealNum(l)?u.push(0):u.push(+l)}n.push(u)}return n}}class Cd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(0);const r=A.create(2);for(let n=0;n<e.length;n++){let s=e[n];if(s.isString()&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()?s.iterator(u=>{if(u==null||u.isString()||u.isBoolean()||u.isNull())return!0;if(u.isError())return t=u,!1;t=t.plus(u.pow(r))}):t=t.plus(s.pow(r)),t.isError())return t}return t}}class _d extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=r*n,u=t.isArray()?t.getRowCount():1,o=t.isArray()?t.getColumnCount():1,c=u*o;if(s!==c)return g.create(h.NA);if(s===1)return this._calculateSingleCell(e,t);{const l=e.flatten(),f=t.flatten();let m=J.create();const d=[],_=[];let E=0;return l.iterator((b,y,R)=>{const p=f.get(y,R);if(b==null||b.isString()||b.isBoolean()||b.isNull())return!0;if(b!=null&&b.isError())return m=b,!1;if(p==null||p.isString()||p.isBoolean()||p.isNull())return!0;if(p!=null&&p.isError())return m=p,!1;const N=+b.getValue(),S=+p.getValue();d.push(N),_.push(S),E+=N**2-S**2}),m.isError()?m:d.length===0||_.length===0?g.create(h.DIV_BY_ZERO):A.create(E)}}_calculateSingleCell(e,t){let r=e;if(r.isArray()&&(r=r.get(0,0)),r.isError())return r;let n=t;if(n.isArray()&&(n=n.get(0,0)),n.isError())return n;if(r.isNull()||n.isNull())return g.create(h.VALUE);const s=+r.getValue(),u=+n.getValue();if(r.isString()&&!O.isRealNum(s)||r.isBoolean()||n.isString()&&!O.isRealNum(u)||n.isBoolean())return g.create(h.DIV_BY_ZERO);const o=s**2-u**2;return A.create(o)}}class Ed extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=r*n,u=t.isArray()?t.getRowCount():1,o=t.isArray()?t.getColumnCount():1,c=u*o;if(s!==c)return g.create(h.NA);if(s===1)return this._calculateSingleCell(e,t);{const l=e.flatten(),f=t.flatten();let m=J.create();const d=[],_=[];let E=0;return l.iterator((b,y,R)=>{const p=f.get(y,R);if(b==null||b.isString()||b.isBoolean()||b.isNull())return!0;if(b!=null&&b.isError())return m=b,!1;if(p==null||p.isString()||p.isBoolean()||p.isNull())return!0;if(p!=null&&p.isError())return m=p,!1;const N=+b.getValue(),S=+p.getValue();d.push(N),_.push(S),E+=N**2+S**2}),m.isError()?m:d.length===0||_.length===0?g.create(h.DIV_BY_ZERO):A.create(E)}}_calculateSingleCell(e,t){let r=e;if(r.isArray()&&(r=r.get(0,0)),r.isError())return r;let n=t;if(n.isArray()&&(n=n.get(0,0)),n.isError())return n;if(r.isNull()||n.isNull())return g.create(h.VALUE);const s=+r.getValue(),u=+n.getValue();if(r.isString()&&!O.isRealNum(s)||r.isBoolean()||n.isString()&&!O.isRealNum(u)||n.isBoolean())return g.create(h.DIV_BY_ZERO);const o=s**2+u**2;return A.create(o)}}class bd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=r*n,u=t.isArray()?t.getRowCount():1,o=t.isArray()?t.getColumnCount():1,c=u*o;if(s!==c)return g.create(h.NA);if(s===1)return this._calculateSingleCell(e,t);{const l=e.flatten(),f=t.flatten();let m=J.create();const d=[],_=[];let E=0;return l.iterator((b,y,R)=>{const p=f.get(y,R);if(b==null||b.isString()||b.isBoolean()||b.isNull())return!0;if(b!=null&&b.isError())return m=b,!1;if(p==null||p.isString()||p.isBoolean()||p.isNull())return!0;if(p!=null&&p.isError())return m=p,!1;const N=+b.getValue(),S=+p.getValue();d.push(N),_.push(S),E+=(N-S)**2}),m.isError()?m:d.length===0||_.length===0?g.create(h.DIV_BY_ZERO):A.create(E)}}_calculateSingleCell(e,t){let r=e;if(r.isArray()&&(r=r.get(0,0)),r.isError())return r;let n=t;if(n.isArray()&&(n=n.get(0,0)),n.isError())return n;if(r.isNull()||n.isNull())return g.create(h.VALUE);const s=+r.getValue(),u=+n.getValue();if(r.isString()&&!O.isRealNum(s)||r.isBoolean()||n.isString()&&!O.isRealNum(u)||n.isBoolean())return g.create(h.DIV_BY_ZERO);const o=(s-u)**2;return A.create(o)}}class Ad extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.tan()}}class yd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return t.isString()&&(t=t.convertToNumberObjectValue()),t.isError()?t:t.tanh()}}class Rd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(0),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,r,g.create(h.NA)),c=u.map((l,f,m)=>{let d=o.get(f,m),_=l;if(_.isString()&&(_=_.convertToNumberObjectValue()),_.isError())return _;if(d.isString()&&(d=d.convertToNumberObjectValue()),d.isError())return d;const E=+_.getValue(),b=+d.getValue(),y=10**Math.trunc(b),R=Jr(E,y),p=Math.trunc(Xt(E,y)+R)/y;return A.create(p)});return n===1&&s===1?c.get(0,0):c}}const Cu=[[z1,k.ABS],[J1,k.ACOS],[e0,k.ACOSH],[t0,k.ACOT],[r0,k.ACOTH],[n0,k.ARABIC],[s0,k.ASIN],[a0,k.ASINH],[i0,k.ATAN],[u0,k.ATAN2],[o0,k.ATANH],[c0,k.BASE],[l0,k.CEILING],[f0,k.CEILING_MATH],[m0,k.CEILING_PRECISE],[h0,k.COMBIN],[g0,k.COMBINA],[d0,k.COS],[C0,k.COSH],[_0,k.COT],[E0,k.COTH],[b0,k.CSC],[A0,k.CSCH],[y0,k.DECIMAL],[R0,k.DEGREES],[p0,k.EVEN],[N0,k.EXP],[V0,k.FACT],[O0,k.FACTDOUBLE],[D0,k.FLOOR],[S0,k.FLOOR_MATH],[L0,k.FLOOR_PRECISE],[P0,k.GCD],[M0,k.INT],[w0,k.LCM],[j0,k.LN],[x0,k.LOG],[U0,k.LOG10],[T0,k.MDETERM],[v0,k.MINVERSE],[B0,k.MMULT],[F0,k.MOD],[I0,k.MROUND],[k0,k.MULTINOMIAL],[$0,k.MUNIT],[Y0,k.ODD],[H0,k.PI],[Q0,k.POWER],[W0,k.PRODUCT],[G0,k.QUOTIENT],[q0,k.RADIANS],[X0,k.RAND],[K0,k.RANDARRAY],[Z0,k.RANDBETWEEN],[z0,k.ROMAN],[J0,k.ROUND],[ed,k.ROUNDDOWN],[td,k.ROUNDUP],[rd,k.SEC],[nd,k.SECH],[ad,k.SERIESSUM],[sd,k.SEQUENCE],[id,k.SIGN],[ud,k.SIN],[od,k.SINH],[cd,k.SQRT],[ld,k.SQRTPI],[fd,k.SUBTOTAL],[md,k.SUM],[hd,k.SUMIF],[gd,k.SUMIFS],[dd,k.SUMPRODUCT],[Cd,k.SUMSQ],[_d,k.SUMX2MY2],[Ed,k.SUMX2PY2],[bd,k.SUMXMY2],[Ad,k.TAN],[yd,k.TANH],[Rd,k.TRUNC]];class pd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2);C(this,"_compareType",B.EQUALS)}setCompareType(e){this._compareType=e}calculate(e,t){return e.isError()?e:t.isError()?t:e.compare(t,this._compareType)}}class vs extends lt{constructor(e){super("");C(this,"_values",[]);this._values=e}static create(e){return new vs(e)}isCube(){return!0}sum(){const e=A.create(0);return this._values.forEach(t=>{e.plus(t.sum())}),e}max(){let e=A.create(Number.NEGATIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isLessThan(r)&&(e=r)}),e}min(){let e=A.create(Number.POSITIVE_INFINITY);return this._values.forEach(t=>{const r=t.max();e.isGreaterThan(r)&&(e=r)}),e}count(){const e=A.create(0);return this._values.forEach(t=>{e.plus(t.count())}),e}countA(){const e=A.create(0);return this._values.forEach(t=>{e.plus(t.countA())}),e}countBlank(){const e=A.create(0);return this._values.forEach(t=>{e.plus(t.countBlank())}),e}}class Nd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=[];for(let r=0;r<e.length;r++){const n=e[r];if(n.isError())return n;if(!n.isArray())return g.create(h.VALUE);t.push(n)}return vs.create(t)}}class Vd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:!t.isArray()&&t.getValue()===0?g.create(h.DIV_BY_ZERO):e.divided(t)}}class Od extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.minus(t)}}class Dd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.multiply(t)}}class Sd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){return e.isError()?e:t.isError()?t:e.plus(t)}}const _u=[[pd,je.COMPARE],[Vd,je.DIVIDED],[Od,je.MINUS],[Dd,je.MULTIPLY],[Sd,je.PLUS],[Nd,je.CUBE]];class Ld extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(0),r=A.create(0);for(let u=0;u<e.length;u++){let o=e[u];if(o.isString()&&(o=o.convertToNumberObjectValue()),o.isError())return o;if(o.isArray()){if(o=Pd(o),o.isError())return o;if(e[u]=o,t=t.plus(o.sum()),t.isError())return t;r=r.plus(o.count())}else o.isNull()||(t=t.plus(o),r=r.plus(A.create(1)))}if(r.getValue()===0)return g.create(h.NUM);const n=t.divided(r);if(n.isError())return n;let s=A.create(0);for(let u=0;u<e.length;u++){let o=e[u];if(o.isString()&&(o=o.convertToNumberObjectValue()),o.isError())return o;if(o.isArray()){if(s=s.plus(o.minus(n).abs().sum()),s.isError())return s}else o.isNull()||(s=s.plus(o.minus(n).abs()))}return s.divided(r)}}function Pd(a){const i=[];i[0]=[];let e=null;return a.iterator((t,r,n)=>{if(t!=null&&t.isError())return e=t,!1;t!=null&&t.isNumber()&&i[0].push(t)}),e||Ut(i,1,i[0].length)}class Md extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(0),r=A.create(0);for(let n=0;n<e.length;n++){let s=e[n];if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()){if(t=t.plus(s.sum()),t.isError())return t;r=r.plus(s.count())}else s.isNull()||(t=t.plus(s),r=r.plus(A.create(1)))}return t.divided(r)}}class wd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(0),r=A.create(0);for(let n=0;n<e.length;n++){let s=e[n];if((s.isString()||s.isBoolean())&&(s=s.convertToNumberObjectValue()),s.isError())return s;if(s.isArray()){if(s.iterator(u=>{if(u==null||u.isNull())return!0;let o=u;if(o.isString()&&(o=o.convertToNumberObjectValue(),o.isError()&&(o=A.create(0))),o.isBoolean()&&(o=o.convertToNumberObjectValue()),o.isError())return t=o,!1;t=t.plus(o),r=r.plus(A.create(1))}),t.isError())return t}else s.isNull()||(t=t.plus(s),r=r.plus(A.create(1)))}return t.divided(r)}}class jd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3);C(this,"needsReferenceObject",!0)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r!=null&&r.isError())return r;let n=e;n.isReferenceObject()&&(n=n.toArrayValueObject()),n.isArray()||(n=Ut([[n]],1,1));let s=t;return s.isReferenceObject()&&(s=s.toArrayValueObject()),r&&!(r!=null&&r.isReferenceObject())?g.create(h.NA):(s=s,s.isArray()?s.map(u=>this._handleSingleObject(n,u,r)):this._handleSingleObject(n,s,r))}_handleSingleObject(e,t,r){let n=rn(e,t);const[,s]=Kt(`${t.getValue()}`);n=nn(n,e,s);let u=r?this._createRangeReferenceObject(r,e):e;if(!u)return g.create(h.VALUE);if(u.isError())return u;u.isReferenceObject()&&(u=u.toArrayValueObject()),u=u;const o=u.pick(n),c=o.sum(),l=o.count();return c.divided(l)}_createRangeReferenceObject(e,t){const r=e.getRowCount(),n=e.getColumnCount(),s=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1;if(r===s&&n===u)return e;const{startRow:o,startColumn:c}=e.getRangePosition(),l={startRow:o,startColumn:c,endRow:o+s-1,endColumn:c+u-1};return this.createReferenceObject(e,l)}}class xd extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",255)}calculate(e,...t){if(e.isError())return g.create(h.NA);if(!e.isArray()||t.length%2!==0||t.some((o,c)=>c%2===0&&!o.isArray()))return g.create(h.VALUE);const{maxRowLength:r,maxColumnLength:n}=Zt(t),s=_r(t,e,r,n);if(s)return s;const u=Er(t,r,n,!0);return this._aggregateResults(e,u)}_aggregateResults(e,t){const r=t.map(s=>s.map(u=>{const o=e.pick(u),c=o.sum(),l=o.count();return c.divided(l)})),n={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ee.create(n)}}class Ud extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){let o=s!=null?s:A.create(0),c=u!=null?u:A.create(1);o.isNull()&&(o=A.create(0)),c.isNull()&&(c=A.create(1));const l=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1,o.isArray()?o.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1,o.isArray()?o.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=D(l,f,e,g.create(h.NA)),d=D(l,f,t,g.create(h.NA)),_=D(l,f,r,g.create(h.NA)),E=D(l,f,n,g.create(h.NA)),b=D(l,f,o,g.create(h.NA)),y=D(l,f,c,g.create(h.NA)),R=m.mapValue((p,N,S)=>{const P=d.get(N,S),M=_.get(N,S),w=E.get(N,S),x=b.get(N,S),I=y.get(N,S);return this._handleSignleObject(p,P,M,w,x,I)});return l===1&&f===1?R.get(0,0):R}_handleSignleObject(e,t,r,n,s,u){const{isError:o,errorObject:c,variants:l}=ne(e,t,r,n,s,u);if(o)return c;const[f,m,d,_,E,b]=l,y=+f.getValue(),R=+m.getValue(),p=+d.getValue(),N=+_.getValue(),S=+E.getValue(),P=+b.getValue();if(R<=0||p<=0||y<S||y>P||S===P)return g.create(h.NUM);let M;return N?M=_i((y-S)/(P-S),R,p):M=Sf((y-S)/(P-S),R,p)/(P-S),A.create(M)}}class Td extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){let s=n!=null?n:r;s.isNull()&&(s=r);const u=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,s.isArray()?s.getRowCount():1),o=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=D(u,o,e,g.create(h.NA)),l=D(u,o,t,g.create(h.NA)),f=D(u,o,r,g.create(h.NA)),m=D(u,o,s,g.create(h.NA)),d=c.mapValue((_,E,b)=>{const y=l.get(E,b),R=f.get(E,b),p=m.get(E,b);return this._handleSignleObject(_,y,R,p)});return u===1&&o===1?d.get(0,0):d}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:u,variants:o}=ne(e,t,r,n);if(s)return u;const[c,l,f,m]=o,d=Math.floor(+c.getValue()),_=+l.getValue(),E=Math.floor(+f.getValue()),b=Math.floor(+m.getValue());if(d<0||_<0||_>1||E<0||E>d||b<0||b<E||b>d)return g.create(h.NUM);let y=0;for(let R=E;R<=b;R++)y+=Os(R,d,_);return A.create(y)}}class vd extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.mapValue((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d);return this._handleSignleObject(f,_,E)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:u}=ne(e,t,r);if(n)return s;const[o,c,l]=u,f=+o.getValue(),m=Math.floor(+c.getValue()),d=+l.getValue();if(f<0||m<1||m>10**10)return g.create(h.NUM);let _;return d?_=Ds(f,m):_=Lf(f,m),A.create(_)}}class Bd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.mapValue((c,l,f)=>{const m=u.get(l,f);return this._handleSignleObject(c,m)});return r===1&&n===1?o.get(0,0):o}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=ne(e,t);if(r)return n;const[u,o]=s,c=+u.getValue(),l=Math.floor(+o.getValue());if(c<0||c>1||l<1||l>10**10)return g.create(h.NUM);const f=yi(c,l);return Number.isNaN(f)||!Number.isFinite(f)?g.create(h.NUM):A.create(f)}}class Fd extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.mapValue((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d),{isError:b,errorObject:y,variants:R}=ne(f,_,E);if(b)return y;const[p,N,S]=R,P=+p.getValue(),M=+N.getValue(),w=Math.floor(+S.getValue());if(P<=0||P>=1||M<=0||w<1)return g.create(h.NUM);if(w===1)return g.create(h.DIV_BY_ZERO);const x=Math.abs(Mf(P/2,w-1)*M/Math.sqrt(w));return A.create(x)});return n===1&&s===1?l.get(0,0):l}}class Id extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1;let o=e;if(e.isArray()&&r===1&&n===1&&(o=e.get(0,0)),o.isError())return o;let c=t;if(t.isArray()&&s===1&&u===1&&(c=t.get(0,0)),c.isError())return c;if(r*n===1||s*u===1)return o.isNull()||c.isNull()?g.create(h.VALUE):g.create(h.DIV_BY_ZERO);if(r*n!==s*u)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:_}=rr(e,t,r*n,n,u);return l?f:_?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){const r=e.length;let n=0,s=0;for(let d=0;d<r;d++)n+=e[d],s+=t[d];const u=n/r,o=s/r;let c=0,l=0,f=0;for(let d=0;d<r;d++){const _=e[d]-u,E=t[d]-o;c+=_*E,l+=_**2,f+=E**2}const m=Math.sqrt(l*f);return m===0?g.create(h.DIV_BY_ZERO):A.create(c/m)}}class kd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(0);for(let r=0;r<e.length;r++){const n=e[r];n.isError()||(n.isArray()?t=t.plus(n.count()):n.isString()?n.convertToNumberObjectValue().isError()||(t=t.plus(A.create(1))):n.isNull()||(t=t.plus(A.create(1))))}return t}}class $d extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(0);for(let r=0;r<e.length;r++){let n=e[r];if(n.isError()){t=t.plus(A.create(1));continue}n.isArray()?(n=n.countA(),t=t.plus(n)):n.isNull()||(t=t.plus(A.create(1)))}return t}}class Yd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.getValue()===""||e.isNull()?A.create(1):e.isArray()?e.countBlank():A.create(0)}}class Hd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){return e.isError()||t.isError()?g.create(h.NA):e.isArray()?t.isArray()?t.mapValue(r=>this._handleSingleObject(e,r)):this._handleSingleObject(e,t):g.create(h.VALUE)}_handleSingleObject(e,t){let r=rn(e,t);const[,n]=Kt(`${t.getValue()}`);r=nn(r,e,n);const s=e.pick(r);return this._countA(s)}_countA(e){let t=A.create(0);return e.iterator(r=>{if(r==null)return!0;t=t.plusBy(1)}),t}}class Qd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",255)}calculate(...e){if(e.length%2!==0||e.some((u,o)=>o%2===0&&!u.isArray()))return g.create(h.VALUE);const{maxRowLength:t,maxColumnLength:r}=Zt(e),n=_r(e,e[0],t,r);if(n)return n;const s=Er(e,t,r,!0);return this._aggregateResults(s)}_aggregateResults(e){const t=e.map(n=>n.map(s=>Wd(s))),r={calculateValueList:t,rowCount:t.length,columnCount:t[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ee.create(r)}}function Wd(a){let i=0;return a.iterator(e=>{e!=null&&e.isBoolean()&&e.getValue()===!0&&i++}),A.create(i)}class Gd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1;let o=e;if(e.isArray()&&r===1&&n===1&&(o=e.get(0,0)),o.isError())return o;let c=t;if(t.isArray()&&s===1&&u===1&&(c=t.get(0,0)),c.isError())return c;if((r*n===1||s*u===1)&&(o.isNull()||c.isNull()))return g.create(h.VALUE);if(r*n!==s*u)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:_}=rr(e,t,r*n,n,u);return l?f:_?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){if(e.length<=1)return g.create(h.DIV_BY_ZERO);const r=e.length;let n=0,s=0;for(let l=0;l<r;l++)n+=e[l],s+=t[l];const u=n/r,o=s/r;let c=0;for(let l=0;l<r;l++){const f=e[l]-u,m=t[l]-o;c+=f*m}return A.create(c/(r-1))}}class qd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=[];let r=0,n=!0;for(let o=0;o<e.length;o++){const c=e[o];if(c.isArray()){let l=!1,f=g.create(h.VALUE);if(c.iterator(m=>{const d=this._handleSingleObject(m);if(d.isError())return l=!0,f=d,!1;if(d.isNull())return!0;const _=d.getValue();t.push(_),r+=_,n=!1}),l)return f}else{const l=this._handleSingleObject(c);if(l.isError())return l;if(l.isNull())continue;const f=l.getValue();t.push(f),r+=f,n=!1}}if(n)return g.create(h.NUM);const s=r/t.length;let u=0;for(let o=0;o<t.length;o++)u+=(t[o]-s)**2;return A.create(u)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull()||e.isBoolean())return J.create();const t=e.getValue();return O.isRealNum(t)?A.create(+t):J.create()}}class Xd extends V{constructor(){super(...arguments);C(this,"minParams",4);C(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n.isArray()?n.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n.isArray()?n.getColumnCount():1),o=D(s,u,e,g.create(h.NA)),c=D(s,u,t,g.create(h.NA)),l=D(s,u,r,g.create(h.NA)),f=D(s,u,n,g.create(h.NA)),m=o.mapValue((d,_,E)=>{const b=c.get(_,E),y=l.get(_,E),R=f.get(_,E);return this._handleSignleObject(d,b,y,R)});return s===1&&u===1?m.get(0,0):m}_handleSignleObject(e,t,r,n){const{isError:s,errorObject:u,variants:o}=ne(e,t,r,n);if(s)return u;const[c,l,f,m]=o,d=+c.getValue(),_=Math.floor(+l.getValue()),E=Math.floor(+f.getValue()),b=+m.getValue();if(d<0||_<1||_>10**10||E<1||E>10**10)return g.create(h.NUM);let y;return b?y=Ss(d,_,E):y=xf(d,_,E),Number.isNaN(y)||!Number.isFinite(y)?g.create(h.NUM):A.create(y)}}class Kd extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,t,g.create(h.NA)),c=D(n,s,r,g.create(h.NA)),l=u.mapValue((f,m,d)=>{const _=o.get(m,d),E=c.get(m,d);return this._handleSignleObject(f,_,E)});return n===1&&s===1?l.get(0,0):l}_handleSignleObject(e,t,r){const{isError:n,errorObject:s,variants:u}=ne(e,t,r);if(n)return s;const[o,c,l]=u,f=+o.getValue(),m=Math.floor(+c.getValue()),d=Math.floor(+l.getValue());if(f<0||f>1||m<1||m>10**10||d<1||d>10**10)return g.create(h.NUM);const _=pi(f,m,d);return Number.isNaN(_)||!Number.isFinite(_)?g.create(h.NUM):A.create(_)}}class Zd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=ne(e);if(t)return r;const[s]=n,u=s.getValue();if(u<=-1||u>=1)return g.create(h.NUM);const o=Math.log((1+u)/(1-u))/2;return A.create(o)}}class zd extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isArray()?e.mapValue(t=>this._handleSingleObject(t)):this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=ne(e);if(t)return r;const[s]=n,u=+s.getValue(),o=Math.exp(2*u)-1,c=Math.exp(2*u)+1;return!Number.isFinite(o)&&o>0&&!Number.isFinite(c)&&c>0?A.create(1):A.create(o/c)}}class Eu extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const n=t.isArray()?t.getRowCount():1,s=t.isArray()?t.getColumnCount():1,u=r.isArray()?r.getRowCount():1,o=r.isArray()?r.getColumnCount():1;let c=t;t.isArray()&&n===1&&s===1&&(c=t.get(0,0));let l=r;return r.isArray()&&u===1&&o===1&&(l=r.get(0,0)),e.isArray()?e.mapValue(f=>this._handleSignleObject(f,c,l,n,s,u,o)):this._handleSignleObject(e,c,l,n,s,u,o)}_handleSignleObject(e,t,r,n,s,u,o){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;let c=e;if(e.isString()&&(c=e.convertToNumberObjectValue()),c.isError())return c;const l=+c.getValue();if((n*s===1||u*o===1)&&(t.isNull()||r.isNull()))return g.create(h.VALUE);if(n*s!==u*o)return g.create(h.NA);const{isError:f,errorObject:m,array1Values:d,array2Values:_,noCalculate:E}=rr(t,r,n*s,s,o);if(f)return m;if(E)return g.create(h.DIV_BY_ZERO);const b=Ni(l,d,_);return Number.isFinite(b)?A.create(b):g.create(h.DIV_BY_ZERO)}}var q=(a=>(a.AVEDEV="AVEDEV",a.AVERAGE="AVERAGE",a.AVERAGEA="AVERAGEA",a.AVERAGEIF="AVERAGEIF",a.AVERAGEIFS="AVERAGEIFS",a.BETA_DIST="BETA.DIST",a.BETA_INV="BETA.INV",a.BINOM_DIST="BINOM.DIST",a.BINOM_DIST_RANGE="BINOM.DIST.RANGE",a.BINOM_INV="BINOM.INV",a.CHISQ_DIST="CHISQ.DIST",a.CHISQ_DIST_RT="CHISQ.DIST.RT",a.CHISQ_INV="CHISQ.INV",a.CHISQ_INV_RT="CHISQ.INV.RT",a.CHISQ_TEST="CHISQ.TEST",a.CONFIDENCE_NORM="CONFIDENCE.NORM",a.CONFIDENCE_T="CONFIDENCE.T",a.CORREL="CORREL",a.COUNT="COUNT",a.COUNTA="COUNTA",a.COUNTBLANK="COUNTBLANK",a.COUNTIF="COUNTIF",a.COUNTIFS="COUNTIFS",a.COVARIANCE_P="COVARIANCE.P",a.COVARIANCE_S="COVARIANCE.S",a.DEVSQ="DEVSQ",a.EXPON_DIST="EXPON.DIST",a.F_DIST="F.DIST",a.F_DIST_RT="F.DIST.RT",a.F_INV="F.INV",a.F_INV_RT="F.INV.RT",a.F_TEST="F.TEST",a.FISHER="FISHER",a.FISHERINV="FISHERINV",a.FORECAST="FORECAST",a.FORECAST_ETS="FORECAST.ETS",a.FORECAST_ETS_CONFINT="FORECAST.ETS.CONFINT",a.FORECAST_ETS_SEASONALITY="FORECAST.ETS.SEASONALITY",a.FORECAST_ETS_STAT="FORECAST.ETS.STAT",a.FORECAST_LINEAR="FORECAST.LINEAR",a.FREQUENCY="FREQUENCY",a.GAMMA="GAMMA",a.GAMMA_DIST="GAMMA.DIST",a.GAMMA_INV="GAMMA.INV",a.GAMMALN="GAMMALN",a.GAMMALN_PRECISE="GAMMALN.PRECISE",a.GAUSS="GAUSS",a.GEOMEAN="GEOMEAN",a.GROWTH="GROWTH",a.HARMEAN="HARMEAN",a.HYPGEOM_DIST="HYPGEOM.DIST",a.INTERCEPT="INTERCEPT",a.KURT="KURT",a.LARGE="LARGE",a.LINEST="LINEST",a.LOGEST="LOGEST",a.LOGNORM_DIST="LOGNORM.DIST",a.LOGNORM_INV="LOGNORM.INV",a.MAX="MAX",a.MAXA="MAXA",a.MAXIFS="MAXIFS",a.MEDIAN="MEDIAN",a.MIN="MIN",a.MINA="MINA",a.MINIFS="MINIFS",a.MODE_MULT="MODE.MULT",a.MODE_SNGL="MODE.SNGL",a.NEGBINOM_DIST="NEGBINOM.DIST",a.NORM_DIST="NORM.DIST",a.NORM_INV="NORM.INV",a.NORM_S_DIST="NORM.S.DIST",a.NORM_S_INV="NORM.S.INV",a.PEARSON="PEARSON",a.PERCENTILE_EXC="PERCENTILE.EXC",a.PERCENTILE_INC="PERCENTILE.INC",a.PERCENTRANK_EXC="PERCENTRANK.EXC",a.PERCENTRANK_INC="PERCENTRANK.INC",a.PERMUT="PERMUT",a.PERMUTATIONA="PERMUTATIONA",a.PHI="PHI",a.POISSON_DIST="POISSON.DIST",a.PROB="PROB",a.QUARTILE_EXC="QUARTILE.EXC",a.QUARTILE_INC="QUARTILE.INC",a.RANK_AVG="RANK.AVG",a.RANK_EQ="RANK.EQ",a.RSQ="RSQ",a.SKEW="SKEW",a.SKEW_P="SKEW.P",a.SLOPE="SLOPE",a.SMALL="SMALL",a.STANDARDIZE="STANDARDIZE",a.STDEV_P="STDEV.P",a.STDEV_S="STDEV.S",a.STDEVA="STDEVA",a.STDEVPA="STDEVPA",a.STEYX="STEYX",a.T_DIST="T.DIST",a.T_DIST_2T="T.DIST.2T",a.T_DIST_RT="T.DIST.RT",a.T_INV="T.INV",a.T_INV_2T="T.INV.2T",a.T_TEST="T.TEST",a.TREND="TREND",a.TRIMMEAN="TRIMMEAN",a.VAR_P="VAR.P",a.VAR_S="VAR.S",a.VARA="VARA",a.VARPA="VARPA",a.WEIBULL_DIST="WEIBULL.DIST",a.Z_TEST="Z.TEST",a))(q||{});class Jd extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=e.isArray()?e.getRowCount():1,n=e.isArray()?e.getColumnCount():1,s=t.isArray()?t.getRowCount():1,u=t.isArray()?t.getColumnCount():1;let o=e;if(e.isArray()&&r===1&&n===1&&(o=e.get(0,0)),o.isError())return o;let c=t;if(t.isArray()&&s===1&&u===1&&(c=t.get(0,0)),c.isError())return c;if(r*n===1||s*u===1)return e.isNull()||t.isNull()?g.create(h.VALUE):g.create(h.DIV_BY_ZERO);if(r*n!==s*u)return g.create(h.NA);const{isError:l,errorObject:f,array1Values:m,array2Values:d,noCalculate:_}=rr(e,t,r*n,n,u);return l?f:_?g.create(h.DIV_BY_ZERO):this._getResult(m,d)}_getResult(e,t){const r=Ni(0,e,t);return Number.isFinite(r)?A.create(r):g.create(h.DIV_BY_ZERO)}}class eC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if((n.isString()||n.isBoolean())&&(n=n.convertToNumberObjectValue()),n.isArray()&&(n=n.max()),n.isError())return n;t=this._validator(t,n)}}return t.getValue()===Number.NEGATIVE_INFINITY?A.create(0):t}_validator(e,t){const r=e.isLessThan(t);let n=e;return r.getValue()&&(n=t),n}}class tC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(Number.NEGATIVE_INFINITY);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if((n.isString()||n.isBoolean())&&(n=n.convertToNumberObjectValue()),n.isError())return n;if(n.isArray()&&n.iterator(s=>{let u=s;if((u==null||u.isNull()||u.isString())&&(u=A.create(0)),u.isBoolean()&&(u=u.convertToNumberObjectValue()),u.isError())return t=u,!1;t=this._validator(t,u)}),t.isError())return t;t=this._validator(t,n)}}return t.getValue()===Number.NEGATIVE_INFINITY?A.create(0):t}_validator(e,t){const r=e.isLessThan(t);let n=e;return r.getValue()&&(n=t),n}}class rC extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",255)}calculate(e,...t){if(e.isError())return g.create(h.NA);if(!e.isArray()||t.length%2!==0||t.some((o,c)=>c%2===0&&!o.isArray()))return g.create(h.VALUE);const{maxRowLength:r,maxColumnLength:n}=Zt(t),s=_r(t,e,r,n);if(s)return s;const u=Er(t,r,n,!0);return this._aggregateResults(e,u)}_aggregateResults(e,t){const r=t.map(s=>s.map(u=>{const o=e.pick(u);return o.getColumnCount()===0?ee.create("0"):o.max()})),n={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ee.create(n)}}class nC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if((n.isString()||n.isBoolean())&&(n=n.convertToNumberObjectValue()),n.isArray()&&(n=n.min()),n.isError())return n;t=this._validator(t,n)}}return t.getValue()===Number.POSITIVE_INFINITY?A.create(0):t}_validator(e,t){const r=e.isGreaterThan(t);let n=e;return r.getValue()&&(n=t),n}}class sC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=A.create(Number.POSITIVE_INFINITY);for(let r=0;r<e.length;r++){let n=e[r];if(!n.isNull()){if((n.isString()||n.isBoolean())&&(n=n.convertToNumberObjectValue()),n.isError())return n;if(n.isArray()&&n.iterator(s=>{let u=s;if((u==null||u.isNull()||u.isString())&&(u=A.create(0)),u.isBoolean()&&(u=u.convertToNumberObjectValue()),u.isError())return t=u,!1;t=this._validator(t,u)}),t.isError())return t;t=this._validator(t,n)}}return t.getValue()===Number.POSITIVE_INFINITY?A.create(0):t}_validator(e,t){const r=e.isGreaterThan(t);let n=e;return r.getValue()&&(n=t),n}}class aC extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",255)}calculate(e,...t){if(e.isError())return g.create(h.NA);if(!e.isArray()||t.length%2!==0||t.some((o,c)=>c%2===0&&!o.isArray()))return g.create(h.VALUE);const{maxRowLength:r,maxColumnLength:n}=Zt(t),s=_r(t,e,r,n);if(s)return s;const u=Er(t,r,n,!0);return this._aggregateResults(e,u)}_aggregateResults(e,t){const r=t.map(s=>s.map(u=>{const o=e.pick(u);return o.getColumnCount()===0?ee.create("0"):o.min()})),n={calculateValueList:r,rowCount:r.length,columnCount:r[0].length,unitId:this.unitId||"",sheetId:this.subUnitId||"",row:this.row,column:this.column};return ee.create(n)}}class iC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.mapValue((c,l,f)=>{const m=u.get(l,f);return this._handleSignleObject(c,m)});return r===1&&n===1?o.get(0,0):o}_handleSignleObject(e,t){const{isError:r,errorObject:n,variants:s}=ne(e,t);if(r)return n;const[u,o]=s,c=+u.getValue(),l=+o.getValue();let f;return l?f=Ls(c,0,1):f=Vi(c,0,1),A.create(f)}}class uC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3);C(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=e;n.isReferenceObject()&&(n=n.toArrayValueObject());const{refHasError:s,refErrorObject:u,refNumbers:o}=this._checkRefReferenceObject(t);let c=r!=null?r:A.create(0);c.isReferenceObject()&&(c=c.toArrayValueObject());const l=Math.max(n.isArray()?n.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(n.isArray()?n.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=D(l,f,n,g.create(h.NA)),d=D(l,f,c,g.create(h.NA)),_=m.map((E,b,y)=>{const R=d.get(b,y);if(!e.isReferenceObject()&&e.isNull())return g.create(h.NA);if(s)return u;if(R.isError())return R;const p=+E.getValue(),N=+R.getValue();return Number.isNaN(p)||Number.isNaN(N)?g.create(h.VALUE):this._getResult(p,N,o)});return l===1&&f===1?_.get(0,0):_}_getResult(e,t,r){const n=r.sort((c,l)=>t?c-l:l-c);let s=n.indexOf(e);const u=[];for(;s>=0;){const c=s+1;u.push(c),s=n.indexOf(e,c)}if(u.length===0)return g.create(h.NA);const o=u.reduce((c,l)=>c+l,0)/u.length;return A.create(o)}_checkRefReferenceObject(e){let t=!1,r=g.create(h.NA);const n=[];return e.isReferenceObject()?(e.toArrayValueObject().iterator(u=>{const o=u;if(o.isError())return t=!0,r=o,!1;if(o.isNull()||o.isBoolean())return!0;const c=+o.getValue();if(Number.isNaN(c))return!0;n.push(c)}),{refHasError:t,refErrorObject:r,refNumbers:n}):{refHasError:!0,refErrorObject:r,refNumbers:n}}}class oC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",3);C(this,"needsReferenceObject",!0)}calculate(e,t,r){let n=e;n.isReferenceObject()&&(n=n.toArrayValueObject());const{refHasError:s,refErrorObject:u,refNumbers:o}=this._checkRefReferenceObject(t);let c=r!=null?r:A.create(0);c.isReferenceObject()&&(c=c.toArrayValueObject());const l=Math.max(n.isArray()?n.getRowCount():1,c.isArray()?c.getRowCount():1),f=Math.max(n.isArray()?n.getColumnCount():1,c.isArray()?c.getColumnCount():1),m=D(l,f,n,g.create(h.NA)),d=D(l,f,c,g.create(h.NA)),_=m.map((E,b,y)=>{const R=d.get(b,y);if(!e.isReferenceObject()&&e.isNull())return g.create(h.NA);if(s)return u;if(R.isError())return R;const p=+E.getValue(),N=+R.getValue();if(Number.isNaN(p)||Number.isNaN(N))return g.create(h.VALUE);const P=o.sort((M,w)=>N?M-w:w-M).indexOf(p);return P===-1?g.create(h.NA):A.create(P+1)});return l===1&&f===1?_.get(0,0):_}_checkRefReferenceObject(e){let t=!1,r=g.create(h.NA);const n=[];return e.isReferenceObject()?(e.toArrayValueObject().iterator(u=>{const o=u;if(o.isError())return t=!0,r=o,!1;if(o.isNull()||o.isBoolean())return!0;const c=+o.getValue();if(Number.isNaN(c))return!0;n.push(c)}),{refHasError:t,refErrorObject:r,refNumbers:n}):{refHasError:!0,refErrorObject:r,refNumbers:n}}}class cC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std(1)}}class lC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.std()}}class fC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var(1)}}class mC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){const t=this.flattenArray(e,!1);return t.isError()?t:t.var()}}const bu=[[Ld,q.AVEDEV],[Md,q.AVERAGE],[wd,q.AVERAGEA],[jd,q.AVERAGEIF],[xd,q.AVERAGEIFS],[Ud,q.BETA_DIST],[Oi,q.BETA_INV],[Di,q.BINOM_DIST],[Td,q.BINOM_DIST_RANGE],[Si,q.BINOM_INV],[vd,q.CHISQ_DIST],[Li,q.CHISQ_DIST_RT],[Bd,q.CHISQ_INV],[Pi,q.CHISQ_INV_RT],[Mi,q.CHISQ_TEST],[wi,q.CONFIDENCE_NORM],[Fd,q.CONFIDENCE_T],[Id,q.CORREL],[kd,q.COUNT],[$d,q.COUNTA],[Yd,q.COUNTBLANK],[Hd,q.COUNTIF],[Qd,q.COUNTIFS],[ji,q.COVARIANCE_P],[Gd,q.COVARIANCE_S],[qd,q.DEVSQ],[xi,q.EXPON_DIST],[Xd,q.F_DIST],[Ui,q.F_DIST_RT],[Kd,q.F_INV],[Ti,q.F_INV_RT],[vi,q.F_TEST],[Zd,q.FISHER],[zd,q.FISHERINV],[Eu,q.FORECAST],[Eu,q.FORECAST_LINEAR],[Jd,q.INTERCEPT],[eC,q.MAX],[tC,q.MAXA],[rC,q.MAXIFS],[nC,q.MIN],[sC,q.MINA],[aC,q.MINIFS],[Bi,q.NORM_DIST],[Fi,q.NORM_INV],[iC,q.NORM_S_DIST],[Ii,q.NORM_S_INV],[uC,q.RANK_AVG],[oC,q.RANK_EQ],[ki,q.STDEV_P],[$i,q.STDEV_S],[cC,q.STDEVA],[lC,q.STDEVPA],[Yi,q.VAR_P],[Hi,q.VAR_S],[fC,q.VARA],[mC,q.VARPA]];class hC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){let r=t!=null?t:A.create(0);if(t!=null&&t.isNull()&&(r=A.create(0)),r.isArray()){const n=r.mapValue(s=>this._handleSingleObject(e,s));return n.getRowCount()===1&&n.getColumnCount()===1?n.get(0,0):n}return this._handleSingleObject(e,r)}_handleSingleObject(e,t){const r=this._checkArray(e);if(r.isError())return r;const{isError:n,errorObject:s,variants:u}=ne(t);if(n)return s;const[o]=u,c=+o.getValue(),l=e.isArray()?e.getRowCount():1,f=e.isArray()?e.getColumnCount():1;let m="";for(let d=0;d<l;d++)for(let _=0;_<f;_++){const E=e.isArray()?e.get(d,_):e;let b=`${E.getValue()}`;E.isNull()&&(b=""),E.isBoolean()&&(b=b.toLocaleUpperCase()),E.isString()&&c?m+=`"${b}"`:m+=b,d===l-1&&_===f-1||(c?_===f-1?m+=";":m+=",":m+=", ")}return c&&(m=`{${m}}`),m.length>32767?g.create(h.CALC):T.create(m)}_checkArray(e){if(e.isArray()){const t=e.getRowCount(),r=e.getColumnCount();return t>1||r>1?e:e.get(0,0)}return e}}class gC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError()||e.isNull()||e.isBoolean()||e.isNumber())return e;const t=e.getValue().toLocaleString();let r="";for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);s===12288?s=32:s>=65281&&s<=65374&&(s-=65248),r+=String.fromCharCode(s)}return T.create(r)}}class dC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=ne(e);if(t)return r;const[s]=n,u=+s.getValue(),o=Math.abs(Number.parseInt(u.toString(),10)),c=Number.parseFloat((Math.abs(u)-o).toFixed(2));let l="";return o===0?c!==0?l=`${u<0?"ลบ":""}${this._convertNumberToThaiText(c*100)}สตางค์`:l="ศูนย์บาทถ้วน":c===0?l=`${u<0?"ลบ":""}${this._convertNumberToThaiText(o)}บาทถ้วน`:l=`${u<0?"ลบ":""}${this._convertNumberToThaiText(o)}บาท${this._convertNumberToThaiText(c*100)}สตางค์`,T.create(l)}_convertNumberToThaiText(e){const t=["ล้าน","สิบ","ร้อย","พัน","หมื่น","แสน",""],r=["ศูนย์","หนึ่ง","สอง","สาม","สี่","ห้า","หก","เจ็ด","แปด","เก้า"],n=["ลบ","บาท","ถ้วน","สตางค์","ยี่","เอ็ด",","," ","฿"],s=e.toString(),u=s.length;let o="";for(let c=u;c>0;c--){const l=Number.parseInt(s.charAt(u-c),10);let f=r[l];const m=c>1?(c-1)%6:6;if(m===1&&l===2&&(f=n[4]),l===1)switch(m){case 0:case 6:o+=c<u?n[5]:f;break;case 1:break;default:o+=f;break}else if(l===0){m===0&&(o+=t[m]);continue}else o+=f;o+=t[m]}return o}}const CC=Object.values(O.DataStreamTreeTokenType).filter(a=>[O.DataStreamTreeTokenType.TABLE_START,O.DataStreamTreeTokenType.TABLE_ROW_START,O.DataStreamTreeTokenType.TABLE_CELL_START,O.DataStreamTreeTokenType.TABLE_CELL_END,O.DataStreamTreeTokenType.TABLE_ROW_END,O.DataStreamTreeTokenType.TABLE_END,O.DataStreamTreeTokenType.CUSTOM_RANGE_START,O.DataStreamTreeTokenType.CUSTOM_RANGE_END,O.DataStreamTreeTokenType.CUSTOM_BLOCK].includes(a));class _C extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=ne(e);if(t)return r;const[s]=n,u=Math.floor(+s.getValue());if(u<=0)return g.create(h.VALUE);let o=String.fromCharCode(u);return CC.some(c=>c===o)&&(o=""),T.create(o)}}class EC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError()||e.isBoolean()||e.isNumber())return e;if(e.isNull())return T.create("");const r=`${e.getValue()}`.replace(/[\0-\x1F]/g,"");return T.create(r)}}class bC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);let t=e.getValue().toLocaleString();if(e.isBoolean()&&(t=t.toLocaleUpperCase()),t==="")return g.create(h.VALUE);const r=t.charCodeAt(0);return A.create(r)}}class AC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t="",r=null;for(const n of e)if(n.isArray()){if(n.iterator(s=>{if(s==null||s.isNull())return!0;if(s.isError())return r=s,!1;s.isBoolean()?t+=`${s.getValue()}`.toLocaleUpperCase():(s.isString()||s.isNumber())&&(t+=s.getValue())}),r)return r}else!n.isError()&&!n.isNull()&&(t+=n.getValue());return T.create(t)}}class yC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",255)}calculate(...e){let t=0,r=0;e.forEach(s=>{if(s.isArray()){const u=s;t=Math.max(t,u.getRowCount()),r=Math.max(r,u.getColumnCount())}else t=Math.max(t,1),r=Math.max(r,1)});let n=null;for(const s of e)n=D(t,r,s,g.create(h.NA)).mapValue((o,c,l)=>{const f=n&&n.get(c,l);if(f!=null&&f.isError())return f;if(o.isError())return o;let m=f==null?void 0:f.getValue(),d=o==null?void 0:o.getValue();f!=null&&f.isBoolean()&&(m=`${m}`.toLocaleUpperCase()),o!=null&&o.isBoolean()&&(d=`${d}`.toLocaleUpperCase());const _=f!=null&&f.isNull()?"":m!=null?m:"",E=o!=null&&o.isNull()?"":d!=null?d:"";return T.create(`${_}${E}`)});return n||g.create(h.VALUE)}}class RC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return T.create("");let t=`${e.getValue()}`;e.isBoolean()&&(t=t.toLocaleUpperCase());let r="";for(let n=0;n<t.length;n++){const s=t.charCodeAt(n);s>=33&&s<=126?r+=String.fromCharCode(s+65248):s===32?r+=" ":r+=t.charAt(n)}return T.create(r)}}class pC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2);C(this,"needsLocale",!0)}calculate(e,t){let r=t!=null?t:A.create(2);r.isNull()&&(r=A.create(2));const n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,r,g.create(h.NA)),c=u.mapValue((l,f,m)=>{const d=o.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const{isError:r,errorObject:n,variants:s}=ne(e,t);if(r)return n;const[u,o]=s;let c=+u.getValue(),l=Math.trunc(+o.getValue());if(l>127)return g.create(h.VALUE);l<0&&(`${c}`.length<Math.abs(l)?c=0:c=c<0?-Ot(Math.abs(c),l):Ot(c,l),l=0);const f=qo(this.getLocale(),c,l);return T.create(f)}}class NC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,J.create()),u=D(r,n,t,J.create()),o=s.mapValue((c,l,f)=>{const m=u.get(l,f);return c.isError()?c:m.isError()?m:this._handleSingleObject(c,m)});return r===1&&n===1?o.get(0,0):o}_handleSingleObject(e,t){if(e.isNull()||t.isNull()){const u=e.isNull()&&t.isNull();return F.create(u)}let r=`${e.getValue()}`;e.isBoolean()&&(r=r.toLocaleUpperCase());let n=`${t.getValue()}`;t.isBoolean()&&(n=n.toLocaleUpperCase());const s=r===n;return F.create(s)}}const Au=(a,i)=>O.numfmt.format(a,i,{throws:!1});class VC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",3)}calculate(e,t,r){let n=t!=null?t:A.create(2);n.isNull()&&(n=A.create(2));let s=r!=null?r:F.create(!1);s.isNull()&&(s=F.create(!1));const u=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1,s.isArray()?s.getRowCount():1),o=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1,s.isArray()?s.getColumnCount():1),c=D(u,o,e,g.create(h.NA)),l=D(u,o,n,g.create(h.NA)),f=D(u,o,s,g.create(h.NA)),m=c.mapValue((d,_,E)=>{const b=l.get(_,E),y=f.get(_,E);return d.isError()?d:b.isError()?b:y.isError()?y:this._handleSingleObject(d,b,y)});return u===1&&o===1?m.get(0,0):m}_handleSingleObject(e,t,r){const{isError:n,errorObject:s,variants:u}=ne(e,t,r);if(n)return s;const[o,c,l]=u;let f=+o.getValue(),m=Math.trunc(+c.getValue());const d=+l.getValue();if(m>127)return g.create(h.VALUE);m<0&&(`${f}`.length<Math.abs(m)?f=0:f=f<0?-Ot(Math.abs(f),m):Ot(f,m),m=0);let _=d?"###0":"#,##0";m>0&&(_+=`.${"0".repeat(m)}`);const E=Au(_,f);return T.create(E)}}function OC(a){let i=0;for(let e=0;e<a.length;e++)i+=Bs(a,e);return i}function Bs(a,i,e="ltr"){return DC(a,i,e)>255?2:1}function yu(a){return a>=55296&&a<=56319}function Ru(a){return a>=56320&&a<=57343}function pu(a,i){const e=(a&1023)<<10,t=i&1023;return e+t+65536}function DC(a,i,e="ltr"){const t=a.charCodeAt(i);if(e==="ltr"&&yu(t)&&i+1<a.length){const r=a.charCodeAt(i+1);if(Ru(r))return pu(t,r)}if(e==="rtl"&&Ru(t)&&i-1>=0){const r=a.charCodeAt(i-1);if(yu(r))return pu(r,t)}return t}class SC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(1),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,J.create()),o=D(n,s,r,J.create()),c=u.mapValue((l,f,m)=>{const d=o.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){let r=`${e.getValue()}`;e.isBoolean()&&(r=r.toLocaleUpperCase());const{isError:n,errorObject:s,variants:u}=ne(t);if(n)return s;const[o]=u,c=Math.floor(+o.getValue());if(c<0)return g.create(h.VALUE);if(e.isNull()||c===0)return T.create("");let l=0,f=0,m="";for(;f<c&&l<r.length;)f+=Bs(r,l),m+=r.charAt(l),l++;return T.create(m)}}class LC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return A.create(0);if(e.isNumber()){const t=e.getValue(),r=Ya(t,12,Number.EPSILON).toString();return A.create(r.length)}if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString();return A.create(t.length)}return g.create(h.VALUE)}}class PC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return A.create(0);if(e.isString()||e.isBoolean()||e.isNumber()){const t=`${e.getValue()}`,r=OC(t);return A.create(r)}return g.create(h.VALUE)}}class MC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){return e.isError()?e:e.isArray()?e.mapValue(t=>this._handleSingleText(t)):this._handleSingleText(e)}_handleSingleText(e){if(e.isError())return e;if(e.isNull())return T.create("");if(e.isString()||e.isBoolean()||e.isNumber()){const t=e.getValue().toString().toLowerCase();return T.create(t)}return g.create(h.VALUE)}}class wC extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){if(e.isError())return e;if(t.isError())return t;if(r.isError())return r;const n=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e),o=D(n,s,t),c=D(n,s,r);return u.map((l,f,m)=>this._handleSingleText(l,f,m,o,c))}_handleSingleText(e,t,r,n,s){let u=n.get(t,r)||J.create(),o=s.get(t,r)||J.create();if(u.isError())return u;if(o.isError())return o;let c=e.getValue();if(e.isNull()&&(c=""),e.isBoolean()&&(c=c?"TRUE":"FALSE"),c=`${c}`,(u.isString()||u.isBoolean()||u.isNull())&&(u=u.convertToNumberObjectValue()),u.isError())return u;if((o.isString()||o.isBoolean()||o.isNull())&&(o=o.convertToNumberObjectValue()),o.isError())return o;const l=Math.floor(+u.getValue())-1,f=o.getValue();return l<0||f<0?g.create(h.VALUE):T.create(c.substring(l,l+f))}}class jC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",3)}calculate(e,t,r){const n=t!=null?t:T.create("."),s=Math.max(e.isArray()?e.getRowCount():1,n.isArray()?n.getRowCount():1,r!=null&&r.isArray()?r.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,n.isArray()?n.getColumnCount():1,r!=null&&r.isArray()?r.getColumnCount():1),o=D(s,u,e,g.create(h.NA)),c=D(s,u,n,g.create(h.NA)),l=r?D(s,u,r,g.create(h.NA)):void 0,f=o.mapValue((m,d,_)=>{const E=c.get(d,_),b=r?l.get(d,_):void 0;return m.isError()?m:E.isError()?E:b!=null&&b.isError()?b:E.isNull()||b!=null&&b.isNull()?g.create(h.VALUE):m.isNull()?A.create(0):this._handleSingleObject(m,E,b)});return s===1&&u===1?f.get(0,0):f}_handleSingleObject(e,t,r){let n=`${e.getValue()}`;n=n.replace(/\s+/g,"");let s=`${t.getValue()}`;t.isBoolean()&&(s=s.toLocaleUpperCase()),s=s.charAt(0);let u;if(r&&(u=`${r.getValue()}`,r.isBoolean()&&(u=u.toLocaleUpperCase()),u=u.charAt(0),s===u))return g.create(h.VALUE);if(n.trim()==="")return A.create(0);if(!n.match(/^\s*[+-]?\s*(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:[eE][+-]?\d+)?[ \t]*/))return g.create(h.VALUE);const o=n.split(s);if(o.length>2)return g.create(h.VALUE);let c=o[0].replace(/,/g,"");r&&(c=c.split(u).join(""));let l=0;if(o.length===1){s===","&&(c=c.replace(/\./g,""));let f=0;for(;c.endsWith("%");)c=c.slice(0,-1),f++;f>0?l=+c/100**f:l=+c}else{if(!O.isRealNum(c))return g.create(h.VALUE);let f=o[1],m=0;for(;f.endsWith("%");)f=f.slice(0,-1),m++;const d=`${c}.${f}`;if(!O.isRealNum(d))return g.create(h.VALUE);m>0?l=+d/100**m:l=+d}return Number.isNaN(l)?g.create(h.VALUE):A.create(l)}}class xC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError()||e.isNull()||e.isBoolean()||e.isNumber())return e;const r=e.getValue().toLocaleString().toLocaleLowerCase().replace(/(^|\b|\W|\d|_)[a-z]/g,n=>n.toLocaleUpperCase());return T.create(r)}}const Nu=()=>[{type:4,from:48,to:57}],Vu=()=>[{type:7,value:95},{type:4,from:97,to:122},{type:4,from:65,to:90},{type:4,from:48,to:57}],Ou=()=>[{type:7,value:9},{type:7,value:10},{type:7,value:11},{type:7,value:12},{type:7,value:13},{type:7,value:32},{type:7,value:160},{type:7,value:5760},{type:4,from:8192,to:8202},{type:7,value:8232},{type:7,value:8233},{type:7,value:8239},{type:7,value:8287},{type:7,value:12288},{type:7,value:65279}],Du=()=>({type:3,set:Vu(),not:!1}),Su=()=>({type:3,set:Vu(),not:!0}),Lu=()=>({type:3,set:Nu(),not:!1}),Pu=()=>({type:3,set:Nu(),not:!0}),Mu=()=>({type:3,set:Ou(),not:!1}),wu=()=>({type:3,set:Ou(),not:!0}),UC=()=>({type:3,set:[{type:7,value:10},{type:7,value:13},{type:7,value:8232},{type:7,value:8233}],not:!0});function TC(a){const i={type:0,stack:[]};let e=i,t=i.stack;const r=[],n=[];let s=0;const u=f=>{throw new SyntaxError(`Invalid regular expression: /${a}/: Nothing to repeat at column ${f-1}`)},o=BC(a);let c=0,l;for(;c<o.length;)switch(l=o[c++],l){case"\\":if(c===o.length)throw new SyntaxError(`Invalid regular expression: /${a}/: \\ at end of pattern`);switch(l=o[c++],l){case"b":t.push({type:2,value:"b"});break;case"B":t.push({type:2,value:"B"});break;case"w":t.push(Du());break;case"W":t.push(Su());break;case"d":t.push(Lu());break;case"D":t.push(Pu());break;case"s":t.push(Mu());break;case"S":t.push(wu());break;default:if(/\d/.test(l)){for(;/\d/.test(o[c])&&c<o.length;)l+=o[c++];const f=Number.parseInt(l,10);t.push({type:6,value:f}),n.push({reference:{type:6,value:f},stack:t,index:t.length-1})}else t.push({type:7,value:l.charCodeAt(0)})}break;case"^":t.push({type:2,value:"^"});break;case"$":t.push({type:2,value:"$"});break;case"[":{const f=o[c]==="^";f&&c++;const m=vC(o.slice(c),a);c+=m[1],t.push({type:3,set:m[0],not:f});break}case".":t.push(UC());break;case"(":{const f={type:1,stack:[],remember:!0};if(o[c]==="?"){const m=o[c+1];if(c+=2,m==="=")f.followedBy=!0;else if(m==="!")f.notFollowedBy=!0;else if(m!==":")throw new SyntaxError(`Invalid regular expression: /${a}/: Invalid group, character '${m}' after '?' at column ${c-1}`);f.remember=!1}else s+=1;t.push(f),r.push(e),e=f,t=f.stack;break}case")":if(r.length===0)throw new SyntaxError(`Invalid regular expression: /${a}/: Unmatched ) at column ${c-1}`);e=r.pop(),t=e.options?e.options[e.options.length-1]:e.stack;break;case"|":{e.options||(e.options=[e.stack],delete e.stack);const f=[];e.options.push(f),t=f;break}case"{":{const f=/^(\d+)(,(\d+)?)?\}/.exec(o.slice(c));if(f){t.length===0&&u(c);const m=Number.parseInt(f[1],10),d=f[2]?f[3]?Number.parseInt(f[3],10):1/0:m;c+=f[0].length,t.push({type:5,min:m,max:d,value:t.pop()})}else t.push({type:7,value:123});break}case"?":t.length===0&&u(c),t.push({type:5,min:0,max:1,value:t.pop()});break;case"+":t.length===0&&u(c),t.push({type:5,min:1,max:1/0,value:t.pop()});break;case"*":t.length===0&&u(c),t.push({type:5,min:0,max:1/0,value:t.pop()});break;default:t.push({type:7,value:l.charCodeAt(0)})}if(r.length>0)throw new SyntaxError(`Invalid regular expression: /${a}/: Unterminated group`);return FC(n,s),i}function vC(a,i){let e;const t=[],r=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(e=r.exec(a))!==null;){let n=null;const[,s,u,o,c,l,f,m,d,_,E]=e;if(s||u||o||c||l||f?n=(()=>{let b={type:3,set:[],not:!1};return s?b=Du():u?b=Lu():o?b=Mu():c?b=Su():l?b=Pu():f&&(b=wu()),b})():m&&E?n={type:4,from:(d||_).charCodeAt(0),to:E.charCodeAt(E.length-1)}:e[16]&&(n={type:7,value:e[16].charCodeAt(0)}),!n)return[t,r.lastIndex];t.push(n)}throw new SyntaxError(`Invalid regular expression: /${i}/: Unterminated character class`)}function BC(a){return a.replace(/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g,(i,e,t,r,n,s,u)=>{if(t)return i;let o;e?o=8:r?o=Number.parseInt(r,16):n?o=Number.parseInt(n,16):s?o="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?".indexOf(s):o={0:0,t:9,n:10,v:11,f:12,r:13}[u];const c=String.fromCharCode(o);return/[[\]{}^$.|?*+()]/.test(c)?`\\${c}`:c})}function FC(a,i){for(const e of a.reverse()){const t=e.reference.value;if(i<t){e.reference.type=7;const r=t.toString();if(e.reference.value=Number.parseInt(r,8),!/^[0-7]+$/.test(r)){let n=0;for(;r[n]!=="8"&&r[n]!=="9"&&n<r.length;)n+=1;if(n===0?(e.reference.value=r.charCodeAt(0),n+=1):e.reference.value=Number.parseInt(r.slice(0,n),8),r.length>n){const s=e.stack.splice(e.index+1);for(const u of r.slice(n))e.stack.push({type:7,value:u.charCodeAt(0)});e.stack.push(...s)}}}}}function Fs(a,i){if(!IC(a))return{isError:!0,regExp:null};try{const e=new RegExp(a,i?"ug":"u");return kC(e)?{isError:!1,regExp:e}:{isError:!0,regExp:null}}catch{return{isError:!0,regExp:null}}}function IC(a){return!(/\(\?<=.*?\)/g.test(a)&&!/\[.*?(\?<=.*?)\]/g.test(a)||/\(\?<!.*?\)/g.test(a)&&!/\[.*?(\?<!.*?)\]/g.test(a))}function kC(a,i){let t;Object.prototype.toString.call(a)==="[object RegExp]"?t=a.source:a&&typeof a!="string"&&(t=`${a}`);let r;try{r=TC(t)}catch{return!1}let n=0;const s=(u,o)=>{let c=o;if(u.type===5&&(c++,n++,c>1||n>25))return!1;if(u.options){for(const f of u.options)if(!s({stack:f},c))return!1}const l=u.stack||u.value&&u.value.stack;if(!l)return!0;for(const f of l)if(!s(f,c))return!1;return!0};return s(r,0)}class $C extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=Ms(e,t);if(r)return n;const[u,o]=s;let c=u.getValue();u.isNull()&&(c=""),u.isBoolean()&&(c=c?"TRUE":"FALSE"),c=`${c}`;let l=o.getValue();o.isNull()&&(l=""),o.isBoolean()&&(l=l?"TRUE":"FALSE"),l=`${l}`;const{isError:f,regExp:m}=Fs(l,!1);if(f)return g.create(h.REF);const d=c.match(m);if(d===null)return g.create(h.NA);if(d.length>1){const _=d.slice(1).map(E=>T.create(E));return _.length>1?ee.create({calculateValueList:[_],rowCount:1,columnCount:_.length,unitId:this.unitId,sheetId:this.subUnitId,row:this.row,column:this.column}):_[0]}return T.create(d[0])}}class YC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){const{isError:r,errorObject:n,variants:s}=Ms(e,t);if(r)return n;const[u,o]=s;let c=u.getValue();u.isNull()&&(c=""),u.isBoolean()&&(c=c?"TRUE":"FALSE"),c=`${c}`;let l=o.getValue();o.isNull()&&(l=""),o.isBoolean()&&(l=l?"TRUE":"FALSE"),l=`${l}`;const{isError:f,regExp:m}=Fs(l,!1);return f?g.create(h.REF):c.match(m)===null?F.create(!1):F.create(!0)}}class HC extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",3)}calculate(e,t,r){const{isError:n,errorObject:s,variants:u}=Ms(e,t,r);if(n)return s;const[o,c,l]=u;let f=o.getValue();o.isNull()&&(f=""),o.isBoolean()&&(f=f?"TRUE":"FALSE"),f=`${f}`;let m=c.getValue();c.isNull()&&(m=""),c.isBoolean()&&(m=m?"TRUE":"FALSE"),m=`${m}`;let d=l.getValue();l.isNull()&&(d=""),l.isBoolean()&&(d=d?"TRUE":"FALSE"),d=`${d}`;const{isError:_,regExp:E}=Fs(m,!0);if(_)return g.create(h.REF);const b=f.replace(E,d);return T.create(b)}}class QC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e,g.create(h.NA)),u=D(r,n,t,g.create(h.NA)),o=s.map((c,l,f)=>{let m=u.get(l,f);if(c.isError())return c;let d=c.getValue();if(c.isNull()&&(d=""),c.isBoolean()&&(d=d?"TRUE":"FALSE"),d+="",m.isString()&&(m=m.convertToNumberObjectValue()),m.isError())return m;const _=32767,E=Math.floor(+m.getValue());if(E<0||E>_/d.length)return g.create(h.VALUE);const b=d.repeat(E);return T.create(b)});return r===1&&n===1?o.get(0,0):o}}class WC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(1),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,J.create()),o=D(n,s,r,J.create()),c=u.mapValue((l,f,m)=>{const d=o.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){let r=`${e.getValue()}`;e.isBoolean()&&(r=r.toLocaleUpperCase());const{isError:n,errorObject:s,variants:u}=ne(t);if(n)return s;const[o]=u,c=Math.floor(+o.getValue());if(c<0)return g.create(h.VALUE);if(e.isNull()||c===0)return T.create("");if(c>=r.length)return T.create(r);const l=r.substring(r.length-c);return T.create(l)}}class GC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(1),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,J.create()),o=D(n,s,r,J.create()),c=u.mapValue((l,f,m)=>{const d=o.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){let r=`${e.getValue()}`;e.isBoolean()&&(r=r.toLocaleUpperCase());const{isError:n,errorObject:s,variants:u}=ne(t);if(n)return s;const[o]=u,c=Math.floor(+o.getValue());if(c<0)return g.create(h.VALUE);if(e.isNull()||c===0)return T.create("");let l=r.length-1,f=0,m="";for(;f<c&&l>=0;)f+=Bs(r,l,"rtl"),m=r.charAt(l)+m,l--;return T.create(m)}}class qC extends V{constructor(){super(...arguments);C(this,"minParams",3);C(this,"maxParams",4)}calculate(e,t,r,n){const s=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1,r.isArray()?r.getRowCount():1,n!=null&&n.isArray()?n.getRowCount():1),u=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1,r.isArray()?r.getColumnCount():1,n!=null&&n.isArray()?n.getColumnCount():1),o=D(s,u,e,g.create(h.NA)),c=D(s,u,t,g.create(h.NA)),l=D(s,u,r,g.create(h.NA)),f=n?D(s,u,n,g.create(h.NA)):void 0,m=o.mapValue((d,_,E)=>{const b=c.get(_,E),y=l.get(_,E);let R=n?f.get(_,E):void 0;return d.isError()?d:b.isError()?b:y.isError()?y:R!=null&&R.isError()?R:R!=null&&R.isNull()||R!=null&&R.isBoolean()?g.create(h.VALUE):(R!=null&&R.isString()&&(R=R.convertToNumberObjectValue()),R!=null&&R.isError()?R:this._handleSingleObject(d,b,y,R))});return s===1&&u===1?m.get(0,0):m}_handleSingleObject(e,t,r,n){const s=this._getObjectString(e),u=this._getObjectString(t),o=this._getObjectString(r),c=n?Math.floor(+n.getValue()):void 0;if(n&&c<=0)return g.create(h.VALUE);if(u==="")return T.create(s);let l="",f=0;for(let m=0;m<s.length;m++){const d=s.substr(m,u.length);if(d===u||d.length===u.length&&d.trim()===u.trim()){if(f++,f===c){l=s.substr(0,m)+o+s.substr(m+u.length);break}c===void 0&&(l+=o),m+=u.length-1}else c===void 0&&(l+=s[m])}return c&&f<c&&(l=s),T.create(l)}_getObjectString(e){let t=`${e.getValue()}`;return e.isNull()&&(t=""),e.isBoolean()&&(t=t.toLocaleUpperCase()),t}}class XC extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){let t=e;return e.isArray()&&(t=e.get(0,0)),t.isError()?t:t.isNull()||t.isBoolean()||t.isNumber()?T.create(""):t}}class KC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",2)}calculate(e,t){if(e.isError())return e;if(t.isError())return t;const r=Math.max(e.isArray()?e.getRowCount():1,t.isArray()?t.getRowCount():1),n=Math.max(e.isArray()?e.getColumnCount():1,t.isArray()?t.getColumnCount():1),s=D(r,n,e),u=D(r,n,t);return s.map((o,c,l)=>{if(o.isError())return o;let f=u.get(c,l)||T.create(" ");if(f.isError())return f;if(f.isBoolean())return g.create(h.VALUE);if(o.isBoolean())return o;let m=o.getValue();if(o.isNull()&&(m=0),o.isString()){if(!O.isRealNum(m))return o;m=Number(m)}f.isNull()&&(f=T.create(" "));const d=`${f.getValue()}`,_=Au(d,m);return T.create(d===" "?_.trimEnd():_)})}}class ZC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){let o=!1,c=r!=null?r:A.create(1);c.isNull()&&(o=!0,c=A.create(1));const l=!n,f=n!=null?n:A.create(0),m=s!=null?s:A.create(0),d=u!=null?u:g.create(h.NA),_=Math.max(e.isArray()?e.getRowCount():1,c.isArray()?c.getRowCount():1,f.isArray()?f.getRowCount():1,m.isArray()?m.getRowCount():1,d.isArray()?d.getRowCount():1),E=Math.max(e.isArray()?e.getColumnCount():1,c.isArray()?c.getColumnCount():1,f.isArray()?f.getColumnCount():1,m.isArray()?m.getColumnCount():1,d.isArray()?d.getColumnCount():1),b=D(_,E,e,g.create(h.NA)),y=D(_,E,c,g.create(h.NA)),R=D(_,E,f,g.create(h.NA)),p=D(_,E,m,g.create(h.NA)),N=D(_,E,d,g.create(h.NA)),S=this._getResultArray(b,t,y,R,p,N,o,l);return _===1&&E===1?S.get(0,0):S}_getResultArray(e,t,r,n,s,u,o,c){return e.map((f,m,d)=>{const _=r.get(m,d),E=n.get(m,d),b=s.get(m,d),y=u.get(m,d),R=this._checkVariantsError(f,_,E,b);if(R.isError())return R;const p=this._getStringValue(f),N=this._getDelimiterValue(t);if(N instanceof g)return N;const S=this._getVariantsNumberFloorValue(_,E,b);if(S instanceof g)return S;const[P,M,w]=S;return P===0||M<0||M>1||w<0||w>1?g.create(h.VALUE):N.includes("")?P>0?T.create(p):T.create(""):!o&&Math.abs(P)>p.length?g.create(h.VALUE):N.every(x=>x.length>p.length)?g.create(h.NA):this._getResult(p,N,P,M,w,y,c)})}_checkVariantsError(...e){for(let t=0;t<e.length;t++){const r=e[t];if(r.isError())return r}return F.create(!0)}_getStringValue(e){let t=`${e.getValue()}`;return e.isNull()&&(t=""),e.isBoolean()&&(t=t.toLocaleUpperCase()),t}_getDelimiterValue(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);if(e.iterator(s=>{const u=s;if(u.isError())return r=!0,n=u,!1;t.push(this._getStringValue(u))}),r)return n}else{if(e.isError())return e;t.push(this._getStringValue(e))}return t}_getVariantsNumberFloorValue(...e){const t=[];for(let r=0;r<e.length;r++){let n=e[r];if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError())return n;const s=Math.floor(+n.getValue());t.push(s)}return t}_getResult(e,t,r,n,s,u,o){let c=n?e.toLocaleLowerCase():e;const l=n?t.map(E=>E.toLocaleLowerCase()):t;let f=0,m=0,d=0;for(let E=0;E<Math.abs(r);E++)if(r<0){const b=l.map(y=>({index:c.lastIndexOf(y),length:y.length})).filter(y=>y.index!==-1).sort((y,R)=>R.index-y.index)[0];if(!b)break;f=b.index,c=c.substr(0,b.index),d=b.length,m++}else{const b=l.map(y=>({index:c.indexOf(y),length:y.length})).filter(y=>y.index!==-1).sort((y,R)=>y.index-R.index)[0];if(!b)break;f+=b.index+d,c=c.substr(b.index+b.length),d=b.length,m++}if(m&&m<Math.abs(r)&&o)return g.create(h.NA);if(!m||m<Math.abs(r))return s?r>0?T.create(""):T.create(e):u;const _=e.substr(f+d);return T.create(_)}}class zC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){let o=!1,c=r!=null?r:A.create(1);c.isNull()&&(o=!0,c=A.create(1));const l=!n,f=n!=null?n:A.create(0),m=s!=null?s:A.create(0),d=u!=null?u:g.create(h.NA),_=Math.max(e.isArray()?e.getRowCount():1,c.isArray()?c.getRowCount():1,f.isArray()?f.getRowCount():1,m.isArray()?m.getRowCount():1,d.isArray()?d.getRowCount():1),E=Math.max(e.isArray()?e.getColumnCount():1,c.isArray()?c.getColumnCount():1,f.isArray()?f.getColumnCount():1,m.isArray()?m.getColumnCount():1,d.isArray()?d.getColumnCount():1),b=D(_,E,e,g.create(h.NA)),y=D(_,E,c,g.create(h.NA)),R=D(_,E,f,g.create(h.NA)),p=D(_,E,m,g.create(h.NA)),N=D(_,E,d,g.create(h.NA)),S=this._getResultArray(b,t,y,R,p,N,o,l);return _===1&&E===1?S.get(0,0):S}_getResultArray(e,t,r,n,s,u,o,c){return e.map((f,m,d)=>{const _=r.get(m,d),E=n.get(m,d),b=s.get(m,d),y=u.get(m,d),R=this._checkVariantsError(f,_,E,b);if(R.isError())return R;const p=this._getStringValue(f),N=this._getDelimiterValue(t);if(N instanceof g)return N;const S=this._getVariantsNumberFloorValue(_,E,b);if(S instanceof g)return S;const[P,M,w]=S;return P===0||M<0||M>1||w<0||w>1?g.create(h.VALUE):N.includes("")?P>0?T.create(""):T.create(p):!o&&Math.abs(P)>p.length?g.create(h.VALUE):N.every(x=>x.length>p.length)?g.create(h.NA):this._getResult(p,N,P,M,w,y,c)})}_checkVariantsError(...e){for(let t=0;t<e.length;t++){const r=e[t];if(r.isError())return r}return F.create(!0)}_getStringValue(e){let t=`${e.getValue()}`;return e.isNull()&&(t=""),e.isBoolean()&&(t=t.toLocaleUpperCase()),t}_getDelimiterValue(e){const t=[];if(e.isArray()){let r=!1,n=g.create(h.VALUE);if(e.iterator(s=>{const u=s;if(u.isError())return r=!0,n=u,!1;t.push(this._getStringValue(u))}),r)return n}else{if(e.isError())return e;t.push(this._getStringValue(e))}return t}_getVariantsNumberFloorValue(...e){const t=[];for(let r=0;r<e.length;r++){let n=e[r];if(n.isString()&&(n=n.convertToNumberObjectValue()),n.isError())return n;const s=Math.floor(+n.getValue());t.push(s)}return t}_getResult(e,t,r,n,s,u,o){let c=n?e.toLocaleLowerCase():e;const l=n?t.map(E=>E.toLocaleLowerCase()):t;let f=0,m=0,d=0;for(let E=0;E<Math.abs(r);E++)if(r<0){const b=l.map(y=>({index:c.lastIndexOf(y),length:y.length})).filter(y=>y.index!==-1).sort((y,R)=>R.index-y.index)[0];if(!b)break;f=b.index,c=c.substr(0,b.index),m++}else{const b=l.map(y=>({index:c.indexOf(y),length:y.length})).filter(y=>y.index!==-1).sort((y,R)=>y.index-R.index)[0];if(!b)break;f+=b.index+d,c=c.substr(b.index+b.length),d=b.length,m++}if(m&&m<Math.abs(r)&&o)return g.create(h.NA);if(!m||m<Math.abs(r))return s?r>0?T.create(e):T.create(""):u;const _=e.substr(0,f);return T.create(_)}}class JC extends V{constructor(){super(...arguments);C(this,"minParams",2);C(this,"maxParams",6)}calculate(e,t,r,n,s,u){let o=r!=null?r:T.create("\\s");const c=n!=null?n:A.create(0),l=s!=null?s:A.create(0),f=u!=null?u:T.create(h.NA),{_variant:m,values:d}=this._getStringValues(t),{_variant:_,values:E}=this._getStringValues(o,!1);o=_;const b=Math.max(e.isArray()?e.getRowCount():1,c.isArray()?c.getRowCount():1,l.isArray()?l.getRowCount():1),y=Math.max(e.isArray()?e.getColumnCount():1,c.isArray()?c.getColumnCount():1,l.isArray()?l.getColumnCount():1),R=D(b,y,e,g.create(h.NA)),p=D(b,y,c,g.create(h.NA)),N=D(b,y,l,g.create(h.NA)),S=this._getResultArray(R,m,o,p,N,f,d,E);return b===1&&y===1?S.get(0,0):S.map(P=>P.get(0,0))}_getStringValues(e,t=!0){let r=e;const n=[];if(r.isArray())r.iterator(s=>{if(s!=null&&s.isError())return r=s,!1;if(s!=null&&s.isNull()&&t)return r=g.create(h.VALUE),!1;const u=this._getRegExpStringValue(s);if(u==="")return r=g.create(h.VALUE),!1;n.push(u)});else{r.isNull()&&t&&(r=g.create(h.VALUE));const s=this._getRegExpStringValue(r);s===""&&(r=g.create(h.VALUE)),n.push(s)}return{_variant:r,values:n}}_getResultArray(e,t,r,n,s,u,o,c){return e.map((f,m,d)=>{let _=n.get(m,d),E=s.get(m,d);const b=this._checkVariantsError(f,t,r,_,E);if(b.isError())return b;if(f.isNull())return g.create(h.VALUE);let y=u;if(y.isArray()){const P=y.getRowCount(),M=y.getColumnCount();if(P>1||M>1)return g.create(h.VALUE);y=y.get(0,0)}let R=`${f.getValue()}`;if(f.isBoolean()&&(R=R.toLocaleUpperCase()),_.isString()&&(_=_.convertToNumberObjectValue(),_.isError()))return _;const p=Math.floor(+_.getValue());if(E.isString()&&(E=E.convertToNumberObjectValue(),E.isError()))return E;const N=Math.floor(+E.getValue());if(N<0||N>1)return g.create(h.VALUE);let S=`${y.getValue()}`;return y.isBoolean()&&(S=S.toLocaleUpperCase()),this._getResult(R,o,c,p,N,S)})}_getResult(e,t,r,n,s,u){const o=new RegExp(r.join("|"),`g${s?"i":""}`),c=new RegExp(t.join("|"),`g${s?"i":""}`),l=e.split(o);let f=1,m=l.map(d=>{let _=d.split(c);return n&&(_=_.filter(E=>E!=="")),f=Math.max(f,_.length),_});return m=m.map(d=>{let _=d;return _.length<f&&(_=_.concat(new Array(f-_.length).fill(u))),_}),ee.createByArray(m)}_checkVariantsError(...e){for(let t=0;t<e.length;t++){const r=e[t];if(r.isError())return r}return F.create(!0)}_getRegExpStringValue(e){let t=e.getValue();return e.isNull()&&(t="\\s"),e.isBoolean()&&(t=t?"TRUE":"FALSE"),t+="",this._escapeRegExp(t)}_escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}}const e_=Object.values(O.DataStreamTreeTokenType).filter(a=>[O.DataStreamTreeTokenType.TABLE_START,O.DataStreamTreeTokenType.TABLE_ROW_START,O.DataStreamTreeTokenType.TABLE_CELL_START,O.DataStreamTreeTokenType.TABLE_CELL_END,O.DataStreamTreeTokenType.TABLE_ROW_END,O.DataStreamTreeTokenType.TABLE_END,O.DataStreamTreeTokenType.CUSTOM_RANGE_START,O.DataStreamTreeTokenType.CUSTOM_RANGE_END,O.DataStreamTreeTokenType.CUSTOM_BLOCK].includes(a));class t_ extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){const{isError:t,errorObject:r,variants:n}=ne(e);if(t)return r;const[s]=n,u=Math.floor(+s.getValue());if(u<1||u>1114111)return g.create(h.VALUE);if(u===1114111||u===1114110)return g.create(h.NA);let o=String.fromCharCode(u);return e_.some(c=>c===o)&&(o=""),T.create(o)}}class r_ extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isNull())return g.create(h.VALUE);let t=e.getValue().toLocaleString();e.isBoolean()&&(t=t.toLocaleUpperCase());const r=t.charCodeAt(0);return A.create(r)}}class n_ extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",1)}calculate(e){if(e.isArray()){const t=e.mapValue(r=>this._handleSingleObject(r));return t.getRowCount()===1&&t.getColumnCount()===1?t.get(0,0):t}return this._handleSingleObject(e)}_handleSingleObject(e){if(e.isError())return e;if(e.isBoolean())return g.create(h.VALUE);let t=e;if(e.isString()&&(t=t.convertToNumberObjectValue(),t.isError()))return t;const r=+t.getValue();return A.create(r)}}class s_ extends V{constructor(){super(...arguments);C(this,"minParams",1);C(this,"maxParams",2)}calculate(e,t){const r=t!=null?t:A.create(0),n=Math.max(e.isArray()?e.getRowCount():1,r.isArray()?r.getRowCount():1),s=Math.max(e.isArray()?e.getColumnCount():1,r.isArray()?r.getColumnCount():1),u=D(n,s,e,g.create(h.NA)),o=D(n,s,r,g.create(h.NA)),c=u.mapValue((l,f,m)=>{const d=o.get(f,m);return l.isError()?l:d.isError()?d:this._handleSingleObject(l,d)});return n===1&&s===1?c.get(0,0):c}_handleSingleObject(e,t){const{isError:r,errorObject:n,variants:s}=ne(t);if(r)return n;const[u]=s,o=Math.floor(+u.getValue());if(o<0||o>1)return g.create(h.VALUE);if(e.isNull())return T.create("");if(e.isBoolean())return e;if(e.isNumber())return A.create(e.getValue());const c=o?`"${e.getValue()}"`:`${e.getValue()}`;return T.create(c)}}const ju=[[gC,ce.ASC],[hC,ce.ARRAYTOTEXT],[dC,ce.BAHTTEXT],[_C,ce.CHAR],[EC,ce.CLEAN],[bC,ce.CODE],[AC,ce.CONCAT],[yC,ce.CONCATENATE],[RC,ce.DBCS],[pC,ce.DOLLAR],[NC,ce.EXACT],[VC,ce.FIXED],[SC,ce.LEFTB],[LC,ce.LEN],[PC,ce.LENB],[MC,ce.LOWER],[wC,ce.MID],[$C,ce.REGEXEXTRACT],[YC,ce.REGEXMATCH],[HC,ce.REGEXREPLACE],[jC,ce.NUMBERVALUE],[xC,ce.PROPER],[QC,ce.REPT],[WC,ce.RIGHT],[GC,ce.RIGHTB],[qC,ce.SUBSTITUTE],[XC,ce.T],[KC,ce.TEXT],[ZC,ce.TEXTAFTER],[zC,ce.TEXTBEFORE],[JC,ce.TEXTSPLIT],[t_,ce.UNICHAR],[r_,ce.UNICODE],[n_,ce.VALUE],[s_,ce.VALUETOTEXT]],xu=[];var Uu=(a=>a)(Uu||{});const Tu=[];var vu=(a=>(a.ENCODEURL="ENCODEURL",a.FILTERXML="FILTERXML",a.WEBSERVICE="WEBSERVICE",a))(vu||{}),a_=Object.defineProperty,i_=Object.getOwnPropertyDescriptor,u_=(a,i,e,t)=>{for(var r=t>1?void 0:t?i_(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&a_(i,e,r),r},bn=(a,i)=>(e,t)=>i(e,t,a);let An=class extends O.Disposable{constructor(a,i,e,t){super(),this._commandService=a,this._functionService=i,this._configService=e,this._dataSyncPrimaryController=t,this._initialize()}_initialize(){this._registerCommands(),this._registerFunctions()}_registerCommands(){[Fr,Pr,Pn,Mn,Br,wn,hr,Ur,Tr,vr,Ir,kr,da,Ca,jn,ca].forEach(a=>{var i;this._commandService.registerCommand(a),(i=this._dataSyncPrimaryController)==null||i.registerSyncingMutations(a)})}_registerFunctions(){var e;const a=this._configService.getConfig(Fn),i=[...hi,...Qi,...Wi,...qi,...ru,...nu,...lu,...fu,...mu,...hu,...Cu,..._u,...bu,...ju,...xu,...Tu].concat((e=a==null?void 0:a.function)!=null?e:[]).map(t=>{const r=t[0],n=t[1];return new r(n)});this._functionService.registerExecutors(...i)}};An=u_([bn(0,O.ICommandService),bn(1,ht),bn(2,O.IConfigService),bn(3,O.Optional(Yu.DataSyncPrimaryController))],An);var o_=Object.defineProperty,c_=Object.getOwnPropertyDescriptor,l_=(a,i,e,t)=>{for(var r=t>1?void 0:t?c_(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&o_(i,e,r),r},yn=(a,i)=>(e,t)=>i(e,t,a);let Rn=class extends O.Disposable{constructor(a,i,e){super(),this._commandService=a,this._dependencyManagerService=i,this._featureCalculationManagerService=e,this._initialize()}_initialize(){this._commandExecutedListener(),this._featureCalculationManagerServiceListener()}_featureCalculationManagerServiceListener(){this.disposeWithMe(this._featureCalculationManagerService.onChanged$.subscribe(a=>{const{unitId:i,subUnitId:e,featureIds:t}=a;this._dependencyManagerService.removeFeatureFormulaDependency(i,e,t)}))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===vr.id){const i=a.params;if(i==null)return;const{featureIds:e,unitId:t,subUnitId:r}=i;this._dependencyManagerService.removeFeatureFormulaDependency(t,r,e)}else if(a.id===Tr.id){const i=a.params;if(i==null)return;const{featureId:e,calculationParam:t}=i,{unitId:r,subUnitId:n}=t;this._dependencyManagerService.removeFeatureFormulaDependency(r,n,[e])}else if(a.id===kr.id){const i=a.params;if(i==null)return;this._dependencyManagerService.removeOtherFormulaDependency(i.unitId,i.subUnitId,i.formulaIdList)}else if(a.id===Ir.id){const i=a.params;if(i==null)return;const e=i.formulaMap,t=[];Object.keys(e).forEach(r=>{t.push(r)}),this._dependencyManagerService.removeOtherFormulaDependency(i.unitId,i.subUnitId,t)}else if(a.id===Fr.id){const i=a.params.formulaData;Object.keys(i).forEach(e=>{const t=i[e];if(t!==void 0){if(t===null){this._dependencyManagerService.clearFormulaDependency(e);return}Object.keys(t).forEach(r=>{const n=t[r];if(n!==void 0){if(n===null)return this._dependencyManagerService.clearFormulaDependency(e,r),!0;new O.ObjectMatrix(n).forValue((s,u)=>{this._dependencyManagerService.removeFormulaDependency(e,r,s,u)})}})}})}else a.id===hr.id&&this._handleSetDefinedName(a)}))}_handleSetDefinedName(a){const i=a.params;if(i==null)return;const{unitId:e,name:t}=i;this._dependencyManagerService.removeFormulaDependencyByDefinedName(e,t)}};Rn=l_([yn(0,O.ICommandService),yn(1,Jt),yn(1,Rr),yn(2,Jt)],Rn);var f_=Object.defineProperty,m_=Object.getOwnPropertyDescriptor,h_=(a,i,e,t)=>{for(var r=t>1?void 0:t?m_(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&f_(i,e,r),r},Bu=(a,i)=>(e,t)=>i(e,t,a);let pn=class extends O.Disposable{constructor(a,i){super(),this._commandService=a,this._featureCalculationManagerService=i,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===Tr.id){const i=a.params;if(i==null)return;const{featureId:e,calculationParam:t}=i,{unitId:r,subUnitId:n}=t;this._featureCalculationManagerService.register(r,n,e,t)}else if(a.id===vr.id){const i=a.params;if(i==null)return;const{featureIds:e,unitId:t,subUnitId:r}=i;this._featureCalculationManagerService.remove(t,r,e)}}))}};pn=h_([Bu(0,O.ICommandService),Bu(1,Jt)],pn);var g_=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,C_=(a,i,e,t)=>{for(var r=t>1?void 0:t?d_(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&g_(i,e,r),r},Is=(a,i)=>(e,t)=>i(e,t,a);let Nn=class extends O.Disposable{constructor(a,i,e){super(),this._commandService=a,this._otherFormulaManagerService=i,this._dependencyManagerService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===Ir.id){const i=a.params;if(i==null)return;const e={[i.unitId]:{[i.subUnitId]:i.formulaMap}};this._otherFormulaManagerService.batchRegister(e)}else if(a.id===kr.id){const i=a.params;if(i==null)return;const e={};i.formulaIdList.forEach(r=>e[r]=!0);const t={[i.unitId]:{[i.subUnitId]:e}};this._otherFormulaManagerService.batchRemove(t)}}))}};Nn=C_([Is(0,O.ICommandService),Is(1,cn),Is(2,Rr)],Nn);var __=Object.defineProperty,E_=Object.getOwnPropertyDescriptor,b_=(a,i,e,t)=>{for(var r=t>1?void 0:t?E_(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&__(i,e,r),r},Fu=(a,i)=>(e,t)=>i(e,t,a);let Vn=class extends O.Disposable{constructor(a,i){super(),this._commandService=a,this._superTableService=i,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===hr.id){const i=a.params;if(i==null)return;const{unitId:e,tableName:t,reference:r}=i;this._superTableService.registerTable(e,t,r)}else if(a.id===Ur.id){const i=a.params;if(i==null)return;const{unitId:e,tableName:t}=i;this._superTableService.remove(e,t)}else if(a.id===jn.id){const i=a.params;if(i==null)return;const{tableOption:e,tableOptionType:t}=i;this._superTableService.registerTableOptionMap(e,t)}}))}};Vn=b_([Fu(0,O.ICommandService),Fu(1,un)],Vn);class Iu extends O.Disposable{constructor(){super(...arguments);C(this,"_dirtyConversionMap",new Map)}dispose(){this._dirtyConversionMap.clear()}remove(e){this._dirtyConversionMap.delete(e)}get(e){return this._dirtyConversionMap.get(e)}has(e){return this._dirtyConversionMap.has(e)}register(e,t){this._dirtyConversionMap.set(e,t)}getDirtyConversionMap(){return this._dirtyConversionMap}}const ku=O.createIdentifier("univer.formula.active-dirty-manager.service");var A_=Object.defineProperty,y_=Object.getOwnPropertyDescriptor,R_=(a,i,e,t)=>{for(var r=t>1?void 0:t?y_(i,e):i,n=a.length-1,s;n>=0;n--)(s=a[n])&&(r=(t?s(i,e,r):s(r))||r);return t&&r&&A_(i,e,r),r},$u=(a,i)=>(e,t)=>i(e,t,a);const p_="UNIVER_ENGINE_FORMULA_PLUGIN";L.UniverFormulaEnginePlugin=(ks=class extends O.Plugin{constructor(i=xo,e,t){super(),this._config=i,this._injector=e,this._configService=t;const{...r}=this._config;this._configService.setConfig(Fn,r)}onStarting(){this._initialize()}onReady(){var i;this._injector.get(An),this._injector.get(L.SetDefinedNameController),this._injector.get(Vn),(i=this._config)!=null&&i.notExecuteFormula||(this._injector.get(Nn),this._injector.get(pn),this._injector.get(Rn),this._injector.get(L.CalculateController))}onRendered(){var i;(i=this._config)!=null&&i.notExecuteFormula||(this._injector.get(L.CalculateFormulaService),this._injector.get(L.FormulaDependencyGenerator))}_initialize(){var e;const i=[[ht,{useClass:qa}],[Qt,{useClass:L.DefinedNamesService}],[ku,{useClass:Iu}],[un,{useClass:ni}],[L.FormulaDataModel],[$r],[An],[L.SetDefinedNameController],[Vn]];(e=this._config)!=null&&e.notExecuteFormula||i.push([L.CalculateFormulaService],[cn,{useClass:oi}],[Je,{useClass:L.FormulaRuntimeService}],[ct,{useClass:L.FormulaCurrentConfigService}],[Rr,{useClass:ii}],[Jt,{useClass:ui}],[L.CalculateController],[Nn],[Rn],[pn],[L.FormulaDependencyGenerator],[L.Interpreter],[L.AstTreeBuilder],[L.Lexer],[rs],[L.FunctionNodeFactory],[L.LambdaNodeFactory],[is],[L.OperatorNodeFactory],[L.PrefixNodeFactory],[L.ReferenceNodeFactory],[L.SuffixNodeFactory],[L.UnionNodeFactory],[fs]),i.forEach(t=>this._injector.add(t))}},C(ks,"pluginName",p_),ks),L.UniverFormulaEnginePlugin=R_([$u(1,O.Inject(O.Injector)),$u(2,O.IConfigService)],L.UniverFormulaEnginePlugin),L.ActiveDirtyManagerService=Iu,L.ArrayValueObject=ee,L.AstRootNodeFactory=rs,L.AsyncArrayObject=Ja,L.AsyncObject=za,L.BaseFunction=V,L.BaseReferenceObject=Ar,L.BaseValueObject=lt,L.BooleanValue=dt,L.BooleanValueObject=F,L.CustomFunction=Bf,L.DependencyManagerService=ii,L.ERROR_TYPE_SET=Mt,L.ErrorType=h,L.ErrorValueObject=g,L.FUNCTION_NAMES_ARRAY=gi,L.FUNCTION_NAMES_COMPATIBILITY=pe,L.FUNCTION_NAMES_CUBE=Gi,L.FUNCTION_NAMES_DATABASE=Ie,L.FUNCTION_NAMES_DATE=ye,L.FUNCTION_NAMES_ENGINEERING=Z,L.FUNCTION_NAMES_FINANCIAL=z,L.FUNCTION_NAMES_INFORMATION=Ve,L.FUNCTION_NAMES_LOGICAL=Oe,L.FUNCTION_NAMES_LOOKUP=fe,L.FUNCTION_NAMES_MATH=k,L.FUNCTION_NAMES_STATISTICAL=q,L.FUNCTION_NAMES_TEXT=ce,L.FUNCTION_NAMES_UNIVER=Uu,L.FUNCTION_NAMES_WEB=vu,L.FeatureCalculationManagerService=ui,L.FormulaExecuteStageType=ze,L.FormulaExecutedStateType=zt,L.FunctionService=qa,L.FunctionType=Qs,L.IActiveDirtyManagerService=ku,L.IDefinedNamesService=Qt,L.IDependencyManagerService=Rr,L.IFeatureCalculationManagerService=Jt,L.IFormulaCurrentConfigService=ct,L.IFormulaRuntimeService=Je,L.IFunctionService=ht,L.IOtherFormulaManagerService=cn,L.ISuperTableService=un,L.LambdaParameterNodeFactory=is,L.LexerNode=ae,L.LexerTreeBuilder=$r,L.NullValueObject=J,L.NumberValueObject=A,L.OtherFormulaManagerService=oi,L.RangeReferenceObject=yr,L.RegisterFunctionMutation=ca,L.RemoveDefinedNameMutation=Ur,L.RemoveFeatureCalculationMutation=vr,L.RemoveOtherFormulaMutation=kr,L.RemoveSuperTableMutation=Ca,L.SetArrayFormulaDataMutation=Pr,L.SetDefinedNameMutation=hr,L.SetDefinedNameMutationFactory=Ro,L.SetFeatureCalculationMutation=Tr,L.SetFormulaCalculationNotificationMutation=Br,L.SetFormulaCalculationResultMutation=wn,L.SetFormulaCalculationStartMutation=Pn,L.SetFormulaCalculationStopMutation=Mn,L.SetFormulaDataMutation=Fr,L.SetOtherFormulaMutation=Ir,L.SetSuperTableMutation=da,L.SetSuperTableOptionMutation=jn,L.StringValueObject=T,L.SuperTableService=ni,L.ValueNodeFactory=fs,L.ValueObjectFactory=mt,L.compareToken=B,L.convertUnitDataToRuntime=qs,L.deserializeRangeForR1C1=mi,L.deserializeRangeWithSheet=fr,L.deserializeRangeWithSheetWithCache=wt,L.functionArray=hi,L.functionCompatibility=Qi,L.functionCube=Wi,L.functionDatabase=qi,L.functionDate=ru,L.functionEngineering=nu,L.functionFinancial=lu,L.functionInformation=fu,L.functionLogical=mu,L.functionLookup=hu,L.functionMath=Cu,L.functionMeta=_u,L.functionStatistical=bu,L.functionText=ju,L.functionUniver=xu,L.functionWeb=Tu,L.generateStringWithSequence=Un,L.getAbsoluteRefTypeWitString=fo,L.getAbsoluteRefTypeWithSingleString=lr,L.getRangeWithRefsString=ho,L.handleNumfmtInCell=Yo,L.handleRefStringInfo=jr,L.includeFormulaLexerToken=Gs,L.initSheetFormulaData=Aa,L.isFormulaLexerToken=or,L.isInDirtyRange=Ys,L.isReferenceString=oa,L.isReferenceStringWithEffectiveColumn=mr,L.isReferenceStrings=ga,L.matchRefDrawToken=Gu,L.matchToken=Q,L.normalizeSheetName=Wu,L.operatorToken=G,L.sequenceNodeType=Ue,L.serializeRange=bt,L.serializeRangeToRefString=Mr,L.serializeRangeWithSheet=fa,L.serializeRangeWithSpreadsheet=ma,L.singleReferenceToGrid=wr,L.strip=es,L.stripErrorMargin=Ya,Object.defineProperty(L,Symbol.toStringTag,{value:"Module"})});