@unotest/dsl 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,15 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@unotest/dsl` are documented in this file.
4
+
5
+ ## [0.5.0] - 2026-05-29
6
+
7
+ Initial release. JavaScript DSL parser + AST types for `@unotest` scenarios,
8
+ with extensions documented in [`EXTENSIONS.md`](./EXTENSIONS.md).
9
+
10
+ Public API (root `@unotest/dsl`): `Lexer`, `Parser`, AST node types, builders.
11
+
12
+ Subpath `@unotest/dsl/validator` — vocab-agnostic validator engine
13
+ (`validateDsl`, `FunctionContract`, `FunctionContractRegistry`, arg-kind /
14
+ inferred-kind rules, shape validation). Consumes a `FunctionContractRegistry`
15
+ injected by the platform; ships no vocabulary contracts itself.
package/EXTENSIONS.md ADDED
@@ -0,0 +1,121 @@
1
+ # @unotest/dsl extensions
2
+
3
+ Syntax this parser accepts on top of the base DSL grammar. Each extension
4
+ exists to let scenarios read the way Playwright code does, while keeping
5
+ the sandbox boundary intact (no `process`, `window`, `require`, no
6
+ arbitrary property traversal).
7
+
8
+ ---
9
+
10
+ ## 1. Method chains — `receiver.method(args)`
11
+
12
+ Postfix method calls, so locator building reads as a chain:
13
+
14
+ ```js
15
+ getByRole("row").filter({ hasText: "Alice" }).getByRole("button").click()
16
+ ```
17
+
18
+ Bare property access *without* a call (`a.b`) is rejected at parse time
19
+ (see extension 4 for the one sandboxed exception). This blocks
20
+ `process.env`, `window.location.href`, and similar escapes.
21
+
22
+ The receiver can be any primary expression — a function call
23
+ (`getByRole(...).filter(...)`), a variable (`row.click()`), etc. Strings,
24
+ numbers, and objects are grammatically legal as receivers but rejected by
25
+ the executor with typed errors.
26
+
27
+ ## 2. Raw multi-line backtick strings — `` `...` ``
28
+
29
+ Backtick strings span multiple lines, which keeps inline JS legible:
30
+
31
+ ```js
32
+ evaluate(`
33
+ const el = document.querySelector('.total');
34
+ return el.textContent;
35
+ `)
36
+ ```
37
+
38
+ **`${...}` interpolation is forbidden.** Backticks are raw multi-line
39
+ strings only — there is no interpolation phase in the lexer. The single
40
+ legal way to pass values into JS is positional args:
41
+ `evaluate('js', arg1, arg2)`. This prevents string-interpolation attacks
42
+ such as `evaluate(\`fetch('/api/${userInput}')\`)`.
43
+
44
+ ## 3. Variables as chain receivers
45
+
46
+ A variable bound to a locator (or other value) is a valid chain receiver:
47
+
48
+ ```js
49
+ row = getByRole("row").filter({ hasText: "Alice" })
50
+ row.click()
51
+ row.getByRole("button", { name: "Edit" }).click()
52
+ ```
53
+
54
+ ## 4. Bare property access — `receiver.name`
55
+
56
+ Reading a property off a value (db row, api response, fixture object)
57
+ uses natural dot syntax:
58
+
59
+ ```js
60
+ row = dbQuery("SELECT name, email FROM users LIMIT 1")[0]
61
+ fill(emailInput, row.email)
62
+
63
+ user = { name: "Alice", email: "a@b.c" }
64
+ fill(nameInput, user.name)
65
+ ```
66
+
67
+ Sandbox guarantees:
68
+
69
+ - The DSL scope contains only values the runtime puts there (objects,
70
+ arrays, primitives, locators). There is no `process`, `window`,
71
+ `require` to reach.
72
+ - Object property lookup is a plain map lookup — the JS prototype chain
73
+ is **not** traversed. `row.constructor`, `row.__proto__`,
74
+ `row.toString` all resolve to `undefined` at the DSL level.
75
+ - Property access on a non-object value throws a typed error with
76
+ line/column preserved.
77
+ - A read with no side effect (`row.foo;` on its own) is rejected with a
78
+ helpful message — a property-access statement must be part of a chain
79
+ that ends in a method call.
80
+
81
+ ## 5. Regular-expression literals — `/pattern/flags` (ES5 subset)
82
+
83
+ Standard `/body/flags` literals, supported so Playwright matcher APIs can
84
+ take regexes directly instead of `new RegExp(...)`:
85
+
86
+ ```js
87
+ getByRole("link", { name: /^Sets/ })
88
+ getByText(/^OK$/i)
89
+ filter({ hasText: /done/i })
90
+ ```
91
+
92
+ Subset rules:
93
+
94
+ - **Flags:** `g`, `i`, `m` only. Post-ES5 flags (`s`, `u`, `y`, `d`, `v`)
95
+ are rejected at parse time with a message naming the spec version they
96
+ came from (e.g. `regex flag 's' requires ES2018 dotAll; not in ES5
97
+ subset`).
98
+ - **Body:** per the ES5 grammar — escape sequences via `\`, character
99
+ classes `[...]` where `/` does not close the literal, no literal line
100
+ breaks inside the body.
101
+ - `//` is a line comment, not an empty regex — use `/(?:)/` for a
102
+ genuinely empty pattern.
103
+
104
+ `/` is disambiguated between regex and division by the preceding token,
105
+ following the standard ECMA-262 goal-symbol selection.
106
+
107
+ ---
108
+
109
+ ## Deliberately not supported
110
+
111
+ - **`${}` template interpolation** — see extension 2.
112
+ - **`await` / `async`** — the executor awaits each DSL call internally;
113
+ scenarios read as synchronous. Allowing `await` would also let
114
+ `await fetch(...)` slip the sandbox.
115
+ - **`import` / `require` / `export`** — sandbox boundary. Cross-file
116
+ helpers live in `unotest/e2e/_helpers/` and are loaded by the runner,
117
+ not by the scenario.
118
+ - **Arrow functions `() => ...`** — use `function name(args) { ... }`.
119
+ - **Optional chaining `a?.b`** — use an explicit `if`.
120
+ - **Assignment to a property `obj.x = 5`** — build a new object literal
121
+ instead.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ivan Volkov
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # @unotest/dsl
2
+
3
+ JavaScript DSL parser + AST types for `@unotest` scenarios, plus a
4
+ vocab-agnostic validator engine under the `@unotest/dsl/validator` subpath.
5
+
6
+ Extensions documented in [`EXTENSIONS.md`](./EXTENSIONS.md):
7
+
8
+ - **MemberCallExpression** — postfix `.IDENT(args)` for method chains
9
+ (`loc.getByRole(...).filter(...).click()`).
10
+ - **PropertyAccessExpression** — `obj.prop` reads.
11
+ - **MetaBlockStatement** — `//@collapse(...) … //@endcollapse` blocks.
12
+ - **Raw backtick strings** — multi-line `` `...` `` without `${}`
13
+ interpolation.
14
+
15
+ ## API
16
+
17
+ ```ts
18
+ import { Lexer, Parser } from "@unotest/dsl";
19
+
20
+ const tokens = new Lexer("function test_x() { click(getByRole('button')); }").tokenize();
21
+ const ast = new Parser(tokens).parse();
22
+ ```
23
+
24
+ See the [package source](https://github.com/unotest/dsl) for the full surface (AST node types, builders,
25
+ parser, lexer, token types).
26
+
27
+ ### Validator
28
+
29
+ ```ts
30
+ import { validateDsl } from "@unotest/dsl/validator";
31
+
32
+ // `registry` is a FunctionContractRegistry supplied by the platform
33
+ // (e.g. @unotest/web's web-vocab contracts) — this package ships none.
34
+ const diagnostics = validateDsl(ast, code, /* isWrapped */ false, registry);
35
+ ```
36
+
37
+ The validator is vocab-agnostic: it walks the AST and checks function
38
+ contracts, argument kinds, and statement shape against the injected
39
+ registry. AST classes are shared with the parser root export, so
40
+ `instanceof` checks hold across both subpaths.
41
+
42
+ ## Consumers
43
+
44
+ - [`@unotest/web`](https://github.com/unotest/web) — CLI / MCP / runner
45
+ uses the parser for scenarios and `@unotest/dsl/validator` with its
46
+ web-vocab contract registry for `lint`.
47
+
48
+ ## Pre-launch
49
+
50
+ Pre-`1.0.0` — public API may change without deprecation cycles. Pin to
51
+ an exact version if breakage matters: `"@unotest/dsl": "0.5.0"`.
@@ -0,0 +1 @@
1
+ const _0x381e21=_0x2543;(function(_0x11188d,_0x9c846f){const _0x49fb20={_0x5e2d03:0x1c6,_0x4450e9:0x1ee,_0x309a42:0x18c,_0x393db4:0xe8,_0x1651c3:0x1d6,_0x3f255b:0x207},_0x377e6a=_0x2543,_0x9aa87a=_0x11188d();while(!![]){try{const _0x35b476=parseInt(_0x377e6a(0x116))/0x1*(-parseInt(_0x377e6a(0xb3))/0x2)+parseInt(_0x377e6a(0xc9))/0x3*(parseInt(_0x377e6a(_0x49fb20._0x5e2d03))/0x4)+-parseInt(_0x377e6a(_0x49fb20._0x4450e9))/0x5+parseInt(_0x377e6a(_0x49fb20._0x309a42))/0x6+parseInt(_0x377e6a(0x9e))/0x7*(-parseInt(_0x377e6a(_0x49fb20._0x393db4))/0x8)+parseInt(_0x377e6a(0xf6))/0x9+-parseInt(_0x377e6a(_0x49fb20._0x1651c3))/0xa*(-parseInt(_0x377e6a(_0x49fb20._0x3f255b))/0xb);if(_0x35b476===_0x9c846f)break;else _0x9aa87a['push'](_0x9aa87a['shift']());}catch(_0xffb2c){_0x9aa87a['push'](_0x9aa87a['shift']());}}}(_0x16f1,0xd2d73));var __defProp=Object['defineProperty'],__name=(_0x3b0bac,_0x2fd2ba)=>__defProp(_0x3b0bac,'name',{'value':_0x2fd2ba,'configurable':!![]});function escapeDslString(_0x2d6365){const _0x1f22fb={_0x23eac9:0x1b0},_0x1b043b=_0x2543;return'\x22'+_0x2d6365[_0x1b043b(0x1b0)](/\\/g,'\x5c\x5c')[_0x1b043b(_0x1f22fb._0x23eac9)](/"/g,'\x5c\x22')+'\x22';}__name(escapeDslString,_0x381e21(0x9a));function locator(_0x2ab8e5,_0x214b72){const _0x36b222={_0x330afe:0x1b0,_0x35f3ed:0x1a2,_0x33d085:0xb6},_0x3ec52b=_0x381e21,_0x15d660=_0x2ab8e5[_0x3ec52b(_0x36b222._0x330afe)](/\\/g,'\x5c\x5c')[_0x3ec52b(_0x36b222._0x330afe)](/'/g,'\x5c\x27');if(_0x214b72!==void 0x0)return _0x3ec52b(_0x36b222._0x35f3ed)+_0x15d660+_0x3ec52b(_0x36b222._0x33d085)+_0x214b72+')])';return _0x3ec52b(0x1a2)+_0x15d660+'\x27)])';}__name(locator,_0x381e21(0x14d));function buildClickDsl(_0x9460bc,_0x228b69,_0xcbf0ac=''){const _0x210dcf={_0x1ecdb5:0x205},_0x293b9f=_0x381e21;return _0x293b9f(_0x210dcf._0x1ecdb5)+locator(_0x9460bc,_0x228b69)+',\x20'+escapeDslString(_0xcbf0ac)+');';}__name(buildClickDsl,_0x381e21(0x208));function buildFillDsl(_0x569387,_0x105fb4,_0x21bc85,_0x27d6d9=''){const _0x201547=_0x381e21;return _0x201547(0x99)+locator(_0x569387,_0x21bc85)+',\x20'+escapeDslString(_0x105fb4)+',\x20'+escapeDslString(_0x27d6d9)+');';}__name(buildFillDsl,_0x381e21(0x1be));function buildTypeTextDsl(_0x14518a,_0xf3be6b,_0x45bfaa=''){const _0x5e74a3={_0x818813:0x1d7},_0x3a3d49=_0x381e21;return _0x3a3d49(_0x5e74a3._0x818813)+locator(_0x14518a)+',\x20'+escapeDslString(_0xf3be6b)+',\x20'+escapeDslString(_0x45bfaa)+');';}__name(buildTypeTextDsl,_0x381e21(0x92));function buildOpenDsl(_0x1d2059,_0x346463='0',_0x3b692a=''){return'open('+escapeDslString(_0x1d2059)+',\x20'+escapeDslString(_0x346463)+',\x20'+escapeDslString(_0x3b692a)+');';}__name(buildOpenDsl,_0x381e21(0x204));var buildNavigateDsl=buildOpenDsl;function buildAssertVisibleDsl(_0x1a36bd,_0x5e6a36=''){const _0x57f9bb=_0x381e21;return _0x57f9bb(0xbf)+locator(_0x1a36bd)+',\x20'+escapeDslString(_0x5e6a36)+');';}__name(buildAssertVisibleDsl,_0x381e21(0x1f5));function buildAssertUrlContainsDsl(_0x5bdfc4,_0x8a548a=''){return'urlAssert(\x22CONTAINS\x22,\x20'+escapeDslString(_0x5bdfc4)+',\x20'+escapeDslString(_0x8a548a)+');';}__name(buildAssertUrlContainsDsl,_0x381e21(0x114));function buildAssertPageReadyDsl(_0x196a5a=''){const _0x56533e=_0x381e21;return _0x56533e(0x180)+escapeDslString(_0x196a5a)+');';}__name(buildAssertPageReadyDsl,_0x381e21(0xd3));function buildAssertAuthenticatedDsl(_0xb2f0c0=''){const _0x57c12c=_0x381e21;return _0x57c12c(0xae)+escapeDslString(_0xb2f0c0)+');';}__name(buildAssertAuthenticatedDsl,_0x381e21(0x162));function buildAssertTableNotEmptyDsl(_0x909412,_0x1f4725=''){const _0xb1da74=_0x381e21;return _0xb1da74(0x103)+locator(_0x909412)+',\x20'+escapeDslString(_0x1f4725)+');';}__name(buildAssertTableNotEmptyDsl,_0x381e21(0x1a0));function buildAssertListNotEmptyDsl(_0xda99d9,_0x3aebd4=''){const _0x2ff0fa={_0x21acb5:0x94},_0xbe4fe0=_0x381e21;return _0xbe4fe0(_0x2ff0fa._0x21acb5)+locator(_0xda99d9)+',\x20'+escapeDslString(_0x3aebd4)+');';}__name(buildAssertListNotEmptyDsl,_0x381e21(0x98));function buildAssertNoVisibleErrorDsl(_0x367db9=''){return'assertNoVisibleError('+escapeDslString(_0x367db9)+');';}__name(buildAssertNoVisibleErrorDsl,_0x381e21(0x1a3));function buildAssertSectionTitleDsl(_0x48a828,_0x5f48cc=''){const _0x5df33a=_0x381e21;return _0x5df33a(0xe1)+escapeDslString(_0x48a828)+',\x20'+escapeDslString(_0x5f48cc)+');';}__name(buildAssertSectionTitleDsl,_0x381e21(0x101));function buildAssertToastVisibleDsl(_0x478889,_0x197274=''){const _0x4c3243={_0x1ca64d:0x199},_0xb26199=_0x381e21;return _0xb26199(_0x4c3243._0x1ca64d)+escapeDslString(_0x478889)+',\x20'+escapeDslString(_0x197274)+');';}function _0x2543(_0x26032c,_0x3ff464){_0x26032c=_0x26032c-0x8d;const _0x16f19c=_0x16f1();let _0x2543eb=_0x16f19c[_0x26032c];if(_0x2543['RhixHs']===undefined){var _0x160696=function(_0x58455e){const _0x5f0032='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b0bac='',_0x2fd2ba='';for(let _0x2d6365=0x0,_0x2ab8e5,_0x214b72,_0x15d660=0x0;_0x214b72=_0x58455e['charAt'](_0x15d660++);~_0x214b72&&(_0x2ab8e5=_0x2d6365%0x4?_0x2ab8e5*0x40+_0x214b72:_0x214b72,_0x2d6365++%0x4)?_0x3b0bac+=String['fromCharCode'](0xff&_0x2ab8e5>>(-0x2*_0x2d6365&0x6)):0x0){_0x214b72=_0x5f0032['indexOf'](_0x214b72);}for(let _0x9460bc=0x0,_0x228b69=_0x3b0bac['length'];_0x9460bc<_0x228b69;_0x9460bc++){_0x2fd2ba+='%'+('00'+_0x3b0bac['charCodeAt'](_0x9460bc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2fd2ba);};_0x2543['gsiphS']=_0x160696,_0x2543['LNMxam']={},_0x2543['RhixHs']=!![];}const _0x164cdc=_0x16f19c[0x0],_0x42a0e1=_0x26032c+_0x164cdc,_0x38e968=_0x2543['LNMxam'][_0x42a0e1];return!_0x38e968?(_0x2543eb=_0x2543['gsiphS'](_0x2543eb),_0x2543['LNMxam'][_0x42a0e1]=_0x2543eb):_0x2543eb=_0x38e968,_0x2543eb;}function _0x16f1(){const _0x14ca5f=['y2XVBMu','uMvNrxHWrxHWCMvZC2LVBG','z2v0uhjVCgvYDgLLCW','AM9PBG','yNvPBgrbC3nLCNruzxH0rxf1ywXZrhnS','rvHdta','igvSC2uG','Dw5RBM93BIbYzwDLEcbMBgfNicC','CMvWBgfJzq','vgvTCgXHDguGAw50zxjWB2XHDgLVBIbGjhSUlI59ycbPCYbUB3qGywXSB3DLzcbPBIb1BM90zxn0ierttcbZDhjPBMDZigf0igXPBMuG','sw52ywXPzcb0B2TLBML6zu9WzxjHDg9YoIb1BMv4CgvJDgvKigvUzcbVzIbPBNb1Da','BgfZDeLUzgv4','vMfYAwfIBguGBMfTzsaN','kqP7cG','tfrfuq','yxjNtMfTzxm','qu1q','DgvZDa','vw5KzwzPBMvKvMfSDwu','Dw5KzwzPBMvK','Dg9Rzw5PEMvpCgvYyxrVCG','CMvJzwL2zxi','yNvPBgrgAwXSrhnS','oIbLEhbLy3rLzca','tKvr','rNvUy3rPB25HBev4ChjLC3nPB24','yxnoDw1Izxi','sw5JCMvTzw50rxHWCMvZC2LVBG','v09sra','rvffuq','ofHRrwXABa','zwXZzq','u3rYAw5NvMfSDwu','y29UC3q','zNvUy3rPB25Z','icHKyw5NBgLUzYbIywnRC2XHC2GPlG','igrVzxnUj3qGBwf0y2GGDg9Rzw4GDhLWzsa','rxHWzwn0zwqGAwrLBNrPzMLLCIbHzNrLCIaNlICGyNv0igDVDca','y2XHC3m','vxnLCKrLzMLUzuz1BMn0Aw9U','yxnZzxj0sw5WDxrwywX1zsG','y29SDw1U','zwXLBwvUDhm','q2fUBM90igLUy3jLBwvUDc9KzwnYzw1LBNqGBM9Ulw51BwvYAwmGDMfSDwu','twLZC2LUzYbJBg9ZzsbXDw90zsbPBIbZDhjPBMCGBgL0zxjHBa','u0vnsunpte9o','ntqXmgH3zNDQDa','DhLWzvrLEhqO','zwXLBwvUDev4ChjLC3nPB24','AwyG','B3bLBLrHyIG','y29UDgLUDwu','Dhj1zq','yNvPBgrbC3nLCNreAwfSB2DpCgvUrhnS','rNvUy3rPB25ezwzPBMvtDgf0zw1LBNq','wKvstW','vMfYAwfIBgvZihn0ywnRihvUzgvMAw5Lza','t2jQzwn0rxHWCMvZC2LVBG','q29UzgL0Aw9UywXfEhbYzxnZAw9U','z2v0qxjNC0nVDw50','qxjYyxLfEhbYzxnZAw9U','qKfs','t1bfuKfut1jt','DM9Pza','rvm2ihvUAwnVzgu','Bwv0yujSB2nR','yNvPBgrbC3nLCNrvCMXfCxvHBhneC2W','uhjVCgvYDhKTCMvHzcbLEhbYzxnZAw9UihvZzwqGyxmGysbZDgf0zw1LBNqGkg5VihnPzguGzwzMzwn0ks4GrwL0AgvYigfZC2LNBIbPDcaOyhGGpsbYB3CUzM9VycKGB3iGy2fSBcbHig1LDgHVzcaOyhjVDY5MB28OkwaPlIbbDca','y2fSBfDPDgHqB3n0zML4','rvmYmdi0ihvUAwnVzgvtzxrZ','mZuZmZaWtKTLDerA','yNvPBgrty3jVBgXjBNrVvMLLD0rZBa','Aw5KzxHLCW','Dg9Rzw5PEMvnDwX0AwXPBMvdB21Tzw50','vMfYu3rHDgvTzw50','y29UC3vTzvDVCMq','zM9Y','yNvPBgrbC3nLCNrwAxnPyMXLrhnS','zM9YicG','qLjfquS','EwLLBgq','q09mt04','ywrKvg9Rzw4','zwXLBwvUDefZC2vYDcGIsvmIlca','y2f0y2G','sw52ywXPzcbMBg9HDcbUDw1Izxi','uMv0DxjUu3rHDgvTzw50','jYbPCYbHihjLC2vYDMvKiePHDMfty3jPChqGA2v5D29Yzc4GvxnLigeGzgLMzMvYzw50ig5HBwuUia','t1bfuKfut1jFq0HbuLm','Aw5PDa','vg9Rzw4ODhLWztOG','C3DPDgnOvg9gCMfTzsG','yNvPBgrpCgvUrhnS','y2XPy2SO','yNvPBgrbC3nLCNruB2fZDfzPC2LIBgveC2W','mtfTv2Trzu8','yNvPBgrdBgLJA0rZBa','q0Xpu0vFtuvuqv9cte9dsW','zxzHBa','zM9YrwfJAa','BMfTzq','z2v0vgv4Da','BgvUz3rO','reLwsurf','rM9Yu3rHDgvTzw50','v0Hjteu','yNvPBgruExbLvgv4DerZBa','DxjSqxnZzxj0kcjjuYiSia','yxnZzxj0tgLZDe5VDevTChr5ka','uKvhrvG','ufjfrKLyx0Loq1jftuvova','qu5e','yNvPBgrbC3nLCNrmAxn0tM90rw1WDhLeC2W','zMLSBcG','zxnJyxbLrhnSu3rYAw5N','ufjfrKLyx0rfq1jftuvova','ChvZAa','AgLNAgXPz2H0qMXVy2S','mtrTCLjwteK','BMv3','DMfYia','twLZC2LUzYbJBg9ZzsbIywnRDgLJAYbPBIbYyxCGC3rYAw5NigXPDgvYywW','zMLSBa','uLbbuKvo','yxntDhjPBMC','y29UC3vTzufYCMf5','CgfYC2u','AxnfEgLZDhm','lcbJB2WG','Bg9NAwnHBe9Y','C3rHDgvTzw50t3jcBg9JAW','vg9Rzw4G','tfrf','Axnmzxr0zxi','yxnZzxj0qxv0AgvUDgLJyxrLzcG','u3rYAw5N','sw5JCMvTzw50u3rHDgvTzw50','yNvPBgrpCgvUtwvUDuL0zw1eC2W','B3bLBG','mJG5mZKWvhvVDwn4','y29UzgL0Aw9U','D2HPBguGka','jYKSig50AcG','yNvPBgrtzwXLy3rdB21IB2jVEfzHBhvLrhnS','DhjPBq','y2XVC2veAwfSB2CO','C2L6zq','y2HHCKf0','t25LigfYz3vTzw50igv4CgvJDgvK','B3bLCMf0Aw9U','Bwf0y2G','zwXLBwvUDfzPC2LIAwXPDhLbC3nLCNqOiLzju0LcteuIlca','yNvPBgrtD2L0y2HuB0zYyw1LrhnS','CMvZDwX0','rLvoq1rjt04','vw5YzwnVz25PEMvKig9WzxjHDg9YigzVCIbZDhjPBMCGDMfSDwu','C2nYB2XSvg9cB3r0B20O','zw50CMLLCW','DMfSDwu','zwXZzvn0yxrLBwvUDa','qxjYyxLby2nLC3nfEhbYzxnZAw9U','nZq5oda1r21frNbS','BgLUzq','zxH0zw5KCW','yNvPBgrty3jVBgXuB1rVCerZBa','rg9xAgLSzvn0yxrLBwvUDa','uMvNrxHWvMfSDwu','q2fUBM90ignHC3qGyxjYyxKGDg8GBNvTyMvY','q09oveLovuu','lY9a','qxjYyxLbC3nPz25Tzw50u3rHDgvTzw50','yNvPBgrbC3nLCNrqywDLuMvHzhLeC2W','qMXVy2TtDgf0zw1LBNq','z2v0tgLUzq','vMfYAwfIBgvfEhbYzxnZAw9U','zxHWCMvZC2LVBG','D2fPDezVCK5HDMLNyxrPB24O','DgvYBwLUyxrPB24','yNvPBgrgAwXSrM9YBurZBa','yNjLywS','Dg9Rzw5PEMvnzxrHv29Yza','Dgv4Da','yNvPBgrxywL0rM9YrhnS','ru9g','tuLovvm','yxnZzxj0u2vJDgLVBLrPDgXLka','vw5HCNLfEhbYzxnZAw9U','ywrK','BwfW','D2HPBgu','uMvNrxHWrMXHz0vYCM9Y','DMfY','ndi3otm2qLHRAhvN','yxjYyxK','zwXLBwvUDefZC2vYDcGIq09ovefjtLmIlca','C3DPDgnO','uhjVCgvYDhLby2nLC3nfEhbYzxnZAw9U','yNvPBgrbC3nLCNruzxH0q29UDgfPBNneC2W','q09ntue','tgv4zxi','zMLUywXSEq','Dg9Rzw5PEMvoDw1Izxi','zxHLy3v0zq','yNvPBgrdBg9ZzurPywXVz0rZBa','yNvPBgrty3jVBgXuB0jVDhrVBurZBa','Dg9Rzw5PEMvsyxDuzxH0','nJCWnJq0me9kvvHPEq','Dg9Rzw5Z','y29UC3vTzq','Dg9Rzw4','CMv0DxjU','BNvTyMvY','Aw5ZDgfUy2vVzG','CgvLAW','Dg9Rzw5PEMvuzxH0','zw5K','zMXHz3m','yNvPBgrbC3nLCNrtzwn0Aw9UvgL0BgveC2W','zNvUy3rPB24','yxnZzxj0vgfIBgvoB3rfBxb0EsG','re9u','D2L0Aa','zMLSBezVCM0OiG','yNvPBgrxywL0rM9YtMf2AwDHDgLVBKrZBa','iIWGBgLUztOG','zNvUy3rPB25HBev4ChjLC3nPB24','vKfs','C2f2zuzVCM0O','ChjPBNqG','Dg9tDhjPBMC','z2v0uMvZDwX0','tuLovvnnsu5vuW','BMv4Da','z2v0','rvHdtevr','Bg9N','yNvPBgrbC3nLCNrvCMXdB250ywLUC0rZBa','qxjYyxKGzxHWzwn0zwq','owrSC0XysG','yNvPBgrbC3nLCNroB3rwAxnPyMXLrhnS','C3vWzxi','Aw5JCMvTzw50','Dg9Rzw5PEMvdB21Tzw50','D2fPDezVCIG','z2v0q29SDw1U','yNvPBgrbC3nLCNrjBNb1DfzHBhvLrhnS','ChjVCgvYDgLLCW','rvm2ihn0AwnREq','sw52ywXPzcb0B2TLBML6zu9WzxjHDg9Yia','zxHWCJi','vw5RBM93BIbMDw5JDgLVBJOG','rvmYmdiYigHHC0LUzgLJzxm','oYbUB3qGAw4Grvm1ihn1yNnLDc4Gu2vLigrVy3mVzhnSl3jLz2v4lwXPDgvYywWTzxm1lM1KigzVCIb0AguGC3vWCg9YDgvKigzSywCGC2v0lG','zhjHz0fUzerYB3aO','Bgv0','zxHWCJe','vevyva','zwXLBwvUDenVDw50qxnZzxj0kcjfuvvbtciSia','lIbvC2uGCg9ZAxrPB25HBcbHCMDZigLUC3rLywq6igv2ywX1yxrLkcDYzxr1CM4GyxjNlNGNlcb7yxjNoIb2ywX1zx0PlG','jY4Grvm1igfSBg93CYbNlcbPlcbTlG','z2v0tMfTzq','zNvUy3rPB25ezwzPBMu','Cg9W','yNvPBgreCMfNqw5KrhjVCerZBa','AgfZ','v2HPBgvtDgf0zw1LBNq','qMLUyxj5rxHWCMvZC2LVBG','D2HPBgvtDgf0zw1LBNq','qu1qqu1q','Aw5KzxG','y2fZzq','vw50zxjTAw5HDgvKihjLz2v4igXPDgvYywWGyxqGBgLUzsa','C3rHDgvTzw50','AwztDgf0zw1LBNq','ue9tvezjwf9jtKnsru1ftLq','qKfsqKfs','zNvUy3rPB25fEhbYzxnZAw9U','DMfYAwfIBgvZ','zxf1ywXPDhK','uKvuvvjo','Aw5KzxHpzG','DgHPCW','twvTyMvYq2fSBev4ChjLC3nPB24UzxzHBcGPigLZig5VDcbPBxbSzw1LBNrLzcbPBIb0AguGAw4TChjVy2vZCYbPBNrLCNbYzxrLCIdIGjqGDxnLiefZDev4zwn1Dg9YicHZCMmVzhnSl2fZDc1LEgvJDxrVCI50CYKGAw5ZDgvHzc4','tejsqunf','yNvPBgrxywL0rM9Yvgv4DerZBa','q29UDgLUDwvtDgf0zw1LBNq','cN0kD2HPBguGka','t2jQzwn0vMfSDwu','qxjYyxLwywX1zq','y29Z','rK9s','Dw5HCNK','vu5eruzjtKve','Bg9JyxrVCG','tLvnqKvs','yNvPBgrxywL0rM9YvvjmrhnS','lcaIiZy2y2nJyYiPoW','uKjsqunlrvq','ueXvuW','zMXVD18','Aw5WDxq','uhjPBNrtDgf0zw1LBNq','DMfSAwrHDgvfCZvgBgfNCW','qNjLywTtDgf0zw1LBNq','ywrKqxjNDw1LBNq','yNvPBgrxywL0rM9YsgLKzgvUrhnS','ufjjtLq','r1rf','C3rHDgvTzw50CW','BxvSDgLWBgLJyxrL','CgvLA0DYB3vW','DhLWzq','DhLWzw9M','yMXVy2S','yNvPBgrbC3nLCNrbDxrOzw50AwnHDgvKrhnS','DMfYAwfIBgu','z2v0qxjNC05HBwu','C3rHy2S','Aw5PDgLHBgL6yxrPB24','Axnmzxr0zxjjBLDVCMq','AwzfBhnL','u0Xbu0G','y29UzgL0Aw9UywW','jYbYzxf1AxjLCYa','r1rfuq','rxHWzwn0zwqGChjVCgvYDhKGA2v5icH3B3jKig9Yihn0CMLUzYK','yxjYyxLfEhbYzxnZAw9U','B2jQzwn0rxHWCMvZC2LVBG','zgvJBgfYyxrVCNm','Bg9VA01HDgnO','yMXVy2TnzxrHqMXVy2S','C2XPy2u','twvTyMvYq2fSBev4ChjLC3nPB24','vMfYAwfIBgvZ','Dg9Rzw5PEMvxB3jK','C2nYB2XSvg9uB3aO','ue9tvezjwf9erunsru1ftLq','Bg9JywXLq29TCgfYzq','vw5YzwnVz25PEMvKihzHBhvLlIa','zMfSC2u','igrVzxmGBM90igv4Axn0iq','zNjVBq','yM9VBgvHBG','C291CMnL','yxnZzxj0ugfNzvjLywr5ka','ruXtrq','zM9Yu3rHDgvTzw50','tejsqunlrvq','DMfYu3rHDgvTzw50','C2v0','z2v0vhLWzq','ywz0zxjcBg9JAW','iIWG','C2nYB2XSsw50B1zPzxCO','yNvPBgrpCgvUvgfIrhnS','id0G','nJu4nZu4nLPhDerpyW','uKjsqunf','yM9KEq','C2v0ugfNzq','z2v0qxjYyxK','ueXvu1bmvvm','Dhj5','yNvPBgrmB2DPBKfZrhnS','Cg9Z','zgvIDwDNzxi','zxHWB3j0','dqOa','C3DPDgnOvg9nywLUrNjHBwuO','yxnZzxj0vg9HC3rwAxnPyMXLka','twv0yujSB2nRu3rHDgvTzw50','Bg9NAw5bCYG','rvmYmde4igrVDefSBa','yxnZAwDUBwvUDfn0yxrLBwvUDa','yNvPBgrgBg93rhnS','CMvNzxHdB250zxH0qwXSB3DLza','yNvPBgrbC3nLCNruywjSzu5VDevTChr5rhnS','yxjNDw1LBNrZ','Dg9mB2nHDg9YkfTSB2nHDg9YkcC','yNvPBgrbC3nLCNroB1zPC2LIBgvfCNjVCKrZBa','z2v0t3bLCMf0B3joyw1L','zg8GEWO','ywrKAxrPDMu','ChjPBwfYEq'];_0x16f1=function(){return _0x14ca5f;};return _0x16f1();}__name(buildAssertToastVisibleDsl,_0x381e21(0x206));function buildAssertDialogOpenDsl(_0x33fd90,_0x1867c2=''){return'assertDialogOpen('+escapeDslString(_0x33fd90)+',\x20'+escapeDslString(_0x1867c2)+');';}__name(buildAssertDialogOpenDsl,_0x381e21(0x1dd));function buildAssertRouteIsDsl(_0x1ab0e1,_0x2d01d2=''){return'assertRouteIs('+escapeDslString(_0x1ab0e1)+',\x20'+escapeDslString(_0x2d01d2)+');';}__name(buildAssertRouteIsDsl,'buildAssertRouteIsDsl');function buildSelectComboboxValueDsl(_0x5cfa0f,_0x511481,_0x271562=''){return'selectComboboxValue('+locator(_0x5cfa0f)+',\x20'+escapeDslString(_0x511481)+',\x20'+escapeDslString(_0x271562)+');';}__name(buildSelectComboboxValueDsl,_0x381e21(0xb7));function buildLoginAsDsl(_0x392fd1,_0x3af17e,_0x46d10d=''){const _0x24703d=_0x381e21;return _0x24703d(0x19b)+escapeDslString(_0x392fd1)+',\x20'+escapeDslString(_0x3af17e)+',\x20'+escapeDslString(_0x46d10d)+');';}__name(buildLoginAsDsl,_0x381e21(0x193));function buildOpenMenuItemDsl(_0x559b01,_0x321798=''){return'openMenuItem('+escapeDslString(_0x559b01)+',\x20'+escapeDslString(_0x321798)+');';}__name(buildOpenMenuItemDsl,_0x381e21(0xb1));function buildOpenTabDsl(_0x4b455d,_0x5a0aae=''){const _0x426db5={_0x410f32:0x1da},_0x567ba5=_0x381e21;return _0x567ba5(_0x426db5._0x410f32)+escapeDslString(_0x4b455d)+',\x20'+escapeDslString(_0x5a0aae)+');';}__name(buildOpenTabDsl,_0x381e21(0x18a));function buildCloseDialogDsl(_0x2443cd,_0x56cb95=''){const _0x2a7031={_0x71ae42:0xb9},_0x200390=_0x381e21;return _0x200390(_0x2a7031._0x71ae42)+escapeDslString(_0x2443cd)+',\x20'+escapeDslString(_0x56cb95)+');';}__name(buildCloseDialogDsl,_0x381e21(0xf3));function buildFillFormDsl(_0x57d87,_0x2e2553=''){const _0x5cafeb={_0x5e56f8:0x1b0},_0xdc28d6=_0x381e21,_0x3fe3ab=JSON['stringify'](_0x57d87)[_0xdc28d6(_0x5cafeb._0x5e56f8)](/\\/g,'\x5c\x5c')[_0xdc28d6(_0x5cafeb._0x5e56f8)](/"/g,'\x5c\x22');return _0xdc28d6(0x106)+_0x3fe3ab+_0xdc28d6(0x188)+escapeDslString(_0x2e2553)+');';}__name(buildFillFormDsl,_0x381e21(0xda));function buildSaveFormDsl(_0x2a8be0,_0x27eb4a=''){const _0x3b0972=_0x381e21;return _0x3b0972(0x10b)+escapeDslString(_0x2a8be0)+',\x20'+escapeDslString(_0x27eb4a)+');';}__name(buildSaveFormDsl,'buildSaveFormDsl');function buildWaitForDsl(_0x4aefab,_0x4e8e64='',_0x15fdbd){const _0x49f84a={_0x55380e:0x11b},_0x435d99=_0x381e21,_0x567bbd=_0x15fdbd?',\x20'+_0x15fdbd:'';return _0x435d99(_0x49f84a._0x55380e)+locator(_0x4aefab)+',\x20'+escapeDslString(_0x4e8e64)+_0x567bbd+');';}__name(buildWaitForDsl,_0x381e21(0xde));function buildWaitForTextDsl(_0x185e39,_0x353887,_0x54295b='',_0x1ce0bc){const _0x43b331=_0x1ce0bc?',\x20'+_0x1ce0bc:'';return'waitForText('+locator(_0x185e39)+',\x20'+escapeDslString(_0x353887)+',\x20'+escapeDslString(_0x54295b)+_0x43b331+');';}__name(buildWaitForTextDsl,_0x381e21(0x144));function buildWaitForHiddenDsl(_0x42c8e1,_0x29304f='',_0x57547e){const _0x5d466e=_0x57547e?',\x20'+_0x57547e:'';return'waitForHidden('+locator(_0x42c8e1)+',\x20'+escapeDslString(_0x29304f)+_0x5d466e+');';}__name(buildWaitForHiddenDsl,_0x381e21(0x159));function buildWaitForURLDsl(_0x32b3f6,_0x255134='',_0x7b5cd1){const _0x4abe5e=_0x7b5cd1?',\x20'+_0x7b5cd1:'';return'waitForURL('+escapeDslString(_0x32b3f6)+',\x20'+escapeDslString(_0x255134)+_0x4abe5e+');';}__name(buildWaitForURLDsl,_0x381e21(0x14f));function buildWaitForNavigationDsl(_0x2371b7='',_0x24752a){const _0xfa3579=_0x381e21,_0x469c51=_0x24752a?',\x20'+_0x24752a:'';return _0xfa3579(0xd8)+escapeDslString(_0x2371b7)+_0x469c51+');';}__name(buildWaitForNavigationDsl,_0x381e21(0x107));function buildAssertInputValueDsl(_0x15e385,_0x2b02b7,_0x3f7221='',_0x30dd5b){const _0x4e150b={_0x1ad30d:0x1d0},_0x51c76c=_0x381e21,_0x148773=_0x30dd5b&&_0x30dd5b!=='IS'?',\x20'+escapeDslString(_0x30dd5b):'';return _0x51c76c(_0x4e150b._0x1ad30d)+locator(_0x15e385)+',\x20'+escapeDslString(_0x2b02b7)+',\x20'+escapeDslString(_0x3f7221)+_0x148773+');';}__name(buildAssertInputValueDsl,_0x381e21(0x11d));function buildScrollIntoViewDsl(_0x108ab8,_0x51ef22=''){const _0x510cf1={_0x228530:0x189},_0x304edf=_0x381e21;return _0x304edf(_0x510cf1._0x228530)+locator(_0x108ab8)+',\x20'+escapeDslString(_0x51ef22)+');';}__name(buildScrollIntoViewDsl,_0x381e21(0x1ef));function buildScrollToBottomDsl(_0x30d412,_0x1b785c=''){const _0x57a40d={_0x459766:0xc4},_0x562a16=_0x381e21;return _0x562a16(_0x57a40d._0x459766)+locator(_0x30d412)+',\x20'+escapeDslString(_0x1b785c)+');';}__name(buildScrollToBottomDsl,_0x381e21(0xf4));function buildScrollToTopDsl(_0x267992,_0x3a9a79=''){const _0x2e00c3=_0x381e21;return _0x2e00c3(0x177)+locator(_0x267992)+',\x20'+escapeDslString(_0x3a9a79)+');';}__name(buildScrollToTopDsl,_0x381e21(0xcc));function buildForceClickDsl(_0x520962,_0xa26c79=''){return'forceClick('+locator(_0x520962)+',\x20'+escapeDslString(_0xa26c79)+');';}__name(buildForceClickDsl,'buildForceClickDsl');function buildDragAndDropDsl(_0x5cf5e7,_0x290855,_0x2118cf=''){const _0xa861dc=_0x381e21;return _0xa861dc(0x125)+locator(_0x5cf5e7)+',\x20'+locator(_0x290855)+',\x20'+escapeDslString(_0x2118cf)+');';}__name(buildDragAndDropDsl,_0x381e21(0x12f));function buildClipboardPasteDsl(_0x4ec416,_0x569ff3,_0x23139a=''){return'clipboardPaste('+locator(_0x4ec416)+',\x20'+escapeDslString(_0x569ff3)+',\x20'+escapeDslString(_0x23139a)+');';}__name(buildClipboardPasteDsl,'buildClipboardPasteDsl');function buildKeypressDsl(_0x3f260f,_0x31a2bb='body',_0x56e0f8=''){return'press('+locator(_0x31a2bb)+',\x20'+escapeDslString(_0x3f260f)+',\x20'+escapeDslString(_0x56e0f8)+');';}__name(buildKeypressDsl,'buildKeypressDsl');function buildSwitchToFrameDsl(_0x408e74,_0x4f649d=''){const _0x3109a5={_0x211ded:0x203},_0x1d973e=_0x381e21;return _0x1d973e(_0x3109a5._0x211ded)+locator(_0x408e74)+',\x20'+escapeDslString(_0x4f649d)+');';}__name(buildSwitchToFrameDsl,_0x381e21(0xc0));function buildSwitchToMainFrameDsl(_0x91bb6=''){const _0x443d46={_0x5ad3dd:0x198},_0x189ef6=_0x381e21;return _0x189ef6(_0x443d46._0x5ad3dd)+escapeDslString(_0x91bb6)+');';}__name(buildSwitchToMainFrameDsl,'buildSwitchToMainFrameDsl');function buildAssertNotVisibleDsl(_0xc2b1ef,_0x22d003=''){return'elementVisibilityAssert(\x22NOT_VISIBLE\x22,\x20'+locator(_0xc2b1ef)+',\x20'+escapeDslString(_0x22d003)+');';}__name(buildAssertNotVisibleDsl,_0x381e21(0x117));function buildAssertTextContainsDsl(_0x4320b2,_0x30473a,_0x19d0ac=''){const _0x3627a8=_0x381e21;return _0x3627a8(0xea)+locator(_0x4320b2)+',\x20'+escapeDslString(_0x30473a)+',\x20'+escapeDslString(_0x19d0ac)+');';}__name(buildAssertTextContainsDsl,_0x381e21(0xed));function buildAssertTextEqualsDsl(_0x24f6d7,_0x239be1,_0x43449a=''){const _0x587b26=_0x381e21;return _0x587b26(0x1fb)+locator(_0x24f6d7)+',\x20'+escapeDslString(_0x239be1)+',\x20'+escapeDslString(_0x43449a)+');';}__name(buildAssertTextEqualsDsl,_0x381e21(0x1ac));function buildAssertUrlEqualsDsl(_0x5bd267,_0x4ad7b7=''){const _0x675ef2=_0x381e21;return _0x675ef2(0x93)+escapeDslString(_0x5bd267)+',\x20'+escapeDslString(_0x4ad7b7)+');';}__name(buildAssertUrlEqualsDsl,_0x381e21(0x1ea));function buildAssertCountEqualsDsl(_0x13aa6a,_0x480d92,_0x432a81=''){const _0x2b623e=_0x381e21;return _0x2b623e(0x129)+locator(_0x13aa6a)+',\x20'+_0x480d92+',\x20'+escapeDslString(_0x432a81)+');';}__name(buildAssertCountEqualsDsl,'buildAssertCountEqualsDsl');function buildFlowDsl(_0x46a804,_0xc0d0eb){const _0x4b9e80={_0x58e714:0x1b0,_0x536ae4:0x150},_0x2b3b8b=_0x381e21,_0x1efee3=_0x46a804[_0x2b3b8b(_0x4b9e80._0x58e714)](/-/g,'_');return _0x2b3b8b(0x153)+_0x1efee3+'('+escapeDslString(_0x46a804)+',\x20'+escapeDslString(_0xc0d0eb)+_0x2b3b8b(_0x4b9e80._0x536ae4);}__name(buildFlowDsl,_0x381e21(0x19e));var ArrayValue=class _ArrayValue{static{__name(this,_0x381e21(0x148));}['elements'];constructor(_0x5dd729){const _0x499f75={_0x223ca7:0xfb,_0x583176:0xa2,_0x4e1135:0x1d2},_0x252715=_0x381e21;if(typeof _0x5dd729===_0x252715(_0x499f75._0x223ca7))this[_0x252715(0x1d2)]=new Array(_0x5dd729)[_0x252715(_0x499f75._0x583176)](void 0x0);else Array['isArray'](_0x5dd729)?this['elements']=[..._0x5dd729]:this[_0x252715(_0x499f75._0x4e1135)]=[..._0x5dd729[_0x252715(0x1d2)]];}['get'](_0x2632b4){const _0x16fd69={_0x3fdbc3:0x1d2},_0x2404cc=_0x381e21;return this[_0x2404cc(_0x16fd69._0x3fdbc3)][_0x2632b4];}['set'](_0x2ba47b,_0x42649e){const _0x176500={_0x15d8e0:0x1d2},_0x59de70=_0x381e21;this[_0x59de70(_0x176500._0x15d8e0)][_0x2ba47b]=_0x42649e;}[_0x381e21(0x1c2)](){const _0x2da7aa=_0x381e21;throw new Error(_0x2da7aa(0xcf));}[_0x381e21(0x1a8)](){const _0x2d8e1f={_0x92110f:0xe4},_0x5e9688=_0x381e21;return new _ArrayValue(this[_0x5e9688(0x1d2)][_0x5e9688(_0x2d8e1f._0x92110f)](_0x1b1c2f=>_0x1b1c2f[_0x5e9688(0x1a8)]()));}[_0x381e21(0xa4)](){const _0x12c591={_0x20e55e:0xe4,_0xfe6581:0x1ab},_0xa3f5c7=_0x381e21;return'['+this[_0xa3f5c7(0x1d2)][_0xa3f5c7(_0x12c591._0x20e55e)](_0x12b8e7=>_0x12b8e7[_0xa3f5c7(0xa4)]())[_0xa3f5c7(_0x12c591._0xfe6581)](',\x20')+']';}[_0x381e21(0x10d)](){const _0x3262d7=_0x381e21;return this[_0x3262d7(0xa4)]();}},NumberValue=class _NumberValue{static{__name(this,'NumberValue');}static [_0x381e21(0x1df)]=new _NumberValue(0x0);[_0x381e21(0xc6)];constructor(_0x432296){const _0x357ade={_0x1564e9:0x17e},_0x2d9392=_0x381e21;typeof _0x432296===_0x2d9392(_0x357ade._0x1564e9)?this[_0x2d9392(0xc6)]=_0x432296?0x1:0x0:this[_0x2d9392(0xc6)]=_0x432296;}['clone'](){const _0x2098b4={_0x4b1d5f:0xc6},_0x7b3ac8=_0x381e21;return new _NumberValue(this[_0x7b3ac8(_0x2098b4._0x4b1d5f)]);}[_0x381e21(0x1c2)](){const _0x201875={_0x3138b1:0xc6},_0x2804b2=_0x381e21;return this[_0x2804b2(_0x201875._0x3138b1)];}['asString'](){const _0x210df6={_0x4a5e1f:0x10d},_0x9e1c0=_0x381e21;return this['value'][_0x9e1c0(_0x210df6._0x4a5e1f)]();}['toString'](){return this['asString']();}},Functions=class{static{__name(this,'Functions');}static [_0x381e21(0x1ca)]=new Map([[_0x381e21(0x149),{'execute'(...args){const _0x21a194={_0x4f26de:0xbc,_0x599654:0x149},_0x332e6e=_0x381e21;if(args['length']!==0x1)throw new Error(_0x332e6e(_0x21a194._0x4f26de));return new NumberValue(Math[_0x332e6e(_0x21a194._0x599654)](args[0x0][_0x332e6e(0x1c2)]()));}}],['echo',{'execute'(...args){const _0x4fbd9b={_0x204cf9:0xa4,_0x923e5e:0x1df},_0x30a17b=_0x381e21;for(const arg of args){console[_0x30a17b(0x113)](arg[_0x30a17b(_0x4fbd9b._0x204cf9)]());}return NumberValue[_0x30a17b(_0x4fbd9b._0x923e5e)];}}],[_0x381e21(0x9d),{'execute'(...args){const _0x3fcc39=_0x381e21;return NumberValue[_0x3fcc39(0x1df)];}}],[_0x381e21(0x18f),{'execute'(...args){return NumberValue['ZERO'];}}],[_0x381e21(0x187),{'execute'(...args){const _0x44778d=_0x381e21;return NumberValue[_0x44778d(0x1df)];}}],[_0x381e21(0xb2),{'execute'(...args){const _0x2446be=_0x381e21;return NumberValue[_0x2446be(0x1df)];}}],[_0x381e21(0xaf),{'execute'(...args){const _0x1a11dd={_0x59faf6:0x1df},_0x185092=_0x381e21;return NumberValue[_0x185092(_0x1a11dd._0x59faf6)];}}]]);static[_0x381e21(0xa7)](_0x5e06ca){return this['functions']['has'](_0x5e06ca);}static[_0x381e21(0x111)](_0x2f53da){const _0x4da0b7={_0x4fe409:0x1ca},_0x219a29=_0x381e21,_0x2cc3d4=this[_0x219a29(_0x4da0b7._0x4fe409)]['get'](_0x2f53da);if(!_0x2cc3d4)throw new TypeError(_0x219a29(0x122)+_0x2f53da);return _0x2cc3d4;}static[_0x381e21(0x185)](_0x6ea797,_0x51228f){const _0x5a5d6b={_0x567aef:0x1ca,_0x2b79c8:0x185},_0x4d0f45=_0x381e21;this[_0x4d0f45(_0x5a5d6b._0x567aef)][_0x4d0f45(_0x5a5d6b._0x2b79c8)](_0x6ea797,_0x51228f);}},ObjectValue=class _ObjectValue{static{__name(this,_0x381e21(0x147));}[_0x381e21(0x11e)];constructor(_0x36f541=new Map()){this['properties']=_0x36f541;}[_0x381e21(0x111)](_0x4f3f2b){const _0x95c747={_0x217463:0x11e,_0x2941f6:0x111},_0xc519c1=_0x381e21;return this[_0xc519c1(_0x95c747._0x217463)][_0xc519c1(_0x95c747._0x2941f6)](_0x4f3f2b);}[_0x381e21(0x185)](_0x26477b,_0x56014f){const _0x4d0b18=_0x381e21;this[_0x4d0b18(0x11e)]['set'](_0x26477b,_0x56014f);}[_0x381e21(0x1c2)](){const _0xdf9b48={_0xf1b512:0xba},_0xcf62fd=_0x381e21;return this[_0xcf62fd(0x11e)][_0xcf62fd(_0xdf9b48._0xf1b512)];}[_0x381e21(0xa4)](){const _0x2c9065={_0x17b331:0xc5,_0x352bd4:0xe4,_0x399c9d:0x1ab},_0x5685cf=_0x381e21,_0x5f2935=Array['from'](this['properties'][_0x5685cf(_0x2c9065._0x17b331)]())[_0x5685cf(_0x2c9065._0x352bd4)](([_0x3973b1,_0x5d0b15])=>_0x3973b1+':\x20'+_0x5d0b15[_0x5685cf(0xa4)]())[_0x5685cf(_0x2c9065._0x399c9d)](',\x20');return'{'+_0x5f2935+'}';}['clone'](){const _0x5bd423={_0x1d14de:0x20b},_0x1f5393=_0x381e21,_0x3aaeb2=new Map();return this[_0x1f5393(0x11e)][_0x1f5393(_0x5bd423._0x1d14de)]((_0x4f3a7e,_0x4725a7)=>{const _0x554136=_0x1f5393;_0x3aaeb2[_0x554136(0x185)](_0x4725a7,_0x4f3a7e['clone']());}),new _ObjectValue(_0x3aaeb2);}[_0x381e21(0x1aa)](){const _0x45a1e7=_0x381e21;return this[_0x45a1e7(0x11e)];}},RegExpValue=class _RegExpValue{static{__name(this,_0x381e21(0xce));}[_0x381e21(0x17f)];['flags'];constructor(_0x1e261a,_0x2e88bd){const _0x27927c={_0x504e88:0x100},_0x1b8237=_0x381e21;validateEs5Flags(_0x2e88bd),this['source']=_0x1e261a,this[_0x1b8237(_0x27927c._0x504e88)]=_0x2e88bd;}['clone'](){const _0x517577=_0x381e21;return new _RegExpValue(this[_0x517577(0x17f)],this[_0x517577(0x100)]);}[_0x381e21(0x1c2)](){return NaN;}[_0x381e21(0xa4)](){const _0x5408b0={_0x203633:0x17f},_0x3f4af9=_0x381e21;return'/'+this[_0x3f4af9(_0x5408b0._0x203633)]+'/'+this[_0x3f4af9(0x100)];}['toString'](){const _0x15969a={_0x1e2dee:0xa4},_0x3d2e19=_0x381e21;return this[_0x3d2e19(_0x15969a._0x1e2dee)]();}},ES5_FLAGS=new Set(['g','i','m']),POST_ES5_FLAGS={'s':_0x381e21(0x19c),'u':_0x381e21(0x1e8),'y':_0x381e21(0x11f),'d':_0x381e21(0x123),'v':_0x381e21(0x1ed)};function validateEs5Flags(_0x223dbc){const _0x489571={_0x404a7f:0x16b,_0x3f142b:0x124,_0x397a51:0x1af,_0x37db95:0x12b},_0x178f0a=_0x381e21,_0x2cd374=new Set();for(const _0x157935 of _0x223dbc){if(POST_ES5_FLAGS[_0x157935])throw new RegExpFlagError('regex\x20flag\x20\x27'+_0x157935+_0x178f0a(_0x489571._0x404a7f)+POST_ES5_FLAGS[_0x157935]+_0x178f0a(_0x489571._0x3f142b));if(!ES5_FLAGS['has'](_0x157935))throw new RegExpFlagError(_0x178f0a(_0x489571._0x397a51)+_0x157935+_0x178f0a(_0x489571._0x37db95));if(_0x2cd374[_0x178f0a(0x130)](_0x157935))throw new RegExpFlagError('duplicate\x20regex\x20flag\x20\x27'+_0x157935+'\x27.');_0x2cd374['add'](_0x157935);}}__name(validateEs5Flags,_0x381e21(0x156));var RegExpFlagError=class extends Error{static{__name(this,'RegExpFlagError');}constructor(_0x1821f0){const _0x11443e=_0x381e21;super(_0x1821f0),this[_0x11443e(0x20c)]=_0x11443e(0xe6);}},StringValue=class _StringValue{static{__name(this,_0x381e21(0x1c8));}[_0x381e21(0xc6)];constructor(_0xd3a123){const _0x21ece6={_0x5f1fc6:0xc6},_0x1c6ae0=_0x381e21;this[_0x1c6ae0(_0x21ece6._0x5f1fc6)]=_0xd3a123;}[_0x381e21(0x1a8)](){const _0x131e4d=_0x381e21;return new _StringValue(this[_0x131e4d(0xc6)]);}[_0x381e21(0x1c2)](){const _0x488c81=_0x381e21;try{return parseFloat(this[_0x488c81(0xc6)]);}catch(_0x4d07e2){return 0x0;}}[_0x381e21(0xa4)](){const _0x2448c8=_0x381e21;return this[_0x2448c8(0xc6)];}['toString'](){const _0x4c7bb2={_0x3db000:0xa4},_0x197f10=_0x381e21;return this[_0x197f10(_0x4c7bb2._0x3db000)]();}},UserDefineFunction=class{static{__name(this,_0x381e21(0x1cf));}[_0x381e21(0x1b7)];['body'];constructor(_0x4d1df3,_0x4f55bd){const _0x4d5f0a=_0x381e21;this[_0x4d5f0a(0x1b7)]=_0x4d1df3,this['body']=_0x4f55bd;}['getArgsCount'](){const _0x3eea1c={_0x3c7921:0x1b7,_0x2461ee:0x8e},_0x511ede=_0x381e21;return this[_0x511ede(_0x3eea1c._0x3c7921)][_0x511ede(_0x3eea1c._0x2461ee)];}['getArgsName'](_0x148474){const _0x30d57a=_0x381e21;if(_0x148474<0x0||_0x148474>=this[_0x30d57a(0x1b7)][_0x30d57a(0x8e)])return'';return this[_0x30d57a(0x1b7)][_0x148474];}[_0x381e21(0xf2)](..._0x275096){const _0x100fab={_0x1bc4c5:0x18e,_0x4cf117:0x1df},_0xa4e465=_0x381e21;try{return this[_0xa4e465(_0x100fab._0x1bc4c5)]['execute'](),NumberValue[_0xa4e465(_0x100fab._0x4cf117)];}catch(_0x247472){if(_0x247472 instanceof ReturnStatement)return _0x247472['getResult']();throw _0x247472;}}},Variables=class{static{__name(this,_0x381e21(0x175));}static [_0x381e21(0x165)]=[];static ['variables']=new Map([['PI',new NumberValue(Math['PI'])],['E',new NumberValue(Math['E'])]]);static[_0x381e21(0x9c)](){const _0x5586b7={_0x3fd0e6:0x13d,_0xaa50b7:0x165},_0x305311=_0x381e21,_0x127af4=new Map([]);for(const [_0x382311,_0x5cff8d]of this[_0x305311(_0x5586b7._0x3fd0e6)][_0x305311(0xc5)]()){_0x127af4[_0x305311(0x185)](_0x382311,_0x5cff8d);}this[_0x305311(_0x5586b7._0xaa50b7)][_0x305311(0x9c)](_0x127af4);}static[_0x381e21(0x12e)](){const _0x5e8c17={_0xf43f16:0x1e0},_0x33d92b=_0x381e21,_0x4da0f6=this[_0x33d92b(0x165)]['pop']();if(!_0x4da0f6)throw new Error(_0x33d92b(_0x5e8c17._0xf43f16));this['variables']=_0x4da0f6;}static['isExists'](_0x228194){const _0x2a2d9d={_0x49c7a8:0x13d,_0x34feaa:0x130},_0x872258=_0x381e21;return this[_0x872258(_0x2a2d9d._0x49c7a8)][_0x872258(_0x2a2d9d._0x34feaa)](_0x228194);}static[_0x381e21(0x111)](_0x2cae9a){const _0x4974b2={_0x4ef444:0x13d,_0x2ead3d:0x1df},_0x16af9e=_0x381e21;return this[_0x16af9e(_0x4974b2._0x4ef444)][_0x16af9e(0x111)](_0x2cae9a)||NumberValue[_0x16af9e(_0x4974b2._0x2ead3d)];}static[_0x381e21(0x185)](_0x15038b,_0x51ffab){const _0x516620=_0x381e21;this['variables'][_0x516620(0x185)](_0x15038b,_0x51ffab);}},ArrayAccessExpression=class{static{__name(this,_0x381e21(0xc8));}[_0x381e21(0x163)];[_0x381e21(0x1f0)];[_0x381e21(0xf9)];constructor(_0x3d4451,_0x5291ff,_0x2665a2){const _0x3c66cc=_0x381e21;this['variable']=_0x3d4451,this[_0x3c66cc(0x1f0)]=_0x5291ff,this['token']=_0x2665a2;}['eval'](){const _0x22fd5b={_0x2f35af:0x111},_0x525d61=_0x381e21,_0x327ba1=this['lastIndex'](),_0x21e123=this['getArray']();return _0x21e123[_0x525d61(_0x22fd5b._0x2f35af)](_0x327ba1);}[_0x381e21(0x1b3)](){const _0x43b158={_0xf0b984:0x1f0},_0x12ccc3=_0x381e21;return this[_0x12ccc3(0x135)](this[_0x12ccc3(_0x43b158._0xf0b984)][_0x12ccc3(0x8e)]-0x1);}[_0x381e21(0x135)](_0x54fb1b){const _0x5b1719={_0xbd0a75:0x1c2},_0x3c6b7c=_0x381e21;return this['indexes'][_0x54fb1b][_0x3c6b7c(0x20a)]()[_0x3c6b7c(_0x5b1719._0xbd0a75)]();}['getArray'](){const _0x56cbab={_0x8a7f03:0xa5,_0x4b1efd:0x111,_0x91b6b5:0x163},_0x37e587=_0x381e21;let _0x1133ce=this[_0x37e587(_0x56cbab._0x8a7f03)](Variables[_0x37e587(_0x56cbab._0x4b1efd)](this[_0x37e587(_0x56cbab._0x91b6b5)]));const _0x452a55=this[_0x37e587(0x1f0)][_0x37e587(0x8e)]-0x1;for(let _0x374dd8=0x0;_0x374dd8<_0x452a55;_0x374dd8++){_0x1133ce=this['consumeArray'](_0x1133ce['get'](this['index'](_0x374dd8)));}return _0x1133ce;}[_0x381e21(0xa5)](_0x1fdf06){const _0x4d1166={_0x504388:0x115},_0x2928d0=_0x381e21;if(_0x1fdf06 instanceof ArrayValue)return _0x1fdf06;throw new Error(_0x2928d0(_0x4d1166._0x504388));}['toString'](){const _0x3f6e91={_0x1248cc:0x1f0},_0x27514c=_0x381e21;return''+(this[_0x27514c(0x163)]+this[_0x27514c(_0x3f6e91._0x1248cc)]);}},ArrayAssignmentStatement=class{static{__name(this,_0x381e21(0xd2));}[_0x381e21(0xe9)];[_0x381e21(0xd7)];['token'];constructor(_0x1738c8,_0x382e5f,_0x1a97b9){const _0x459e8c={_0x3bf71c:0xd7},_0x1fce7f=_0x381e21;this['array']=_0x1738c8,this[_0x1fce7f(_0x459e8c._0x3bf71c)]=_0x382e5f,this[_0x1fce7f(0xf9)]=_0x1a97b9;}['execute'](){const _0x2f1d5d={_0x13317e:0x190,_0x267eb5:0xd7},_0x1e4d13=_0x381e21;this['array'][_0x1e4d13(_0x2f1d5d._0x13317e)]()[_0x1e4d13(0x185)](this['array'][_0x1e4d13(0x1b3)](),this[_0x1e4d13(_0x2f1d5d._0x267eb5)][_0x1e4d13(0x20a)]());}[_0x381e21(0x10d)](){const _0x2ba169={_0xee7fda:0xd7},_0x35554b=_0x381e21;return this['array']+'\x20=\x20'+this[_0x35554b(_0x2ba169._0xee7fda)];}},ArrayExpression=class{static{__name(this,_0x381e21(0x1e4));}[_0x381e21(0x1d2)];[_0x381e21(0xf9)];constructor(_0x598855,_0x5a7333){const _0x7f8a9a={_0x1b9472:0xf9},_0x5862ca=_0x381e21;this[_0x5862ca(0x1d2)]=_0x598855,this[_0x5862ca(_0x7f8a9a._0x1b9472)]=_0x5a7333;}['eval'](){const _0x437a77=_0x381e21,_0x41cf8a=this['elements'][_0x437a77(0xe4)](_0x1bc621=>_0x1bc621[_0x437a77(0x20a)]());return new ArrayValue(_0x41cf8a);}[_0x381e21(0x10d)](){const _0x3ad021={_0x236659:0x1d2},_0x3fab03=_0x381e21;return''+this[_0x3fab03(_0x3ad021._0x236659)]['toString']();}},AssignmentStatement=class{static{__name(this,'AssignmentStatement');}[_0x381e21(0x163)];[_0x381e21(0xd7)];[_0x381e21(0xf9)];constructor(_0x1f0389,_0x4cc300,_0x339751){const _0x4dad14={_0x95c311:0xd7,_0x5f3fc4:0xf9},_0x5fe4b5=_0x381e21;this['variable']=_0x1f0389,this[_0x5fe4b5(_0x4dad14._0x95c311)]=_0x4cc300,this[_0x5fe4b5(_0x4dad14._0x5f3fc4)]=_0x339751;}[_0x381e21(0xf2)](){const _0x1fa348={_0x575935:0x185,_0xf2941e:0x163},_0x461868=_0x381e21,_0x20a490=this['expression'][_0x461868(0x20a)]();Variables[_0x461868(_0x1fa348._0x575935)](this[_0x461868(_0x1fa348._0xf2941e)],_0x20a490);}['toString'](){const _0xd555b1={_0x1d799e:0x163,_0x558f0f:0x18b,_0x241256:0xd7},_0x156c64=_0x381e21;return this[_0x156c64(_0xd555b1._0x1d799e)]+_0x156c64(_0xd555b1._0x558f0f)+this[_0x156c64(_0xd555b1._0x241256)];}},BinaryExpression=class{static{__name(this,_0x381e21(0x132));}[_0x381e21(0x127)];['expr2'];[_0x381e21(0xbd)];[_0x381e21(0xf9)];constructor(_0x551e52,_0x9b0d21,_0x43ac40,_0x91ca26){const _0x1b7367={_0x5b76fc:0x127,_0xd156d3:0x121,_0x169c8e:0xbd},_0x330d75=_0x381e21;this[_0x330d75(_0x1b7367._0x5b76fc)]=_0x9b0d21,this[_0x330d75(_0x1b7367._0xd156d3)]=_0x43ac40,this[_0x330d75(_0x1b7367._0x169c8e)]=_0x551e52,this[_0x330d75(0xf9)]=_0x91ca26;}[_0x381e21(0x20a)](){const _0x214189={_0x532985:0x127,_0x13e1a3:0xa4,_0x2d3ded:0x20a,_0x3a8e8d:0xa4,_0x5657a7:0xbd,_0x44bc41:0xc3,_0x59890b:0x121,_0x3d3358:0x1c2},_0x547d90=_0x381e21,_0xb2b70b=this[_0x547d90(_0x214189._0x532985)]['eval']();if(_0xb2b70b instanceof StringValue||_0xb2b70b instanceof ArrayValue){const _0x23c443=_0xb2b70b[_0x547d90(_0x214189._0x13e1a3)](),_0x2080e8=this[_0x547d90(0x121)][_0x547d90(_0x214189._0x2d3ded)]()[_0x547d90(_0x214189._0x3a8e8d)]();switch(this[_0x547d90(_0x214189._0x5657a7)]){case'+':return new StringValue(_0x23c443+_0x2080e8);default:throw new Error(_0x547d90(_0x214189._0x44bc41));}}const _0x2815aa=this['expr1'][_0x547d90(0x20a)]()[_0x547d90(0x1c2)](),_0x5c0b7c=this[_0x547d90(_0x214189._0x59890b)]['eval']()[_0x547d90(_0x214189._0x3d3358)]();switch(this['operation']){case'-':return new NumberValue(_0x2815aa-_0x5c0b7c);case'+':return new NumberValue(_0x2815aa+_0x5c0b7c);case'/':return new NumberValue(_0x2815aa/_0x5c0b7c);case'*':default:return new NumberValue(_0x2815aa*_0x5c0b7c);}}[_0x381e21(0x10d)](){const _0x5364f4={_0x421194:0x127,_0x156172:0xbd,_0x1c24ff:0x121},_0x53a5f0=_0x381e21;return this[_0x53a5f0(_0x5364f4._0x421194)]+'\x20'+this[_0x53a5f0(_0x5364f4._0x156172)]+'\x20'+this[_0x53a5f0(_0x5364f4._0x1c24ff)];}},BlockStatement=class{static{__name(this,_0x381e21(0xd4));}['statements']=[];[_0x381e21(0xf9)];constructor(_0x4984f8){const _0x319539=_0x381e21;this[_0x319539(0xf9)]=_0x4984f8;}[_0x381e21(0xe3)](_0x3c0367){const _0x41f89c={_0x14f628:0x15c,_0x48add4:0x9c},_0x6a1d6d=_0x381e21;this[_0x6a1d6d(_0x41f89c._0x14f628)][_0x6a1d6d(_0x41f89c._0x48add4)](_0x3c0367);}['execute'](){const _0xc6110b={_0x28de88:0xf2},_0x948a79=_0x381e21;for(const _0x436a39 of this[_0x948a79(0x15c)]){_0x436a39[_0x948a79(_0xc6110b._0x28de88)]();}}[_0x381e21(0x10d)](){const _0x28614c={_0x59724a:0x15c},_0x2f1e5d=_0x381e21;return''+this[_0x2f1e5d(_0x28614c._0x59724a)][_0x2f1e5d(0x1ab)]('\x0a');}},BreakStatement=class extends Error{static{__name(this,_0x381e21(0x157));}[_0x381e21(0xf9)];constructor(_0x5c7d55){const _0x2f20fe={_0x2e3a2a:0x157,_0x4a5547:0xf9},_0x288ff5=_0x381e21;super(_0x288ff5(_0x2f20fe._0x2e3a2a)),this[_0x288ff5(_0x2f20fe._0x4a5547)]=_0x5c7d55;}[_0x381e21(0xf2)](){throw this;}[_0x381e21(0x10d)](){const _0x90d9a5={_0x5857b8:0xdb},_0x567f5c=_0x381e21;return _0x567f5c(_0x90d9a5._0x5857b8);}},Operator=(_0x53233c=>{const _0x2f3347={_0x379dce:0x8f,_0x24fb2f:0xac,_0x219910:0x15b},_0x3233d6=_0x381e21;return _0x53233c['PLUS']='+',_0x53233c['MINUS']='-',_0x53233c['MULTIPLY']='*',_0x53233c[_0x3233d6(_0x2f3347._0x379dce)]='/',_0x53233c['EQ']='==',_0x53233c[_0x3233d6(0x1c0)]='!=',_0x53233c['LT']='<',_0x53233c[_0x3233d6(_0x2f3347._0x24fb2f)]='<=',_0x53233c['GT']='>',_0x53233c[_0x3233d6(_0x2f3347._0x219910)]='>=',_0x53233c[_0x3233d6(0x97)]='&&',_0x53233c['OR']='||',_0x53233c;})(Operator||{});function getOperatorName(_0x19f0d3){for(const [_0x20a02e,_0x566b9f]of Object['entries'](Operator)){if(_0x566b9f===_0x19f0d3)return _0x20a02e;}return'EQ';}__name(getOperatorName,_0x381e21(0x1a4));var ConditionalExpression=class{static{__name(this,_0x381e21(0x1e2));}[_0x381e21(0x127)];[_0x381e21(0x121)];[_0x381e21(0xbd)];['token'];constructor(_0x4002a8,_0x1fedd4,_0x54343a,_0x5a2ad4){const _0x57a63b={_0x399920:0xbd},_0x51b8b0=_0x381e21;this['expr1']=_0x1fedd4,this['expr2']=_0x54343a,this[_0x51b8b0(_0x57a63b._0x399920)]=_0x4002a8,this[_0x51b8b0(0xf9)]=_0x5a2ad4;}[_0x381e21(0x20a)](){const _0x3a9062={_0x2b7f8f:0x20a,_0x3d7cae:0x121,_0x45075d:0x1c2,_0x14cc7f:0x20a,_0x492391:0xbd},_0x90ea15=_0x381e21,_0x106294=this[_0x90ea15(0x127)][_0x90ea15(_0x3a9062._0x2b7f8f)](),_0x46d1a7=this[_0x90ea15(_0x3a9062._0x3d7cae)][_0x90ea15(0x20a)]();let _0x21cc3f,_0x39f86e;_0x106294 instanceof StringValue?(_0x21cc3f=_0x21cc3f=_0x106294[_0x90ea15(0xa4)]()[_0x90ea15(0x179)](_0x46d1a7[_0x90ea15(0xa4)]()),_0x39f86e=0x0):(_0x21cc3f=this[_0x90ea15(0x127)][_0x90ea15(0x20a)]()[_0x90ea15(_0x3a9062._0x45075d)](),_0x39f86e=this[_0x90ea15(_0x3a9062._0x3d7cae)][_0x90ea15(_0x3a9062._0x14cc7f)]()[_0x90ea15(0x1c2)]());let _0xcb5af3;switch(this[_0x90ea15(_0x3a9062._0x492391)]){case'<':_0xcb5af3=_0x21cc3f<_0x39f86e;break;case'<=':_0xcb5af3=_0x21cc3f<=_0x39f86e;break;case'>':_0xcb5af3=_0x21cc3f>_0x39f86e;break;case'>=':_0xcb5af3=_0x21cc3f>=_0x39f86e;break;case'!=':_0xcb5af3=_0x21cc3f!=_0x39f86e;break;case'&&':_0xcb5af3=_0x21cc3f!=0x0&&_0x39f86e!=0x0;break;case'||':_0xcb5af3=_0x21cc3f!=0x0||_0x39f86e!=0x0;break;case'==':default:_0xcb5af3=_0x21cc3f===_0x39f86e;}return new NumberValue(_0xcb5af3);}[_0x381e21(0x10d)](){const _0x5260f2={_0x481420:0x121},_0x4fee5b=_0x381e21;return this[_0x4fee5b(0x127)]+'\x20'+this['operation']+'\x20'+this[_0x4fee5b(_0x5260f2._0x481420)];}},ContinueStatement=class extends Error{static{__name(this,'ContinueStatement');}[_0x381e21(0xf9)];constructor(_0x3f7c3f){const _0x4f85d7={_0x59e469:0x145,_0x198410:0xf9},_0x24cf90=_0x381e21;super(_0x24cf90(_0x4f85d7._0x59e469)),this[_0x24cf90(_0x4f85d7._0x198410)]=_0x3f7c3f;}[_0x381e21(0xf2)](){throw this;}[_0x381e21(0x10d)](){const _0x1ab03e={_0x32ad4b:0x1db},_0x32cf1d=_0x381e21;return _0x32cf1d(_0x1ab03e._0x32ad4b);}},DoWhileStatement=class{static{__name(this,_0x381e21(0xcd));}[_0x381e21(0xb4)];['statement'];[_0x381e21(0xf9)];constructor(_0x363413,_0x54cd2e,_0x211364){const _0x25e6a1=_0x381e21;this[_0x25e6a1(0xb4)]=_0x363413,this['statement']=_0x54cd2e,this['token']=_0x211364;}[_0x381e21(0xf2)](){const _0x36ee07={_0x2ee582:0xf2,_0x338e88:0x1c2},_0x5a005a=_0x381e21;do{try{this['statement'][_0x5a005a(_0x36ee07._0x2ee582)]();}catch(_0x4d325a){if(_0x4d325a instanceof BreakStatement)break;else{if(_0x4d325a instanceof ContinueStatement){}else throw _0x4d325a;}}}while(this[_0x5a005a(0xb4)]['eval']()[_0x5a005a(_0x36ee07._0x338e88)]()!=0x0);}[_0x381e21(0x10d)](){const _0x1c887a={_0x35f4fe:0x146},_0x48d094=_0x381e21;return _0x48d094(0x1a5)+this[_0x48d094(0x138)]+_0x48d094(_0x1c887a._0x35f4fe)+this['condition']+')\x0a';}},ForStatement=class{static{__name(this,_0x381e21(0x90));}['initialization'];[_0x381e21(0xd9)];['increment'];[_0x381e21(0x161)];[_0x381e21(0xf9)];constructor(_0x495c02,_0x321a5e,_0x270605,_0x44ccc9,_0x4ef836){const _0x331d79={_0x57530d:0x166,_0x572aef:0xd9,_0x517dfc:0x119,_0x2a9e3f:0x161,_0x3bf7c2:0xf9},_0xa47e1a=_0x381e21;this[_0xa47e1a(_0x331d79._0x57530d)]=_0x495c02,this[_0xa47e1a(_0x331d79._0x572aef)]=_0x321a5e,this[_0xa47e1a(_0x331d79._0x517dfc)]=_0x270605,this[_0xa47e1a(_0x331d79._0x2a9e3f)]=_0x44ccc9,this[_0xa47e1a(_0x331d79._0x3bf7c2)]=_0x4ef836;}[_0x381e21(0xf2)](){const _0x4a9cdf={_0x58d3ff:0x166,_0xacfd15:0xd9,_0xd09c50:0x20a,_0xdd5ac2:0xf2,_0x53fb7d:0x161},_0xa87c1d=_0x381e21;for(this[_0xa87c1d(_0x4a9cdf._0x58d3ff)][_0xa87c1d(0xf2)]();this[_0xa87c1d(_0x4a9cdf._0xacfd15)][_0xa87c1d(_0x4a9cdf._0xd09c50)]()['asNumber']()!=0x0;this[_0xa87c1d(0x119)][_0xa87c1d(_0x4a9cdf._0xdd5ac2)]()){try{this[_0xa87c1d(_0x4a9cdf._0x53fb7d)]['execute']();}catch(_0x76a5e1){if(_0x76a5e1 instanceof BreakStatement)break;else{if(_0x76a5e1 instanceof ContinueStatement){}else throw _0x76a5e1;}}}}[_0x381e21(0x10d)](){const _0x236937={_0x4e5b6f:0x161},_0x2361b6=_0x381e21;return _0x2361b6(0x1f6)+this[_0x2361b6(0x166)]+';\x20'+this[_0x2361b6(0xd9)]+';\x20'+this['increment']+')\x0a{\x0a'+this[_0x2361b6(_0x236937._0x4e5b6f)]+'\x0a}';}},FunctionDefineStatement=class{static{__name(this,_0x381e21(0x1de));}['name'];[_0x381e21(0x1b7)];[_0x381e21(0x18e)];['token'];constructor(_0x4b404a,_0x49ba1d,_0x11c9ee,_0x5d6c71){const _0x99ed1f={_0x40af95:0x18e,_0x145bcd:0xf9},_0x22024b=_0x381e21;this['name']=_0x4b404a,this[_0x22024b(0x1b7)]=_0x49ba1d,this[_0x22024b(_0x99ed1f._0x40af95)]=_0x11c9ee,this[_0x22024b(_0x99ed1f._0x145bcd)]=_0x5d6c71;}[_0x381e21(0xf2)](){const _0x257c7e={_0x4c3607:0x1b7},_0xcb58fd=_0x381e21;Functions['set'](this[_0xcb58fd(0x20c)],new UserDefineFunction(this[_0xcb58fd(_0x257c7e._0x4c3607)],this[_0xcb58fd(0x18e)]));}[_0x381e21(0x10d)](){const _0x483c2e={_0xcc0e06:0x1b7,_0x1a48ef:0x1ab,_0x22bee7:0x20c},_0x2cf33e=_0x381e21,_0x1f0704=this[_0x2cf33e(_0x483c2e._0xcc0e06)]['map'](_0x4c9bfc=>_0x4c9bfc[_0x2cf33e(0x10d)]())[_0x2cf33e(_0x483c2e._0x1a48ef)](',\x20');return'function\x20'+this[_0x2cf33e(_0x483c2e._0x22bee7)]+'('+_0x1f0704+')';}},FunctionStatement=class{static{__name(this,'FunctionStatement');}[_0x381e21(0x109)];[_0x381e21(0xf9)];constructor(_0x2bc02c,_0x5e0f0d){const _0x74a361={_0x37279b:0x109},_0x15bf09=_0x381e21;this[_0x15bf09(_0x74a361._0x37279b)]=_0x2bc02c,this['token']=_0x5e0f0d;}[_0x381e21(0xf2)](){const _0xd921fe={_0x199877:0x20a},_0x17603c=_0x381e21;this[_0x17603c(0x109)][_0x17603c(_0xd921fe._0x199877)]();}['toString'](){const _0x47a310={_0x2fb2bc:0x109,_0x197c8b:0x10d},_0x36d180=_0x381e21;return''+this[_0x36d180(_0x47a310._0x2fb2bc)][_0x36d180(_0x47a310._0x197c8b)]();}},FunctionalExpression=class{static{__name(this,_0x381e21(0x1c1));}[_0x381e21(0x20c)];['arguments'];[_0x381e21(0xf9)];constructor(_0x4307fb,_0x2b9031,_0x34a45f){const _0x3a19b0={_0x1391c7:0x20c},_0x50ae28=_0x381e21;this[_0x50ae28(_0x3a19b0._0x1391c7)]=_0x4307fb,this['arguments']=_0x2b9031,this[_0x50ae28(0xf9)]=_0x34a45f;}[_0x381e21(0x158)](_0x5492d2){const _0x4eed4a=_0x381e21;return this['arguments'][_0x4eed4a(0x9c)](_0x5492d2);}[_0x381e21(0x20a)](){const _0x45d9c9={_0x538c7f:0x1a1,_0x25b6f1:0xe4,_0x412231:0x111,_0x1b8835:0x1e3,_0x488a37:0x1bf,_0x9a2fd9:0x9c,_0x4c23d2:0x164,_0xa5f8e4:0xf2,_0x3a465b:0xf2},_0x229aa1=_0x381e21,_0x15569d=this[_0x229aa1(_0x45d9c9._0x538c7f)][_0x229aa1(_0x45d9c9._0x25b6f1)](_0x3fd636=>_0x3fd636[_0x229aa1(0x20a)]()),_0x4030e2=_0x15569d[_0x229aa1(0x8e)],_0x1217e7=Functions[_0x229aa1(_0x45d9c9._0x412231)](this['name']);if(_0x1217e7 instanceof UserDefineFunction){const _0xfa69fb=_0x1217e7;if(_0x15569d[_0x229aa1(0x8e)]!==_0xfa69fb[_0x229aa1(_0x45d9c9._0x1b8835)]())throw new Error('Invalid\x20argument\x20count\x20for\x20function\x20'+this[_0x229aa1(0x20c)]+_0x229aa1(_0x45d9c9._0x488a37)+_0x4030e2);Variables[_0x229aa1(_0x45d9c9._0x9a2fd9)]();for(let _0x23c84c=0x0;_0x23c84c<_0x4030e2;_0x23c84c++){Variables['set'](_0xfa69fb[_0x229aa1(_0x45d9c9._0x4c23d2)](_0x23c84c),_0x15569d[_0x23c84c]);}const _0x50ee33=_0xfa69fb[_0x229aa1(_0x45d9c9._0xa5f8e4)](..._0x15569d);return Variables[_0x229aa1(0x12e)](),_0x50ee33;}return _0x1217e7[_0x229aa1(_0x45d9c9._0x3a465b)](..._0x15569d);}[_0x381e21(0x10d)](){const _0x73504={_0x5d6b40:0x1ab},_0x5884ad=_0x381e21,_0x5867ac=this[_0x5884ad(0x1a1)][_0x5884ad(0xe4)](_0xe5df77=>_0xe5df77[_0x5884ad(0x10d)]())[_0x5884ad(_0x73504._0x5d6b40)](',\x20');return this[_0x5884ad(0x20c)]+'('+_0x5867ac+')';}},IfStatement=class{static{__name(this,'IfStatement');}[_0x381e21(0xd7)];[_0x381e21(0x139)];['elseStatement'];['token'];constructor(_0x387c36,_0x388584,_0x4072f0,_0x1aef4a){const _0x2014b0=_0x381e21;this[_0x2014b0(0xd7)]=_0x387c36,this['ifStatement']=_0x388584,this[_0x2014b0(0xc7)]=_0x4072f0,this[_0x2014b0(0xf9)]=_0x1aef4a;}[_0x381e21(0xf2)](){const _0x226c9d={_0x427555:0xd7,_0x3cea98:0xf2,_0x5a4184:0xc7,_0x2e78e3:0xc7},_0x26e75f=_0x381e21,_0x2d2e68=this[_0x26e75f(_0x226c9d._0x427555)][_0x26e75f(0x20a)]()[_0x26e75f(0x1c2)]();if(_0x2d2e68!=0x0)this[_0x26e75f(0x139)][_0x26e75f(_0x226c9d._0x3cea98)]();else this[_0x26e75f(_0x226c9d._0x5a4184)]!=null&&this[_0x26e75f(_0x226c9d._0x2e78e3)][_0x26e75f(0xf2)]();}[_0x381e21(0x10d)](){const _0x2e9e06={_0x4aea60:0xd7,_0x4bc57f:0x10d},_0xb708ab=_0x381e21;let _0x293286=_0xb708ab(0x1d9)+this[_0xb708ab(_0x2e9e06._0x4aea60)]+'\x20'+this['ifStatement'];return this[_0xb708ab(0xc7)]!=null&&(_0x293286+=_0xb708ab(0x1ae)+this['elseStatement']),_0x293286[_0xb708ab(_0x2e9e06._0x4bc57f)]();}},IncrementType=(_0x1f3b56=>{const _0x14782e={_0x2b4b2c:0x96,_0x191e55:0x9b,_0x49333:0x13a,_0x2e151b:0x178},_0x16b4ee=_0x381e21;return _0x1f3b56[_0x1f3b56[_0x16b4ee(_0x14782e._0x2b4b2c)]=0x0]=_0x16b4ee(0x96),_0x1f3b56[_0x1f3b56[_0x16b4ee(_0x14782e._0x191e55)]=0x1]=_0x16b4ee(0x9b),_0x1f3b56[_0x1f3b56['POSTFIX_INCREMENT']=0x2]=_0x16b4ee(_0x14782e._0x49333),_0x1f3b56[_0x1f3b56[_0x16b4ee(0x178)]=0x3]=_0x16b4ee(_0x14782e._0x2e151b),_0x1f3b56;})(IncrementType||{}),IncrementExpression=class{static{__name(this,_0x381e21(0x1c3));}[_0x381e21(0x163)];[_0x381e21(0x15f)];['token'];constructor(_0x513594,_0x208b48,_0x316368){const _0x14f1f1={_0x5c37f5:0x15f,_0x296c5d:0xf9},_0x43fc03=_0x381e21;this[_0x43fc03(0x163)]=_0x513594,this[_0x43fc03(_0x14f1f1._0x5c37f5)]=_0x208b48,this[_0x43fc03(_0x14f1f1._0x296c5d)]=_0x316368;}['eval'](){const _0x6bcbdb={_0x5df246:0x1d3,_0x2982aa:0x185},_0x4e3668=_0x381e21,_0x36e34e=this['variable'][_0x4e3668(0x12c)](),_0x1537c6=Variables[_0x4e3668(0x111)](_0x36e34e);if(!(_0x1537c6 instanceof NumberValue))throw new Error(_0x4e3668(_0x6bcbdb._0x5df246));const _0x1291fc=_0x1537c6['asNumber']();let _0x4cdb61;switch(this[_0x4e3668(0x15f)]){case 0x0:_0x4cdb61=_0x1291fc+0x1,Variables[_0x4e3668(_0x6bcbdb._0x2982aa)](_0x36e34e,new NumberValue(_0x4cdb61));return new NumberValue(_0x4cdb61);case 0x1:_0x4cdb61=_0x1291fc-0x1,Variables[_0x4e3668(0x185)](_0x36e34e,new NumberValue(_0x4cdb61));return new NumberValue(_0x4cdb61);case 0x2:Variables[_0x4e3668(_0x6bcbdb._0x2982aa)](_0x36e34e,new NumberValue(_0x1291fc+0x1));return new NumberValue(_0x1291fc);case 0x3:Variables[_0x4e3668(0x185)](_0x36e34e,new NumberValue(_0x1291fc-0x1));return new NumberValue(_0x1291fc);}}},IncrementStatement=class{static{__name(this,_0x381e21(0xb0));}[_0x381e21(0xd7)];[_0x381e21(0xf9)];constructor(_0x331af2,_0x24281e){const _0x2dbe19=_0x381e21;this[_0x2dbe19(0xd7)]=_0x331af2,this[_0x2dbe19(0xf9)]=_0x24281e;}['execute'](){const _0x26e3f8={_0x59b26d:0xd7,_0xa36457:0x20a},_0x3d8eab=_0x381e21;this[_0x3d8eab(_0x26e3f8._0x59b26d)][_0x3d8eab(_0x26e3f8._0xa36457)]();}},MemberCallExpression=class{static{__name(this,_0x381e21(0x174));}['receiver'];[_0x381e21(0x20c)];[_0x381e21(0x1a1)];['token'];constructor(_0xb12831,_0x280920,_0x44bff0,_0x6907a4){const _0xe88cc={_0x6f2610:0x20c,_0x219850:0x1a1},_0x1f8cb3=_0x381e21;this[_0x1f8cb3(0x1bd)]=_0xb12831,this[_0x1f8cb3(_0xe88cc._0x6f2610)]=_0x280920,this[_0x1f8cb3(_0xe88cc._0x219850)]=_0x44bff0,this[_0x1f8cb3(0xf9)]=_0x6907a4;}[_0x381e21(0x20a)](){const _0x2ab6e7=_0x381e21;throw new Error(_0x2ab6e7(0x142));}[_0x381e21(0x10d)](){const _0x15b2ee={_0x141bc6:0x1a1,_0x3e2355:0x20c},_0x6a6eb0=_0x381e21,_0x556699=this[_0x6a6eb0(_0x15b2ee._0x141bc6)][_0x6a6eb0(0xe4)](_0x309084=>_0x309084[_0x6a6eb0(0x10d)]())[_0x6a6eb0(0x1ab)](',\x20');return this[_0x6a6eb0(0x1bd)][_0x6a6eb0(0x10d)]()+'.'+this[_0x6a6eb0(_0x15b2ee._0x3e2355)]+'('+_0x556699+')';}},MetaBlockStatement=class{static{__name(this,_0x381e21(0x19a));}[_0x381e21(0x20c)];[_0x381e21(0x1b7)];['body'];[_0x381e21(0xf9)];constructor(_0x13f7e0,_0x284ce4,_0x5162af,_0x4cb5fa){const _0x1eb9c2={_0x5b6755:0x20c},_0x1c2ccf=_0x381e21;this[_0x1c2ccf(_0x1eb9c2._0x5b6755)]=_0x13f7e0,this[_0x1c2ccf(0x1b7)]=_0x284ce4,this['body']=_0x5162af,this[_0x1c2ccf(0xf9)]=_0x4cb5fa;}[_0x381e21(0xf2)](){}[_0x381e21(0x10d)](){const _0x3b3139={_0xec386f:0x18e,_0x5120b2:0x20c},_0x52faab=_0x381e21,_0x1bcb2d=this[_0x52faab(0x1b7)]['map'](_0x44f054=>_0x44f054[_0x52faab(0x10d)]())['join'](',\x20');return _0x52faab(0xd1)+this['name']+'('+_0x1bcb2d+')\x0a'+this[_0x52faab(_0x3b3139._0xec386f)]+'\x0a//@end-'+this[_0x52faab(_0x3b3139._0x5120b2)];}},ObjectExpression=class{static{__name(this,_0x381e21(0x1e1));}[_0x381e21(0x11e)];[_0x381e21(0xf9)];constructor(_0x1ba220=new Map(),_0x232691){const _0xeaf2e2=_0x381e21;this['properties']=_0x1ba220,this[_0xeaf2e2(0xf9)]=_0x232691;}[_0x381e21(0x20a)](){const _0x4fa904={_0x4a41a3:0x11e,_0x17e482:0x20b},_0x1534e5={_0x200028:0x185,_0xcfe98a:0x20a},_0x22c53d=_0x381e21,_0x3a35d3=new Map();return this[_0x22c53d(_0x4fa904._0x4a41a3)][_0x22c53d(_0x4fa904._0x17e482)]((_0x144b0e,_0x1c20af)=>{const _0x3d7079=_0x22c53d;_0x3a35d3[_0x3d7079(_0x1534e5._0x200028)](_0x1c20af,_0x144b0e[_0x3d7079(_0x1534e5._0xcfe98a)]());}),new ObjectValue(_0x3a35d3);}['toString'](){const _0x10dc85={_0x4a4b63:0xe4,_0x8264b2:0x1ab},_0x26f17e=_0x381e21,_0x288b08=Array[_0x26f17e(0x17d)](this[_0x26f17e(0x11e)][_0x26f17e(0xc5)]())[_0x26f17e(_0x10dc85._0x4a4b63)](([_0x532fc2,_0x2ece06])=>_0x532fc2+':\x20'+_0x2ece06[_0x26f17e(0x10d)]())[_0x26f17e(_0x10dc85._0x8264b2)](',\x20');return'{'+_0x288b08+'}';}},PrintStatement=class{static{__name(this,_0x381e21(0x155));}[_0x381e21(0xd7)];[_0x381e21(0xf9)];constructor(_0x2c4ed6,_0x54de70){const _0x15fb8b=_0x381e21;this['expression']=_0x2c4ed6,this[_0x15fb8b(0xf9)]=_0x54de70;}[_0x381e21(0xf2)](){const _0x45aa28={_0x38655a:0x20a},_0x52aebb=_0x381e21,_0x146226=this['expression'][_0x52aebb(_0x45aa28._0x38655a)]()['asString']();console[_0x52aebb(0x113)](''+_0x146226);}[_0x381e21(0x10d)](){const _0x1012fd={_0x1a1414:0xd7},_0x2ed28c=_0x381e21;return _0x2ed28c(0x10c)+this[_0x2ed28c(_0x1012fd._0x1a1414)];}},PropertyAccessExpression=class{static{__name(this,_0x381e21(0xec));}[_0x381e21(0x1bd)];['name'];['token'];constructor(_0x3a607d,_0xc068d5,_0x18f2cc){const _0xe83f49={_0x58a1ae:0xf9},_0x47dcc3=_0x381e21;this[_0x47dcc3(0x1bd)]=_0x3a607d,this[_0x47dcc3(0x20c)]=_0xc068d5,this[_0x47dcc3(_0xe83f49._0x58a1ae)]=_0x18f2cc;}[_0x381e21(0x20a)](){throw new Error('PropertyAccessExpression.eval()\x20is\x20not\x20implemented\x20in\x20the\x20in-process\x20interpreter\x20—\x20use\x20AstExecutor\x20(src/dsl/ast-executor.ts)\x20instead.');}['toString'](){const _0x6619d6={_0x13c211:0x10d},_0x37c573=_0x381e21;return this[_0x37c573(0x1bd)][_0x37c573(_0x6619d6._0x13c211)]()+'.'+this[_0x37c573(0x20c)];}},RegExpExpression=class{static{__name(this,_0x381e21(0x1a9));}[_0x381e21(0xf9)];[_0x381e21(0x17f)];[_0x381e21(0x100)];[_0x381e21(0xc6)];constructor(_0x13702b,_0x32d556,_0x1beec0){const _0x4cb44c=_0x381e21;this[_0x4cb44c(0xf9)]=_0x1beec0,this['source']=_0x13702b,this['flags']=_0x32d556,this['value']=new RegExpValue(_0x13702b,_0x32d556);}[_0x381e21(0x20a)](){const _0x3235d5=_0x381e21;return this[_0x3235d5(0xc6)];}['toString'](){return this['value']['asString']();}},ReturnStatement=class extends Error{static{__name(this,_0x381e21(0x1fe));}[_0x381e21(0xd7)];[_0x381e21(0xc1)];[_0x381e21(0xf9)];constructor(_0x317244,_0x52649f){const _0x5d2970=_0x381e21;super(_0x5d2970(0x145)),this[_0x5d2970(0xd7)]=_0x317244,this[_0x5d2970(0xf9)]=_0x52649f;}[_0x381e21(0x10e)](){const _0x49a05d=_0x381e21;if(!this[_0x49a05d(0xc1)])throw new Error('Not\x20execute\x20ReturnStatement');return this[_0x49a05d(0xc1)];}[_0x381e21(0xf2)](){const _0x54f6a7={_0x2d43d4:0xd7,_0x1dc41d:0x20a},_0x51eee5=_0x381e21;this['result']=this[_0x51eee5(_0x54f6a7._0x2d43d4)][_0x51eee5(_0x54f6a7._0x1dc41d)]();throw this;}[_0x381e21(0x10d)](){const _0x35b852=_0x381e21;return _0x35b852(0xfa);}},UnaryExpression=class{static{__name(this,_0x381e21(0xe2));}['expr1'];['operation'];[_0x381e21(0xf9)];constructor(_0x557628,_0x407104,_0x3ca165){const _0x490850={_0x109ca9:0xf9},_0x3fd76a=_0x381e21;this[_0x3fd76a(0xbd)]=_0x557628,this['expr1']=_0x407104,this[_0x3fd76a(_0x490850._0x109ca9)]=_0x3ca165;}[_0x381e21(0x20a)](){const _0x541bb2={_0x33c92e:0x20a,_0x5b5144:0x127},_0x3f3a74=_0x381e21;switch(this[_0x3f3a74(0xbd)]){case'-':return new NumberValue(-this['expr1'][_0x3f3a74(_0x541bb2._0x33c92e)]()['asNumber']());case'+':default:return new NumberValue(this[_0x3f3a74(_0x541bb2._0x5b5144)][_0x3f3a74(_0x541bb2._0x33c92e)]()[_0x3f3a74(0x1c2)]());}}[_0x381e21(0x10d)](){const _0x14091b=_0x381e21;return''+this[_0x14091b(0xbd)]+this[_0x14091b(0x127)];}},TokenType=(_0x4b8809=>{const _0x1102f1={_0x142566:0x1c4,_0x4d8176:0x128,_0x31d188:0x95,_0x41ae4b:0x10a,_0xa94f2f:0x181,_0x51baef:0x1f7,_0x1da03d:0xd0,_0x4c5248:0xc2,_0x58d783:0x13f,_0x59e65d:0x191,_0x36372d:0xe0,_0x1d3203:0x10f,_0x39e197:0x169,_0x430bf4:0x1c5,_0x1f55d3:0x1ad,_0x4a4708:0x112,_0x1b659d:0x112,_0xaa5617:0x16c,_0x17cb62:0x1e5,_0x30c188:0x13b,_0x21b0b2:0x13b,_0x1e8b8e:0x1b8,_0x1e56d1:0x134,_0x4874ab:0x18d,_0x4fc5eb:0xee,_0x28bde7:0x1d5,_0x23aff7:0x104,_0x27e17e:0x209,_0x587268:0xdf},_0x2b94e3=_0x381e21;return _0x4b8809[_0x4b8809[_0x2b94e3(0x14e)]=0x0]='NUMBER',_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x142566)]=0x1]=_0x2b94e3(0x1c4),_0x4b8809[_0x4b8809[_0x2b94e3(0x128)]=0x2]=_0x2b94e3(_0x1102f1._0x4d8176),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x31d188)]=0x3]='REGEX',_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x41ae4b)]=0x4]='VAR',_0x4b8809[_0x4b8809['PRINT']=0x5]=_0x2b94e3(0x15a),_0x4b8809[_0x4b8809['IF']=0x6]='IF',_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0xa94f2f)]=0x7]=_0x2b94e3(0x181),_0x4b8809[_0x4b8809[_0x2b94e3(0x91)]=0x8]=_0x2b94e3(0x91),_0x4b8809[_0x4b8809[_0x2b94e3(0x14a)]=0x9]=_0x2b94e3(0x14a),_0x4b8809[_0x4b8809['DO']=0xa]='DO',_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x51baef)]=0xb]=_0x2b94e3(0x1f7),_0x4b8809[_0x4b8809['CONTINUE']=0xc]=_0x2b94e3(_0x1102f1._0x1da03d),_0x4b8809[_0x4b8809['FUNCTION']=0xd]=_0x2b94e3(_0x1102f1._0x4c5248),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x58d783)]=0xe]='RETURN',_0x4b8809[_0x4b8809['PLUS']=0xf]=_0x2b94e3(0x152),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x59e65d)]=0x10]=_0x2b94e3(0x191),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x36372d)]=0x11]=_0x2b94e3(0xe0),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x1d3203)]=0x12]=_0x2b94e3(0x10f),_0x4b8809[_0x4b8809['STAR']=0x13]='STAR',_0x4b8809[_0x4b8809[_0x2b94e3(0x169)]=0x14]=_0x2b94e3(_0x1102f1._0x39e197),_0x4b8809[_0x4b8809['EQ']=0x15]='EQ',_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x430bf4)]=0x16]='EQEQ',_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x1f55d3)]=0x17]=_0x2b94e3(0x1ad),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x4a4708)]=0x18]=_0x2b94e3(_0x1102f1._0x1b659d),_0x4b8809[_0x4b8809['LT']=0x19]='LT',_0x4b8809[_0x4b8809[_0x2b94e3(0x1b6)]=0x1a]=_0x2b94e3(0x1b6),_0x4b8809[_0x4b8809['GT']=0x1b]='GT',_0x4b8809[_0x4b8809['GTEQ']=0x1c]=_0x2b94e3(_0x1102f1._0xaa5617),_0x4b8809[_0x4b8809['BAR']=0x1d]=_0x2b94e3(_0x1102f1._0x17cb62),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x30c188)]=0x1e]=_0x2b94e3(_0x1102f1._0x21b0b2),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x1e8b8e)]=0x1f]=_0x2b94e3(0x1b8),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x1e56d1)]=0x20]=_0x2b94e3(0x134),_0x4b8809[_0x4b8809['LPAREN']=0x21]='LPAREN',_0x4b8809[_0x4b8809[_0x2b94e3(0xa3)]=0x22]='RPAREN',_0x4b8809[_0x4b8809['LBRACE']=0x23]=_0x2b94e3(0x143),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x4874ab)]=0x24]=_0x2b94e3(0x18d),_0x4b8809[_0x4b8809['LBRACKET']=0x25]=_0x2b94e3(0x183),_0x4b8809[_0x4b8809['RBRACKET']=0x26]=_0x2b94e3(0x151),_0x4b8809[_0x4b8809[_0x2b94e3(0xee)]=0x27]=_0x2b94e3(_0x1102f1._0x4fc5eb),_0x4b8809[_0x4b8809[_0x2b94e3(0x1f9)]=0x28]=_0x2b94e3(0x1f9),_0x4b8809[_0x4b8809[_0x2b94e3(0x1d5)]=0x29]=_0x2b94e3(_0x1102f1._0x28bde7),_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x23aff7)]=0x2a]=_0x2b94e3(0x104),_0x4b8809[_0x4b8809['META_BLOCK']=0x2b]='META_BLOCK',_0x4b8809[_0x4b8809[_0x2b94e3(_0x1102f1._0x27e17e)]=0x2c]='CLOSE_META_BLOCK',_0x4b8809[_0x4b8809[_0x2b94e3(0xdf)]=0x2d]=_0x2b94e3(_0x1102f1._0x587268),_0x4b8809;})(TokenType||{}),ValueExpression=class{static{__name(this,'ValueExpression');}[_0x381e21(0xc6)];[_0x381e21(0xf9)];constructor(_0x377c75,_0x19eb98){const _0x9f7fe8={_0x3e3c9b:0x186},_0x2bbbe7=_0x381e21;this[_0x2bbbe7(0xf9)]=_0x19eb98;if(_0x19eb98[_0x2bbbe7(0x186)]()===0x0){this['value']=new NumberValue(parseFloat(_0x377c75));return;}if(_0x19eb98[_0x2bbbe7(_0x9f7fe8._0x3e3c9b)]()===0x2){this[_0x2bbbe7(0xc6)]=new StringValue(_0x377c75);return;}throw new Error(_0x2bbbe7(0x17a)+_0x19eb98);}[_0x381e21(0x20a)](){const _0x130121=_0x381e21;return this[_0x130121(0xc6)];}[_0x381e21(0x10d)](){const _0x56363f=_0x381e21;return''+this[_0x56363f(0xc6)]['asString']();}},UndefinedValue=class _UndefinedValue{static{__name(this,_0x381e21(0x1ba));}static [_0x381e21(0x14c)]=new _UndefinedValue();[_0x381e21(0x1a8)](){const _0x3be2b8={_0x19722f:0x14c},_0x372f90=_0x381e21;return _UndefinedValue[_0x372f90(_0x3be2b8._0x19722f)];}[_0x381e21(0x1c2)](){return NaN;}[_0x381e21(0xa4)](){const _0x2397af={_0xc05ead:0x1bb},_0x5dad23=_0x381e21;return _0x5dad23(_0x2397af._0xc05ead);}[_0x381e21(0x10d)](){const _0x44d5e9={_0x4a1df2:0xa4},_0x53fb9b=_0x381e21;return this[_0x53fb9b(_0x44d5e9._0x4a1df2)]();}},VarStatement=class{static{__name(this,_0x381e21(0x1f2));}['declarators'];[_0x381e21(0xf9)];constructor(_0xbecb19,_0x397c9b){const _0x4b0d79=_0x381e21;this[_0x4b0d79(0x170)]=_0xbecb19,this[_0x4b0d79(0xf9)]=_0x397c9b;}[_0x381e21(0xf2)](){const _0x4814b9={_0x5a2c15:0x20a,_0x1dcf49:0x20c},_0x49735f=_0x381e21;for(const _0x2707cd of this['declarators']){if(_0x2707cd[_0x49735f(0x201)]){const _0x27c4cb=_0x2707cd['init'][_0x49735f(_0x4814b9._0x5a2c15)]();Variables['set'](_0x2707cd[_0x49735f(_0x4814b9._0x1dcf49)],_0x27c4cb);}else Variables['set'](_0x2707cd[_0x49735f(0x20c)],UndefinedValue['UNDEFINED']);}}['toString'](){const _0x574c7d={_0x76b333:0x170,_0x37085d:0xe4,_0x1560ac:0x1ab,_0x446734:0xa0},_0x44a8bd=_0x381e21,_0x4af2e9=this[_0x44a8bd(_0x574c7d._0x76b333)][_0x44a8bd(_0x574c7d._0x37085d)](_0x591317=>_0x591317[_0x44a8bd(0x201)]?_0x591317[_0x44a8bd(0x20c)]+_0x44a8bd(0x18b)+_0x591317[_0x44a8bd(0x201)]:_0x591317['name'])[_0x44a8bd(_0x574c7d._0x1560ac)](',\x20');return _0x44a8bd(_0x574c7d._0x446734)+_0x4af2e9;}},VariableExpression=class{static{__name(this,_0x381e21(0xd6));}[_0x381e21(0x20c)];['token'];constructor(_0x3ce7bc,_0x589582){const _0xc32c8c={_0x3017da:0x20c},_0x4d014d=_0x381e21;this[_0x4d014d(_0xc32c8c._0x3017da)]=_0x3ce7bc,this[_0x4d014d(0xf9)]=_0x589582;}[_0x381e21(0x20a)](){const _0x11d226={_0x456c3a:0xa7,_0x28b485:0x111},_0x2788a2=_0x381e21;if(!Variables[_0x2788a2(_0x11d226._0x456c3a)](this['name']))throw new Error('Constant\x20'+this[_0x2788a2(0x20c)]+_0x2788a2(0x17c));return Variables[_0x2788a2(_0x11d226._0x28b485)](this['name']);}[_0x381e21(0x12c)](){const _0x5492e2=_0x381e21;return this[_0x5492e2(0x20c)];}[_0x381e21(0x10d)](){const _0x2e91ae=_0x381e21;return''+this[_0x2e91ae(0x20c)];}},WhileStatement=class{static{__name(this,_0x381e21(0x131));}[_0x381e21(0xb4)];['statement'];[_0x381e21(0xf9)];constructor(_0x4c8885,_0x549d99,_0x38446d){const _0x38f52f={_0x548127:0xf9},_0x421d0c=_0x381e21;this[_0x421d0c(0xb4)]=_0x4c8885,this[_0x421d0c(0x138)]=_0x549d99,this[_0x421d0c(_0x38f52f._0x548127)]=_0x38446d;}[_0x381e21(0xf2)](){const _0x58e2f9={_0x566ff9:0xb4,_0x2dc8c7:0x20a},_0x18b552=_0x381e21;while(this[_0x18b552(_0x58e2f9._0x566ff9)][_0x18b552(_0x58e2f9._0x2dc8c7)]()[_0x18b552(0x1c2)]()!=0x0){try{this[_0x18b552(0x138)][_0x18b552(0xf2)]();}catch(_0x59d200){if(_0x59d200 instanceof BreakStatement)break;else{if(_0x59d200 instanceof ContinueStatement){}else throw _0x59d200;}}}}[_0x381e21(0x10d)](){const _0x426142={_0x4b4972:0x1b5},_0x30e0bd=_0x381e21;return _0x30e0bd(0xb5)+this['condition']+_0x30e0bd(_0x426142._0x4b4972)+this['statement']+'\x0a}';}},Token=class{static{__name(this,'Token');}[_0x381e21(0xdd)];[_0x381e21(0x15f)];[_0x381e21(0x1d1)];['line'];constructor(_0x29a79d,_0x334590,_0x5475f7,_0x30e436){const _0x202342=_0x381e21;this['type']=_0x29a79d,this['text']=_0x334590,this[_0x202342(0x1d1)]=_0x5475f7,this[_0x202342(0xca)]=_0x30e436;}[_0x381e21(0x8d)](){return this['text'];}['getType'](){const _0x49351d=_0x381e21;return this[_0x49351d(0x15f)];}[_0x381e21(0xd5)](){const _0x2c112e=_0x381e21;return this[_0x2c112e(0xca)];}[_0x381e21(0x11c)](){const _0x2cbfb4=_0x381e21;return this[_0x2cbfb4(0x1d1)];}[_0x381e21(0x10d)](){const _0x4366f2=_0x381e21;return _0x4366f2(0x202)+TokenType[this[_0x4366f2(0x15f)]]+',\x20text:\x20\x22'+this[_0x4366f2(0xdd)]+_0x4366f2(0x108)+this[_0x4366f2(0xca)]+',\x20column:\x20'+this[_0x4366f2(0x1d1)]+')';}};function isNumber(_0x59b6ba){const _0x2ad75e={_0x4c6076:0xb8},_0x2c9ba9=_0x381e21,_0x4a92c3=Number(_0x59b6ba);return!isNaN(_0x4a92c3)&&_0x59b6ba[_0x2c9ba9(_0x2ad75e._0x4c6076)]()===_0x4a92c3[_0x2c9ba9(0x10d)]();}__name(isNumber,'isNumber');function isLetter(_0x4faa42){return/^[a-zA-Zа-яА-ЯёЁ]$/['test'](_0x4faa42);}__name(isLetter,_0x381e21(0xad));function isLetterInWord(_0x404302){const _0xfcb833={_0x392560:0x1b9},_0x4c09d1=_0x381e21;return/^[a-zA-Zа-яА-ЯёЁ0-9_$]$/[_0x4c09d1(_0xfcb833._0x392560)](_0x404302);}__name(isLetterInWord,_0x381e21(0x167));var DIVIDE_AFTER=new Set([0x0,0x1,0x2,0x4,0x22,0x26,0x10,0x12]);function isRegexAllowedAfter(_0x16d7c){const _0x8f8da5={_0xb47ca1:0x130},_0x1cfad2=_0x381e21;return!DIVIDE_AFTER[_0x1cfad2(_0x8f8da5._0xb47ca1)](_0x16d7c);}__name(isRegexAllowedAfter,'isRegexAllowedAfter');var Lexer=class{static{__name(this,_0x381e21(0xef));}['OPERATOR_CHARS']='+-*/(){}[]=<>!&|,:;.';['OPERATORS']=new Map([['+',0xf],['++',0x10],['-',0x11],['--',0x12],['*',0x13],['/',0x14],['(',0x21],[')',0x22],['{',0x23],['}',0x24],['[',0x25],[']',0x26],['=',0x15],['<',0x19],['>',0x1b],[',',0x27],[':',0x28],[';',0x29],['.',0x2a],['!',0x17],['&',0x1f],['|',0x1d],['==',0x16],['!=',0x18],['<=',0x1a],['>=',0x1c],['&&',0x20],['||',0x1e]]);['input'];[_0x381e21(0x8e)];[_0x381e21(0xf7)]=[];[_0x381e21(0x194)]=0x0;[_0x381e21(0x1d1)]=0x1;[_0x381e21(0xca)]=0x1;constructor(_0x467f9b){const _0x6c7a8={_0x1661ee:0x8e},_0x56f5ad=_0x381e21;this[_0x56f5ad(0x154)]=_0x467f9b,this[_0x56f5ad(_0x6c7a8._0x1661ee)]=_0x467f9b[_0x56f5ad(_0x6c7a8._0x1661ee)];}['tokenize'](){const _0x6f2566={_0x32b789:0x194,_0x2e3b7a:0x8e,_0xc376e7:0x176,_0x3cbe8f:0xdc,_0x3eea1e:0x19f,_0x40e912:0x1bc,_0xce3e79:0x110,_0x11350d:0xf7},_0x4816ea=_0x381e21;while(this[_0x4816ea(_0x6f2566._0x32b789)]<this[_0x4816ea(_0x6f2566._0x2e3b7a)]){const _0x39b313=this[_0x4816ea(0xfd)](0x0);if(isNumber(_0x39b313))this[_0x4816ea(0xf1)]();else{if(isLetter(_0x39b313))this[_0x4816ea(_0x6f2566._0xc376e7)]();else{if(_0x39b313==='\x22'||_0x39b313==='\x27')this[_0x4816ea(0xfe)](_0x39b313);else{if(_0x39b313==='`')this['tokenizeRawText']();else{if(this[_0x4816ea(0x15e)](0x3)===_0x4816ea(0xd1))this[_0x4816ea(_0x6f2566._0x3cbe8f)]();else{if(_0x39b313==='/'&&this[_0x4816ea(_0x6f2566._0x3eea1e)]())this['tokenizeRegex']();else this[_0x4816ea(0x200)]['indexOf'](_0x39b313)!==-0x1?this[_0x4816ea(_0x6f2566._0x40e912)]():this[_0x4816ea(_0x6f2566._0xce3e79)]();}}}}}}return this[_0x4816ea(_0x6f2566._0x11350d)];}[_0x381e21(0x19f)](){const _0x40f70d={_0x502927:0xfd,_0x3d73a3:0x8e,_0x13cb10:0xf7,_0x36a366:0x8e},_0x918968=_0x381e21;if(this['peek'](0x1)==='/'||this[_0x918968(_0x40f70d._0x502927)](0x1)==='*')return![];const _0x258d6a=this[_0x918968(0xf7)][_0x918968(_0x40f70d._0x3d73a3)]===0x0?null:this['tokens'][this[_0x918968(_0x40f70d._0x13cb10)][_0x918968(_0x40f70d._0x36a366)]-0x1];if(_0x258d6a===null)return!![];return isRegexAllowedAfter(_0x258d6a[_0x918968(0x186)]());}['tokenizeRegex'](){const _0x24d0c9={_0x8cf375:0xfd,_0x494f92:0x137,_0x3c1e2b:0x9c,_0x4e91bb:0x110,_0x2ca625:0x9c},_0x5c9b56=_0x381e21,_0x3781d7=this['column'],_0x54a820=this['line'];this['next']();const _0x1eb17e=[];let _0x848eb=![],_0x20bc9e=this[_0x5c9b56(_0x24d0c9._0x8cf375)](0x0);while(_0x20bc9e!=='\x00'){if(_0x20bc9e==='\x0a'||_0x20bc9e==='\x0d')throw new Error(_0x5c9b56(_0x24d0c9._0x494f92)+_0x54a820+_0x5c9b56(0xa8)+_0x3781d7+'\x20(line\x20break\x20inside\x20body).');if(_0x20bc9e==='\x5c'){_0x1eb17e[_0x5c9b56(_0x24d0c9._0x3c1e2b)](_0x20bc9e),_0x20bc9e=this['next']();if(_0x20bc9e==='\x00'||_0x20bc9e==='\x0a'||_0x20bc9e==='\x0d')throw new Error(_0x5c9b56(0x137)+_0x54a820+',\x20col\x20'+_0x3781d7+_0x5c9b56(0x1cb));_0x1eb17e['push'](_0x20bc9e),_0x20bc9e=this[_0x5c9b56(_0x24d0c9._0x4e91bb)]();continue;}if(_0x20bc9e==='['&&!_0x848eb){_0x848eb=!![],_0x1eb17e[_0x5c9b56(0x9c)](_0x20bc9e),_0x20bc9e=this[_0x5c9b56(0x110)]();continue;}if(_0x20bc9e===']'&&_0x848eb){_0x848eb=![],_0x1eb17e['push'](_0x20bc9e),_0x20bc9e=this[_0x5c9b56(0x110)]();continue;}if(_0x20bc9e==='/'&&!_0x848eb)break;_0x1eb17e[_0x5c9b56(_0x24d0c9._0x2ca625)](_0x20bc9e),_0x20bc9e=this[_0x5c9b56(0x110)]();}if(_0x20bc9e!=='/')throw new Error(_0x5c9b56(_0x24d0c9._0x494f92)+_0x54a820+_0x5c9b56(0xa8)+_0x3781d7+'\x20(missing\x20closing\x20/).');this['next']();const _0x19bd93=[];_0x20bc9e=this[_0x5c9b56(0xfd)](0x0);while(_0x20bc9e!=='\x00'&&isLetterInWord(_0x20bc9e)){_0x19bd93[_0x5c9b56(0x9c)](_0x20bc9e),_0x20bc9e=this['next']();}this[_0x5c9b56(0x1fa)](0x3,_0x1eb17e['join']('')+'\x00'+_0x19bd93[_0x5c9b56(0x1ab)](''),_0x3781d7,_0x54a820);}[_0x381e21(0x110)](){const _0x58e67e={_0x399759:0xbb,_0x4ac5b6:0x194,_0x49be34:0xca,_0x57c4c4:0x1d1,_0x2ba135:0xfd},_0x3fda7c=_0x381e21,_0x27854e=this['input'][_0x3fda7c(_0x58e67e._0x399759)](this[_0x3fda7c(_0x58e67e._0x4ac5b6)]);return this[_0x3fda7c(_0x58e67e._0x4ac5b6)]++,_0x27854e=='\x0a'?(this[_0x3fda7c(_0x58e67e._0x49be34)]++,this['column']=0x1):this[_0x3fda7c(_0x58e67e._0x57c4c4)]++,this[_0x3fda7c(_0x58e67e._0x2ba135)](0x0);}[_0x381e21(0xfd)](_0x1de2ee){const _0xae4de3={_0x40972b:0x194,_0x186c66:0x154},_0x350b8e=_0x381e21,_0x47d591=this[_0x350b8e(_0xae4de3._0x40972b)]+_0x1de2ee;if(_0x47d591>=this['length'])return'\x00';return this[_0x350b8e(_0xae4de3._0x186c66)]['charAt'](_0x47d591);}[_0x381e21(0x15e)](_0x127c97){const _0x184ff1=_0x381e21,_0x676fd8=[];for(let _0x524386=0x0;_0x524386<_0x127c97;_0x524386++){_0x676fd8['push'](this[_0x184ff1(0xfd)](_0x524386));}return _0x676fd8[_0x184ff1(0x1ab)]('');}[_0x381e21(0x1fa)](_0xff1c0,_0x2bd87f,_0x3f7a45,_0x13e0b3){const _0x1cdafe=_0x381e21;this[_0x1cdafe(0xf7)][_0x1cdafe(0x9c)](new Token(_0xff1c0,_0x2bd87f,_0x3f7a45-0x1,_0x13e0b3));}['tokenizeNumber'](){const _0x16993e={_0x1ac719:0x1d1,_0x43a1ec:0xfd,_0x24d4e3:0x110,_0x197260:0x1fa},_0x44d09b=_0x381e21,_0x1c803e=this[_0x44d09b(_0x16993e._0x1ac719)],_0x5b4fd2=this[_0x44d09b(0xca)],_0x2eb4d4=[];let _0x40c3bd=this[_0x44d09b(_0x16993e._0x43a1ec)](0x0);while(_0x40c3bd!=='\x00'){if(_0x40c3bd=='.'){if(_0x2eb4d4[_0x44d09b(0x140)]('.')!==-0x1)throw new Error(_0x44d09b(0x1fd));}else{if(!isNumber(_0x40c3bd))break;}_0x2eb4d4['push'](_0x40c3bd),_0x40c3bd=this[_0x44d09b(_0x16993e._0x24d4e3)]();}this[_0x44d09b(_0x16993e._0x197260)](0x0,_0x2eb4d4[_0x44d09b(0x1ab)](''),_0x1c803e,_0x5b4fd2);}[_0x381e21(0x1f3)](){const _0x5a6962={_0x154d8f:0x110},_0x455cca=_0x381e21,_0x5d785e=[];let _0x637792=this[_0x455cca(0xfd)](0x0);while(_0x637792!=='\x00'){if(!isLetterInWord(_0x637792))break;_0x5d785e[_0x455cca(0x9c)](_0x637792),_0x637792=this[_0x455cca(_0x5a6962._0x154d8f)]();}return _0x5d785e[_0x455cca(0x1ab)]('');}[_0x381e21(0xdc)](){const _0xab02a2={_0x3833d3:0x110,_0x416e69:0xff,_0xd1801c:0x1fa},_0x1a41e1=_0x381e21,_0x4ecdc8=this[_0x1a41e1(0x1d1)],_0x49d8e2=this['line'];this[_0x1a41e1(0x110)](),this['next'](),this[_0x1a41e1(_0xab02a2._0x3833d3)]();const _0x1fea8c=this[_0x1a41e1(0x1f3)]();_0x1fea8c['startsWith'](_0x1a41e1(_0xab02a2._0x416e69))?this['addToken'](0x2c,_0x1fea8c,_0x4ecdc8,_0x49d8e2):this[_0x1a41e1(_0xab02a2._0xd1801c)](0x2b,_0x1fea8c,_0x4ecdc8,_0x49d8e2);}['tokenizeWord'](){const _0x11aee6={_0x4c4b37:0xca,_0x1f8d37:0x1fa,_0x1e3588:0x1c7,_0x25be98:0x1f4,_0x3d94e9:0x1fa,_0x4ad397:0xfa,_0x5296ca:0x1fa},_0x2ceab7=_0x381e21,_0x57311f=this[_0x2ceab7(0x1d1)],_0xa70ddf=this[_0x2ceab7(_0x11aee6._0x4c4b37)],_0x581913=this[_0x2ceab7(0x1f3)]();switch(_0x581913){case _0x2ceab7(0xe7):this['addToken'](0x4,'',_0x57311f,_0xa70ddf);break;case'print':this[_0x2ceab7(0x1fa)](0x5,'',_0x57311f,_0xa70ddf);break;case'if':this[_0x2ceab7(_0x11aee6._0x1f8d37)](0x6,'',_0x57311f,_0xa70ddf);break;case _0x2ceab7(_0x11aee6._0x1e3588):this['addToken'](0x7,'',_0x57311f,_0xa70ddf);break;case _0x2ceab7(_0x11aee6._0x25be98):this[_0x2ceab7(0x1fa)](0x9,'',_0x57311f,_0xa70ddf);break;case _0x2ceab7(0xe5):this[_0x2ceab7(_0x11aee6._0x1f8d37)](0x8,'',_0x57311f,_0xa70ddf);break;case'do':this[_0x2ceab7(_0x11aee6._0x1f8d37)](0xa,'',_0x57311f,_0xa70ddf);break;case'break':this[_0x2ceab7(_0x11aee6._0x3d94e9)](0xb,'',_0x57311f,_0xa70ddf);break;case'continue':this[_0x2ceab7(0x1fa)](0xc,'',_0x57311f,_0xa70ddf);break;case _0x2ceab7(0x102):this[_0x2ceab7(0x1fa)](0xd,'',_0x57311f,_0xa70ddf);break;case _0x2ceab7(_0x11aee6._0x4ad397):this[_0x2ceab7(0x1fa)](0xe,'',_0x57311f,_0xa70ddf);break;default:this[_0x2ceab7(_0x11aee6._0x5296ca)](0x1,_0x581913,_0x57311f,_0xa70ddf);}}[_0x381e21(0xfe)](_0x145d27){const _0x463eb5={_0x515cd5:0x110,_0x387647:0x1d1,_0x29cb56:0x9c},_0x1ad231=_0x381e21;this[_0x1ad231(_0x463eb5._0x515cd5)]();const _0x310f71=this[_0x1ad231(_0x463eb5._0x387647)],_0xaf781c=this['line'],_0x4ede4f=[];let _0x508514=this[_0x1ad231(0xfd)](0x0);while(_0x508514!=='\x00'){if(_0x508514=='\x5c'){_0x508514=this['next']();switch(_0x508514){case _0x145d27:_0x508514=this[_0x1ad231(0x110)](),_0x4ede4f[_0x1ad231(0x9c)](_0x145d27);continue;case'n':_0x508514=this[_0x1ad231(_0x463eb5._0x515cd5)](),_0x4ede4f['push']('\x0a');continue;case't':_0x508514=this[_0x1ad231(0x110)](),_0x4ede4f['push']('\x09');continue;}_0x4ede4f[_0x1ad231(_0x463eb5._0x29cb56)]('\x5c');continue;}if(_0x508514==_0x145d27)break;_0x4ede4f[_0x1ad231(0x9c)](_0x508514),_0x508514=this[_0x1ad231(0x110)]();}if(_0x508514==='\x00')throw new Error(_0x1ad231(0x1d4));this[_0x1ad231(0x110)]();const _0x4e7b68=_0x4ede4f[_0x1ad231(0x1ab)]('');this[_0x1ad231(0x1fa)](0x2,_0x4e7b68,_0x310f71,_0xaf781c);}[_0x381e21(0xf5)](){const _0x43543b={_0x3dba01:0xfd,_0x59d79a:0x1b1,_0x42d53d:0xa8,_0x2571d3:0x9c,_0x56a3ae:0x110,_0x3be046:0xa1},_0x48188e=_0x381e21;this['next']();const _0x74684b=this[_0x48188e(0x1d1)],_0x52d7af=this[_0x48188e(0xca)],_0x10965a=[];let _0x50c699=this[_0x48188e(0xfd)](0x0);while(_0x50c699!=='\x00'&&_0x50c699!=='`'){if(_0x50c699==='$'&&this[_0x48188e(_0x43543b._0x3dba01)](0x1)==='{')throw new Error(_0x48188e(_0x43543b._0x59d79a)+this[_0x48188e(0xca)]+_0x48188e(_0x43543b._0x42d53d)+this[_0x48188e(0x1d1)]+_0x48188e(0x12a));_0x10965a[_0x48188e(_0x43543b._0x2571d3)](_0x50c699),_0x50c699=this[_0x48188e(_0x43543b._0x56a3ae)]();}if(_0x50c699==='\x00')throw new Error(_0x48188e(_0x43543b._0x3be046));this[_0x48188e(_0x43543b._0x56a3ae)](),this[_0x48188e(0x1fa)](0x2,_0x10965a['join'](''),_0x74684b,_0x52d7af);}[_0x381e21(0x11a)](){const _0x49a239={_0x5c3b51:0x197,_0x8aedcd:0x140,_0x4edec6:0x110},_0x44ef23=_0x381e21;let _0x28b809=this[_0x44ef23(0xfd)](0x0);while(_0x44ef23(_0x49a239._0x5c3b51)[_0x44ef23(_0x49a239._0x8aedcd)](_0x28b809)==-0x1){_0x28b809=this[_0x44ef23(_0x49a239._0x4edec6)]();}}['tokenizeMultilineComment'](){const _0x59b03c={_0x1a1b9d:0xfd,_0x233ac8:0x110},_0x4f24c6=_0x381e21;let _0x5610f6=this[_0x4f24c6(0xfd)](0x0);while(_0x5610f6!='\x00'){if(_0x5610f6=='*'&&this[_0x4f24c6(_0x59b03c._0x1a1b9d)](0x1)=='/')break;_0x5610f6=this[_0x4f24c6(_0x59b03c._0x233ac8)]();}if(_0x5610f6=='\x00')throw new Error('Missing\x20close\x20tag\x20in\x20comment');this[_0x4f24c6(0x110)](),this[_0x4f24c6(0x110)]();}[_0x381e21(0x1bc)](){const _0x4d7688={_0x4cb3b5:0xfd,_0x47fd96:0x110,_0x401017:0x11a,_0x110361:0xfd,_0x498126:0x110,_0x416956:0x1ab,_0x8a2cd8:0xca,_0x5b028c:0x1e6,_0x554132:0x120,_0x3eede2:0x1fa,_0x74837e:0x1fa},_0x58ccd0=_0x381e21;let _0x4d9319=this[_0x58ccd0(0xfd)](0x0);if(_0x4d9319=='/'){if(this[_0x58ccd0(_0x4d7688._0x4cb3b5)](0x1)=='/'){this['next'](),this[_0x58ccd0(_0x4d7688._0x47fd96)](),this[_0x58ccd0(_0x4d7688._0x401017)]();return;}else{if(this[_0x58ccd0(_0x4d7688._0x110361)](0x1)=='*'){this[_0x58ccd0(_0x4d7688._0x498126)](),this['next'](),this[_0x58ccd0(0x1f1)]();return;}}}const _0x19d249=[];while(_0x4d9319!=='\x00'){const _0x42e745=_0x19d249[_0x58ccd0(_0x4d7688._0x416956)](''),_0x3d6f0f=this[_0x58ccd0(0x1d1)],_0x37bd95=this[_0x58ccd0(_0x4d7688._0x8a2cd8)];if(!this[_0x58ccd0(0x1e6)][_0x58ccd0(0x130)](_0x42e745+_0x4d9319)&&_0x42e745!=''){const _0x1e9d3f=this[_0x58ccd0(_0x4d7688._0x5b028c)][_0x58ccd0(0x111)](_0x42e745);if(!_0x1e9d3f)throw new Error(_0x58ccd0(_0x4d7688._0x554132)+_0x42e745);this[_0x58ccd0(_0x4d7688._0x3eede2)](_0x1e9d3f,'',_0x3d6f0f,_0x37bd95);return;}_0x19d249['push'](_0x4d9319),_0x4d9319=this['next']();}const _0x34b7b0=_0x19d249[_0x58ccd0(0x1ab)]('');if(_0x34b7b0!==''){const _0x490898=this['OPERATORS'][_0x58ccd0(0x111)](_0x34b7b0);if(_0x490898){this[_0x58ccd0(_0x4d7688._0x74837e)](_0x490898,'',this[_0x58ccd0(0x1d1)],this[_0x58ccd0(_0x4d7688._0x8a2cd8)]);return;}}throw new Error(_0x58ccd0(0x1b2));}},Parser=class _Parser{static{__name(this,'Parser');}[_0x381e21(0xdf)]=new Token(0x2d,'',-0x1,-0x1);[_0x381e21(0xf7)]=[];['pos']=0x0;[_0x381e21(0xba)];constructor(_0x3da651){const _0x202116={_0x272e39:0xba,_0x404dc7:0x8e},_0x202fcf=_0x381e21;this['tokens']=_0x3da651,this[_0x202fcf(_0x202116._0x272e39)]=_0x3da651[_0x202fcf(_0x202116._0x404dc7)];}[_0x381e21(0xa6)](){const _0x1accb3={_0x2440a6:0x111,_0x5e6ce8:0xe3,_0x3964d1:0x138},_0x440114=_0x381e21,_0x81f1b5=this[_0x440114(_0x1accb3._0x2440a6)](0x0),_0x129319=new BlockStatement(_0x81f1b5);while(!this['match'](0x2d)){_0x129319[_0x440114(_0x1accb3._0x5e6ce8)](this[_0x440114(_0x1accb3._0x3964d1)]()),this['match'](0x29);}return _0x129319;}['statementOrBlock'](){const _0x463d23=_0x381e21;if(this[_0x463d23(0x111)](0x0)['getType']()===0x23)return this['block']();return this['statement']();}['blockMetaBlock'](_0x1cea5f){const _0x581d0d={_0x938718:0xbe,_0x2aae57:0x138},_0x277b4b=_0x381e21,_0x48aa42=this[_0x277b4b(0x111)](0x0),_0x5879e1=new BlockStatement(_0x48aa42);while(!this[_0x277b4b(_0x581d0d._0x938718)](0x2c)){_0x5879e1['add'](this[_0x277b4b(_0x581d0d._0x2aae57)]()),this[_0x277b4b(0xbe)](0x29);}return _0x5879e1;}[_0x381e21(0x1e9)](){const _0x49d00a={_0x3cc45a:0xf8,_0x5e9f75:0xbe,_0x27eadd:0x9c},_0xb2715b=_0x381e21,_0x42ba28=this['get'](0x0),_0x40d73a=this[_0xb2715b(_0x49d00a._0x3cc45a)](0x2b)['getText']();this[_0xb2715b(_0x49d00a._0x3cc45a)](0x21);const _0x2ccba9=[];while(!this[_0xb2715b(_0x49d00a._0x5e9f75)](0x22)){_0x2ccba9[_0xb2715b(_0x49d00a._0x27eadd)](this['consume'](0x2)[_0xb2715b(0x8d)]()),this[_0xb2715b(0xbe)](0x27);}const _0x5a9da6=this[_0xb2715b(0x172)](_0x40d73a);return new MetaBlockStatement(_0x40d73a,_0x2ccba9,_0x5a9da6,_0x42ba28);}['block'](){const _0x83ba7b={_0x11a7fc:0xf8,_0xd72c96:0xe3},_0xf3d89e=_0x381e21,_0x5d944b=this[_0xf3d89e(0x111)](0x0),_0x49705e=new BlockStatement(_0x5d944b);this[_0xf3d89e(_0x83ba7b._0x11a7fc)](0x23);while(!this[_0xf3d89e(0xbe)](0x24)){_0x49705e[_0xf3d89e(_0x83ba7b._0xd72c96)](this['statement']()),this['match'](0x29);}return _0x49705e;}[_0x381e21(0x138)](){const _0x26fff2={_0x3f9acf:0xbe,_0x19977f:0xbe,_0x34e52a:0xd7,_0x36dcb5:0x182,_0x500e28:0x12d,_0x15c060:0x171,_0x481ea8:0xf8,_0x3b8134:0x171,_0x3f7e35:0x8d,_0x19c9d0:0xbe,_0x527e59:0x19d},_0x100e47=_0x381e21,_0x137483=this[_0x100e47(0x111)](0x0);if(this[_0x100e47(0xbe)](0x4))return this['varStatement'](_0x137483);if(this['match'](0x5))return new PrintStatement(this['expression'](),_0x137483);if(this[_0x100e47(0xbe)](0x6))return this[_0x100e47(0x168)](_0x137483);if(this[_0x100e47(_0x26fff2._0x3f9acf)](0x8))return this[_0x100e47(0x133)](_0x137483);if(this[_0x100e47(0xbe)](0xa))return this['doWhileStatement'](_0x137483);if(this[_0x100e47(_0x26fff2._0x3f9acf)](0xb))return new BreakStatement(_0x137483);if(this[_0x100e47(_0x26fff2._0x19977f)](0xc))return new ContinueStatement(_0x137483);if(this[_0x100e47(0xbe)](0xe))return new ReturnStatement(this[_0x100e47(_0x26fff2._0x34e52a)](),_0x137483);if(this[_0x100e47(0xbe)](0x9))return this[_0x100e47(_0x26fff2._0x36dcb5)](_0x137483);if(this[_0x100e47(_0x26fff2._0x19977f)](0xd))return this[_0x100e47(_0x26fff2._0x500e28)](_0x137483);if(this['lookMatch'](0x0,0x2b))return this['metaBlock']();if(this[_0x100e47(_0x26fff2._0x15c060)](0x0,0x1)&&this[_0x100e47(0x171)](0x1,0x21)){const _0x1fed5c=this[_0x100e47(0x1ec)](this['functionExpression'](_0x137483));return new FunctionStatement(_0x1fed5c,_0x137483);}if(this['lookMatch'](0x0,0x1)&&this[_0x100e47(_0x26fff2._0x15c060)](0x1,0x2a)){const _0x238e87=new VariableExpression(this[_0x100e47(_0x26fff2._0x481ea8)](0x1)[_0x100e47(0x8d)](),_0x137483),_0xd4368d=this[_0x100e47(0x1ec)](_0x238e87);if(!(_0xd4368d instanceof MemberCallExpression))throw new Error(_0x100e47(0x1eb)+_0x137483['toString']()+'.');return new FunctionStatement(_0xd4368d,_0x137483);}if(this['match'](0x10)){const _0x40c589=new VariableExpression(this[_0x100e47(_0x26fff2._0x481ea8)](0x1)[_0x100e47(0x8d)](),_0x137483);return new IncrementStatement(new IncrementExpression(_0x40c589,0x0,_0x137483),_0x137483);}if(this['match'](0x12)){const _0x5f3286=new VariableExpression(this[_0x100e47(_0x26fff2._0x481ea8)](0x1)['getText'](),_0x137483);return new IncrementStatement(new IncrementExpression(_0x5f3286,0x1,_0x137483),_0x137483);}if(this[_0x100e47(0x171)](0x0,0x1)&&(this['lookMatch'](0x1,0x10)||this[_0x100e47(_0x26fff2._0x3b8134)](0x1,0x12))){const _0x2a0269=this[_0x100e47(0xf8)](0x1),_0x4d8729=new VariableExpression(_0x2a0269[_0x100e47(_0x26fff2._0x3f7e35)](),_0x2a0269);if(this[_0x100e47(_0x26fff2._0x19c9d0)](0x10))return new IncrementStatement(new IncrementExpression(_0x4d8729,0x2,_0x2a0269),_0x2a0269);return this[_0x100e47(_0x26fff2._0x481ea8)](0x12),new IncrementStatement(new IncrementExpression(_0x4d8729,0x3,_0x2a0269),_0x2a0269);}return this[_0x100e47(_0x26fff2._0x527e59)]();}static ['RESERVED_WORDS']=new Set([_0x381e21(0x1dc),_0x381e21(0x17b),'null','undefined',_0x381e21(0x126),_0x381e21(0x1c9),_0x381e21(0x1ce),_0x381e21(0x9f),'delete',_0x381e21(0x160),_0x381e21(0xfc),'in','of','import',_0x381e21(0x196),'default',_0x381e21(0xcb),_0x381e21(0x118),_0x381e21(0x141),_0x381e21(0x1e7),'throw',_0x381e21(0x192),_0x381e21(0x1fc),_0x381e21(0xf0),_0x381e21(0xeb),_0x381e21(0x136),_0x381e21(0x105),_0x381e21(0x195),_0x381e21(0x1f8),'await']);[_0x381e21(0x184)](_0x372192){const _0xd886d4={_0x5309c7:0xf8,_0x5e0a0d:0x8d,_0x30506b:0x130,_0x528ce5:0x1ff,_0xa49c9b:0xbe},_0x4cc582=_0x381e21,_0xc14388=[];do{const _0x4cf95a=this[_0x4cc582(_0xd886d4._0x5309c7)](0x1),_0x90ee16=_0x4cf95a[_0x4cc582(_0xd886d4._0x5e0a0d)]();if(_Parser['RESERVED_WORDS'][_0x4cc582(_0xd886d4._0x30506b)](_0x90ee16))throw new Error(_0x4cc582(0x1b4)+_0x90ee16+_0x4cc582(_0xd886d4._0x528ce5)+_0x4cf95a[_0x4cc582(0x10d)]());let _0x851438=null;this[_0x4cc582(_0xd886d4._0xa49c9b)](0x15)&&(_0x851438=this[_0x4cc582(0xd7)]()),_0xc14388[_0x4cc582(0x9c)]({'name':_0x90ee16,'init':_0x851438});}while(this['match'](0x27));return new VarStatement(_0xc14388,_0x372192);}['assignmentStatement'](){const _0x523d6b={_0x417aad:0x171,_0x622b59:0xd7,_0x2857eb:0xd7,_0x3b9897:0x111},_0x2a67f1=_0x381e21,_0x33f672=this[_0x2a67f1(0x111)](0x0);if(this[_0x2a67f1(0x171)](0x0,0x1)&&this[_0x2a67f1(_0x523d6b._0x417aad)](0x1,0x15)){const _0x390f4a=this[_0x2a67f1(0xf8)](0x1)[_0x2a67f1(0x8d)]();return this[_0x2a67f1(0xf8)](0x15),new AssignmentStatement(_0x390f4a,this[_0x2a67f1(_0x523d6b._0x622b59)](),_0x33f672);}if(this[_0x2a67f1(0x171)](0x0,0x1)&&this[_0x2a67f1(_0x523d6b._0x417aad)](0x1,0x25)){const _0x4a1277=this[_0x2a67f1(0x1d8)](_0x33f672);return this['consume'](0x15),new ArrayAssignmentStatement(_0x4a1277,this[_0x2a67f1(_0x523d6b._0x2857eb)](),_0x33f672);}throw new Error('Unknown\x20statement\x20'+this[_0x2a67f1(_0x523d6b._0x3b9897)](0x0));}[_0x381e21(0x168)](_0x4ec0ae){const _0x311f30={_0x5ff44e:0xd7},_0x483906=_0x381e21,_0x37c5b1=this[_0x483906(_0x311f30._0x5ff44e)](),_0x16f4c6=this[_0x483906(0xaa)]();let _0x45a6fd;return this[_0x483906(0xbe)](0x7)?_0x45a6fd=this[_0x483906(0xaa)]():_0x45a6fd=null,new IfStatement(_0x37c5b1,_0x16f4c6,_0x45a6fd,_0x4ec0ae);}['doWhileStatement'](_0x491c77){const _0x1c2e98={_0xc1cafc:0xf8,_0x3ab2c1:0xd7},_0x5f482b=_0x381e21,_0x362cbc=this['statementOrBlock']();this[_0x5f482b(_0x1c2e98._0xc1cafc)](0x8);const _0x52de71=this[_0x5f482b(_0x1c2e98._0x3ab2c1)]();return new DoWhileStatement(_0x52de71,_0x362cbc,_0x491c77);}[_0x381e21(0x133)](_0x24ce07){const _0x3838d4={_0x2ca6ac:0xd7,_0x1bfb52:0xaa},_0x4e9317=_0x381e21,_0x29af91=this[_0x4e9317(_0x3838d4._0x2ca6ac)](),_0x230f92=this[_0x4e9317(_0x3838d4._0x1bfb52)]();return new WhileStatement(_0x29af91,_0x230f92,_0x24ce07);}[_0x381e21(0x182)](_0x3fe26e){const _0x49d68f={_0x4e0f46:0xf8,_0x338af5:0xbe,_0x56c53b:0x10d,_0x1616f9:0xd7,_0x10589f:0xf8},_0x102ddc=_0x381e21;this[_0x102ddc(_0x49d68f._0x4e0f46)](0x21);let _0xa7f46e;if(this[_0x102ddc(_0x49d68f._0x338af5)](0x4))throw new Error('\x27var\x27\x20in\x20for-loop\x20initialization\x20is\x20not\x20supported\x20by\x20the\x20Blockly\x20converter.\x20Use\x20plain\x20assignment:\x20\x27for\x20(k\x20=\x201;\x20k\x20<=\x20N;\x20k\x20=\x20k\x20+\x201)\x27.\x20'+this[_0x102ddc(0x111)](-0x1)[_0x102ddc(_0x49d68f._0x56c53b)]());else _0xa7f46e=this['assignmentStatement']();this[_0x102ddc(0xf8)](0x29);const _0x3642d1=this[_0x102ddc(_0x49d68f._0x1616f9)]();this['consume'](0x29);const _0x15e7e6=this[_0x102ddc(0x138)]();this[_0x102ddc(_0x49d68f._0x10589f)](0x22);const _0x4a4917=this[_0x102ddc(0xaa)]();return new ForStatement(_0xa7f46e,_0x3642d1,_0x15e7e6,_0x4a4917,_0x3fe26e);}[_0x381e21(0x12d)](_0x21cc7e){const _0x284212={_0x1c1ee8:0x9c,_0x120c3b:0x8d},_0x2f6eae=_0x381e21,_0x3f6f09=this[_0x2f6eae(0xf8)](0x1)['getText']();this[_0x2f6eae(0xf8)](0x21);const _0x138646=[];while(!this[_0x2f6eae(0xbe)](0x22)){_0x138646[_0x2f6eae(_0x284212._0x1c1ee8)](this['consume'](0x1)[_0x2f6eae(_0x284212._0x120c3b)]()),this[_0x2f6eae(0xbe)](0x27);}const _0x3f1ba1=this[_0x2f6eae(0xaa)]();return new FunctionDefineStatement(_0x3f6f09,_0x138646,_0x3f1ba1,_0x21cc7e);}['functionExpression'](_0xa8a574){const _0x1a96bb={_0x402d6c:0x8d},_0x67cd89=_0x381e21,_0x4bc252=this[_0x67cd89(0xf8)](0x1)[_0x67cd89(_0x1a96bb._0x402d6c)]();this[_0x67cd89(0xf8)](0x21);const _0x3e3dc0=new FunctionalExpression(_0x4bc252,[],_0xa8a574);while(!this[_0x67cd89(0xbe)](0x22)){_0x3e3dc0[_0x67cd89(0x158)](this[_0x67cd89(0xd7)]()),this[_0x67cd89(0xbe)](0x27);}return _0x3e3dc0;}[_0x381e21(0x1d8)](_0x51725a){const _0x2fe7b7={_0x20adbb:0xf8,_0x2a9472:0x9c,_0x1a6fc1:0xd7},_0x36737b=_0x381e21,_0x5653bd=this['consume'](0x1)[_0x36737b(0x8d)](),_0x4c31f8=[];do{this[_0x36737b(_0x2fe7b7._0x20adbb)](0x25),_0x4c31f8[_0x36737b(_0x2fe7b7._0x2a9472)](this[_0x36737b(_0x2fe7b7._0x1a6fc1)]()),this[_0x36737b(_0x2fe7b7._0x20adbb)](0x26);}while(this['lookMatch'](0x0,0x25));return new ArrayAccessExpression(_0x5653bd,_0x4c31f8,_0x51725a);}[_0x381e21(0x16e)](_0x826f6d){const _0xc4d31=_0x381e21;this[_0xc4d31(0xf8)](0x25);const _0x3c60d5=[];while(!this['match'](0x26)){_0x3c60d5[_0xc4d31(0x9c)](this['expression']()),this['match'](0x27);}return new ArrayExpression(_0x3c60d5,_0x826f6d);}[_0x381e21(0x16f)](_0x46fe44){const _0x3ee5b8={_0x4322ff:0xbe,_0x56f47c:0x171,_0x526cfd:0xf8,_0x5c83f0:0x16d,_0x24b6fe:0xf8},_0x2b965f=_0x381e21;this['consume'](0x23);const _0x1d8ab5=new Map();while(!this[_0x2b965f(_0x3ee5b8._0x4322ff)](0x24)){let _0x1ecfeb;if(this['lookMatch'](0x0,0x1))_0x1ecfeb=this['consume'](0x1)['getText']();else{if(this[_0x2b965f(_0x3ee5b8._0x56f47c)](0x0,0x2))_0x1ecfeb=this[_0x2b965f(_0x3ee5b8._0x526cfd)](0x2)['getText']();else throw new Error(_0x2b965f(_0x3ee5b8._0x5c83f0));}this[_0x2b965f(_0x3ee5b8._0x24b6fe)](0x28);const _0x2d7e33=this[_0x2b965f(0xd7)]();_0x1d8ab5[_0x2b965f(0x185)](_0x1ecfeb,_0x2d7e33),this['match'](0x27);}return new ObjectExpression(_0x1d8ab5,_0x46fe44);}[_0x381e21(0xd7)](){const _0x2690ff=_0x381e21;return this[_0x2690ff(0xa9)]();}[_0x381e21(0xa9)](){const _0x292234={_0x3cb8a2:0x111},_0x143655=_0x381e21;let _0x52088e=this['logicalAnd']();while(this[_0x143655(0xbe)](0x1e)){const _0x46315b=this[_0x143655(_0x292234._0x3cb8a2)](0x0);_0x52088e=new ConditionalExpression('||',_0x52088e,this['logicalAnd'](),_0x46315b);}return _0x52088e;}['logicalAnd'](){const _0xf919d4={_0x20c705:0x13e},_0x141930=_0x381e21;let _0x46aa3e=this[_0x141930(_0xf919d4._0x20c705)]();while(this['match'](0x20)){const _0xa2af2d=this[_0x141930(0x111)](0x0);_0x46aa3e=new ConditionalExpression('&&',_0x46aa3e,this[_0x141930(0x13e)](),_0xa2af2d);}return _0x46aa3e;}[_0x381e21(0x13e)](){const _0xac54f1={_0x3e1aef:0xbe,_0x1143ba:0x16a},_0xfe01a3=_0x381e21,_0x5a943d=this[_0xfe01a3(0x111)](0x0),_0x4ca1ac=this['conditional']();if(this[_0xfe01a3(_0xac54f1._0x3e1aef)](0x16))return new ConditionalExpression('==',_0x4ca1ac,this[_0xfe01a3(_0xac54f1._0x1143ba)](),_0x5a943d);if(this[_0xfe01a3(0xbe)](0x18))return new ConditionalExpression('!=',_0x4ca1ac,this['conditional'](),_0x5a943d);return _0x4ca1ac;}['conditional'](){const _0x501d39={_0x333148:0x171,_0x5b1e36:0xbe,_0x5daa9a:0x1a6,_0x371275:0xbe,_0x2886fc:0x1a6},_0x193677=_0x381e21;let _0xa2a386=this[_0x193677(0x1a6)]();while(this[_0x193677(0x171)](0x0,0x19)||this[_0x193677(_0x501d39._0x333148)](0x0,0x1a)||this[_0x193677(0x171)](0x0,0x1b)||this[_0x193677(0x171)](0x0,0x1c)){const _0x5392ab=this[_0x193677(0x111)](0x0);if(this[_0x193677(_0x501d39._0x5b1e36)](0x19)){_0xa2a386=new ConditionalExpression('<',_0xa2a386,this[_0x193677(_0x501d39._0x5daa9a)](),_0x5392ab);continue;}if(this['match'](0x1a)){_0xa2a386=new ConditionalExpression('<=',_0xa2a386,this[_0x193677(0x1a6)](),_0x5392ab);continue;}if(this[_0x193677(_0x501d39._0x371275)](0x1b)){_0xa2a386=new ConditionalExpression('>',_0xa2a386,this[_0x193677(0x1a6)](),_0x5392ab);continue;}if(this['match'](0x1c)){_0xa2a386=new ConditionalExpression('>=',_0xa2a386,this[_0x193677(_0x501d39._0x2886fc)](),_0x5392ab);continue;}}return _0xa2a386;}[_0x381e21(0x1a6)](){const _0x4f34be={_0xc05bcb:0x171,_0x2c0839:0xf8,_0x15ff21:0x15d},_0x5559f3=_0x381e21;let _0x55d73b=this['multiplicate']();while(this[_0x5559f3(_0x4f34be._0xc05bcb)](0x0,0xf)||this[_0x5559f3(0x171)](0x0,0x11)){if(this[_0x5559f3(0xbe)](0xf)){const _0x15cbc5=this[_0x5559f3(0x111)](-0x1);_0x55d73b=new BinaryExpression('+',_0x55d73b,this[_0x5559f3(0x15d)](),_0x15cbc5);continue;}this[_0x5559f3(_0x4f34be._0x2c0839)](0x11);const _0x2029eb=this['get'](-0x1);_0x55d73b=new BinaryExpression('-',_0x55d73b,this[_0x5559f3(_0x4f34be._0x15ff21)](),_0x2029eb);}return _0x55d73b;}['multiplicate'](){const _0x5a7e52={_0x57dfba:0x14b,_0x366f4f:0xf8},_0x49f48f=_0x381e21;let _0x46253b=this[_0x49f48f(0x14b)]();while(this[_0x49f48f(0x171)](0x0,0x13)||this[_0x49f48f(0x171)](0x0,0x14)){if(this['match'](0x13)){const _0x462b75=this[_0x49f48f(0x111)](-0x1);_0x46253b=new BinaryExpression('*',_0x46253b,this[_0x49f48f(_0x5a7e52._0x57dfba)](),_0x462b75);continue;}this[_0x49f48f(_0x5a7e52._0x366f4f)](0x14);const _0x3d78de=this['get'](-0x1);_0x46253b=new BinaryExpression('/',_0x46253b,this[_0x49f48f(_0x5a7e52._0x57dfba)](),_0x3d78de);}return _0x46253b;}['unary'](){const _0x29d8ec={_0x5101fa:0xbe,_0x383f09:0xf8,_0x29ac0e:0x8d,_0x12df69:0xf8},_0x23981c=_0x381e21,_0xb00194=this[_0x23981c(0x111)](0x0);if(this[_0x23981c(_0x29d8ec._0x5101fa)](0x11))return new UnaryExpression('-',this[_0x23981c(0x1a7)](),_0xb00194);if(this['match'](0x10)){const _0x4a3287=new VariableExpression(this[_0x23981c(_0x29d8ec._0x383f09)](0x1)[_0x23981c(_0x29d8ec._0x29ac0e)](),_0xb00194);return new IncrementExpression(_0x4a3287,0x0,_0xb00194);}if(this[_0x23981c(0xbe)](0x12)){const _0x547c43=new VariableExpression(this[_0x23981c(_0x29d8ec._0x12df69)](0x1)['getText'](),_0xb00194);return new IncrementExpression(_0x547c43,0x1,_0xb00194);}return this[_0x23981c(0x1a7)]();}[_0x381e21(0x1a7)](){const _0x11fc30={_0x34e6ce:0x8d,_0x1740f3:0x173,_0x57313a:0x171,_0x15dd93:0x171,_0x2197e4:0x1d8,_0x1ffc38:0x171,_0xcc7b8a:0xbe,_0x2e6ad5:0xbe,_0x37ccfe:0xd7,_0xab9e10:0xbe},_0x77a352=_0x381e21,_0x47f634=this[_0x77a352(0x111)](0x0);let _0x5516c6;if(this['match'](0x0))_0x5516c6=new ValueExpression(_0x47f634['getText'](),_0x47f634);else{if(this[_0x77a352(0xbe)](0x3)){const _0x5b409f=_0x47f634[_0x77a352(_0x11fc30._0x34e6ce)](),_0x4eab70=_0x5b409f[_0x77a352(0x140)]('\x00'),_0x36845c=_0x4eab70<0x0?_0x5b409f:_0x5b409f[_0x77a352(_0x11fc30._0x1740f3)](0x0,_0x4eab70),_0x409877=_0x4eab70<0x0?'':_0x5b409f[_0x77a352(0x173)](_0x4eab70+0x1);_0x5516c6=new RegExpExpression(_0x36845c,_0x409877,_0x47f634);}else{if(this[_0x77a352(_0x11fc30._0x57313a)](0x0,0x1)&&this[_0x77a352(0x171)](0x1,0x21))_0x5516c6=this[_0x77a352(0x13c)](_0x47f634);else{if(this[_0x77a352(_0x11fc30._0x15dd93)](0x0,0x1)&&this[_0x77a352(0x171)](0x1,0x25))_0x5516c6=this[_0x77a352(_0x11fc30._0x2197e4)](_0x47f634);else{if(this[_0x77a352(0x171)](0x0,0x25))_0x5516c6=this['arrayExpression'](_0x47f634);else{if(this[_0x77a352(_0x11fc30._0x1ffc38)](0x0,0x23))_0x5516c6=this['objectExpression'](_0x47f634);else{if(this['match'](0x1)){const _0x14e4df=new VariableExpression(_0x47f634[_0x77a352(0x8d)](),_0x47f634);_0x5516c6=_0x14e4df;if(this['match'](0x10))_0x5516c6=new IncrementExpression(_0x14e4df,0x2,_0x47f634);else this[_0x77a352(_0x11fc30._0xcc7b8a)](0x12)&&(_0x5516c6=new IncrementExpression(_0x14e4df,0x3,_0x47f634));}else{if(this[_0x77a352(_0x11fc30._0x2e6ad5)](0x2))_0x5516c6=new ValueExpression(_0x47f634[_0x77a352(0x8d)](),_0x47f634);else{if(this[_0x77a352(0xbe)](0x21))_0x5516c6=this[_0x77a352(_0x11fc30._0x37ccfe)](),this[_0x77a352(_0x11fc30._0xab9e10)](0x22);else throw new Error('Invalid\x20token\x20'+_0x47f634);}}}}}}}}return this[_0x77a352(0x1ec)](_0x5516c6);}[_0x381e21(0x1ec)](_0x3c81f4){const _0x4a3930={_0x4c81e2:0xbe,_0x87c91:0x111,_0x3602c2:0x1cd,_0x248a96:0x8d,_0x597a14:0xbe,_0x20cf19:0x9c,_0x36fae0:0xbe},_0x3d409c=_0x381e21;let _0x2553d4=_0x3c81f4;while(this[_0x3d409c(_0x4a3930._0x4c81e2)](0x2a)){const _0x515e27=this[_0x3d409c(_0x4a3930._0x87c91)](0x0);if(_0x515e27['getType']()!==0x1)throw new Error(_0x3d409c(_0x4a3930._0x3602c2)+_0x515e27+'.');const _0x81bcbd=this[_0x3d409c(0xf8)](0x1)[_0x3d409c(_0x4a3930._0x248a96)]();if(this[_0x3d409c(_0x4a3930._0x597a14)](0x21)){const _0x5a25f3=[];while(!this['match'](0x22)){_0x5a25f3[_0x3d409c(_0x4a3930._0x20cf19)](this[_0x3d409c(0xd7)]()),this[_0x3d409c(_0x4a3930._0x36fae0)](0x27);}_0x2553d4=new MemberCallExpression(_0x2553d4,_0x81bcbd,_0x5a25f3,_0x515e27);}else _0x2553d4=new PropertyAccessExpression(_0x2553d4,_0x81bcbd,_0x515e27);}return _0x2553d4;}[_0x381e21(0xf8)](_0x43c037){const _0x3dcbf1={_0x3ec156:0x186,_0x418e32:0xab,_0x59a1e6:0x194},_0x412dfa=_0x381e21,_0x1fd56c=this['get'](0x0);if(_0x43c037!=_0x1fd56c[_0x412dfa(_0x3dcbf1._0x3ec156)]())throw new Error(_0x412dfa(_0x3dcbf1._0x418e32)+_0x1fd56c+_0x412dfa(0x1cc)+TokenType[_0x43c037]);return this[_0x412dfa(_0x3dcbf1._0x59a1e6)]++,_0x1fd56c;}[_0x381e21(0xbe)](_0x172a45){const _0x34adca=_0x381e21,_0x1cc5e2=this['get'](0x0);if(_0x172a45!=_0x1cc5e2[_0x34adca(0x186)]())return![];return this[_0x34adca(0x194)]++,!![];}[_0x381e21(0x171)](_0xc349dd,_0x17733e){const _0x35567e=_0x381e21;return this['get'](_0xc349dd)[_0x35567e(0x186)]()==_0x17733e;}['get'](_0x257e76){const _0x121d1b={_0x5b92d3:0xba},_0x24d492=_0x381e21,_0x4d1388=this['pos']+_0x257e76;if(_0x4d1388>=this[_0x24d492(_0x121d1b._0x5b92d3)])return this[_0x24d492(0xdf)];return this[_0x24d492(0xf7)][_0x4d1388];}};export{__name,buildClickDsl,buildFillDsl,buildTypeTextDsl,buildOpenDsl,buildNavigateDsl,buildAssertVisibleDsl,buildAssertUrlContainsDsl,buildAssertPageReadyDsl,buildAssertAuthenticatedDsl,buildAssertTableNotEmptyDsl,buildAssertListNotEmptyDsl,buildAssertNoVisibleErrorDsl,buildAssertSectionTitleDsl,buildAssertToastVisibleDsl,buildAssertDialogOpenDsl,buildAssertRouteIsDsl,buildSelectComboboxValueDsl,buildLoginAsDsl,buildOpenMenuItemDsl,buildOpenTabDsl,buildCloseDialogDsl,buildFillFormDsl,buildSaveFormDsl,buildWaitForDsl,buildWaitForTextDsl,buildWaitForHiddenDsl,buildWaitForURLDsl,buildWaitForNavigationDsl,buildAssertInputValueDsl,buildScrollIntoViewDsl,buildScrollToBottomDsl,buildScrollToTopDsl,buildForceClickDsl,buildDragAndDropDsl,buildClipboardPasteDsl,buildKeypressDsl,buildSwitchToFrameDsl,buildSwitchToMainFrameDsl,buildAssertNotVisibleDsl,buildAssertTextContainsDsl,buildAssertTextEqualsDsl,buildAssertUrlEqualsDsl,buildAssertCountEqualsDsl,buildFlowDsl,ArrayValue,NumberValue,Functions,ObjectValue,RegExpValue,RegExpFlagError,StringValue,UserDefineFunction,Variables,ArrayAccessExpression,ArrayAssignmentStatement,ArrayExpression,AssignmentStatement,BinaryExpression,BlockStatement,BreakStatement,Operator,getOperatorName,ConditionalExpression,ContinueStatement,DoWhileStatement,ForStatement,FunctionDefineStatement,FunctionStatement,FunctionalExpression,IfStatement,IncrementType,IncrementExpression,IncrementStatement,MemberCallExpression,MetaBlockStatement,ObjectExpression,PrintStatement,PropertyAccessExpression,RegExpExpression,ReturnStatement,UnaryExpression,TokenType,ValueExpression,VarStatement,VariableExpression,WhileStatement,Token,Lexer,Parser};
@@ -0,0 +1,98 @@
1
+ interface Value {
2
+ asNumber(): number;
3
+ asString(): string;
4
+ clone(): Value;
5
+ }
6
+
7
+ declare enum TokenType {
8
+ NUMBER = 0,
9
+ WORD = 1,
10
+ TEXT = 2,
11
+ REGEX = 3,
12
+ VAR = 4,
13
+ PRINT = 5,
14
+ IF = 6,
15
+ ELSE = 7,
16
+ WHILE = 8,
17
+ FOR = 9,
18
+ DO = 10,
19
+ BREAK = 11,
20
+ CONTINUE = 12,
21
+ FUNCTION = 13,
22
+ RETURN = 14,
23
+ PLUS = 15,
24
+ PLUSPLUS = 16,
25
+ MINUS = 17,
26
+ MINUSMINUS = 18,
27
+ STAR = 19,
28
+ SLASH = 20,
29
+ EQ = 21,
30
+ EQEQ = 22,
31
+ EXCL = 23,
32
+ EXCLEQ = 24,
33
+ LT = 25,
34
+ LTEQ = 26,
35
+ GT = 27,
36
+ GTEQ = 28,
37
+ BAR = 29,// |
38
+ BARBAR = 30,// ||
39
+ AMP = 31,// &
40
+ AMPAMP = 32,// &&
41
+ LPAREN = 33,// (
42
+ RPAREN = 34,// )
43
+ LBRACE = 35,// {
44
+ RBRACE = 36,// }
45
+ LBRACKET = 37,// [
46
+ RBRACKET = 38,// ]
47
+ COMMA = 39,// ,
48
+ COLON = 40,// :
49
+ SEMICOLON = 41,// ;
50
+ DOT = 42,// . (web extension: method-call chain — see vendor/dsl/EXTENSIONS.md)
51
+ META_BLOCK = 43,
52
+ CLOSE_META_BLOCK = 44,
53
+ EOF = 45
54
+ }
55
+
56
+ declare class Token {
57
+ private readonly text;
58
+ private readonly type;
59
+ private readonly column;
60
+ private readonly line;
61
+ constructor(tokenType: TokenType, text: string, column: number, line: number);
62
+ getText(): string;
63
+ getType(): TokenType;
64
+ getLine(): number;
65
+ getColumn(): number;
66
+ toString(): string;
67
+ }
68
+
69
+ interface Expression {
70
+ token: Token;
71
+ eval(): Value;
72
+ }
73
+
74
+ interface Statement {
75
+ execute(): void;
76
+ token: Token;
77
+ }
78
+
79
+ declare class BlockStatement implements Statement {
80
+ readonly statements: Statement[];
81
+ readonly token: Token;
82
+ constructor(token: Token);
83
+ add(statement: Statement): void;
84
+ execute(): void;
85
+ toString(): string;
86
+ }
87
+
88
+ declare class FunctionalExpression implements Expression {
89
+ readonly name: string;
90
+ readonly arguments: Expression[];
91
+ readonly token: Token;
92
+ constructor(name: string, argument: Expression[], token: Token);
93
+ addArgument(argument: Expression): number;
94
+ eval(): Value;
95
+ toString(): string;
96
+ }
97
+
98
+ export { BlockStatement as B, type Expression as E, FunctionalExpression as F, type Statement as S, Token as T, type Value as V, TokenType as a };