@douyinfe/semi-json-viewer-core 2.75.1-alpha.1 → 2.76.0-alpha.5
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/lib/index.js +421 -313
- package/package.json +2 -2
package/lib/index.js
CHANGED
|
@@ -16,6 +16,190 @@ function getLineElement(node) {
|
|
|
16
16
|
return node.parentElement?.closest('[data-line-element="true"]') || null;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
// src/tokens/tokenize.ts
|
|
20
|
+
import * as json from "jsonc-parser";
|
|
21
|
+
function createTokenizationSupport(supportComments) {
|
|
22
|
+
return {
|
|
23
|
+
getInitialState: () => new JSONState(null, null, false, null),
|
|
24
|
+
tokenize: (line, state) => tokenize(supportComments, line, state)
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
var TOKEN_DELIM_OBJECT = "semi-json-viewer-delimiter-bracket";
|
|
28
|
+
var TOKEN_DELIM_ARRAY = "semi-json-viewer-delimiter-array";
|
|
29
|
+
var TOKEN_DELIM_COLON = "semi-json-viewer-delimiter-colon";
|
|
30
|
+
var TOKEN_DELIM_COMMA = "semi-json-viewer-delimiter-comma";
|
|
31
|
+
var TOKEN_VALUE_BOOLEAN = "semi-json-viewer-keyword";
|
|
32
|
+
var TOKEN_VALUE_NULL = "semi-json-viewer-keyword";
|
|
33
|
+
var TOKEN_VALUE_STRING = "semi-json-viewer-string-value";
|
|
34
|
+
var TOKEN_VALUE_NUMBER = "semi-json-viewer-number";
|
|
35
|
+
var TOKEN_PROPERTY_NAME = "semi-json-viewer-string-key";
|
|
36
|
+
var TOKEN_COMMENT_BLOCK = "semi-json-viewer-comment-block";
|
|
37
|
+
var TOKEN_COMMENT_LINE = "semi-json-viewer-comment-line";
|
|
38
|
+
var ParentsStack = class _ParentsStack {
|
|
39
|
+
constructor(parent, type, depth) {
|
|
40
|
+
this.parent = parent;
|
|
41
|
+
this.type = type;
|
|
42
|
+
this.depth = depth;
|
|
43
|
+
}
|
|
44
|
+
static pop(parents) {
|
|
45
|
+
if (parents) {
|
|
46
|
+
return parents.parent;
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
static push(parents, type) {
|
|
51
|
+
return new _ParentsStack(parents, type, parents ? parents.depth + 1 : 0);
|
|
52
|
+
}
|
|
53
|
+
static equals(a, b) {
|
|
54
|
+
if (!a && !b) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
if (!a || !b) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
while (a && b) {
|
|
61
|
+
if (a.type !== b.type || a.depth !== b.depth) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
a = a.parent;
|
|
65
|
+
b = b.parent;
|
|
66
|
+
}
|
|
67
|
+
return a === null && b === null;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
var JSONState = class _JSONState {
|
|
71
|
+
constructor(state, scanError, lastWasColon, parents) {
|
|
72
|
+
this._state = state;
|
|
73
|
+
this.scanError = scanError;
|
|
74
|
+
this.lastWasColon = lastWasColon;
|
|
75
|
+
this.parents = parents;
|
|
76
|
+
}
|
|
77
|
+
clone() {
|
|
78
|
+
return new _JSONState(this._state, this.scanError, this.lastWasColon, this.parents);
|
|
79
|
+
}
|
|
80
|
+
equals(other) {
|
|
81
|
+
if (other === this) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
if (!other || !(other instanceof _JSONState)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
return this.scanError === other.scanError && this.lastWasColon === other.lastWasColon && ParentsStack.equals(this.parents, other.parents);
|
|
88
|
+
}
|
|
89
|
+
getStateData() {
|
|
90
|
+
return this._state;
|
|
91
|
+
}
|
|
92
|
+
setStateData(state) {
|
|
93
|
+
this._state = state;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
function tokenize(comments, line, state, offsetDelta = 0) {
|
|
97
|
+
let numberOfInsertedCharacters = 0;
|
|
98
|
+
let adjustOffset = false;
|
|
99
|
+
switch (state.scanError) {
|
|
100
|
+
case 2 /* UnexpectedEndOfString */:
|
|
101
|
+
line = '"' + line;
|
|
102
|
+
numberOfInsertedCharacters = 1;
|
|
103
|
+
break;
|
|
104
|
+
case 1 /* UnexpectedEndOfComment */:
|
|
105
|
+
line = "/*" + line;
|
|
106
|
+
numberOfInsertedCharacters = 2;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
const scanner = json.createScanner(line);
|
|
110
|
+
let lastWasColon = state.lastWasColon;
|
|
111
|
+
let parents = state.parents;
|
|
112
|
+
const ret = {
|
|
113
|
+
tokens: [],
|
|
114
|
+
endState: state.clone()
|
|
115
|
+
};
|
|
116
|
+
while (true) {
|
|
117
|
+
let offset = offsetDelta + scanner.getPosition();
|
|
118
|
+
let type = "";
|
|
119
|
+
const kind = scanner.scan();
|
|
120
|
+
if (kind === 17 /* EOF */) {
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
if (offset === offsetDelta + scanner.getPosition()) {
|
|
124
|
+
throw new Error("Scanner did not advance, next 3 characters are: " + line.substr(scanner.getPosition(), 3));
|
|
125
|
+
}
|
|
126
|
+
if (adjustOffset) {
|
|
127
|
+
offset -= numberOfInsertedCharacters;
|
|
128
|
+
}
|
|
129
|
+
adjustOffset = numberOfInsertedCharacters > 0;
|
|
130
|
+
switch (kind) {
|
|
131
|
+
case 1 /* OpenBraceToken */:
|
|
132
|
+
parents = ParentsStack.push(parents, 0 /* Object */);
|
|
133
|
+
type = `${TOKEN_DELIM_OBJECT}-${parents ? parents.depth % 3 : 0}`;
|
|
134
|
+
lastWasColon = false;
|
|
135
|
+
break;
|
|
136
|
+
case 2 /* CloseBraceToken */:
|
|
137
|
+
type = `${TOKEN_DELIM_OBJECT}-${parents ? parents.depth % 3 : 0}`;
|
|
138
|
+
parents = ParentsStack.pop(parents);
|
|
139
|
+
lastWasColon = false;
|
|
140
|
+
break;
|
|
141
|
+
case 3 /* OpenBracketToken */:
|
|
142
|
+
parents = ParentsStack.push(parents, 1 /* Array */);
|
|
143
|
+
type = `${TOKEN_DELIM_ARRAY}-${parents ? parents.depth % 3 : 0}`;
|
|
144
|
+
lastWasColon = false;
|
|
145
|
+
break;
|
|
146
|
+
case 4 /* CloseBracketToken */:
|
|
147
|
+
type = `${TOKEN_DELIM_ARRAY}-${parents ? parents.depth % 3 : 0}`;
|
|
148
|
+
parents = ParentsStack.pop(parents);
|
|
149
|
+
lastWasColon = false;
|
|
150
|
+
break;
|
|
151
|
+
case 6 /* ColonToken */:
|
|
152
|
+
type = TOKEN_DELIM_COLON;
|
|
153
|
+
lastWasColon = true;
|
|
154
|
+
break;
|
|
155
|
+
case 5 /* CommaToken */:
|
|
156
|
+
type = TOKEN_DELIM_COMMA;
|
|
157
|
+
lastWasColon = false;
|
|
158
|
+
break;
|
|
159
|
+
case 8 /* TrueKeyword */:
|
|
160
|
+
case 9 /* FalseKeyword */:
|
|
161
|
+
type = TOKEN_VALUE_BOOLEAN;
|
|
162
|
+
lastWasColon = false;
|
|
163
|
+
break;
|
|
164
|
+
case 7 /* NullKeyword */:
|
|
165
|
+
type = TOKEN_VALUE_NULL;
|
|
166
|
+
lastWasColon = false;
|
|
167
|
+
break;
|
|
168
|
+
case 10 /* StringLiteral */:
|
|
169
|
+
const currentParent = parents ? parents.type : 0 /* Object */;
|
|
170
|
+
const inArray = currentParent === 1 /* Array */;
|
|
171
|
+
type = lastWasColon || inArray ? TOKEN_VALUE_STRING : TOKEN_PROPERTY_NAME;
|
|
172
|
+
lastWasColon = false;
|
|
173
|
+
break;
|
|
174
|
+
case 11 /* NumericLiteral */:
|
|
175
|
+
type = TOKEN_VALUE_NUMBER;
|
|
176
|
+
lastWasColon = false;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
if (comments) {
|
|
180
|
+
switch (kind) {
|
|
181
|
+
case 12 /* LineCommentTrivia */:
|
|
182
|
+
type = TOKEN_COMMENT_LINE;
|
|
183
|
+
break;
|
|
184
|
+
case 13 /* BlockCommentTrivia */:
|
|
185
|
+
type = TOKEN_COMMENT_BLOCK;
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
ret.endState = new JSONState(
|
|
190
|
+
state.getStateData(),
|
|
191
|
+
scanner.getTokenError(),
|
|
192
|
+
lastWasColon,
|
|
193
|
+
parents
|
|
194
|
+
);
|
|
195
|
+
ret.tokens.push({
|
|
196
|
+
startIndex: offset,
|
|
197
|
+
scopes: type
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
return ret;
|
|
201
|
+
}
|
|
202
|
+
|
|
19
203
|
// src/common/nameSpace.ts
|
|
20
204
|
var currentNameSpaceId = "default";
|
|
21
205
|
function setCurrentNameSpaceId(id) {
|
|
@@ -149,18 +333,24 @@ var SelectionModel = class {
|
|
|
149
333
|
range.setStart(lineElement, 0);
|
|
150
334
|
range.setEnd(lineElement, 0);
|
|
151
335
|
} else {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
336
|
+
const walker = document.createTreeWalker(
|
|
337
|
+
lineElement,
|
|
338
|
+
NodeFilter.SHOW_TEXT,
|
|
339
|
+
null
|
|
340
|
+
);
|
|
341
|
+
let node = walker.nextNode();
|
|
342
|
+
let currentOffset = 0;
|
|
343
|
+
while (node) {
|
|
344
|
+
const nodeLength = node.length;
|
|
345
|
+
if (currentOffset + nodeLength >= col) {
|
|
346
|
+
range.setStart(node, col - currentOffset);
|
|
347
|
+
range.setEnd(node, col - currentOffset);
|
|
158
348
|
break;
|
|
159
349
|
}
|
|
160
|
-
|
|
350
|
+
currentOffset += nodeLength;
|
|
351
|
+
node = walker.nextNode();
|
|
161
352
|
}
|
|
162
353
|
}
|
|
163
|
-
if (!selection) return;
|
|
164
354
|
selection.removeAllRanges();
|
|
165
355
|
selection.addRange(range);
|
|
166
356
|
}
|
|
@@ -191,14 +381,26 @@ var SelectionModel = class {
|
|
|
191
381
|
} else {
|
|
192
382
|
lineElement = getLineElement(node);
|
|
193
383
|
if (!lineElement) return { row, col };
|
|
384
|
+
const walker = document.createTreeWalker(
|
|
385
|
+
lineElement,
|
|
386
|
+
NodeFilter.SHOW_TEXT,
|
|
387
|
+
null
|
|
388
|
+
);
|
|
389
|
+
let currentNode = walker.nextNode();
|
|
194
390
|
let totalOffset = 0;
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
if (childNode === node.parentElement) {
|
|
391
|
+
while (currentNode) {
|
|
392
|
+
if (currentNode === node) {
|
|
198
393
|
totalOffset += isStart ? selection.anchorOffset : selection.focusOffset;
|
|
199
394
|
break;
|
|
200
395
|
}
|
|
201
|
-
|
|
396
|
+
if (currentNode.parentNode === node.parentNode) {
|
|
397
|
+
if (currentNode === node) {
|
|
398
|
+
totalOffset += isStart ? selection.anchorOffset : selection.focusOffset;
|
|
399
|
+
break;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
totalOffset += currentNode.length;
|
|
403
|
+
currentNode = walker.nextNode();
|
|
202
404
|
}
|
|
203
405
|
col = totalOffset;
|
|
204
406
|
}
|
|
@@ -227,7 +429,7 @@ var SelectionModel = class {
|
|
|
227
429
|
var workerManagerMap = /* @__PURE__ */ new Map();
|
|
228
430
|
var JsonWorkerManager = class {
|
|
229
431
|
constructor() {
|
|
230
|
-
const workerRaw = decodeURIComponent(`(()%3D%3E%7Bfunction%20%24(r%2Ce%3D!1)%7Blet%20t%3Dr.length%2Cn%3D0%2Ci%3D%22%22%2Cs%3D0%2Co%3D16%2Ca%3D0%2Cl%3D0%2Cf%3D0%2Cu%3D0%2Cc%3D0%3Bfunction%20d(N%2C_)%7Blet%20g%3D0%2Ch%3D0%3Bfor(%3Bg%3CN%7C%7C!_%3B)%7Blet%20p%3Dr.charCodeAt(n)%3Bif(p%3E%3D48%26%26p%3C%3D57)h%3Dh*16%2Bp-48%3Belse%20if(p%3E%3D65%26%26p%3C%3D70)h%3Dh*16%2Bp-65%2B10%3Belse%20if(p%3E%3D97%26%26p%3C%3D102)h%3Dh*16%2Bp-97%2B10%3Belse%20break%3Bn%2B%2B%2Cg%2B%2B%7Dreturn%20g%3CN%26%26(h%3D-1)%2Ch%7Dfunction%20b(N)%7Bn%3DN%2Ci%3D%22%22%2Cs%3D0%2Co%3D16%2Cc%3D0%7Dfunction%20k()%7Blet%20N%3Dn%3Bif(r.charCodeAt(n)%3D%3D%3D48)n%2B%2B%3Belse%20for(n%2B%2B%3Bn%3Cr.length%26%26U(r.charCodeAt(n))%3B)n%2B%2B%3Bif(n%3Cr.length%26%26r.charCodeAt(n)%3D%3D%3D46)if(n%2B%2B%2Cn%3Cr.length%26%26U(r.charCodeAt(n)))for(n%2B%2B%3Bn%3Cr.length%26%26U(r.charCodeAt(n))%3B)n%2B%2B%3Belse%20return%20c%3D3%2Cr.substring(N%2Cn)%3Blet%20_%3Dn%3Bif(n%3Cr.length%26%26(r.charCodeAt(n)%3D%3D%3D69%7C%7Cr.charCodeAt(n)%3D%3D%3D101))if(n%2B%2B%2C(n%3Cr.length%26%26r.charCodeAt(n)%3D%3D%3D43%7C%7Cr.charCodeAt(n)%3D%3D%3D45)%26%26n%2B%2B%2Cn%3Cr.length%26%26U(r.charCodeAt(n)))%7Bfor(n%2B%2B%3Bn%3Cr.length%26%26U(r.charCodeAt(n))%3B)n%2B%2B%3B_%3Dn%7Delse%20c%3D3%3Breturn%20r.substring(N%2C_)%7Dfunction%20L()%7Blet%20N%3D%22%22%2C_%3Dn%3Bfor(%3B%3B)%7Bif(n%3E%3Dt)%7BN%2B%3Dr.substring(_%2Cn)%2Cc%3D2%3Bbreak%7Dlet%20g%3Dr.charCodeAt(n)%3Bif(g%3D%3D%3D34)%7BN%2B%3Dr.substring(_%2Cn)%2Cn%2B%2B%3Bbreak%7Dif(g%3D%3D%3D92)%7Bif(N%2B%3Dr.substring(_%2Cn)%2Cn%2B%2B%2Cn%3E%3Dt)%7Bc%3D2%3Bbreak%7Dswitch(r.charCodeAt(n%2B%2B))%7Bcase%2034%3AN%2B%3D'%22'%3Bbreak%3Bcase%2092%3AN%2B%3D%22%5C%5C%22%3Bbreak%3Bcase%2047%3AN%2B%3D%22%2F%22%3Bbreak%3Bcase%2098%3AN%2B%3D%22%5Cb%22%3Bbreak%3Bcase%20102%3AN%2B%3D%22%5Cf%22%3Bbreak%3Bcase%20110%3AN%2B%3D%60%0A%60%3Bbreak%3Bcase%20114%3AN%2B%3D%22%5Cr%22%3Bbreak%3Bcase%20116%3AN%2B%3D%22%09%22%3Bbreak%3Bcase%20117%3Alet%20p%3Dd(4%2C!0)%3Bp%3E%3D0%3FN%2B%3DString.fromCharCode(p)%3Ac%3D4%3Bbreak%3Bdefault%3Ac%3D5%7D_%3Dn%3Bcontinue%7Dif(g%3E%3D0%26%26g%3C%3D31)if(q(g))%7BN%2B%3Dr.substring(_%2Cn)%2Cc%3D2%3Bbreak%7Delse%20c%3D6%3Bn%2B%2B%7Dreturn%20N%7Dfunction%20S()%7Bif(i%3D%22%22%2Cc%3D0%2Cs%3Dn%2Cl%3Da%2Cu%3Df%2Cn%3E%3Dt)return%20s%3Dt%2Co%3D17%3Blet%20N%3Dr.charCodeAt(n)%3Bif(Le(N))%7Bdo%20n%2B%2B%2Ci%2B%3DString.fromCharCode(N)%2CN%3Dr.charCodeAt(n)%3Bwhile(Le(N))%3Breturn%20o%3D15%7Dif(q(N))return%20n%2B%2B%2Ci%2B%3DString.fromCharCode(N)%2CN%3D%3D%3D13%26%26r.charCodeAt(n)%3D%3D%3D10%26%26(n%2B%2B%2Ci%2B%3D%60%0A%60)%2Ca%2B%2B%2Cf%3Dn%2Co%3D14%3Bswitch(N)%7Bcase%20123%3Areturn%20n%2B%2B%2Co%3D1%3Bcase%20125%3Areturn%20n%2B%2B%2Co%3D2%3Bcase%2091%3Areturn%20n%2B%2B%2Co%3D3%3Bcase%2093%3Areturn%20n%2B%2B%2Co%3D4%3Bcase%2058%3Areturn%20n%2B%2B%2Co%3D6%3Bcase%2044%3Areturn%20n%2B%2B%2Co%3D5%3Bcase%2034%3Areturn%20n%2B%2B%2Ci%3DL()%2Co%3D10%3Bcase%2047%3Alet%20_%3Dn-1%3Bif(r.charCodeAt(n%2B1)%3D%3D%3D47)%7Bfor(n%2B%3D2%3Bn%3Ct%26%26!q(r.charCodeAt(n))%3B)n%2B%2B%3Breturn%20i%3Dr.substring(_%2Cn)%2Co%3D12%7Dif(r.charCodeAt(n%2B1)%3D%3D%3D42)%7Bn%2B%3D2%3Blet%20g%3Dt-1%2Ch%3D!1%3Bfor(%3Bn%3Cg%3B)%7Blet%20p%3Dr.charCodeAt(n)%3Bif(p%3D%3D%3D42%26%26r.charCodeAt(n%2B1)%3D%3D%3D47)%7Bn%2B%3D2%2Ch%3D!0%3Bbreak%7Dn%2B%2B%2Cq(p)%26%26(p%3D%3D%3D13%26%26r.charCodeAt(n)%3D%3D%3D10%26%26n%2B%2B%2Ca%2B%2B%2Cf%3Dn)%7Dreturn%20h%7C%7C(n%2B%2B%2Cc%3D1)%2Ci%3Dr.substring(_%2Cn)%2Co%3D13%7Dreturn%20i%2B%3DString.fromCharCode(N)%2Cn%2B%2B%2Co%3D16%3Bcase%2045%3Aif(i%2B%3DString.fromCharCode(N)%2Cn%2B%2B%2Cn%3D%3D%3Dt%7C%7C!U(r.charCodeAt(n)))return%20o%3D16%3Bcase%2048%3Acase%2049%3Acase%2050%3Acase%2051%3Acase%2052%3Acase%2053%3Acase%2054%3Acase%2055%3Acase%2056%3Acase%2057%3Areturn%20i%2B%3Dk()%2Co%3D11%3Bdefault%3Afor(%3Bn%3Ct%26%26w(N)%3B)n%2B%2B%2CN%3Dr.charCodeAt(n)%3Bif(s!%3D%3Dn)%7Bswitch(i%3Dr.substring(s%2Cn)%2Ci)%7Bcase%22true%22%3Areturn%20o%3D8%3Bcase%22false%22%3Areturn%20o%3D9%3Bcase%22null%22%3Areturn%20o%3D7%7Dreturn%20o%3D16%7Dreturn%20i%2B%3DString.fromCharCode(N)%2Cn%2B%2B%2Co%3D16%7D%7Dfunction%20w(N)%7Bif(Le(N)%7C%7Cq(N))return!1%3Bswitch(N)%7Bcase%20125%3Acase%2093%3Acase%20123%3Acase%2091%3Acase%2034%3Acase%2058%3Acase%2044%3Acase%2047%3Areturn!1%7Dreturn!0%7Dfunction%20I()%7Blet%20N%3Bdo%20N%3DS()%3Bwhile(N%3E%3D12%26%26N%3C%3D15)%3Breturn%20N%7Dreturn%7BsetPosition%3Ab%2CgetPosition%3A()%3D%3En%2Cscan%3Ae%3FI%3AS%2CgetToken%3A()%3D%3Eo%2CgetTokenValue%3A()%3D%3Ei%2CgetTokenOffset%3A()%3D%3Es%2CgetTokenLength%3A()%3D%3En-s%2CgetTokenStartLine%3A()%3D%3El%2CgetTokenStartCharacter%3A()%3D%3Es-u%2CgetTokenError%3A()%3D%3Ec%7D%7Dfunction%20Le(r)%7Breturn%20r%3D%3D%3D32%7C%7Cr%3D%3D%3D9%7Dfunction%20q(r)%7Breturn%20r%3D%3D%3D10%7C%7Cr%3D%3D%3D13%7Dfunction%20U(r)%7Breturn%20r%3E%3D48%26%26r%3C%3D57%7Dvar%20Qe%3B(function(r)%7Br%5Br.lineFeed%3D10%5D%3D%22lineFeed%22%2Cr%5Br.carriageReturn%3D13%5D%3D%22carriageReturn%22%2Cr%5Br.space%3D32%5D%3D%22space%22%2Cr%5Br._0%3D48%5D%3D%22_0%22%2Cr%5Br._1%3D49%5D%3D%22_1%22%2Cr%5Br._2%3D50%5D%3D%22_2%22%2Cr%5Br._3%3D51%5D%3D%22_3%22%2Cr%5Br._4%3D52%5D%3D%22_4%22%2Cr%5Br._5%3D53%5D%3D%22_5%22%2Cr%5Br._6%3D54%5D%3D%22_6%22%2Cr%5Br._7%3D55%5D%3D%22_7%22%2Cr%5Br._8%3D56%5D%3D%22_8%22%2Cr%5Br._9%3D57%5D%3D%22_9%22%2Cr%5Br.a%3D97%5D%3D%22a%22%2Cr%5Br.b%3D98%5D%3D%22b%22%2Cr%5Br.c%3D99%5D%3D%22c%22%2Cr%5Br.d%3D100%5D%3D%22d%22%2Cr%5Br.e%3D101%5D%3D%22e%22%2Cr%5Br.f%3D102%5D%3D%22f%22%2Cr%5Br.g%3D103%5D%3D%22g%22%2Cr%5Br.h%3D104%5D%3D%22h%22%2Cr%5Br.i%3D105%5D%3D%22i%22%2Cr%5Br.j%3D106%5D%3D%22j%22%2Cr%5Br.k%3D107%5D%3D%22k%22%2Cr%5Br.l%3D108%5D%3D%22l%22%2Cr%5Br.m%3D109%5D%3D%22m%22%2Cr%5Br.n%3D110%5D%3D%22n%22%2Cr%5Br.o%3D111%5D%3D%22o%22%2Cr%5Br.p%3D112%5D%3D%22p%22%2Cr%5Br.q%3D113%5D%3D%22q%22%2Cr%5Br.r%3D114%5D%3D%22r%22%2Cr%5Br.s%3D115%5D%3D%22s%22%2Cr%5Br.t%3D116%5D%3D%22t%22%2Cr%5Br.u%3D117%5D%3D%22u%22%2Cr%5Br.v%3D118%5D%3D%22v%22%2Cr%5Br.w%3D119%5D%3D%22w%22%2Cr%5Br.x%3D120%5D%3D%22x%22%2Cr%5Br.y%3D121%5D%3D%22y%22%2Cr%5Br.z%3D122%5D%3D%22z%22%2Cr%5Br.A%3D65%5D%3D%22A%22%2Cr%5Br.B%3D66%5D%3D%22B%22%2Cr%5Br.C%3D67%5D%3D%22C%22%2Cr%5Br.D%3D68%5D%3D%22D%22%2Cr%5Br.E%3D69%5D%3D%22E%22%2Cr%5Br.F%3D70%5D%3D%22F%22%2Cr%5Br.G%3D71%5D%3D%22G%22%2Cr%5Br.H%3D72%5D%3D%22H%22%2Cr%5Br.I%3D73%5D%3D%22I%22%2Cr%5Br.J%3D74%5D%3D%22J%22%2Cr%5Br.K%3D75%5D%3D%22K%22%2Cr%5Br.L%3D76%5D%3D%22L%22%2Cr%5Br.M%3D77%5D%3D%22M%22%2Cr%5Br.N%3D78%5D%3D%22N%22%2Cr%5Br.O%3D79%5D%3D%22O%22%2Cr%5Br.P%3D80%5D%3D%22P%22%2Cr%5Br.Q%3D81%5D%3D%22Q%22%2Cr%5Br.R%3D82%5D%3D%22R%22%2Cr%5Br.S%3D83%5D%3D%22S%22%2Cr%5Br.T%3D84%5D%3D%22T%22%2Cr%5Br.U%3D85%5D%3D%22U%22%2Cr%5Br.V%3D86%5D%3D%22V%22%2Cr%5Br.W%3D87%5D%3D%22W%22%2Cr%5Br.X%3D88%5D%3D%22X%22%2Cr%5Br.Y%3D89%5D%3D%22Y%22%2Cr%5Br.Z%3D90%5D%3D%22Z%22%2Cr%5Br.asterisk%3D42%5D%3D%22asterisk%22%2Cr%5Br.backslash%3D92%5D%3D%22backslash%22%2Cr%5Br.closeBrace%3D125%5D%3D%22closeBrace%22%2Cr%5Br.closeBracket%3D93%5D%3D%22closeBracket%22%2Cr%5Br.colon%3D58%5D%3D%22colon%22%2Cr%5Br.comma%3D44%5D%3D%22comma%22%2Cr%5Br.dot%3D46%5D%3D%22dot%22%2Cr%5Br.doubleQuote%3D34%5D%3D%22doubleQuote%22%2Cr%5Br.minus%3D45%5D%3D%22minus%22%2Cr%5Br.openBrace%3D123%5D%3D%22openBrace%22%2Cr%5Br.openBracket%3D91%5D%3D%22openBracket%22%2Cr%5Br.plus%3D43%5D%3D%22plus%22%2Cr%5Br.slash%3D47%5D%3D%22slash%22%2Cr%5Br.formFeed%3D12%5D%3D%22formFeed%22%2Cr%5Br.tab%3D9%5D%3D%22tab%22%7D)(Qe%7C%7C(Qe%3D%7B%7D))%3Bvar%20O%3Dnew%20Array(20).fill(0).map((r%2Ce)%3D%3E%22%20%22.repeat(e))%2CJ%3D200%2CSe%3D%7B%22%20%22%3A%7B%22%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%0A%60%2B%22%20%22.repeat(e))%2C%22%5Cr%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%22%5Cr%22%2B%22%20%22.repeat(e))%2C%22%5Cr%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%5Cr%0A%60%2B%22%20%22.repeat(e))%7D%2C%22%09%22%3A%7B%22%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%0A%60%2B%22%09%22.repeat(e))%2C%22%5Cr%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%22%5Cr%22%2B%22%09%22.repeat(e))%2C%22%5Cr%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%5Cr%0A%60%2B%22%09%22.repeat(e))%7D%7D%2CYe%3D%5B%60%0A%60%2C%22%5Cr%22%2C%60%5Cr%0A%60%5D%3Bfunction%20we(r%2Ce%2Ct)%7Blet%20n%2Ci%2Cs%2Co%2Ca%3Bif(e)%7Bfor(o%3De.offset%2Ca%3Do%2Be.length%2Cs%3Do%3Bs%3E0%26%26!ye(r%2Cs-1)%3B)s--%3Blet%20g%3Da%3Bfor(%3Bg%3Cr.length%26%26!ye(r%2Cg)%3B)g%2B%2B%3Bi%3Dr.substring(s%2Cg)%2Cn%3Dkt(i%2Ct)%7Delse%20i%3Dr%2Cn%3D0%2Cs%3D0%2Co%3D0%2Ca%3Dr.length%3Blet%20l%3DLt(t%2Cr)%2Cf%3DYe.includes(l)%2Cu%3D0%2Cc%3D0%2Cd%3Bt.insertSpaces%3Fd%3DO%5Bt.tabSize%7C%7C4%5D%3F%3Fz(O%5B1%5D%2Ct.tabSize%7C%7C4)%3Ad%3D%22%09%22%3Blet%20b%3Dd%3D%3D%3D%22%09%22%3F%22%09%22%3A%22%20%22%2Ck%3D%24(i%2C!1)%2CL%3D!1%3Bfunction%20S()%7Bif(u%3E1)return%20z(l%2Cu)%2Bz(d%2Cn%2Bc)%3Blet%20g%3Dd.length*(n%2Bc)%3Breturn!f%7C%7Cg%3ESe%5Bb%5D%5Bl%5D.length%3Fl%2Bz(d%2Cn%2Bc)%3Ag%3C%3D0%3Fl%3ASe%5Bb%5D%5Bl%5D%5Bg%5D%7Dfunction%20w()%7Blet%20g%3Dk.scan()%3Bfor(u%3D0%3Bg%3D%3D%3D15%7C%7Cg%3D%3D%3D14%3B)g%3D%3D%3D14%26%26t.keepLines%3Fu%2B%3D1%3Ag%3D%3D%3D14%26%26(u%3D1)%2Cg%3Dk.scan()%3Breturn%20L%3Dg%3D%3D%3D16%7C%7Ck.getTokenError()!%3D%3D0%2Cg%7Dlet%20I%3D%5B%5D%3Bfunction%20N(g%2Ch%2Cp)%7B!L%26%26(!e%7C%7Ch%3Ca%26%26p%3Eo)%26%26r.substring(h%2Cp)!%3D%3Dg%26%26I.push(%7Boffset%3Ah%2Clength%3Ap-h%2Ccontent%3Ag%7D)%7Dlet%20_%3Dw()%3Bif(t.keepLines%26%26u%3E0%26%26N(z(l%2Cu)%2C0%2C0)%2C_!%3D%3D17)%7Blet%20g%3Dk.getTokenOffset()%2Bs%2Ch%3Dd.length*n%3C20%26%26t.insertSpaces%3FO%5Bd.length*n%5D%3Az(d%2Cn)%3BN(h%2Cs%2Cg)%7Dfor(%3B_!%3D%3D17%3B)%7Blet%20g%3Dk.getTokenOffset()%2Bk.getTokenLength()%2Bs%2Ch%3Dw()%2Cp%3D%22%22%2Cy%3D!1%3Bfor(%3Bu%3D%3D%3D0%26%26(h%3D%3D%3D12%7C%7Ch%3D%3D%3D13)%3B)%7Blet%20D%3Dk.getTokenOffset()%2Bs%3BN(O%5B1%5D%2Cg%2CD)%2Cg%3Dk.getTokenOffset()%2Bk.getTokenLength()%2Bs%2Cy%3Dh%3D%3D%3D12%2Cp%3Dy%3FS()%3A%22%22%2Ch%3Dw()%7Dif(h%3D%3D%3D2)_!%3D%3D1%26%26c--%2Ct.keepLines%26%26u%3E0%7C%7C!t.keepLines%26%26_!%3D%3D1%3Fp%3DS()%3At.keepLines%26%26(p%3DO%5B1%5D)%3Belse%20if(h%3D%3D%3D4)_!%3D%3D3%26%26c--%2Ct.keepLines%26%26u%3E0%7C%7C!t.keepLines%26%26_!%3D%3D3%3Fp%3DS()%3At.keepLines%26%26(p%3DO%5B1%5D)%3Belse%7Bswitch(_)%7Bcase%203%3Acase%201%3Ac%2B%2B%2Ct.keepLines%26%26u%3E0%7C%7C!t.keepLines%3Fp%3DS()%3Ap%3DO%5B1%5D%3Bbreak%3Bcase%205%3At.keepLines%26%26u%3E0%7C%7C!t.keepLines%3Fp%3DS()%3Ap%3DO%5B1%5D%3Bbreak%3Bcase%2012%3Ap%3DS()%3Bbreak%3Bcase%2013%3Au%3E0%3Fp%3DS()%3Ay%7C%7C(p%3DO%5B1%5D)%3Bbreak%3Bcase%206%3At.keepLines%26%26u%3E0%3Fp%3DS()%3Ay%7C%7C(p%3DO%5B1%5D)%3Bbreak%3Bcase%2010%3At.keepLines%26%26u%3E0%3Fp%3DS()%3Ah%3D%3D%3D6%26%26!y%26%26(p%3D%22%22)%3Bbreak%3Bcase%207%3Acase%208%3Acase%209%3Acase%2011%3Acase%202%3Acase%204%3At.keepLines%26%26u%3E0%3Fp%3DS()%3A(h%3D%3D%3D12%7C%7Ch%3D%3D%3D13)%26%26!y%3Fp%3DO%5B1%5D%3Ah!%3D%3D5%26%26h!%3D%3D17%26%26(L%3D!0)%3Bbreak%3Bcase%2016%3AL%3D!0%3Bbreak%7Du%3E0%26%26(h%3D%3D%3D12%7C%7Ch%3D%3D%3D13)%26%26(p%3DS())%7Dh%3D%3D%3D17%26%26(t.keepLines%26%26u%3E0%3Fp%3DS()%3Ap%3Dt.insertFinalNewline%3Fl%3A%22%22)%3Blet%20x%3Dk.getTokenOffset()%2Bs%3BN(p%2Cg%2Cx)%2C_%3Dh%7Dreturn%20I%7Dfunction%20z(r%2Ce)%7Blet%20t%3D%22%22%3Bfor(let%20n%3D0%3Bn%3Ce%3Bn%2B%2B)t%2B%3Dr%3Breturn%20t%7Dfunction%20kt(r%2Ce)%7Blet%20t%3D0%2Cn%3D0%2Ci%3De.tabSize%7C%7C4%3Bfor(%3Bt%3Cr.length%3B)%7Blet%20s%3Dr.charAt(t)%3Bif(s%3D%3D%3DO%5B1%5D)n%2B%2B%3Belse%20if(s%3D%3D%3D%22%09%22)n%2B%3Di%3Belse%20break%3Bt%2B%2B%7Dreturn%20Math.floor(n%2Fi)%7Dfunction%20Lt(r%2Ce)%7Bfor(let%20t%3D0%3Bt%3Ce.length%3Bt%2B%2B)%7Blet%20n%3De.charAt(t)%3Bif(n%3D%3D%3D%22%5Cr%22)return%20t%2B1%3Ce.length%26%26e.charAt(t%2B1)%3D%3D%3D%60%0A%60%3F%60%5Cr%0A%60%3A%22%5Cr%22%3Bif(n%3D%3D%3D%60%0A%60)return%60%0A%60%7Dreturn%20r%26%26r.eol%7C%7C%60%0A%60%7Dfunction%20ye(r%2Ce)%7Breturn%60%5Cr%0A%60.indexOf(r.charAt(e))!%3D%3D-1%7Dvar%20et%3B(function(r)%7Br.DEFAULT%3D%7BallowTrailingComma%3A!1%7D%7D)(et%7C%7C(et%3D%7B%7D))%3Bfunction%20yt(r%2Ce%2Ct%3D!1)%7Breturn%20e%3E%3Dr.offset%26%26e%3Cr.offset%2Br.length%7C%7Ct%26%26e%3D%3D%3Dr.offset%2Br.length%7Dfunction%20ve(r%2Ce%2Ct%3D!1)%7Bif(yt(r%2Ce%2Ct))%7Blet%20n%3Dr.children%3Bif(Array.isArray(n))for(let%20i%3D0%3Bi%3Cn.length%26%26n%5Bi%5D.offset%3C%3De%3Bi%2B%2B)%7Blet%20s%3Dve(n%5Bi%5D%2Ce%2Ct)%3Bif(s)return%20s%7Dreturn%20r%7D%7Dvar%20se%3D%24%2CB%3B(function(r)%7Br%5Br.None%3D0%5D%3D%22None%22%2Cr%5Br.UnexpectedEndOfComment%3D1%5D%3D%22UnexpectedEndOfComment%22%2Cr%5Br.UnexpectedEndOfString%3D2%5D%3D%22UnexpectedEndOfString%22%2Cr%5Br.UnexpectedEndOfNumber%3D3%5D%3D%22UnexpectedEndOfNumber%22%2Cr%5Br.InvalidUnicode%3D4%5D%3D%22InvalidUnicode%22%2Cr%5Br.InvalidEscapeCharacter%3D5%5D%3D%22InvalidEscapeCharacter%22%2Cr%5Br.InvalidCharacter%3D6%5D%3D%22InvalidCharacter%22%7D)(B%7C%7C(B%3D%7B%7D))%3Bvar%20T%3B(function(r)%7Br%5Br.OpenBraceToken%3D1%5D%3D%22OpenBraceToken%22%2Cr%5Br.CloseBraceToken%3D2%5D%3D%22CloseBraceToken%22%2Cr%5Br.OpenBracketToken%3D3%5D%3D%22OpenBracketToken%22%2Cr%5Br.CloseBracketToken%3D4%5D%3D%22CloseBracketToken%22%2Cr%5Br.CommaToken%3D5%5D%3D%22CommaToken%22%2Cr%5Br.ColonToken%3D6%5D%3D%22ColonToken%22%2Cr%5Br.NullKeyword%3D7%5D%3D%22NullKeyword%22%2Cr%5Br.TrueKeyword%3D8%5D%3D%22TrueKeyword%22%2Cr%5Br.FalseKeyword%3D9%5D%3D%22FalseKeyword%22%2Cr%5Br.StringLiteral%3D10%5D%3D%22StringLiteral%22%2Cr%5Br.NumericLiteral%3D11%5D%3D%22NumericLiteral%22%2Cr%5Br.LineCommentTrivia%3D12%5D%3D%22LineCommentTrivia%22%2Cr%5Br.BlockCommentTrivia%3D13%5D%3D%22BlockCommentTrivia%22%2Cr%5Br.LineBreakTrivia%3D14%5D%3D%22LineBreakTrivia%22%2Cr%5Br.Trivia%3D15%5D%3D%22Trivia%22%2Cr%5Br.Unknown%3D16%5D%3D%22Unknown%22%2Cr%5Br.EOF%3D17%5D%3D%22EOF%22%7D)(T%7C%7C(T%3D%7B%7D))%3Bvar%20nt%3Dve%3Bvar%20tt%3B(function(r)%7Br%5Br.InvalidSymbol%3D1%5D%3D%22InvalidSymbol%22%2Cr%5Br.InvalidNumberFormat%3D2%5D%3D%22InvalidNumberFormat%22%2Cr%5Br.PropertyNameExpected%3D3%5D%3D%22PropertyNameExpected%22%2Cr%5Br.ValueExpected%3D4%5D%3D%22ValueExpected%22%2Cr%5Br.ColonExpected%3D5%5D%3D%22ColonExpected%22%2Cr%5Br.CommaExpected%3D6%5D%3D%22CommaExpected%22%2Cr%5Br.CloseBraceExpected%3D7%5D%3D%22CloseBraceExpected%22%2Cr%5Br.CloseBracketExpected%3D8%5D%3D%22CloseBracketExpected%22%2Cr%5Br.EndOfFileExpected%3D9%5D%3D%22EndOfFileExpected%22%2Cr%5Br.InvalidCommentToken%3D10%5D%3D%22InvalidCommentToken%22%2Cr%5Br.UnexpectedEndOfComment%3D11%5D%3D%22UnexpectedEndOfComment%22%2Cr%5Br.UnexpectedEndOfString%3D12%5D%3D%22UnexpectedEndOfString%22%2Cr%5Br.UnexpectedEndOfNumber%3D13%5D%3D%22UnexpectedEndOfNumber%22%2Cr%5Br.InvalidUnicode%3D14%5D%3D%22InvalidUnicode%22%2Cr%5Br.InvalidEscapeCharacter%3D15%5D%3D%22InvalidEscapeCharacter%22%2Cr%5Br.InvalidCharacter%3D16%5D%3D%22InvalidCharacter%22%7D)(tt%7C%7C(tt%3D%7B%7D))%3Bfunction%20rt(r%2Ce%2Ct)%7Breturn%20we(r%2Ce%2Ct)%7Dvar%20oe%3Dclass%20r%7Bconstructor(e%2Ct%2Cn)%7Bthis.message%3De%2Cthis.code%3Dt%2Cthis.range%3Dn%7Dstatic%20create(e%2Ct%2Cn)%7Breturn%20new%20r(e%2Ct%2Cn)%7D%7D%2Cle%3Dclass%20r%7Bconstructor(e%2Ct)%7Bthis.start%3De%2Cthis.end%3Dt%7Dstatic%20create(e%2Ct)%7Breturn%20new%20r(e%2Ct)%7D%7D%2CBt%3B(x%3D%3E(x.Text%3D1%2Cx.Method%3D2%2Cx.Function%3D3%2Cx.Constructor%3D4%2Cx.Field%3D5%2Cx.Variable%3D6%2Cx.Class%3D7%2Cx.Interface%3D8%2Cx.Module%3D9%2Cx.Property%3D10%2Cx.Unit%3D11%2Cx.Value%3D12%2Cx.Enum%3D13%2Cx.Keyword%3D14%2Cx.Snippet%3D15%2Cx.Color%3D16%2Cx.File%3D17%2Cx.Reference%3D18%2Cx.Folder%3D19%2Cx.EnumMember%3D20%2Cx.Constant%3D21%2Cx.Struct%3D22%2Cx.Event%3D23%2Cx.Operator%3D24%2Cx.TypeParameter%3D25))(Bt%7C%7C%3D%7B%7D)%3Bvar%20Ct%3B(t%3D%3E(t.PlainText%3D1%2Ct.Snippet%3D2))(Ct%7C%7C%3D%7B%7D)%3Bvar%20Et%3B(e%3D%3E%7Bfunction%20r(t%2Cn)%7Breturn%7Brange%3At%2CnewText%3An%7D%7De.replace%3Dr%7D)(Et%7C%7C%3D%7B%7D)%3Bvar%20Mt%3B(e%3D%3E%7Bfunction%20r(t)%7Breturn%7Blabel%3At%7D%7De.create%3Dr%7D)(Mt%7C%7C%3D%7B%7D)%3Bfunction%20it(r)%7Breturn%20typeof%20r%3D%3D%22object%22%26%26r!%3D%3Dnull%26%26!Array.isArray(r)%7Dfunction%20st(r)%7Breturn%20typeof%20r%3D%3D%22number%22%7Dvar%20F%3Dclass%7Bconstructor(e%2Ct%2Cn%3D0)%7Bthis.offset%3Dt%2Cthis.length%3Dn%2Cthis.parent%3De%7Dget%20children()%7Breturn%5B%5D%7DtoString()%7Breturn%22type%3A%20%22%2Bthis.type%2B%22%20(%22%2Bthis.offset%2B%22%2F%22%2Bthis.length%2B%22)%22%2B(this.parent%3F%22%20parent%3A%20%7B%22%2Bthis.parent.toString()%2B%22%7D%22%3A%22%22)%7D%7D%2CIe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22null%22%3Bthis.value%3Dnull%7D%7D%2Cae%3Dclass%20extends%20F%7Bconstructor(t%2Cn%2Ci)%7Bsuper(t%2Ci)%3Bthis.type%3D%22boolean%22%3Bthis.value%3Dn%7D%7D%2COe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22array%22%3Bthis.items%3D%5B%5D%7Dget%20children()%7Breturn%20this.items%7D%7D%2CAe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22number%22%3Bthis.isInteger%3D!0%2Cthis.value%3DNumber.NaN%7D%7D%2CBe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22object%22%3Bthis.properties%3D%5B%5D%7Dget%20children()%7Breturn%20this.properties%7D%7D%2CX%3Dclass%20extends%20F%7Bconstructor(t%2Cn%2Ci)%7Bsuper(t%2Cn%2Ci)%3Bthis.type%3D%22string%22%3Bthis.value%3D%22%22%7D%7D%2CCe%3Dclass%20extends%20F%7Bconstructor(t%2Cn%2Ci)%7Bsuper(t%2Cn)%3Bthis.type%3D%22property%22%3Bthis.colonOffset%3D-1%2Cthis.keyNode%3Di%7Dget%20children()%7Breturn%20this.valueNode%3F%5Bthis.keyNode%2Cthis.valueNode%5D%3A%5Bthis.keyNode%5D%7D%7D%2CEe%3Dclass%7Bconstructor(e)%7Bthis.root%3De%7DgetNodeFromOffset(e%2Ct%3D!1)%7Bif(this.root)return%20nt(this.root%2Ce%2Ct)%7Dvisit(e)%7Bif(this.root)%7Blet%20t%3Dn%3D%3E%7Blet%20i%3De(n)%2Cs%3Dn.children%3Bif(Array.isArray(s))for(let%20o%3D0%3Bo%3Cs.length%26%26i%3Bo%2B%2B)i%3Dt(s%5Bo%5D)%3Breturn%20i%7D%3Bt(this.root)%7D%7D%7D%3Bfunction%20Me(r)%7Blet%20e%3D%5B%5D%2Ct%3D-1%2Cn%3Dr.getValue()%2Ci%3Dse(n%2C!1)%3Bfunction%20s()%7Bfor(%3B%3B)%7Blet%20_%3Di.scan()%3Bswitch(o()%2C_)%7Bcase%20T.LineBreakTrivia%3Acase%20T.Trivia%3Abreak%3Bdefault%3Areturn%20_%7D%7D%7Dfunction%20o()%7Bswitch(i.getTokenError())%7Bcase%20B.InvalidUnicode%3Areturn%20f(%22Invalid%20unicode%20sequence%20in%20string.%22%2C260)%2C!0%3Bcase%20B.InvalidEscapeCharacter%3Areturn%20f(%22Invalid%20escape%20character%20in%20string.%22%2C261)%2C!0%3Bcase%20B.UnexpectedEndOfNumber%3Areturn%20f(%22Unexpected%20end%20of%20number.%22%2C259)%2C!0%3Bcase%20B.UnexpectedEndOfComment%3Areturn%20f(%22Unexpected%20end%20of%20comment.%22%2C257)%2C!0%3Bcase%20B.UnexpectedEndOfString%3Areturn%20f(%22Unexpected%20end%20of%20string.%22%2C258)%2C!0%3Bcase%20B.InvalidCharacter%3Areturn%20f(%22Invalid%20characters%20in%20string.%20Control%20characters%20must%20be%20escaped.%22%2C262)%2C!0%7Dreturn!1%7Dfunction%20a(_%2Cg%2Ch%2Cp)%7Bif(e.length%3D%3D%3D0%7C%7Ch!%3D%3Dt)%7Blet%20y%3Dle.create(r.positionAt(h)%2Cr.positionAt(p))%3Be.push(oe.create(_%2Cg%2Cy))%2Ct%3Dh%7D%7Dfunction%20l(_%2Cg)%7Breturn%20_.length%3Di.getTokenOffset()%2Bi.getTokenLength()-_.offset%2Cg%26%26s()%2C_%7Dfunction%20f(_%2Cg%2Ch%3Dvoid%200%2Cp%3D%5B%5D%2Cy%3D%5B%5D)%7Blet%20x%3Di.getTokenOffset()%2CD%3Di.getTokenOffset()%2Bi.getTokenLength()%3Bif(x%3D%3D%3DD%26%26x%3E0)%7Bfor(x--%3Bx%3E0%26%26%2F%5Cs%2F.test(n.charAt(x))%3B)x--%3BD%3Dx%2B1%7Dif(a(_%2Cg%2Cx%2CD)%2Ch%26%26l(h%2C!1)%2Cp.length%2By.length%3E0)%7Blet%20ie%3Di.getToken()%3Bfor(%3Bie!%3D%3DT.EOF%3B)%7Bif(p.indexOf(ie)!%3D%3D-1)%7Bs()%3Bbreak%7Delse%20if(y.indexOf(ie)!%3D%3D-1)break%3Bie%3Ds()%7D%7Dreturn%20h%7Dfunction%20u(_)%7Bif(i.getToken()!%3D%3DT.OpenBracketToken)return%3Blet%20g%3Dnew%20Oe(_%2Ci.getTokenOffset())%3Bs()%3Blet%20h%3D!1%3Bfor(%3Bi.getToken()!%3D%3DT.CloseBracketToken%26%26i.getToken()!%3D%3DT.EOF%3B)%7Bif(i.getToken()%3D%3D%3DT.CommaToken)%7Bh%7C%7Cf(%22Value%20expected.%22%2C516)%3Blet%20y%3Di.getTokenOffset()%3Bif(s()%2Ci.getToken()%3D%3D%3DT.CloseBracketToken)%7Bh%26%26a(%22Trailing%20comma%22%2C519%2Cy%2Cy%2B1)%3Bcontinue%7D%7Delse%20if(h)%7Bf(%22Comma%20expected.%22%2C514%2Cvoid%200%2C%5B%5D%2C%5BT.CloseBracketToken%5D)%3Bbreak%7Dlet%20p%3Dw(g)%3Bif(p)g.items.push(p)%3Belse%7Bf(%22Value%20expected.%22%2C516%2Cvoid%200%2C%5B%5D%2C%5BT.CloseBracketToken%5D)%3Bbreak%7Dh%3D!0%7Dreturn%20i.getToken()!%3D%3DT.CloseBracketToken%3Ff(%22Expected%20comma%20or%20closing%20bracket%22%2C518%2Cg)%3Al(g%2C!0)%7Dlet%20c%3Dnew%20X(void%200%2C0%2C0)%3Bfunction%20d(_%2Cg)%7Blet%20h%3Dnew%20Ce(_%2Ci.getTokenOffset()%2Cc)%2Cp%3Dk(h)%3Bif(!p)if(i.getToken()%3D%3D%3DT.Unknown)%7Bf(%22Property%20keys%20must%20be%20doublequoted%22%2C528)%3Blet%20x%3Dnew%20X(h%2Ci.getTokenOffset()%2Ci.getTokenLength())%3Bx.value%3Di.getTokenValue()%2Cp%3Dx%2Cs()%7Delse%20return%3Bif(h.keyNode%3Dp%2Cp.value!%3D%3D%22%2F%2F%22)%7Blet%20x%3Dg%5Bp.value%5D%3Bx%3F(a(%22Duplicate%20object%20key%22%2C520%2Ch.keyNode.offset%2Ch.keyNode.offset%2Bh.keyNode.length)%2Cit(x)%26%26a(%22Duplicate%20object%20key%22%2C520%2Cx.keyNode.offset%2Cx.keyNode.offset%2Bx.keyNode.length)%2Cg%5Bp.value%5D%3D!0)%3Ag%5Bp.value%5D%3Dh%7Dif(i.getToken()%3D%3D%3DT.ColonToken)h.colonOffset%3Di.getTokenOffset()%2Cs()%3Belse%20if(f(%22Colon%20expected%22%2C515)%2Ci.getToken()%3D%3D%3DT.StringLiteral%26%26r.positionAt(p.offset%2Bp.length).lineNumber%3Cr.positionAt(i.getTokenOffset()).lineNumber)return%20h.length%3Dp.length%2Ch%3Blet%20y%3Dw(h)%3Breturn%20y%3F(h.valueNode%3Dy%2Ch.length%3Dy.offset%2By.length-h.offset%2Ch)%3Af(%22Value%20expected%22%2C516%2Ch%2C%5B%5D%2C%5BT.CloseBraceToken%2CT.CommaToken%5D)%7Dfunction%20b(_)%7Bif(i.getToken()!%3D%3DT.OpenBraceToken)return%3Blet%20g%3Dnew%20Be(_%2Ci.getTokenOffset())%2Ch%3DObject.create(null)%3Bs()%3Blet%20p%3D!1%3Bfor(%3Bi.getToken()!%3D%3DT.CloseBraceToken%26%26i.getToken()!%3D%3DT.EOF%3B)%7Bif(i.getToken()%3D%3D%3DT.CommaToken)%7Bp%7C%7Cf(%22Property%20expected%22%2C513)%3Blet%20x%3Di.getTokenOffset()%3Bif(s()%2Ci.getToken()%3D%3D%3DT.CloseBraceToken)%7Bp%26%26a(%22Trailing%20comma%22%2C519%2Cx%2Cx%2B1)%3Bcontinue%7D%7Delse%20p%26%26f(%22Expected%20comma%22%2C514)%3Blet%20y%3Dd(g%2Ch)%3By%3Fg.properties.push(y)%3Af(%22Property%20expected%22%2C513%2Cvoid%200%2C%5B%5D%2C%5BT.CloseBraceToken%2CT.CommaToken%5D)%2Cp%3D!0%7Dreturn%20i.getToken()!%3D%3DT.CloseBraceToken%3Ff(%22Expected%20comma%20or%20closing%20brace%22%2C518%2Cg)%3Al(g%2C!0)%7Dfunction%20k(_)%7Bif(i.getToken()!%3D%3DT.StringLiteral)return%3Blet%20g%3Dnew%20X(_%2Ci.getTokenOffset())%3Breturn%20g.value%3Di.getTokenValue()%2Cl(g%2C!0)%7Dfunction%20L(_)%7Bif(i.getToken()!%3D%3DT.NumericLiteral)return%3Blet%20g%3Dnew%20Ae(_%2Ci.getTokenOffset())%3Bif(i.getTokenError()%3D%3D%3DB.None)%7Blet%20h%3Di.getTokenValue()%3Btry%7Blet%20p%3DJSON.parse(h)%3Bif(!st(p))return%20f(%22Invalid%20number%20format.%22%2C0%2Cg)%3Bg.value%3Dp%7Dcatch%7Breturn%20f(%22Invalid%20number%20format.%22%2C0%2Cg)%7Dg.isInteger%3Dh.indexOf(%22.%22)%3D%3D%3D-1%7Dreturn%20l(g%2C!0)%7Dfunction%20S(_)%7Blet%20g%3Bswitch(i.getToken())%7Bcase%20T.NullKeyword%3Areturn%20l(new%20Ie(_%2Ci.getTokenOffset())%2C!0)%3Bcase%20T.TrueKeyword%3Areturn%20l(new%20ae(_%2C!0%2Ci.getTokenOffset())%2C!0)%3Bcase%20T.FalseKeyword%3Areturn%20l(new%20ae(_%2C!1%2Ci.getTokenOffset())%2C!0)%3Bdefault%3Areturn%7D%7Dfunction%20w(_)%7Breturn%20u(_)%7C%7Cb(_)%7C%7Ck(_)%7C%7CL(_)%7C%7CS(_)%7Dlet%20I%3Breturn%20s()!%3D%3DT.EOF%26%26(I%3Dw(I)%2CI%3Fi.getToken()!%3D%3DT.EOF%26%26f(%22End%20of%20file%20expected.%22%2C0)%3Af(%22Expected%20a%20JSON%20object%2C%20array%20or%20literal%22%2C0))%2C%7Bproblems%3Ae%2Croot%3Anew%20Ee(I)%7D%7Dfunction%20Fe(r)%7Blet%20e%3D%5B%5D%2Ct%3D%5B%5D%2Cn%3D-1%2Ci%3Dse(r.getValue()%2C!1)%2Cs%3Di.scan()%3Bfunction%20o(a)%7Be.push(a)%7Dfor(%3Bs!%3D%3DT.EOF%3B)%7Bswitch(s)%7Bcase%20T.OpenBraceToken%3Acase%20T.OpenBracketToken%3A%7Blet%20l%3D%7BstartLineNumber%3Ar.positionAt(i.getPosition()).lineNumber%2Ctype%3As%3D%3D%3DT.OpenBraceToken%3F%22object%22%3A%22array%22%7D%3Bt.push(l)%3Bbreak%7Dcase%20T.CloseBraceToken%3Acase%20T.CloseBracketToken%3A%7Blet%20a%3Ds%3D%3D%3DT.CloseBraceToken%3F%22object%22%3A%22array%22%3Bif(t.length%3E0%26%26t%5Bt.length-1%5D.type%3D%3D%3Da)%7Blet%20l%3Dt.pop()%2Cf%3Dr.positionAt(i.getTokenOffset()).lineNumber%3Bif(l%26%26f%3El.startLineNumber%2B1%26%26n!%3D%3Dl.startLineNumber)%7Blet%20u%3D%7BstartLineNumber%3Al.startLineNumber%2CendLineNumber%3Af-1%2Ctype%3Al.type%2CisCollapsed%3A!1%2Csource%3A0%7D%3Bo(u)%2Cn%3Dl.startLineNumber%7D%7Dbreak%7D%7Ds%3Di.scan()%7Dreturn%20e%7Dfunction%20ot(r%2Ce)%7Breturn%20rt(r.getValue()%2Cvoid%200%2Ce)%7Dfunction%20lt(r)%7Blet%7Broot%3Ae%2Cproblems%3At%7D%3DMe(r)%3Breturn%7Bproblems%3At%2Croot%3Ae%7D%7Dfunction%20at(r)%7Breturn%20Me(r).root%7Dvar%20R%3Dclass%7Bconstructor(e%2Ct)%7Bthis.lineNumber%3De%2Cthis.column%3Dt%7D%7D%3Bvar%20A%3Dclass%20r%7Bconstructor(e%2Ct%2Cn%2Ci)%7Be%3En%7C%7Ce%3D%3D%3Dn%26%26t%3Ei%3F(this.startLineNumber%3Dn%2Cthis.startColumn%3Di%2Cthis.endLineNumber%3De%2Cthis.endColumn%3Dt)%3A(this.startLineNumber%3De%2Cthis.startColumn%3Dt%2Cthis.endLineNumber%3Dn%2Cthis.endColumn%3Di)%7Dstatic%20create(e%2Ct)%7Breturn%20new%20r(e.lineNumber%2Ce.column%2Ct.lineNumber%2Ct.column)%7Dstatic%20areIntersecting(e%2Ct)%7Breturn!(e.endLineNumber%3Ct.startLineNumber%7C%7Ce.endLineNumber%3D%3D%3Dt.startLineNumber%26%26e.endColumn%3C%3Dt.startColumn%7C%7Ct.endLineNumber%3Ce.startLineNumber%7C%7Ct.endLineNumber%3D%3D%3De.startLineNumber%26%26t.endColumn%3C%3De.startColumn)%7DplusRange(e)%7Breturn%20r.plusRange(this%2Ce)%7Dstatic%20plusRange(e%2Ct)%7Blet%20n%2Ci%2Cs%2Co%3Breturn%20t.startLineNumber%3Ce.startLineNumber%3F(n%3Dt.startLineNumber%2Ci%3Dt.startColumn)%3At.startLineNumber%3D%3D%3De.startLineNumber%3F(n%3Dt.startLineNumber%2Ci%3DMath.min(t.startColumn%2Ce.startColumn))%3A(n%3De.startLineNumber%2Ci%3De.startColumn)%2Ct.endLineNumber%3Ee.endLineNumber%3F(s%3Dt.endLineNumber%2Co%3Dt.endColumn)%3At.endLineNumber%3D%3D%3De.endLineNumber%3F(s%3Dt.endLineNumber%2Co%3DMath.max(t.endColumn%2Ce.endColumn))%3A(s%3De.endLineNumber%2Co%3De.endColumn)%2Cnew%20r(n%2Ci%2Cs%2Co)%7DgetStartPosition()%7Breturn%20r.getStartPosition(this)%7Dstatic%20getStartPosition(e)%7Breturn%20new%20R(e.startLineNumber%2Ce.startColumn)%7D%7D%3Bvar%20V%3Dclass%7Bconstructor(e%2Ct)%7Bthis._findMatchBrand%3Dvoid%200%3Bthis.range%3De%2Cthis.matches%3Dt%7D%7D%2Cfe%3Dclass%7Bconstructor(e%2Ct%2Cn)%7Bthis.regex%3De%2Cthis.wordSeparators%3Dt%2Cthis.simpleSearch%3Dn%7D%7D%3Bvar%20j%3Dclass%7Bconstructor(e%2Ct)%7Bthis.piece%3De%2Cthis.color%3Dt%2Cthis.size_left%3D0%2Cthis.lf_left%3D0%2Cthis.parent%3Dthis%2Cthis.left%3Dthis%2Cthis.right%3Dthis%7Dnext()%7Bif(this.right!%3D%3Dm)return%20ue(this.right)%3Blet%20e%3Dthis%3Bfor(%3Be.parent!%3D%3Dm%26%26e.parent.left!%3D%3De%3B)e%3De.parent%3Breturn%20e.parent%3D%3D%3Dm%3Fm%3Ae.parent%7Dprev()%7Bif(this.left!%3D%3Dm)return%20Pe(this.left)%3Blet%20e%3Dthis%3Bfor(%3Be.parent!%3D%3Dm%26%26e.parent.right!%3D%3De%3B)e%3De.parent%3Breturn%20e.parent%3D%3D%3Dm%3Fm%3Ae.parent%7Ddetach()%7Bthis.parent%3Dnull%2Cthis.left%3Dnull%2Cthis.right%3Dnull%7D%7D%3Bvar%20m%3Dnew%20j(null%2C0)%3Bm.parent%3Dm%3Bm.left%3Dm%3Bm.right%3Dm%3Bm.color%3D0%3Bfunction%20ue(r)%7Bfor(%3Br.left!%3D%3Dm%3B)r%3Dr.left%3Breturn%20r%7Dfunction%20Pe(r)%7Bfor(%3Br.right!%3D%3Dm%3B)r%3Dr.right%3Breturn%20r%7Dfunction%20Ve(r)%7Breturn%20r%3D%3D%3Dm%3F0%3Ar.size_left%2Br.piece.length%2BVe(r.right)%7Dfunction%20We(r)%7Breturn%20r%3D%3D%3Dm%3F0%3Ar.lf_left%2Br.piece.lineFeedCnt%2BWe(r.right)%7Dfunction%20Re()%7Bm.parent%3Dm%7Dfunction%20G(r%2Ce)%7Blet%20t%3De.right%3Bt.size_left%2B%3De.size_left%2B(e.piece%3Fe.piece.length%3A0)%2Ct.lf_left%2B%3De.lf_left%2B(e.piece%3Fe.piece.lineFeedCnt%3A0)%2Ce.right%3Dt.left%2Ct.left!%3D%3Dm%26%26(t.left.parent%3De)%2Ct.parent%3De.parent%2Ce.parent%3D%3D%3Dm%3Fr.root%3Dt%3Ae.parent.left%3D%3D%3De%3Fe.parent.left%3Dt%3Ae.parent.right%3Dt%2Ct.left%3De%2Ce.parent%3Dt%7Dfunction%20Z(r%2Ce)%7Blet%20t%3De.left%3Be.left%3Dt.right%2Ct.right!%3D%3Dm%26%26(t.right.parent%3De)%2Ct.parent%3De.parent%2Ce.size_left-%3Dt.size_left%2B(t.piece%3Ft.piece.length%3A0)%2Ce.lf_left-%3Dt.lf_left%2B(t.piece%3Ft.piece.lineFeedCnt%3A0)%2Ce.parent%3D%3D%3Dm%3Fr.root%3Dt%3Ae%3D%3D%3De.parent.right%3Fe.parent.right%3Dt%3Ae.parent.left%3Dt%2Ct.right%3De%2Ce.parent%3Dt%7Dfunction%20Q(r%2Ce)%7Blet%20t%2Cn%3Bif(e.left%3D%3D%3Dm%3F(n%3De%2Ct%3Dn.right)%3Ae.right%3D%3D%3Dm%3F(n%3De%2Ct%3Dn.left)%3A(n%3Due(e.right)%2Ct%3Dn.right)%2Cn%3D%3D%3Dr.root)%7Br.root%3Dt%2Ct.color%3D0%2Ce.detach()%2CRe()%2Cr.root.parent%3Dm%3Breturn%7Dlet%20i%3Dn.color%3D%3D%3D1%3Bif(n%3D%3D%3Dn.parent.left%3Fn.parent.left%3Dt%3An.parent.right%3Dt%2Cn%3D%3D%3De%3F(t.parent%3Dn.parent%2CH(r%2Ct))%3A(n.parent%3D%3D%3De%3Ft.parent%3Dn%3At.parent%3Dn.parent%2CH(r%2Ct)%2Cn.left%3De.left%2Cn.right%3De.right%2Cn.parent%3De.parent%2Cn.color%3De.color%2Ce%3D%3D%3Dr.root%3Fr.root%3Dn%3Ae%3D%3D%3De.parent.left%3Fe.parent.left%3Dn%3Ae.parent.right%3Dn%2Cn.left!%3D%3Dm%26%26(n.left.parent%3Dn)%2Cn.right!%3D%3Dm%26%26(n.right.parent%3Dn)%2Cn.size_left%3De.size_left%2Cn.lf_left%3De.lf_left%2CH(r%2Cn))%2Ce.detach()%2Ct.parent.left%3D%3D%3Dt)%7Blet%20o%3DVe(t)%2Ca%3DWe(t)%3Bif(o!%3D%3Dt.parent.size_left%7C%7Ca!%3D%3Dt.parent.lf_left)%7Blet%20l%3Do-t.parent.size_left%2Cf%3Da-t.parent.lf_left%3Bt.parent.size_left%3Do%2Ct.parent.lf_left%3Da%2CC(r%2Ct.parent%2Cl%2Cf)%7D%7Dif(H(r%2Ct.parent)%2Ci)%7BRe()%3Breturn%7Dlet%20s%3Bfor(%3Bt!%3D%3Dr.root%26%26t.color%3D%3D%3D0%3B)t%3D%3D%3Dt.parent.left%3F(s%3Dt.parent.right%2Cs.color%3D%3D%3D1%26%26(s.color%3D0%2Ct.parent.color%3D1%2CG(r%2Ct.parent)%2Cs%3Dt.parent.right)%2Cs.left.color%3D%3D%3D0%26%26s.right.color%3D%3D%3D0%3F(s.color%3D1%2Ct%3Dt.parent)%3A(s.right.color%3D%3D%3D0%26%26(s.left.color%3D0%2Cs.color%3D1%2CZ(r%2Cs)%2Cs%3Dt.parent.right)%2Cs.color%3Dt.parent.color%2Ct.parent.color%3D0%2Cs.right.color%3D0%2CG(r%2Ct.parent)%2Ct%3Dr.root))%3A(s%3Dt.parent.left%2Cs.color%3D%3D%3D1%26%26(s.color%3D0%2Ct.parent.color%3D1%2CZ(r%2Ct.parent)%2Cs%3Dt.parent.left)%2Cs.left.color%3D%3D%3D0%26%26s.right.color%3D%3D%3D0%3F(s.color%3D1%2Ct%3Dt.parent)%3A(s.left.color%3D%3D%3D0%26%26(s.right.color%3D0%2Cs.color%3D1%2CG(r%2Cs)%2Cs%3Dt.parent.left)%2Cs.color%3Dt.parent.color%2Ct.parent.color%3D0%2Cs.left.color%3D0%2CZ(r%2Ct.parent)%2Ct%3Dr.root))%3Bt.color%3D0%2CRe()%7Dfunction%20Ue(r%2Ce)%7Bfor(H(r%2Ce)%3Be!%3D%3Dr.root%26%26e.parent.color%3D%3D%3D1%3B)if(e.parent%3D%3D%3De.parent.parent.left)%7Blet%20t%3De.parent.parent.right%3Bt.color%3D%3D%3D1%3F(e.parent.color%3D0%2Ct.color%3D0%2Ce.parent.parent.color%3D1%2Ce%3De.parent.parent)%3A(e%3D%3D%3De.parent.right%26%26(e%3De.parent%2CG(r%2Ce))%2Ce.parent.color%3D0%2Ce.parent.parent.color%3D1%2CZ(r%2Ce.parent.parent))%7Delse%7Blet%20t%3De.parent.parent.left%3Bt.color%3D%3D%3D1%3F(e.parent.color%3D0%2Ct.color%3D0%2Ce.parent.parent.color%3D1%2Ce%3De.parent.parent)%3A(e%3D%3D%3De.parent.left%26%26(e%3De.parent%2CZ(r%2Ce))%2Ce.parent.color%3D0%2Ce.parent.parent.color%3D1%2CG(r%2Ce.parent.parent))%7Dr.root.color%3D0%7Dfunction%20C(r%2Ce%2Ct%2Cn)%7Bfor(%3Be!%3D%3Dr.root%26%26e!%3D%3Dm%3B)e.parent.left%3D%3D%3De%26%26(e.parent.size_left%2B%3Dt%2Ce.parent.lf_left%2B%3Dn)%2Ce%3De.parent%7Dfunction%20H(r%2Ce)%7Blet%20t%3D0%2Cn%3D0%3Bif(e!%3D%3Dr.root)%7Bfor(%3Be!%3D%3Dr.root%26%26e%3D%3D%3De.parent.right%3B)e%3De.parent%3Bif(e!%3D%3Dr.root)for(e%3De.parent%2Ct%3DVe(e.left)-e.size_left%2Cn%3DWe(e.left)-e.lf_left%2Ce.size_left%2B%3Dt%2Ce.lf_left%2B%3Dn%3Be!%3D%3Dr.root%26%26(t!%3D%3D0%7C%7Cn!%3D%3D0)%3B)e.parent.left%3D%3D%3De%26%26(e.parent.size_left%2B%3Dt%2Ce.parent.lf_left%2B%3Dn)%2Ce%3De.parent%7D%7Dvar%20ft%2CJe%3Dclass%7Bconstructor()%7Bthis%5Bft%5D%3D%22LinkedMap%22%3Bthis._map%3Dnew%20Map%2Cthis._head%3Dvoid%200%2Cthis._tail%3Dvoid%200%2Cthis._size%3D0%2Cthis._state%3D0%7Dclear()%7Bthis._map.clear()%2Cthis._head%3Dvoid%200%2Cthis._tail%3Dvoid%200%2Cthis._size%3D0%2Cthis._state%2B%2B%7DisEmpty()%7Breturn!this._head%26%26!this._tail%7Dget%20size()%7Breturn%20this._size%7Dget%20first()%7Breturn%20this._head%3F.value%7Dget%20last()%7Breturn%20this._tail%3F.value%7Dhas(e)%7Breturn%20this._map.has(e)%7Dget(e%2Ct%3D0)%7Blet%20n%3Dthis._map.get(e)%3Bif(n)return%20t!%3D%3D0%26%26this.touch(n%2Ct)%2Cn.value%7Dset(e%2Ct%2Cn%3D0)%7Blet%20i%3Dthis._map.get(e)%3Bif(i)i.value%3Dt%2Cn!%3D%3D0%26%26this.touch(i%2Cn)%3Belse%7Bswitch(i%3D%7Bkey%3Ae%2Cvalue%3At%2Cnext%3Avoid%200%2Cprevious%3Avoid%200%7D%2Cn)%7Bcase%200%3Athis.addItemLast(i)%3Bbreak%3Bcase%201%3Athis.addItemFirst(i)%3Bbreak%3Bcase%202%3Athis.addItemLast(i)%3Bbreak%3Bdefault%3Athis.addItemLast(i)%3Bbreak%7Dthis._map.set(e%2Ci)%2Cthis._size%2B%2B%7Dreturn%20this%7Ddelete(e)%7Breturn!!this.remove(e)%7Dremove(e)%7Blet%20t%3Dthis._map.get(e)%3Bif(t)return%20this._map.delete(e)%2Cthis.removeItem(t)%2Cthis._size--%2Ct.value%7Dshift()%7Bif(!this._head%26%26!this._tail)return%3Bif(!this._head%7C%7C!this._tail)throw%20new%20Error(%22Invalid%20list%22)%3Blet%20e%3Dthis._head%3Breturn%20this._map.delete(e.key)%2Cthis.removeItem(e)%2Cthis._size--%2Ce.value%7DforEach(e%2Ct)%7Blet%20n%3Dthis._state%2Ci%3Dthis._head%3Bfor(%3Bi%3B)%7Bif(t%3Fe.bind(t)(i.value%2Ci.key%2Cthis)%3Ae(i.value%2Ci.key%2Cthis)%2Cthis._state!%3D%3Dn)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bi%3Di.next%7D%7Dkeys()%7Blet%20e%3Dthis%2Ct%3Dthis._state%2Cn%3Dthis._head%2Ci%3D%7B%5BSymbol.iterator%5D()%7Breturn%20i%7D%2Cnext()%7Bif(e._state!%3D%3Dt)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bif(n)%7Blet%20s%3D%7Bvalue%3An.key%2Cdone%3A!1%7D%3Breturn%20n%3Dn.next%2Cs%7Delse%20return%7Bvalue%3Avoid%200%2Cdone%3A!0%7D%7D%7D%3Breturn%20i%7Dvalues()%7Blet%20e%3Dthis%2Ct%3Dthis._state%2Cn%3Dthis._head%2Ci%3D%7B%5BSymbol.iterator%5D()%7Breturn%20i%7D%2Cnext()%7Bif(e._state!%3D%3Dt)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bif(n)%7Blet%20s%3D%7Bvalue%3An.value%2Cdone%3A!1%7D%3Breturn%20n%3Dn.next%2Cs%7Delse%20return%7Bvalue%3Avoid%200%2Cdone%3A!0%7D%7D%7D%3Breturn%20i%7Dentries()%7Blet%20e%3Dthis%2Ct%3Dthis._state%2Cn%3Dthis._head%2Ci%3D%7B%5BSymbol.iterator%5D()%7Breturn%20i%7D%2Cnext()%7Bif(e._state!%3D%3Dt)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bif(n)%7Blet%20s%3D%7Bvalue%3A%5Bn.key%2Cn.value%5D%2Cdone%3A!1%7D%3Breturn%20n%3Dn.next%2Cs%7Delse%20return%7Bvalue%3Avoid%200%2Cdone%3A!0%7D%7D%7D%3Breturn%20i%7D%5B(ft%3DSymbol.toStringTag%2CSymbol.iterator)%5D()%7Breturn%20this.entries()%7DtrimOld(e)%7Bif(e%3E%3Dthis.size)return%3Bif(e%3D%3D%3D0)%7Bthis.clear()%3Breturn%7Dlet%20t%3Dthis._head%2Cn%3Dthis.size%3Bfor(%3Bt%26%26n%3Ee%3B)this._map.delete(t.key)%2Ct%3Dt.next%2Cn--%3Bthis._head%3Dt%2Cthis._size%3Dn%2Ct%26%26(t.previous%3Dvoid%200)%2Cthis._state%2B%2B%7DtrimNew(e)%7Bif(e%3E%3Dthis.size)return%3Bif(e%3D%3D%3D0)%7Bthis.clear()%3Breturn%7Dlet%20t%3Dthis._tail%2Cn%3Dthis.size%3Bfor(%3Bt%26%26n%3Ee%3B)this._map.delete(t.key)%2Ct%3Dt.previous%2Cn--%3Bthis._tail%3Dt%2Cthis._size%3Dn%2Ct%26%26(t.next%3Dvoid%200)%2Cthis._state%2B%2B%7DaddItemFirst(e)%7Bif(!this._head%26%26!this._tail)this._tail%3De%3Belse%20if(this._head)e.next%3Dthis._head%2Cthis._head.previous%3De%3Belse%20throw%20new%20Error(%22Invalid%20list%22)%3Bthis._head%3De%2Cthis._state%2B%2B%7DaddItemLast(e)%7Bif(!this._head%26%26!this._tail)this._head%3De%3Belse%20if(this._tail)e.previous%3Dthis._tail%2Cthis._tail.next%3De%3Belse%20throw%20new%20Error(%22Invalid%20list%22)%3Bthis._tail%3De%2Cthis._state%2B%2B%7DremoveItem(e)%7Bif(e%3D%3D%3Dthis._head%26%26e%3D%3D%3Dthis._tail)this._head%3Dvoid%200%2Cthis._tail%3Dvoid%200%3Belse%20if(e%3D%3D%3Dthis._head)%7Bif(!e.next)throw%20new%20Error(%22Invalid%20list%22)%3Be.next.previous%3Dvoid%200%2Cthis._head%3De.next%7Delse%20if(e%3D%3D%3Dthis._tail)%7Bif(!e.previous)throw%20new%20Error(%22Invalid%20list%22)%3Be.previous.next%3Dvoid%200%2Cthis._tail%3De.previous%7Delse%7Blet%20t%3De.next%2Cn%3De.previous%3Bif(!t%7C%7C!n)throw%20new%20Error(%22Invalid%20list%22)%3Bt.previous%3Dn%2Cn.next%3Dt%7De.next%3Dvoid%200%2Ce.previous%3Dvoid%200%2Cthis._state%2B%2B%7Dtouch(e%2Ct)%7Bif(!this._head%7C%7C!this._tail)throw%20new%20Error(%22Invalid%20list%22)%3Bif(!(t!%3D%3D1%26%26t!%3D%3D2))%7Bif(t%3D%3D%3D1)%7Bif(e%3D%3D%3Dthis._head)return%3Blet%20n%3De.next%2Ci%3De.previous%3Be%3D%3D%3Dthis._tail%3F(i.next%3Dvoid%200%2Cthis._tail%3Di)%3A(n.previous%3Di%2Ci.next%3Dn)%2Ce.previous%3Dvoid%200%2Ce.next%3Dthis._head%2Cthis._head.previous%3De%2Cthis._head%3De%2Cthis._state%2B%2B%7Delse%20if(t%3D%3D%3D2)%7Bif(e%3D%3D%3Dthis._tail)return%3Blet%20n%3De.next%2Ci%3De.previous%3Be%3D%3D%3Dthis._head%3F(n.previous%3Dvoid%200%2Cthis._head%3Dn)%3A(n.previous%3Di%2Ci.next%3Dn)%2Ce.next%3Dvoid%200%2Ce.previous%3Dthis._tail%2Cthis._tail.next%3De%2Cthis._tail%3De%2Cthis._state%2B%2B%7D%7D%7DtoJSON()%7Blet%20e%3D%5B%5D%3Breturn%20this.forEach((t%2Cn)%3D%3E%7Be.push(%5Bn%2Ct%5D)%7D)%2Ce%7DfromJSON(e)%7Bthis.clear()%3Bfor(let%5Bt%2Cn%5Dof%20e)this.set(t%2Cn)%7D%7D%2Cze%3Dclass%20extends%20Je%7Bconstructor(e%2Ct%3D1)%7Bsuper()%2Cthis._limit%3De%2Cthis._ratio%3DMath.min(Math.max(0%2Ct)%2C1)%7Dget%20limit()%7Breturn%20this._limit%7Dset%20limit(e)%7Bthis._limit%3De%2Cthis.checkTrim()%7Dget%20ratio()%7Breturn%20this._ratio%7Dset%20ratio(e)%7Bthis._ratio%3DMath.min(Math.max(0%2Ce)%2C1)%2Cthis.checkTrim()%7Dget(e%2Ct%3D2)%7Breturn%20super.get(e%2Ct)%7Dpeek(e)%7Breturn%20super.get(e%2C0)%7Dset(e%2Ct)%7Breturn%20super.set(e%2Ct%2C2)%2Cthis%7DcheckTrim()%7Bthis.size%3Ethis._limit%26%26this.trim(Math.round(this._limit*this._ratio))%7D%7D%2Cce%3Dclass%20extends%20ze%7Bconstructor(e%2Ct%3D1)%7Bsuper(e%2Ct)%7Dtrim(e)%7Bthis.trimOld(e)%7Dset(e%2Ct)%7Breturn%20super.set(e%2Ct)%2Cthis.checkTrim()%2Cthis%7D%7D%3Bfunction%20je(r)%7Breturn%20r%3C0%3F0%3Ar%3E255%3F255%3Ar%7C0%7Dvar%20de%3Dclass%20r%7Bconstructor(e)%7Blet%20t%3Dje(e)%3Bthis._defaultValue%3Dt%2Cthis._asciiMap%3Dr._createAsciiMap(t)%2Cthis._map%3Dnew%20Map%7Dstatic%20_createAsciiMap(e)%7Blet%20t%3Dnew%20Uint8Array(256)%3Breturn%20t.fill(e)%2Ct%7Dset(e%2Ct)%7Blet%20n%3Dje(t)%3Be%3E%3D0%26%26e%3C256%3Fthis._asciiMap%5Be%5D%3Dn%3Athis._map.set(e%2Cn)%7Dget(e)%7Breturn%20e%3E%3D0%26%26e%3C256%3Fthis._asciiMap%5Be%5D%3Athis._map.get(e)%7C%7Cthis._defaultValue%7Dclear()%7Bthis._asciiMap.fill(this._defaultValue)%2Cthis._map.clear()%7D%7D%3Bvar%20Ke%3Dclass%20extends%20de%7Bconstructor(t%2Cn)%7Bsuper(0)%3Bthis._segmenter%3Dnull%3Bthis._cachedLine%3Dnull%3Bthis._cachedSegments%3D%5B%5D%3Bthis.intlSegmenterLocales%3Dn%2Cthis.intlSegmenterLocales.length%3E0%3Fthis._segmenter%3Dnew%20Intl.Segmenter(this.intlSegmenterLocales%2C%7Bgranularity%3A%22word%22%7D)%3Athis._segmenter%3Dnull%3Bfor(let%20i%3D0%2Cs%3Dt.length%3Bi%3Cs%3Bi%2B%2B)this.set(t.charCodeAt(i)%2C2)%3Bthis.set(32%2C1)%2Cthis.set(9%2C1)%7DfindPrevIntlWordBeforeOrAtOffset(t%2Cn)%7Blet%20i%3Dnull%3Bfor(let%20s%20of%20this._getIntlSegmenterWordsOnLine(t))%7Bif(s.index%3En)break%3Bi%3Ds%7Dreturn%20i%7DfindNextIntlWordAtOrAfterOffset(t%2Cn)%7Bfor(let%20i%20of%20this._getIntlSegmenterWordsOnLine(t))if(!(i.index%3Cn))return%20i%3Breturn%20null%7D_getIntlSegmenterWordsOnLine(t)%7Breturn%20this._segmenter%3Fthis._cachedLine%3D%3D%3Dt%3Fthis._cachedSegments%3A(this._cachedLine%3Dt%2Cthis._cachedSegments%3Dthis._filterWordSegments(this._segmenter.segment(t))%2Cthis._cachedSegments)%3A%5B%5D%7D_filterWordSegments(t)%7Blet%20n%3D%5B%5D%3Bfor(let%20i%20of%20t)this._isWordLike(i)%26%26n.push(i)%3Breturn%20n%7D_isWordLike(t)%7Breturn!!t.isWordLike%7D%7D%2Cut%3Dnew%20ce(10)%3Bfunction%20ct(r%2Ce)%7Blet%20t%3D%60%24%7Br%7D%2F%24%7Be.join(%22%2C%22)%7D%60%2Cn%3Dut.get(t)%3Breturn%20n%7C%7C(n%3Dnew%20Ke(r%2Ce)%2Cut.set(t%2Cn))%2Cn%7Dfunction%20Ft(r)%7Breturn%20r.replace(%2F%5B%5C%5C%5C%7B%5C%7D%5C*%5C%2B%5C%3F%5C%7C%5C%5E%5C%24%5C.%5C%5B%5C%5D%5C(%5C)%5D%2Fg%2C%22%5C%5C%24%26%22)%7Dfunction%20Rt(r)%7Breturn%2055296%3C%3Dr%26%26r%3C%3D56319%7Dfunction%20Pt(r)%7Breturn%2056320%3C%3Dr%26%26r%3C%3D57343%7Dfunction%20Vt(r%2Ce)%7Breturn(r-55296%3C%3C10)%2B(e-56320)%2B65536%7Dfunction%20dt(r%2Ce%2Ct)%7Blet%20n%3Dr.charCodeAt(t)%3Bif(Rt(n)%26%26t%2B1%3Ce)%7Blet%20i%3Dr.charCodeAt(t%2B1)%3Bif(Pt(i))return%20Vt(n%2Ci)%7Dreturn%20n%7Dfunction%20ht(r%2Ce%2Ct%3D%7B%7D)%7Bif(!r)throw%20new%20Error(%22Cannot%20create%20regex%20from%20empty%20string%22)%3Be%7C%7C(r%3DFt(r))%2Ct.wholeWord%26%26(%2F%5CB%2F.test(r.charAt(0))%7C%7C(r%3D%22%5C%5Cb%22%2Br)%2C%2F%5CB%2F.test(r.charAt(r.length-1))%7C%7C(r%3Dr%2B%22%5C%5Cb%22))%3Blet%20n%3D%22%22%3Breturn%20t.global%26%26(n%2B%3D%22g%22)%2Ct.matchCase%7C%7C(n%2B%3D%22i%22)%2Ct.multiline%26%26(n%2B%3D%22m%22)%2Ct.unicode%26%26(n%2B%3D%22u%22)%2Cnew%20RegExp(r%2Cn)%7Dvar%20De%3Dclass%7Bconstructor(e)%7Blet%20t%3D%5B%5D%2Cn%3D0%3Bfor(let%20i%3D0%2Cs%3De.length%3Bi%3Cs%3Bi%2B%2B)e.charCodeAt(i)%3D%3D%3D10%26%26(t%5Bn%2B%2B%5D%3Di)%3Bthis._lineFeedsOffsets%3Dt%7DfindLineFeedCountBeforeOffset(e)%7Blet%20t%3Dthis._lineFeedsOffsets%2Cn%3D0%2Ci%3Dt.length-1%3Bif(i%3D%3D%3D-1%7C%7Ce%3C%3Dt%5B0%5D)return%200%3Bfor(%3Bn%3Ci%3B)%7Blet%20s%3Dn%2B((i-n)%2F2%3E%3E0)%3Bt%5Bs%5D%3E%3De%3Fi%3Ds-1%3At%5Bs%2B1%5D%3E%3De%3F(n%3Ds%2Ci%3Ds)%3An%3Ds%2B1%7Dreturn%20n%2B1%7D%7D%2Che%3Dclass%7Bstatic%20findMatches(e%2Ct%2Cn%2Ci%2Cs)%7Blet%20o%3Dt.parseSearchRequest()%3Breturn%20o%3Fo.regex.multiline%3Fthis._doFindMatchesMultiline(e%2Cn%2Cnew%20K(o.wordSeparators%2Co.regex)%2Ci%2Cs)%3Athis._doFindMatchesLineByLine(e%2Cn%2Co%2Ci%2Cs)%3A%5B%5D%7Dstatic%20_doFindMatchesMultiline(e%2Ct%2Cn%2Ci%2Cs)%7Blet%20o%3Dt.getStartPosition()%2Ca%3De.getOffsetAt(o.lineNumber%2Co.column)%2Cl%3De.getValueInRange(t%2C1)%2Cf%3De.getEOL()%3D%3D%3D%60%5Cr%0A%60%3Fnew%20De(l)%3Anull%2Cu%3D%5B%5D%2Cc%3D0%2Cd%3Bfor(n.reset(0)%3Bd%3Dn.next(l)%3B)if(u%5Bc%2B%2B%5D%3Dee(this._getMultilineMatchRange(e%2Ca%2Cl%2Cf%2Cd.index%2Cd%5B0%5D)%2Cd%2Ci)%2Cc%3E%3Ds)return%20u%3Breturn%20u%7Dstatic%20_getMultilineMatchRange(e%2Ct%2Cn%2Ci%2Cs%2Co)%7Blet%20a%2Cl%3D0%3Bi%3F(l%3Di.findLineFeedCountBeforeOffset(s)%2Ca%3Dt%2Bs%2Bl)%3Aa%3Dt%2Bs%3Blet%20f%3Bif(i)%7Blet%20b%3Di.findLineFeedCountBeforeOffset(s%2Bo.length)-l%3Bf%3Da%2Bo.length%2Bb%7Delse%20f%3Da%2Bo.length%3Blet%20u%3De.positionAt(a)%2Cc%3De.positionAt(f)%3Breturn%20new%20A(u.lineNumber%2Cu.column%2Cc.lineNumber%2Cc.column)%7Dstatic%20_doFindMatchesLineByLine(e%2Ct%2Cn%2Ci%2Cs)%7Blet%20o%3D%5B%5D%2Ca%3D0%3Bif(t.startLineNumber%3D%3D%3Dt.endLineNumber)%7Blet%20f%3De.getLineContent(t.startLineNumber).substring(t.startColumn-1%2Ct.endColumn-1)%3Ba%3Dthis._findMatchesInLine(n%2Cf%2Ct.startLineNumber%2Ct.startColumn-1%2Ca%2Co%2Ci%2Cs)%7Dlet%20l%3De.getLineContent(t.startLineNumber).substring(t.startColumn-1)%3Ba%3Dthis._findMatchesInLine(n%2Cl%2Ct.startLineNumber%2Ct.startColumn-1%2Ca%2Co%2Ci%2Cs)%3Bfor(let%20f%3Dt.startLineNumber%2B1%3Bf%3Ct.endLineNumber%26%26a%3Cs%3Bf%2B%2B)a%3Dthis._findMatchesInLine(n%2Ce.getLineContent(f)%2Cf%2C0%2Ca%2Co%2Ci%2Cs)%3Bif(a%3Cs)%7Blet%20f%3De.getLineContent(t.endLineNumber).substring(0%2Ct.endColumn-1)%3Ba%3Dthis._findMatchesInLine(n%2Cf%2Ct.endLineNumber%2C0%2Ca%2Co%2Ci%2Cs)%7Dreturn%20o%7Dstatic%20_findMatchesInLine(e%2Ct%2Cn%2Ci%2Cs%2Co%2Ca%2Cl)%7Blet%20f%3De.wordSeparators%3Bif(!a%26%26e.simpleSearch)%7Blet%20d%3De.simpleSearch%2Cb%3Dd.length%2Ck%3Dt.length%2CL%3D-b%3Bfor(%3B(L%3Dt.indexOf(d%2CL%2Bb))!%3D%3D-1%3B)if((!f%7C%7Cpe(f%2Ct%2Ck%2CL%2Cb))%26%26(o%5Bs%2B%2B%5D%3Dnew%20V(new%20A(n%2CL%2B1%2Bi%2Cn%2CL%2B1%2Bb%2Bi)%2Cnull)%2Cs%3E%3Dl))return%20s%7Dlet%20u%3Dnew%20K(e.wordSeparators%2Ce.regex)%2Cc%3Bu.reset(0)%3Bdo%20if(c%3Du.next(t)%2Cc%26%26(o%5Bs%2B%2B%5D%3Dee(new%20A(n%2Cc.index%2B1%2Bi%2Cn%2Cc.index%2B1%2Bc%5B0%5D.length%2Bi)%2Cc%2Ca)%2Cs%3E%3Dl))return%20s%3Bwhile(c)%3Breturn%20s%7D%7D%2CY%3Dclass%7Bconstructor(e%2Ct%2Cn%2Ci)%7Bthis.searchString%3De%2Cthis.isRegex%3Dt%2Cthis.matchCase%3Dn%2Cthis.wordSeparators%3Di%7DparseSearchRequest()%7Bif(this.searchString%3D%3D%3D%22%22)return%20null%3Blet%20e%3Bthis.isRegex%3Fe%3DWt(this.searchString)%3Ae%3Dthis.searchString.indexOf(%60%0A%60)%3E%3D0%3Blet%20t%3Dnull%3Btry%7Bt%3Dht(this.searchString%2Cthis.isRegex%2C%7BmatchCase%3Athis.matchCase%2CwholeWord%3A!1%2Cmultiline%3Ae%2Cglobal%3A!0%2Cunicode%3A!0%7D)%7Dcatch%7Breturn%20null%7Dif(!t)return%20null%3Blet%20n%3D!this.isRegex%26%26!e%3Breturn%20n%26%26this.searchString.toLowerCase()!%3D%3Dthis.searchString.toUpperCase()%26%26(n%3Dthis.matchCase)%2Cnew%20fe(t%2Cthis.wordSeparators%3Fct(this.wordSeparators%2C%5B%5D)%3Anull%2Cn%3Fthis.searchString%3Anull)%7D%7D%3Bfunction%20Wt(r)%7Bif(!r%7C%7Cr.length%3D%3D%3D0)return!1%3Bfor(let%20e%3D0%2Ct%3Dr.length%3Be%3Ct%3Be%2B%2B)%7Blet%20n%3Dr.charCodeAt(e)%3Bif(n%3D%3D%3D10)return!0%3Bif(n%3D%3D%3D92)%7Bif(e%2B%2B%2Ce%3E%3Dt)break%3Blet%20i%3Dr.charCodeAt(e)%3Bif(i%3D%3D%3D110%7C%7Ci%3D%3D%3D114%7C%7Ci%3D%3D%3D87)return!0%7D%7Dreturn!1%7Dfunction%20Ut(r%2Ce%2Ct%2Cn%2Ci)%7Bif(n%3D%3D%3D0)return!0%3Blet%20s%3De.charCodeAt(n-1)%3Bif(r.get(s)!%3D%3D0%7C%7Cs%3D%3D%3D13%7C%7Cs%3D%3D%3D10)return!0%3Bif(i%3E0)%7Blet%20o%3De.charCodeAt(n)%3Bif(r.get(o)!%3D%3D0)return!0%7Dreturn!1%7Dfunction%20Jt(r%2Ce%2Ct%2Cn%2Ci)%7Bif(n%2Bi%3D%3D%3Dt)return!0%3Blet%20s%3De.charCodeAt(n%2Bi)%3Bif(r.get(s)!%3D%3D0%7C%7Cs%3D%3D%3D13%7C%7Cs%3D%3D%3D10)return!0%3Bif(i%3E0)%7Blet%20o%3De.charCodeAt(n%2Bi-1)%3Bif(r.get(o)!%3D%3D0)return!0%7Dreturn!1%7Dfunction%20pe(r%2Ce%2Ct%2Cn%2Ci)%7Breturn%20Ut(r%2Ce%2Ct%2Cn%2Ci)%26%26Jt(r%2Ce%2Ct%2Cn%2Ci)%7Dvar%20K%3Dclass%7Bconstructor(e%2Ct)%7Bthis._wordSeparators%3De%2Cthis._searchRegex%3Dt%2Cthis._prevMatchStartIndex%3D-1%2Cthis._prevMatchLength%3D0%7Dreset(e)%7Bthis._searchRegex.lastIndex%3De%2Cthis._prevMatchStartIndex%3D-1%2Cthis._prevMatchLength%3D0%7Dnext(e)%7Blet%20t%3De.length%2Cn%3Bdo%7Bif(this._prevMatchStartIndex%2Bthis._prevMatchLength%3D%3D%3Dt%7C%7C(n%3Dthis._searchRegex.exec(e)%2C!n))return%20null%3Blet%20i%3Dn.index%2Cs%3Dn%5B0%5D.length%3Bif(i%3D%3D%3Dthis._prevMatchStartIndex%26%26s%3D%3D%3Dthis._prevMatchLength)%7Bif(s%3D%3D%3D0)%7Bdt(e%2Ct%2Cthis._searchRegex.lastIndex)%3E65535%3Fthis._searchRegex.lastIndex%2B%3D2%3Athis._searchRegex.lastIndex%2B%3D1%3Bcontinue%7Dreturn%20null%7Dif(this._prevMatchStartIndex%3Di%2Cthis._prevMatchLength%3Ds%2C!this._wordSeparators%7C%7Cpe(this._wordSeparators%2Ce%2Ct%2Ci%2Cs))return%20n%7Dwhile(n)%3Breturn%20null%7D%7D%3Bfunction%20ee(r%2Ce%2Ct)%7Bif(!t)return%20new%20V(r%2Cnull)%3Blet%20n%3D%5B%5D%3Bfor(let%20i%3D0%2Cs%3De.length%3Bi%3Cs%3Bi%2B%2B)n%5Bi%5D%3De%5Bi%5D%3Breturn%20new%20V(r%2Cn)%7Dvar%20P%3D65535%3Bfunction%20pt(r)%7Blet%20e%3Breturn%20r%5Br.length-1%5D%3C65536%3Fe%3Dnew%20Uint16Array(r.length)%3Ae%3Dnew%20Uint32Array(r.length)%2Ce.set(r%2C0)%2Ce%7Dvar%20qe%3Dclass%7Bconstructor(e%2Ct%2Cn%2Ci%2Cs)%7Bthis.lineStarts%3De%3Bthis.cr%3Dt%3Bthis.lf%3Dn%3Bthis.crlf%3Di%3Bthis.isBasicASCII%3Ds%7D%7D%3Bfunction%20E(r%2Ce%3D!0)%7Blet%20t%3D%5B0%5D%2Cn%3D1%3Bfor(let%20i%3D0%2Cs%3Dr.length%3Bi%3Cs%3Bi%2B%2B)%7Blet%20o%3Dr.charCodeAt(i)%3Bo%3D%3D%3D13%3Fi%2B1%3Cs%26%26r.charCodeAt(i%2B1)%3D%3D%3D10%3F(t%5Bn%2B%2B%5D%3Di%2B2%2Ci%2B%2B)%3At%5Bn%2B%2B%5D%3Di%2B1%3Ao%3D%3D%3D10%26%26(t%5Bn%2B%2B%5D%3Di%2B1)%7Dreturn%20e%3Fpt(t)%3At%7Dfunction%20gt(r%2Ce)%7Br.length%3D0%2Cr%5B0%5D%3D0%3Blet%20t%3D1%2Cn%3D0%2Ci%3D0%2Cs%3D0%2Co%3D!0%3Bfor(let%20l%3D0%2Cf%3De.length%3Bl%3Cf%3Bl%2B%2B)%7Blet%20u%3De.charCodeAt(l)%3Bu%3D%3D%3D13%3Fl%2B1%3Cf%26%26e.charCodeAt(l%2B1)%3D%3D%3D10%3F(s%2B%2B%2Cr%5Bt%2B%2B%5D%3Dl%2B2%2Cl%2B%2B)%3A(n%2B%2B%2Cr%5Bt%2B%2B%5D%3Dl%2B1)%3Au%3D%3D%3D10%3F(i%2B%2B%2Cr%5Bt%2B%2B%5D%3Dl%2B1)%3Ao%26%26u!%3D%3D9%26%26(u%3C32%7C%7Cu%3E126)%26%26(o%3D!1)%7Dlet%20a%3Dnew%20qe(pt(r)%2Cn%2Ci%2Cs%2Co)%3Breturn%20r.length%3D0%2Ca%7Dvar%20v%3Dclass%7Bconstructor(e%2Ct%2Cn%2Ci%2Cs)%7Bthis.bufferIndex%3De%2Cthis.start%3Dt%2Cthis.end%3Dn%2Cthis.lineFeedCnt%3Di%2Cthis.length%3Ds%7D%7D%2CM%3Dclass%7Bconstructor(e%2Ct)%7Bthis.buffer%3De%2Cthis.lineStarts%3Dt%7D%7D%2C%24e%3Dclass%7Bconstructor(e%2Ct)%7Bthis._pieces%3D%5B%5D%2Cthis._tree%3De%2Cthis._BOM%3Dt%2Cthis._index%3D0%2Ce.root!%3D%3Dm%26%26e.iterate(e.root%2Cn%3D%3E(n!%3D%3Dm%26%26this._pieces.push(n.piece)%2C!0))%7Dread()%7Breturn%20this._pieces.length%3D%3D%3D0%3Fthis._index%3D%3D%3D0%3F(this._index%2B%2B%2Cthis._BOM)%3Anull%3Athis._index%3Ethis._pieces.length-1%3Fnull%3Athis._index%3D%3D%3D0%3Fthis._BOM%2Bthis._tree.getPieceContent(this._pieces%5Bthis._index%2B%2B%5D)%3Athis._tree.getPieceContent(this._pieces%5Bthis._index%2B%2B%5D)%7D%7D%2CXe%3Dclass%7Bconstructor(e)%7Bthis._limit%3De%2Cthis._cache%3D%5B%5D%7Dget(e)%7Bfor(let%20t%3Dthis._cache.length-1%3Bt%3E%3D0%3Bt--)%7Blet%20n%3Dthis._cache%5Bt%5D%3Bif(n.nodeStartOffset%3C%3De%26%26n.nodeStartOffset%2Bn.node.piece.length%3E%3De)return%20n%7Dreturn%20null%7Dget2(e)%7Bfor(let%20t%3Dthis._cache.length-1%3Bt%3E%3D0%3Bt--)%7Blet%20n%3Dthis._cache%5Bt%5D%3Bif(n.nodeStartLineNumber%26%26n.nodeStartLineNumber%3Ce%26%26n.nodeStartLineNumber%2Bn.node.piece.lineFeedCnt%3E%3De)return%20n%7Dreturn%20null%7Dset(e)%7Bthis._cache.length%3E%3Dthis._limit%26%26this._cache.shift()%2Cthis._cache.push(e)%7Dvalidate(e)%7Blet%20t%3D!1%2Cn%3Dthis._cache%3Bfor(let%20i%3D0%3Bi%3Cn.length%3Bi%2B%2B)%7Blet%20s%3Dn%5Bi%5D%3Bif(s.node.parent%3D%3D%3Dnull%7C%7Cs.nodeStartOffset%3E%3De)%7Bn%5Bi%5D%3Dnull%2Ct%3D!0%3Bcontinue%7D%7Dif(t)%7Blet%20i%3D%5B%5D%3Bfor(let%20s%20of%20n)s!%3D%3Dnull%26%26i.push(s)%3Bthis._cache%3Di%7D%7D%7D%2Cge%3Dclass%7Bconstructor(e%2Ct%2Cn)%7Bthis.create(e%2Ct%2Cn)%7Dcreate(e%2Ct%2Cn)%7Bthis._buffers%3D%5Bnew%20M(%22%22%2C%5B0%5D)%5D%2Cthis._lastChangeBufferPos%3D%7Bline%3A0%2Ccolumn%3A0%7D%2Cthis.root%3Dm%2Cthis._lineCnt%3D1%2Cthis._length%3D0%2Cthis._EOL%3Dt%2Cthis._EOLLength%3Dt.length%2Cthis._EOLNormalized%3Dn%3Blet%20i%3Dnull%3Bfor(let%20s%3D0%2Co%3De.length%3Bs%3Co%3Bs%2B%2B)if(e%5Bs%5D.buffer.length%3E0)%7Be%5Bs%5D.lineStarts%7C%7C(e%5Bs%5D.lineStarts%3DE(e%5Bs%5D.buffer))%3Blet%20a%3Dnew%20v(s%2B1%2C%7Bline%3A0%2Ccolumn%3A0%7D%2C%7Bline%3Ae%5Bs%5D.lineStarts.length-1%2Ccolumn%3Ae%5Bs%5D.buffer.length-e%5Bs%5D.lineStarts%5Be%5Bs%5D.lineStarts.length-1%5D%7D%2Ce%5Bs%5D.lineStarts.length-1%2Ce%5Bs%5D.buffer.length)%3Bthis._buffers.push(e%5Bs%5D)%2Ci%3Dthis.rbInsertRight(i%2Ca)%7Dthis._searchCache%3Dnew%20Xe(1)%2Cthis._lastVisitedLine%3D%7BlineNumber%3A0%2Cvalue%3A%22%22%7D%2Cthis.computeBufferMetadata()%7DnormalizeEOL(e)%7Blet%20t%3DP%2Cn%3Dt-Math.floor(t%2F3)%2Ci%3Dn*2%2Cs%3D%22%22%2Co%3D0%2Ca%3D%5B%5D%3Bif(this.iterate(this.root%2Cl%3D%3E%7Blet%20f%3Dthis.getNodeContent(l)%2Cu%3Df.length%3Bif(o%3C%3Dn%7C%7Co%2Bu%3Ci)return%20s%2B%3Df%2Co%2B%3Du%2C!0%3Blet%20c%3Ds.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ce)%3Breturn%20a.push(new%20M(c%2CE(c)))%2Cs%3Df%2Co%3Du%2C!0%7D)%2Co%3E0)%7Blet%20l%3Ds.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ce)%3Ba.push(new%20M(l%2CE(l)))%7Dthis.create(a%2Ce%2C!0)%7DgetEOL()%7Breturn%20this._EOL%7DsetEOL(e)%7Bthis._EOL%3De%2Cthis._EOLLength%3Dthis._EOL.length%2Cthis.normalizeEOL(e)%7DcreateSnapshot(e)%7Breturn%20new%20%24e(this%2Ce)%7Dequal(e)%7Bif(this.getLength()!%3D%3De.getLength()%7C%7Cthis.getLineCount()!%3D%3De.getLineCount())return!1%3Blet%20t%3D0%3Breturn%20this.iterate(this.root%2Ci%3D%3E%7Bif(i%3D%3D%3Dm)return!0%3Blet%20s%3Dthis.getNodeContent(i)%2Co%3Ds.length%2Ca%3De.nodeAt(t)%2Cl%3De.nodeAt(t%2Bo)%2Cf%3De.getValueInRange2(a%2Cl)%3Breturn%20t%2B%3Do%2Cs%3D%3D%3Df%7D)%7DgetOffsetAt(e%2Ct)%7Blet%20n%3D0%2Ci%3Dthis.root%3Bfor(%3Bi!%3D%3Dm%3B)if(i.left!%3D%3Dm%26%26i.lf_left%2B1%3E%3De)i%3Di.left%3Belse%20if(i.lf_left%2Bi.piece.lineFeedCnt%2B1%3E%3De)%7Bn%2B%3Di.size_left%3Blet%20s%3Dthis.getAccumulatedValue(i%2Ce-i.lf_left-2)%3Breturn%20n%2B%3Ds%2Bt-1%7Delse%20e-%3Di.lf_left%2Bi.piece.lineFeedCnt%2Cn%2B%3Di.size_left%2Bi.piece.length%2Ci%3Di.right%3Breturn%20n%7DgetPositionAt(e)%7Be%3DMath.floor(e)%2Ce%3DMath.max(0%2Ce)%3Blet%20t%3Dthis.root%2Cn%3D0%2Ci%3De%3Bfor(%3Bt!%3D%3Dm%3B)if(t.size_left!%3D%3D0%26%26t.size_left%3E%3De)t%3Dt.left%3Belse%20if(t.size_left%2Bt.piece.length%3E%3De)%7Blet%20s%3Dthis.getIndexOf(t%2Ce-t.size_left)%3Bif(n%2B%3Dt.lf_left%2Bs.index%2Cs.index%3D%3D%3D0)%7Blet%20o%3Dthis.getOffsetAt(n%2B1%2C1)%2Ca%3Di-o%3Breturn%20new%20R(n%2B1%2Ca%2B1)%7Dreturn%20new%20R(n%2B1%2Cs.remainder%2B1)%7Delse%20if(e-%3Dt.size_left%2Bt.piece.length%2Cn%2B%3Dt.lf_left%2Bt.piece.lineFeedCnt%2Ct.right%3D%3D%3Dm)%7Blet%20s%3Dthis.getOffsetAt(n%2B1%2C1)%2Co%3Di-e-s%3Breturn%20new%20R(n%2B1%2Co%2B1)%7Delse%20t%3Dt.right%3Breturn%20new%20R(1%2C1)%7DgetValueInRange(e%2Ct)%7Bif(e.startLineNumber%3D%3D%3De.endLineNumber%26%26e.startColumn%3D%3D%3De.endColumn)return%22%22%3Blet%20n%3Dthis.nodeAt2(e.startLineNumber%2Ce.startColumn)%2Ci%3Dthis.nodeAt2(e.endLineNumber%2Ce.endColumn)%2Cs%3Dthis.getValueInRange2(n%2Ci)%3Breturn%20t%3Ft!%3D%3Dthis._EOL%7C%7C!this._EOLNormalized%3Fs.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ct)%3At%3D%3D%3Dthis.getEOL()%26%26this._EOLNormalized%3Fs%3As.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ct)%3As%7DgetValueInRange2(e%2Ct)%7Bif(e.node%3D%3D%3Dt.node)%7Blet%20a%3De.node%2Cl%3Dthis._buffers%5Ba.piece.bufferIndex%5D.buffer%2Cf%3Dthis.offsetInBuffer(a.piece.bufferIndex%2Ca.piece.start)%3Breturn%20l.substring(f%2Be.remainder%2Cf%2Bt.remainder)%7Dlet%20n%3De.node%2Ci%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cs%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%2Co%3Di.substring(s%2Be.remainder%2Cs%2Bn.piece.length)%3Bfor(n%3Dn.next()%3Bn!%3D%3Dm%3B)%7Blet%20a%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cl%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Bif(n%3D%3D%3Dt.node)%7Bo%2B%3Da.substring(l%2Cl%2Bt.remainder)%3Bbreak%7Delse%20o%2B%3Da.substr(l%2Cn.piece.length)%3Bn%3Dn.next()%7Dreturn%20o%7DgetLinesContent()%7Blet%20e%3D%5B%5D%2Ct%3D0%2Cn%3D%22%22%2Ci%3D!1%3Breturn%20this.iterate(this.root%2Cs%3D%3E%7Bif(s%3D%3D%3Dm)return!0%3Blet%20o%3Ds.piece%2Ca%3Do.length%3Bif(a%3D%3D%3D0)return!0%3Blet%20l%3Dthis._buffers%5Bo.bufferIndex%5D.buffer%2Cf%3Dthis._buffers%5Bo.bufferIndex%5D.lineStarts%2Cu%3Do.start.line%2Cc%3Do.end.line%2Cd%3Df%5Bu%5D%2Bo.start.column%3Bif(i%26%26(l.charCodeAt(d)%3D%3D%3D10%26%26(d%2B%2B%2Ca--)%2Ce%5Bt%2B%2B%5D%3Dn%2Cn%3D%22%22%2Ci%3D!1%2Ca%3D%3D%3D0))return!0%3Bif(u%3D%3D%3Dc)return!this._EOLNormalized%26%26l.charCodeAt(d%2Ba-1)%3D%3D%3D13%3F(i%3D!0%2Cn%2B%3Dl.substr(d%2Ca-1))%3An%2B%3Dl.substr(d%2Ca)%2C!0%3Bn%2B%3Dthis._EOLNormalized%3Fl.substring(d%2CMath.max(d%2Cf%5Bu%2B1%5D-this._EOLLength))%3Al.substring(d%2Cf%5Bu%2B1%5D).replace(%2F(%5Cr%5Cn%7C%5Cr%7C%5Cn)%24%2F%2C%22%22)%2Ce%5Bt%2B%2B%5D%3Dn%3Bfor(let%20b%3Du%2B1%3Bb%3Cc%3Bb%2B%2B)n%3Dthis._EOLNormalized%3Fl.substring(f%5Bb%5D%2Cf%5Bb%2B1%5D-this._EOLLength)%3Al.substring(f%5Bb%5D%2Cf%5Bb%2B1%5D).replace(%2F(%5Cr%5Cn%7C%5Cr%7C%5Cn)%24%2F%2C%22%22)%2Ce%5Bt%2B%2B%5D%3Dn%3Breturn!this._EOLNormalized%26%26l.charCodeAt(f%5Bc%5D%2Bo.end.column-1)%3D%3D%3D13%3F(i%3D!0%2Co.end.column%3D%3D%3D0%3Ft--%3An%3Dl.substr(f%5Bc%5D%2Co.end.column-1))%3An%3Dl.substr(f%5Bc%5D%2Co.end.column)%2C!0%7D)%2Ci%26%26(e%5Bt%2B%2B%5D%3Dn%2Cn%3D%22%22)%2Ce%5Bt%2B%2B%5D%3Dn%2Ce%7DgetLength()%7Breturn%20this._length%7DgetLineCount()%7Breturn%20this._lineCnt%7DgetLineContent(e)%7Breturn%20this._lastVisitedLine.lineNumber%3D%3D%3De%3Fthis._lastVisitedLine.value%3A(this._lastVisitedLine.lineNumber%3De%2Ce%3D%3D%3Dthis._lineCnt%3Fthis._lastVisitedLine.value%3Dthis.getLineRawContent(e)%3Athis._EOLNormalized%3Fthis._lastVisitedLine.value%3Dthis.getLineRawContent(e%2Cthis._EOLLength)%3Athis._lastVisitedLine.value%3Dthis.getLineRawContent(e).replace(%2F(%5Cr%5Cn%7C%5Cr%7C%5Cn)%24%2F%2C%22%22)%2Cthis._lastVisitedLine.value)%7D_getCharCode(e)%7Bif(e.remainder%3D%3D%3De.node.piece.length)%7Blet%20t%3De.node.next()%3Bif(!t)return%200%3Blet%20n%3Dthis._buffers%5Bt.piece.bufferIndex%5D%2Ci%3Dthis.offsetInBuffer(t.piece.bufferIndex%2Ct.piece.start)%3Breturn%20n.buffer.charCodeAt(i)%7Delse%7Blet%20t%3Dthis._buffers%5Be.node.piece.bufferIndex%5D%2Ci%3Dthis.offsetInBuffer(e.node.piece.bufferIndex%2Ce.node.piece.start)%2Be.remainder%3Breturn%20t.buffer.charCodeAt(i)%7D%7DgetLineCharCode(e%2Ct)%7Blet%20n%3Dthis.nodeAt2(e%2Ct%2B1)%3Breturn%20this._getCharCode(n)%7DgetLineLength(e)%7Bif(e%3D%3D%3Dthis.getLineCount())%7Blet%20t%3Dthis.getOffsetAt(e%2C1)%3Breturn%20this.getLength()-t%7Dreturn%20this.getOffsetAt(e%2B1%2C1)-this.getOffsetAt(e%2C1)-this._EOLLength%7DgetCharCode(e)%7Blet%20t%3Dthis.nodeAt(e)%3Breturn%20this._getCharCode(t)%7DgetNearestChunk(e)%7Blet%20t%3Dthis.nodeAt(e)%3Bif(t.remainder%3D%3D%3Dt.node.piece.length)%7Blet%20n%3Dt.node.next()%3Bif(!n%7C%7Cn%3D%3D%3Dm)return%22%22%3Blet%20i%3Dthis._buffers%5Bn.piece.bufferIndex%5D%2Cs%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Breturn%20i.buffer.substring(s%2Cs%2Bn.piece.length)%7Delse%7Blet%20n%3Dthis._buffers%5Bt.node.piece.bufferIndex%5D%2Ci%3Dthis.offsetInBuffer(t.node.piece.bufferIndex%2Ct.node.piece.start)%2Cs%3Di%2Bt.remainder%2Co%3Di%2Bt.node.piece.length%3Breturn%20n.buffer.substring(s%2Co)%7D%7DfindMatchesInNode(e%2Ct%2Cn%2Ci%2Cs%2Co%2Ca%2Cl%2Cf%2Cu%2Cc)%7Blet%20d%3Dthis._buffers%5Be.piece.bufferIndex%5D%2Cb%3Dthis.offsetInBuffer(e.piece.bufferIndex%2Ce.piece.start)%2Ck%3Dthis.offsetInBuffer(e.piece.bufferIndex%2Cs)%2CL%3Dthis.offsetInBuffer(e.piece.bufferIndex%2Co)%2CS%2Cw%3D%7Bline%3A0%2Ccolumn%3A0%7D%2CI%2CN%3Bt._wordSeparators%3F(I%3Dd.buffer.substring(k%2CL)%2CN%3D_%3D%3E_%2Bk%2Ct.reset(0))%3A(I%3Dd.buffer%2CN%3D_%3D%3E_%2Ct.reset(k))%3Bdo%20if(S%3Dt.next(I)%2CS)%7Bif(N(S.index)%3E%3DL)return%20u%3Bthis.positionInBuffer(e%2CN(S.index)-b%2Cw)%3Blet%20_%3Dthis.getLineFeedCnt(e.piece.bufferIndex%2Cs%2Cw)%2Cg%3Dw.line%3D%3D%3Ds.line%3Fw.column-s.column%2Bi%3Aw.column%2B1%2Ch%3Dg%2BS%5B0%5D.length%3Bif(c%5Bu%2B%2B%5D%3Dee(new%20A(n%2B_%2Cg%2Cn%2B_%2Ch)%2CS%2Cl)%2CN(S.index)%2BS%5B0%5D.length%3E%3DL%7C%7Cu%3E%3Df)return%20u%7Dwhile(S)%3Breturn%20u%7DfindMatchesLineByLine(e%2Ct%2Cn%2Ci)%7Blet%20s%3D%5B%5D%2Co%3D0%2Ca%3Dnew%20K(t.wordSeparators%2Ct.regex)%2Cl%3Dthis.nodeAt2(e.startLineNumber%2Ce.startColumn)%3Bif(l%3D%3D%3Dnull)return%5B%5D%3Blet%20f%3Dthis.nodeAt2(e.endLineNumber%2Ce.endColumn)%3Bif(f%3D%3D%3Dnull)return%5B%5D%3Blet%20u%3Dthis.positionInBuffer(l.node%2Cl.remainder)%2Cc%3Dthis.positionInBuffer(f.node%2Cf.remainder)%3Bif(l.node%3D%3D%3Df.node)return%20this.findMatchesInNode(l.node%2Ca%2Ce.startLineNumber%2Ce.startColumn%2Cu%2Cc%2Ct%2Cn%2Ci%2Co%2Cs)%2Cs%3Blet%20d%3De.startLineNumber%2Cb%3Dl.node%3Bfor(%3Bb!%3D%3Df.node%3B)%7Blet%20L%3Dthis.getLineFeedCnt(b.piece.bufferIndex%2Cu%2Cb.piece.end)%3Bif(L%3E%3D1)%7Blet%20w%3Dthis._buffers%5Bb.piece.bufferIndex%5D.lineStarts%2CI%3Dthis.offsetInBuffer(b.piece.bufferIndex%2Cb.piece.start)%2CN%3Dw%5Bu.line%2BL%5D%2C_%3Dd%3D%3D%3De.startLineNumber%3Fe.startColumn%3A1%3Bif(o%3Dthis.findMatchesInNode(b%2Ca%2Cd%2C_%2Cu%2Cthis.positionInBuffer(b%2CN-I)%2Ct%2Cn%2Ci%2Co%2Cs)%2Co%3E%3Di)return%20s%3Bd%2B%3DL%7Dlet%20S%3Dd%3D%3D%3De.startLineNumber%3Fe.startColumn-1%3A0%3Bif(d%3D%3D%3De.endLineNumber)%7Blet%20w%3Dthis.getLineContent(d).substring(S%2Ce.endColumn-1)%3Breturn%20o%3Dthis._findMatchesInLine(t%2Ca%2Cw%2Ce.endLineNumber%2CS%2Co%2Cs%2Cn%2Ci)%2Cs%7Dif(o%3Dthis._findMatchesInLine(t%2Ca%2Cthis.getLineContent(d).substr(S)%2Cd%2CS%2Co%2Cs%2Cn%2Ci)%2Co%3E%3Di)return%20s%3Bd%2B%2B%2Cl%3Dthis.nodeAt2(d%2C1)%2Cb%3Dl.node%2Cu%3Dthis.positionInBuffer(l.node%2Cl.remainder)%7Dif(d%3D%3D%3De.endLineNumber)%7Blet%20L%3Dd%3D%3D%3De.startLineNumber%3Fe.startColumn-1%3A0%2CS%3Dthis.getLineContent(d).substring(L%2Ce.endColumn-1)%3Breturn%20o%3Dthis._findMatchesInLine(t%2Ca%2CS%2Ce.endLineNumber%2CL%2Co%2Cs%2Cn%2Ci)%2Cs%7Dlet%20k%3Dd%3D%3D%3De.startLineNumber%3Fe.startColumn%3A1%3Breturn%20o%3Dthis.findMatchesInNode(f.node%2Ca%2Cd%2Ck%2Cu%2Cc%2Ct%2Cn%2Ci%2Co%2Cs)%2Cs%7D_findMatchesInLine(e%2Ct%2Cn%2Ci%2Cs%2Co%2Ca%2Cl%2Cf)%7Blet%20u%3De.wordSeparators%3Bif(!l%26%26e.simpleSearch)%7Blet%20d%3De.simpleSearch%2Cb%3Dd.length%2Ck%3Dn.length%2CL%3D-b%3Bfor(%3B(L%3Dn.indexOf(d%2CL%2Bb))!%3D%3D-1%3B)if((!u%7C%7Cpe(u%2Cn%2Ck%2CL%2Cb))%26%26(a%5Bo%2B%2B%5D%3Dnew%20V(new%20A(i%2CL%2B1%2Bs%2Ci%2CL%2B1%2Bb%2Bs)%2Cnull)%2Co%3E%3Df))return%20o%3Breturn%20o%7Dlet%20c%3Bt.reset(0)%3Bdo%20if(c%3Dt.next(n)%2Cc%26%26(a%5Bo%2B%2B%5D%3Dee(new%20A(i%2Cc.index%2B1%2Bs%2Ci%2Cc.index%2B1%2Bc%5B0%5D.length%2Bs)%2Cc%2Cl)%2Co%3E%3Df))return%20o%3Bwhile(c)%3Breturn%20o%7Dinsert(e%2Ct%2Cn%3D!1)%7Bif(this._EOLNormalized%3Dthis._EOLNormalized%26%26n%2Cthis._lastVisitedLine.lineNumber%3D0%2Cthis._lastVisitedLine.value%3D%22%22%2Cthis.root!%3D%3Dm)%7Blet%7Bnode%3Ai%2Cremainder%3As%2CnodeStartOffset%3Ao%7D%3Dthis.nodeAt(e)%2Ca%3Di.piece%2Cl%3Da.bufferIndex%2Cf%3Dthis.positionInBuffer(i%2Cs)%3Bif(i.piece.bufferIndex%3D%3D%3D0%26%26a.end.line%3D%3D%3Dthis._lastChangeBufferPos.line%26%26a.end.column%3D%3D%3Dthis._lastChangeBufferPos.column%26%26o%2Ba.length%3D%3D%3De%26%26t.length%3CP)%7Bthis.appendToNode(i%2Ct)%2Cthis.computeBufferMetadata()%3Breturn%7Dif(o%3D%3D%3De)this.insertContentToNodeLeft(t%2Ci)%2Cthis._searchCache.validate(e)%3Belse%20if(o%2Bi.piece.length%3Ee)%7Blet%20u%3D%5B%5D%2Cc%3Dnew%20v(a.bufferIndex%2Cf%2Ca.end%2Cthis.getLineFeedCnt(a.bufferIndex%2Cf%2Ca.end)%2Cthis.offsetInBuffer(l%2Ca.end)-this.offsetInBuffer(l%2Cf))%3Bif(this.shouldCheckCRLF()%26%26this.endWithCR(t)%26%26this.nodeCharCodeAt(i%2Cs)%3D%3D%3D10)%7Blet%20L%3D%7Bline%3Ac.start.line%2B1%2Ccolumn%3A0%7D%3Bc%3Dnew%20v(c.bufferIndex%2CL%2Cc.end%2Cthis.getLineFeedCnt(c.bufferIndex%2CL%2Cc.end)%2Cc.length-1)%2Ct%2B%3D%60%0A%60%7Dif(this.shouldCheckCRLF()%26%26this.startWithLF(t))if(this.nodeCharCodeAt(i%2Cs-1)%3D%3D%3D13)%7Blet%20L%3Dthis.positionInBuffer(i%2Cs-1)%3Bthis.deleteNodeTail(i%2CL)%2Ct%3D%22%5Cr%22%2Bt%2Ci.piece.length%3D%3D%3D0%26%26u.push(i)%7Delse%20this.deleteNodeTail(i%2Cf)%3Belse%20this.deleteNodeTail(i%2Cf)%3Blet%20d%3Dthis.createNewPieces(t)%3Bc.length%3E0%26%26this.rbInsertRight(i%2Cc)%3Blet%20b%3Di%3Bfor(let%20k%3D0%3Bk%3Cd.length%3Bk%2B%2B)b%3Dthis.rbInsertRight(b%2Cd%5Bk%5D)%3Bthis.deleteNodes(u)%7Delse%20this.insertContentToNodeRight(t%2Ci)%7Delse%7Blet%20i%3Dthis.createNewPieces(t)%2Cs%3Dthis.rbInsertLeft(null%2Ci%5B0%5D)%3Bfor(let%20o%3D1%3Bo%3Ci.length%3Bo%2B%2B)s%3Dthis.rbInsertRight(s%2Ci%5Bo%5D)%7Dthis.computeBufferMetadata()%7Ddelete(e%2Ct)%7Bif(this._lastVisitedLine.lineNumber%3D0%2Cthis._lastVisitedLine.value%3D%22%22%2Ct%3C%3D0%7C%7Cthis.root%3D%3D%3Dm)return%3Blet%20n%3Dthis.nodeAt(e)%2Ci%3Dthis.nodeAt(e%2Bt)%2Cs%3Dn.node%2Co%3Di.node%3Bif(s%3D%3D%3Do)%7Blet%20d%3Dthis.positionInBuffer(s%2Cn.remainder)%2Cb%3Dthis.positionInBuffer(s%2Ci.remainder)%3Bif(n.nodeStartOffset%3D%3D%3De)%7Bif(t%3D%3D%3Ds.piece.length)%7Blet%20k%3Ds.next()%3BQ(this%2Cs)%2Cthis.validateCRLFWithPrevNode(k)%2Cthis.computeBufferMetadata()%3Breturn%7Dthis.deleteNodeHead(s%2Cb)%2Cthis._searchCache.validate(e)%2Cthis.validateCRLFWithPrevNode(s)%2Cthis.computeBufferMetadata()%3Breturn%7Dif(n.nodeStartOffset%2Bs.piece.length%3D%3D%3De%2Bt)%7Bthis.deleteNodeTail(s%2Cd)%2Cthis.validateCRLFWithNextNode(s)%2Cthis.computeBufferMetadata()%3Breturn%7Dthis.shrinkNode(s%2Cd%2Cb)%2Cthis.computeBufferMetadata()%3Breturn%7Dlet%20a%3D%5B%5D%2Cl%3Dthis.positionInBuffer(s%2Cn.remainder)%3Bthis.deleteNodeTail(s%2Cl)%2Cthis._searchCache.validate(e)%2Cs.piece.length%3D%3D%3D0%26%26a.push(s)%3Blet%20f%3Dthis.positionInBuffer(o%2Ci.remainder)%3Bthis.deleteNodeHead(o%2Cf)%2Co.piece.length%3D%3D%3D0%26%26a.push(o)%3Blet%20u%3Ds.next()%3Bfor(let%20d%3Du%3Bd!%3D%3Dm%26%26d!%3D%3Do%3Bd%3Dd.next())a.push(d)%3Blet%20c%3Ds.piece.length%3D%3D%3D0%3Fs.prev()%3As%3Bthis.deleteNodes(a)%2Cthis.validateCRLFWithNextNode(c)%2Cthis.computeBufferMetadata()%7DinsertContentToNodeLeft(e%2Ct)%7Blet%20n%3D%5B%5D%3Bif(this.shouldCheckCRLF()%26%26this.endWithCR(e)%26%26this.startWithLF(t))%7Blet%20o%3Dt.piece%2Ca%3D%7Bline%3Ao.start.line%2B1%2Ccolumn%3A0%7D%2Cl%3Dnew%20v(o.bufferIndex%2Ca%2Co.end%2Cthis.getLineFeedCnt(o.bufferIndex%2Ca%2Co.end)%2Co.length-1)%3Bt.piece%3Dl%2Ce%2B%3D%60%0A%60%2CC(this%2Ct%2C-1%2C-1)%2Ct.piece.length%3D%3D%3D0%26%26n.push(t)%7Dlet%20i%3Dthis.createNewPieces(e)%2Cs%3Dthis.rbInsertLeft(t%2Ci%5Bi.length-1%5D)%3Bfor(let%20o%3Di.length-2%3Bo%3E%3D0%3Bo--)s%3Dthis.rbInsertLeft(s%2Ci%5Bo%5D)%3Bthis.validateCRLFWithPrevNode(s)%2Cthis.deleteNodes(n)%7DinsertContentToNodeRight(e%2Ct)%7Bthis.adjustCarriageReturnFromNext(e%2Ct)%26%26(e%2B%3D%60%0A%60)%3Blet%20n%3Dthis.createNewPieces(e)%2Ci%3Dthis.rbInsertRight(t%2Cn%5B0%5D)%2Cs%3Di%3Bfor(let%20o%3D1%3Bo%3Cn.length%3Bo%2B%2B)s%3Dthis.rbInsertRight(s%2Cn%5Bo%5D)%3Bthis.validateCRLFWithPrevNode(i)%7DpositionInBuffer(e%2Ct%2Cn)%7Blet%20i%3De.piece%2Cs%3De.piece.bufferIndex%2Co%3Dthis._buffers%5Bs%5D.lineStarts%2Cl%3Do%5Bi.start.line%5D%2Bi.start.column%2Bt%2Cf%3Di.start.line%2Cu%3Di.end.line%2Cc%3D0%2Cd%3D0%2Cb%3D0%3Bfor(%3Bf%3C%3Du%26%26(c%3Df%2B(u-f)%2F2%7C0%2Cb%3Do%5Bc%5D%2Cc!%3D%3Du)%3B)if(d%3Do%5Bc%2B1%5D%2Cl%3Cb)u%3Dc-1%3Belse%20if(l%3E%3Dd)f%3Dc%2B1%3Belse%20break%3Breturn%20n%3F(n.line%3Dc%2Cn.column%3Dl-b%2Cnull)%3A%7Bline%3Ac%2Ccolumn%3Al-b%7D%7DgetLineFeedCnt(e%2Ct%2Cn)%7Bif(n.column%3D%3D%3D0)return%20n.line-t.line%3Blet%20i%3Dthis._buffers%5Be%5D.lineStarts%3Bif(n.line%3D%3D%3Di.length-1)return%20n.line-t.line%3Blet%20s%3Di%5Bn.line%2B1%5D%2Co%3Di%5Bn.line%5D%2Bn.column%3Bif(s%3Eo%2B1)return%20n.line-t.line%3Blet%20a%3Do-1%3Breturn%20this._buffers%5Be%5D.buffer.charCodeAt(a)%3D%3D%3D13%3Fn.line-t.line%2B1%3An.line-t.line%7DoffsetInBuffer(e%2Ct)%7Breturn%20this._buffers%5Be%5D.lineStarts%5Bt.line%5D%2Bt.column%7DdeleteNodes(e)%7Bfor(let%20t%3D0%3Bt%3Ce.length%3Bt%2B%2B)Q(this%2Ce%5Bt%5D)%7DcreateNewPieces(e)%7Bif(e.length%3EP)%7Blet%20u%3D%5B%5D%3Bfor(%3Be.length%3EP%3B)%7Blet%20d%3De.charCodeAt(P-1)%2Cb%3Bd%3D%3D%3D13%7C%7Cd%3E%3D55296%26%26d%3C%3D56319%3F(b%3De.substring(0%2CP-1)%2Ce%3De.substring(P-1))%3A(b%3De.substring(0%2CP)%2Ce%3De.substring(P))%3Blet%20k%3DE(b)%3Bu.push(new%20v(this._buffers.length%2C%7Bline%3A0%2Ccolumn%3A0%7D%2C%7Bline%3Ak.length-1%2Ccolumn%3Ab.length-k%5Bk.length-1%5D%7D%2Ck.length-1%2Cb.length))%2Cthis._buffers.push(new%20M(b%2Ck))%7Dlet%20c%3DE(e)%3Breturn%20u.push(new%20v(this._buffers.length%2C%7Bline%3A0%2Ccolumn%3A0%7D%2C%7Bline%3Ac.length-1%2Ccolumn%3Ae.length-c%5Bc.length-1%5D%7D%2Cc.length-1%2Ce.length))%2Cthis._buffers.push(new%20M(e%2Cc))%2Cu%7Dlet%20t%3Dthis._buffers%5B0%5D.buffer.length%2Cn%3DE(e%2C!1)%2Ci%3Dthis._lastChangeBufferPos%3Bif(this._buffers%5B0%5D.lineStarts%5Bthis._buffers%5B0%5D.lineStarts.length-1%5D%3D%3D%3Dt%26%26t!%3D%3D0%26%26this.startWithLF(e)%26%26this.endWithCR(this._buffers%5B0%5D.buffer))%7Bthis._lastChangeBufferPos%3D%7Bline%3Athis._lastChangeBufferPos.line%2Ccolumn%3Athis._lastChangeBufferPos.column%2B1%7D%2Ci%3Dthis._lastChangeBufferPos%3Bfor(let%20u%3D0%3Bu%3Cn.length%3Bu%2B%2B)n%5Bu%5D%2B%3Dt%2B1%3Bthis._buffers%5B0%5D.lineStarts%3Dthis._buffers%5B0%5D.lineStarts.concat(n.slice(1))%2Cthis._buffers%5B0%5D.buffer%2B%3D%22_%22%2Be%2Ct%2B%3D1%7Delse%7Bif(t!%3D%3D0)for(let%20u%3D0%3Bu%3Cn.length%3Bu%2B%2B)n%5Bu%5D%2B%3Dt%3Bthis._buffers%5B0%5D.lineStarts%3Dthis._buffers%5B0%5D.lineStarts.concat(n.slice(1))%2Cthis._buffers%5B0%5D.buffer%2B%3De%7Dlet%20s%3Dthis._buffers%5B0%5D.buffer.length%2Co%3Dthis._buffers%5B0%5D.lineStarts.length-1%2Ca%3Ds-this._buffers%5B0%5D.lineStarts%5Bo%5D%2Cl%3D%7Bline%3Ao%2Ccolumn%3Aa%7D%2Cf%3Dnew%20v(0%2Ci%2Cl%2Cthis.getLineFeedCnt(0%2Ci%2Cl)%2Cs-t)%3Breturn%20this._lastChangeBufferPos%3Dl%2C%5Bf%5D%7DgetLinesRawContent()%7Breturn%20this.getContentOfSubTree(this.root)%7DgetLineRawContent(e%2Ct%3D0)%7Blet%20n%3Dthis.root%2Ci%3D%22%22%2Cs%3Dthis._searchCache.get2(e)%3Bif(s)%7Bn%3Ds.node%3Blet%20o%3Dthis.getAccumulatedValue(n%2Ce-s.nodeStartLineNumber-1)%2Ca%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cl%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Bif(s.nodeStartLineNumber%2Bn.piece.lineFeedCnt%3D%3D%3De)i%3Da.substring(l%2Bo%2Cl%2Bn.piece.length)%3Belse%7Blet%20f%3Dthis.getAccumulatedValue(n%2Ce-s.nodeStartLineNumber)%3Breturn%20a.substring(l%2Bo%2Cl%2Bf-t)%7D%7Delse%7Blet%20o%3D0%2Ca%3De%3Bfor(%3Bn!%3D%3Dm%3B)if(n.left!%3D%3Dm%26%26n.lf_left%3E%3De-1)n%3Dn.left%3Belse%20if(n.lf_left%2Bn.piece.lineFeedCnt%3Ee-1)%7Blet%20l%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-2)%2Cf%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-1)%2Cu%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cc%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Breturn%20o%2B%3Dn.size_left%2Cthis._searchCache.set(%7Bnode%3An%2CnodeStartOffset%3Ao%2CnodeStartLineNumber%3Aa-(e-1-n.lf_left)%7D)%2Cu.substring(c%2Bl%2Cc%2Bf-t)%7Delse%20if(n.lf_left%2Bn.piece.lineFeedCnt%3D%3D%3De-1)%7Blet%20l%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-2)%2Cf%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cu%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Bi%3Df.substring(u%2Bl%2Cu%2Bn.piece.length)%3Bbreak%7Delse%20e-%3Dn.lf_left%2Bn.piece.lineFeedCnt%2Co%2B%3Dn.size_left%2Bn.piece.length%2Cn%3Dn.right%7Dfor(n%3Dn.next()%3Bn!%3D%3Dm%3B)%7Blet%20o%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%3Bif(n.piece.lineFeedCnt%3E0)%7Blet%20a%3Dthis.getAccumulatedValue(n%2C0)%2Cl%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Breturn%20i%2B%3Do.substring(l%2Cl%2Ba-t)%2Ci%7Delse%7Blet%20a%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Bi%2B%3Do.substr(a%2Cn.piece.length)%7Dn%3Dn.next()%7Dreturn%20i%7DcomputeBufferMetadata()%7Blet%20e%3Dthis.root%2Ct%3D1%2Cn%3D0%3Bfor(%3Be!%3D%3Dm%3B)t%2B%3De.lf_left%2Be.piece.lineFeedCnt%2Cn%2B%3De.size_left%2Be.piece.length%2Ce%3De.right%3Bthis._lineCnt%3Dt%2Cthis._length%3Dn%2Cthis._searchCache.validate(this._length)%7DgetIndexOf(e%2Ct)%7Blet%20n%3De.piece%2Ci%3Dthis.positionInBuffer(e%2Ct)%2Cs%3Di.line-n.start.line%3Bif(this.offsetInBuffer(n.bufferIndex%2Cn.end)-this.offsetInBuffer(n.bufferIndex%2Cn.start)%3D%3D%3Dt)%7Blet%20o%3Dthis.getLineFeedCnt(e.piece.bufferIndex%2Cn.start%2Ci)%3Bif(o!%3D%3Ds)return%7Bindex%3Ao%2Cremainder%3A0%7D%7Dreturn%7Bindex%3As%2Cremainder%3Ai.column%7D%7DgetAccumulatedValue(e%2Ct)%7Bif(t%3C0)return%200%3Blet%20n%3De.piece%2Ci%3Dthis._buffers%5Bn.bufferIndex%5D.lineStarts%2Cs%3Dn.start.line%2Bt%2B1%3Breturn%20s%3En.end.line%3Fi%5Bn.end.line%5D%2Bn.end.column-i%5Bn.start.line%5D-n.start.column%3Ai%5Bs%5D-i%5Bn.start.line%5D-n.start.column%7DdeleteNodeTail(e%2Ct)%7Blet%20n%3De.piece%2Ci%3Dn.lineFeedCnt%2Cs%3Dthis.offsetInBuffer(n.bufferIndex%2Cn.end)%2Co%3Dt%2Ca%3Dthis.offsetInBuffer(n.bufferIndex%2Co)%2Cl%3Dthis.getLineFeedCnt(n.bufferIndex%2Cn.start%2Co)%2Cf%3Dl-i%2Cu%3Da-s%2Cc%3Dn.length%2Bu%3Be.piece%3Dnew%20v(n.bufferIndex%2Cn.start%2Co%2Cl%2Cc)%2CC(this%2Ce%2Cu%2Cf)%7DdeleteNodeHead(e%2Ct)%7Blet%20n%3De.piece%2Ci%3Dn.lineFeedCnt%2Cs%3Dthis.offsetInBuffer(n.bufferIndex%2Cn.start)%2Co%3Dt%2Ca%3Dthis.getLineFeedCnt(n.bufferIndex%2Co%2Cn.end)%2Cl%3Dthis.offsetInBuffer(n.bufferIndex%2Co)%2Cf%3Da-i%2Cu%3Ds-l%2Cc%3Dn.length%2Bu%3Be.piece%3Dnew%20v(n.bufferIndex%2Co%2Cn.end%2Ca%2Cc)%2CC(this%2Ce%2Cu%2Cf)%7DshrinkNode(e%2Ct%2Cn)%7Blet%20i%3De.piece%2Cs%3Di.start%2Co%3Di.end%2Ca%3Di.length%2Cl%3Di.lineFeedCnt%2Cf%3Dt%2Cu%3Dthis.getLineFeedCnt(i.bufferIndex%2Ci.start%2Cf)%2Cc%3Dthis.offsetInBuffer(i.bufferIndex%2Ct)-this.offsetInBuffer(i.bufferIndex%2Cs)%3Be.piece%3Dnew%20v(i.bufferIndex%2Ci.start%2Cf%2Cu%2Cc)%2CC(this%2Ce%2Cc-a%2Cu-l)%3Blet%20d%3Dnew%20v(i.bufferIndex%2Cn%2Co%2Cthis.getLineFeedCnt(i.bufferIndex%2Cn%2Co)%2Cthis.offsetInBuffer(i.bufferIndex%2Co)-this.offsetInBuffer(i.bufferIndex%2Cn))%2Cb%3Dthis.rbInsertRight(e%2Cd)%3Bthis.validateCRLFWithPrevNode(b)%7DappendToNode(e%2Ct)%7Bthis.adjustCarriageReturnFromNext(t%2Ce)%26%26(t%2B%3D%60%0A%60)%3Blet%20n%3Dthis.shouldCheckCRLF()%26%26this.startWithLF(t)%26%26this.endWithCR(e)%2Ci%3Dthis._buffers%5B0%5D.buffer.length%3Bthis._buffers%5B0%5D.buffer%2B%3Dt%3Blet%20s%3DE(t%2C!1)%3Bfor(let%20b%3D0%3Bb%3Cs.length%3Bb%2B%2B)s%5Bb%5D%2B%3Di%3Bif(n)%7Blet%20b%3Dthis._buffers%5B0%5D.lineStarts%5Bthis._buffers%5B0%5D.lineStarts.length-2%5D%3Bthis._buffers%5B0%5D.lineStarts.pop()%2Cthis._lastChangeBufferPos%3D%7Bline%3Athis._lastChangeBufferPos.line-1%2Ccolumn%3Ai-b%7D%7Dthis._buffers%5B0%5D.lineStarts%3Dthis._buffers%5B0%5D.lineStarts.concat(s.slice(1))%3Blet%20o%3Dthis._buffers%5B0%5D.lineStarts.length-1%2Ca%3Dthis._buffers%5B0%5D.buffer.length-this._buffers%5B0%5D.lineStarts%5Bo%5D%2Cl%3D%7Bline%3Ao%2Ccolumn%3Aa%7D%2Cf%3De.piece.length%2Bt.length%2Cu%3De.piece.lineFeedCnt%2Cc%3Dthis.getLineFeedCnt(0%2Ce.piece.start%2Cl)%2Cd%3Dc-u%3Be.piece%3Dnew%20v(e.piece.bufferIndex%2Ce.piece.start%2Cl%2Cc%2Cf)%2Cthis._lastChangeBufferPos%3Dl%2CC(this%2Ce%2Ct.length%2Cd)%7DnodeAt(e)%7Blet%20t%3Dthis.root%2Cn%3Dthis._searchCache.get(e)%3Bif(n)return%7Bnode%3An.node%2CnodeStartOffset%3An.nodeStartOffset%2Cremainder%3Ae-n.nodeStartOffset%7D%3Blet%20i%3D0%3Bfor(%3Bt!%3D%3Dm%3B)if(t.size_left%3Ee)t%3Dt.left%3Belse%20if(t.size_left%2Bt.piece.length%3E%3De)%7Bi%2B%3Dt.size_left%3Blet%20s%3D%7Bnode%3At%2Cremainder%3Ae-t.size_left%2CnodeStartOffset%3Ai%7D%3Breturn%20this._searchCache.set(s)%2Cs%7Delse%20e-%3Dt.size_left%2Bt.piece.length%2Ci%2B%3Dt.size_left%2Bt.piece.length%2Ct%3Dt.right%3Breturn%20null%7DnodeAt2(e%2Ct)%7Blet%20n%3Dthis.root%2Ci%3D0%3Bfor(%3Bn!%3D%3Dm%3B)if(n.left!%3D%3Dm%26%26n.lf_left%3E%3De-1)n%3Dn.left%3Belse%20if(n.lf_left%2Bn.piece.lineFeedCnt%3Ee-1)%7Blet%20s%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-2)%2Co%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-1)%3Breturn%20i%2B%3Dn.size_left%2C%7Bnode%3An%2Cremainder%3AMath.min(s%2Bt-1%2Co)%2CnodeStartOffset%3Ai%7D%7Delse%20if(n.lf_left%2Bn.piece.lineFeedCnt%3D%3D%3De-1)%7Blet%20s%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-2)%3Bif(s%2Bt-1%3C%3Dn.piece.length)return%7Bnode%3An%2Cremainder%3As%2Bt-1%2CnodeStartOffset%3Ai%7D%3Bt-%3Dn.piece.length-s%3Bbreak%7Delse%20e-%3Dn.lf_left%2Bn.piece.lineFeedCnt%2Ci%2B%3Dn.size_left%2Bn.piece.length%2Cn%3Dn.right%3Bfor(n%3Dn.next()%3Bn!%3D%3Dm%3B)%7Bif(n.piece.lineFeedCnt%3E0)%7Blet%20s%3Dthis.getAccumulatedValue(n%2C0)%2Co%3Dthis.offsetOfNode(n)%3Breturn%7Bnode%3An%2Cremainder%3AMath.min(t-1%2Cs)%2CnodeStartOffset%3Ao%7D%7Delse%20if(n.piece.length%3E%3Dt-1)%7Blet%20s%3Dthis.offsetOfNode(n)%3Breturn%7Bnode%3An%2Cremainder%3At-1%2CnodeStartOffset%3As%7D%7Delse%20t-%3Dn.piece.length%3Bn%3Dn.next()%7Dreturn%20null%7DnodeCharCodeAt(e%2Ct)%7Bif(e.piece.lineFeedCnt%3C1)return-1%3Blet%20n%3Dthis._buffers%5Be.piece.bufferIndex%5D%2Ci%3Dthis.offsetInBuffer(e.piece.bufferIndex%2Ce.piece.start)%2Bt%3Breturn%20n.buffer.charCodeAt(i)%7DoffsetOfNode(e)%7Bif(!e)return%200%3Blet%20t%3De.size_left%3Bfor(%3Be!%3D%3Dthis.root%3B)e.parent.right%3D%3D%3De%26%26(t%2B%3De.parent.size_left%2Be.parent.piece.length)%2Ce%3De.parent%3Breturn%20t%7DshouldCheckCRLF()%7Breturn!(this._EOLNormalized%26%26this._EOL%3D%3D%3D%60%0A%60)%7DstartWithLF(e)%7Bif(typeof%20e%3D%3D%22string%22)return%20e.charCodeAt(0)%3D%3D%3D10%3Bif(e%3D%3D%3Dm%7C%7Ce.piece.lineFeedCnt%3D%3D%3D0)return!1%3Blet%20t%3De.piece%2Cn%3Dthis._buffers%5Bt.bufferIndex%5D.lineStarts%2Ci%3Dt.start.line%2Cs%3Dn%5Bi%5D%2Bt.start.column%3Breturn%20i%3D%3D%3Dn.length-1%7C%7Cn%5Bi%2B1%5D%3Es%2B1%3F!1%3Athis._buffers%5Bt.bufferIndex%5D.buffer.charCodeAt(s)%3D%3D%3D10%7DendWithCR(e)%7Breturn%20typeof%20e%3D%3D%22string%22%3Fe.charCodeAt(e.length-1)%3D%3D%3D13%3Ae%3D%3D%3Dm%7C%7Ce.piece.lineFeedCnt%3D%3D%3D0%3F!1%3Athis.nodeCharCodeAt(e%2Ce.piece.length-1)%3D%3D%3D13%7DvalidateCRLFWithPrevNode(e)%7Bif(this.shouldCheckCRLF()%26%26this.startWithLF(e))%7Blet%20t%3De.prev()%3Bthis.endWithCR(t)%26%26this.fixCRLF(t%2Ce)%7D%7DvalidateCRLFWithNextNode(e)%7Bif(this.shouldCheckCRLF()%26%26this.endWithCR(e))%7Blet%20t%3De.next()%3Bthis.startWithLF(t)%26%26this.fixCRLF(e%2Ct)%7D%7DfixCRLF(e%2Ct)%7Blet%20n%3D%5B%5D%2Ci%3Dthis._buffers%5Be.piece.bufferIndex%5D.lineStarts%2Cs%3Be.piece.end.column%3D%3D%3D0%3Fs%3D%7Bline%3Ae.piece.end.line-1%2Ccolumn%3Ai%5Be.piece.end.line%5D-i%5Be.piece.end.line-1%5D-1%7D%3As%3D%7Bline%3Ae.piece.end.line%2Ccolumn%3Ae.piece.end.column-1%7D%3Blet%20o%3De.piece.length-1%2Ca%3De.piece.lineFeedCnt-1%3Be.piece%3Dnew%20v(e.piece.bufferIndex%2Ce.piece.start%2Cs%2Ca%2Co)%2CC(this%2Ce%2C-1%2C-1)%2Ce.piece.length%3D%3D%3D0%26%26n.push(e)%3Blet%20l%3D%7Bline%3At.piece.start.line%2B1%2Ccolumn%3A0%7D%2Cf%3Dt.piece.length-1%2Cu%3Dthis.getLineFeedCnt(t.piece.bufferIndex%2Cl%2Ct.piece.end)%3Bt.piece%3Dnew%20v(t.piece.bufferIndex%2Cl%2Ct.piece.end%2Cu%2Cf)%2CC(this%2Ct%2C-1%2C-1)%2Ct.piece.length%3D%3D%3D0%26%26n.push(t)%3Blet%20c%3Dthis.createNewPieces(%60%5Cr%0A%60)%3Bthis.rbInsertRight(e%2Cc%5B0%5D)%3Bfor(let%20d%3D0%3Bd%3Cn.length%3Bd%2B%2B)Q(this%2Cn%5Bd%5D)%7DadjustCarriageReturnFromNext(e%2Ct)%7Bif(this.shouldCheckCRLF()%26%26this.endWithCR(e))%7Blet%20n%3Dt.next()%3Bif(this.startWithLF(n))%7Bif(e%2B%3D%60%0A%60%2Cn.piece.length%3D%3D%3D1)Q(this%2Cn)%3Belse%7Blet%20i%3Dn.piece%2Cs%3D%7Bline%3Ai.start.line%2B1%2Ccolumn%3A0%7D%2Co%3Di.length-1%2Ca%3Dthis.getLineFeedCnt(i.bufferIndex%2Cs%2Ci.end)%3Bn.piece%3Dnew%20v(i.bufferIndex%2Cs%2Ci.end%2Ca%2Co)%2CC(this%2Cn%2C-1%2C-1)%7Dreturn!0%7D%7Dreturn!1%7Diterate(e%2Ct)%7Bif(e%3D%3D%3Dm)return%20t(m)%3Blet%20n%3Dthis.iterate(e.left%2Ct)%3Breturn%20n%26%26t(e)%26%26this.iterate(e.right%2Ct)%7DgetNodeContent(e)%7Bif(e%3D%3D%3Dm)return%22%22%3Blet%20t%3Dthis._buffers%5Be.piece.bufferIndex%5D%2Cn%3De.piece%2Ci%3Dthis.offsetInBuffer(n.bufferIndex%2Cn.start)%2Cs%3Dthis.offsetInBuffer(n.bufferIndex%2Cn.end)%3Breturn%20t.buffer.substring(i%2Cs)%7DgetPieceContent(e)%7Blet%20t%3Dthis._buffers%5Be.bufferIndex%5D%2Cn%3Dthis.offsetInBuffer(e.bufferIndex%2Ce.start)%2Ci%3Dthis.offsetInBuffer(e.bufferIndex%2Ce.end)%3Breturn%20t.buffer.substring(n%2Ci)%7DrbInsertRight(e%2Ct)%7Blet%20n%3Dnew%20j(t%2C1)%3Bif(n.left%3Dm%2Cn.right%3Dm%2Cn.parent%3Dm%2Cn.size_left%3D0%2Cn.lf_left%3D0%2Cthis.root%3D%3D%3Dm)this.root%3Dn%2Cn.color%3D0%3Belse%20if(e.right%3D%3D%3Dm)e.right%3Dn%2Cn.parent%3De%3Belse%7Blet%20s%3Due(e.right)%3Bs.left%3Dn%2Cn.parent%3Ds%7Dreturn%20Ue(this%2Cn)%2Cn%7DrbInsertLeft(e%2Ct)%7Blet%20n%3Dnew%20j(t%2C1)%3Bif(n.left%3Dm%2Cn.right%3Dm%2Cn.parent%3Dm%2Cn.size_left%3D0%2Cn.lf_left%3D0%2Cthis.root%3D%3D%3Dm)this.root%3Dn%2Cn.color%3D0%3Belse%20if(e.left%3D%3D%3Dm)e.left%3Dn%2Cn.parent%3De%3Belse%7Blet%20i%3DPe(e.left)%3Bi.right%3Dn%2Cn.parent%3Di%7Dreturn%20Ue(this%2Cn)%2Cn%7DgetContentOfSubTree(e)%7Blet%20t%3D%22%22%3Breturn%20this.iterate(e%2Cn%3D%3E(t%2B%3Dthis.getNodeContent(n)%2C!0))%2Ct%7D%7D%3Bvar%20zt%3DString.fromCharCode(65279)%3Bfunction%20jt(r)%7Breturn!!(r%26%26r.length%3E0%26%26r.charCodeAt(0)%3D%3D%3D65279)%7Dvar%20He%3Dclass%7Bconstructor(e%2Ct%2Cn%2Ci%2Cs%2Co)%7Bthis._chunks%3De%3Bthis._bom%3Dt%3Bthis._cr%3Dn%3Bthis._lf%3Di%3Bthis._crlf%3Ds%3Bthis._normalizeEOL%3Do%7D_getEOL(e)%7Blet%20t%3Dthis._cr%2Bthis._lf%2Bthis._crlf%2Cn%3Dthis._cr%2Bthis._crlf%3Breturn%20t%3D%3D%3D0%3Fe%3D%3D%3D1%3F%60%0A%60%3A%60%5Cr%0A%60%3An%3Et%2F2%3F%60%5Cr%0A%60%3A%60%0A%60%7Dcreate(e)%7Blet%20t%3Dthis._getEOL(e)%2Cn%3Dthis._chunks%3Bif(this._normalizeEOL%26%26(t%3D%3D%3D%60%5Cr%0A%60%26%26(this._cr%3E0%7C%7Cthis._lf%3E0)%7C%7Ct%3D%3D%3D%60%0A%60%26%26(this._cr%3E0%7C%7Cthis._crlf%3E0)))for(let%20i%3D0%2Cs%3Dn.length%3Bi%3Cs%3Bi%2B%2B)%7Blet%20o%3Dn%5Bi%5D.buffer.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ct)%2Ca%3DE(o)%3Bn%5Bi%5D%3Dnew%20M(o%2Ca)%7Dreturn%20new%20ge(n%2Ct%2Cthis._normalizeEOL)%7DgetFirstLineText(e)%7Breturn%20this._chunks%5B0%5D.buffer.substr(0%2C100).split(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2F)%5B0%5D%7D%7D%2Cte%3Dclass%7Bconstructor()%7Bthis.chunks%3D%5B%5D%2Cthis.BOM%3D%22%22%2Cthis._hasPreviousChar%3D!1%2Cthis._previousChar%3D0%2Cthis._tmpLineStarts%3D%5B%5D%2Cthis.cr%3D0%2Cthis.lf%3D0%2Cthis.crlf%3D0%7DacceptChunk(e)%7Bif(e.length%3D%3D%3D0)return%3Bthis.chunks.length%3D%3D%3D0%26%26jt(e)%26%26(this.BOM%3Dzt%2Ce%3De.substr(1))%3Blet%20t%3De.charCodeAt(e.length-1)%3Bt%3D%3D%3D13%7C%7Ct%3E%3D55296%26%26t%3C%3D56319%3F(this._acceptChunk1(e.substr(0%2Ce.length-1)%2C!1)%2Cthis._hasPreviousChar%3D!0%2Cthis._previousChar%3Dt)%3A(this._acceptChunk1(e%2C!1)%2Cthis._hasPreviousChar%3D!1%2Cthis._previousChar%3Dt)%7D_acceptChunk1(e%2Ct)%7B!t%26%26e.length%3D%3D%3D0%7C%7C(this._hasPreviousChar%3Fthis._acceptChunk2(String.fromCharCode(this._previousChar)%2Be)%3Athis._acceptChunk2(e))%7D_acceptChunk2(e)%7Blet%20t%3Dgt(this._tmpLineStarts%2Ce)%3Bthis.chunks.push(new%20M(e%2Ct.lineStarts))%2Cthis.cr%2B%3Dt.cr%2Cthis.lf%2B%3Dt.lf%2Cthis.crlf%2B%3Dt.crlf%7Dfinish(e%3D!0)%7Breturn%20this._finish()%2Cnew%20He(this.chunks%2Cthis.BOM%2Cthis.cr%2Cthis.lf%2Cthis.crlf%2Ce)%7D_finish()%7Bif(this.chunks.length%3D%3D%3D0%26%26this._acceptChunk1(%22%22%2C!0)%2Cthis._hasPreviousChar)%7Bthis._hasPreviousChar%3D!1%3Blet%20e%3Dthis.chunks%5Bthis.chunks.length-1%5D%3Be.buffer%2B%3DString.fromCharCode(this._previousChar)%3Blet%20t%3DE(e.buffer)%3Be.lineStarts%3Dt%2Cthis._previousChar%3D%3D%3D13%26%26this.cr%2B%2B%7D%7D%7D%3Bvar%20Kt%3D%22default%22%3Bfunction%20me()%7Breturn%20Kt%7Dvar%20mt%3Dnew%20Map%2CGe%3Dclass%7Bconstructor()%7Bthis.listeners%3D%7B%7D%7Don(e%2Ct)%7Bthis.listeners%5Be%5D%7C%7C(this.listeners%5Be%5D%3D%5B%5D)%2Cthis.listeners%5Be%5D%3F.push(t)%7Doff(e%2Ct)%7Bthis.listeners%5Be%5D%26%26(this.listeners%5Be%5D%3Dthis.listeners%5Be%5D%3F.filter(n%3D%3En!%3D%3Dt))%7Ddispose()%7Bthis.listeners%3D%7B%7D%7DremoveAllListeners()%7Bthis.listeners%3D%7B%7D%7Demit(e%2Ct)%7Bif(this.listeners%5Be%5D)for(let%20n%20of%20this.listeners%5Be%5D)n(t)%7D%7D%2Cbt%3D()%3D%3E%7Blet%20r%3Dme()%3Bif(!r)throw%20new%20Error(%22currentNameSpaceId%20is%20not%20set%22)%3Blet%20e%3Dmt.get(r)%3Breturn%20e%7C%7C(e%3Dnew%20Ge%2Cmt.set(r%2Ce))%2Ce%7D%3Bvar%20_t%3Dnew%20Map%2CZe%3Dclass%7Bconstructor()%7Blet%20e%3DdecodeURIComponent(%22%25WORKER_RAW%25%22)%2Ct%3Dnew%20Blob(%5Be%5D%2C%7Btype%3A%22application%2Fjavascript%22%7D)%2Cn%3DURL.createObjectURL(t)%3Bthis._worker%3Dnew%20Worker(n)%2Cthis._callbacks%3Dnew%20Map%2Cthis._worker.onmessage%3Dthis._handleWorkerMessage.bind(this)%7Dasync%20init(e)%7Bawait%20this._sendRequest(%22init%22%2C%7Bvalue%3Ae%7D)%7DupdateModel(e)%7Breturn%20this._sendRequest(%22updateModel%22%2C%7Bop%3Ae%7D)%7Dundo()%7Breturn%20this._sendRequest(%22undo%22%2C%7B%7D)%7Dredo()%7Breturn%20this._sendRequest(%22redo%22%2C%7B%7D)%7DformatJson(e)%7Breturn%20this._sendRequest(%22format%22%2C%7Boptions%3Ae%7D)%7DfoldRange()%7Breturn%20this._sendRequest(%22foldRange%22%2C%7B%7D)%7Dvalidate()%7Breturn%20this._sendRequest(%22validate%22%2C%7B%7D)%7D_sendRequest(e%2Ct)%7Breturn%20new%20Promise((n%2Ci)%3D%3E%7Blet%20s%3DDate.now()%2BMath.random()%3Bthis._callbacks.set(s%2Cn)%2Cthis._worker.postMessage(%7BmessageId%3As%2Cmethod%3Ae%2Cparams%3At%7D)%7D)%7D_handleWorkerMessage(e)%7Blet%7BmessageId%3At%2Cresult%3An%2Cerror%3Ai%7D%3De.data%2Cs%3Dthis._callbacks.get(t)%3Bs%26%26(s(i%3Fnew%20Error(i)%3An)%2Cthis._callbacks.delete(t))%7Ddispose()%7Bthis._worker.terminate()%2Cthis._callbacks.clear()%7D%7D%3Bfunction%20Nt()%7Blet%20r%3Dme()%3Bif(!r)throw%20new%20Error(%22No%20active%20worker%20ID%20set%22)%3Blet%20e%3D_t.get(r)%3Breturn%20e%7C%7C(e%3Dnew%20Ze%2C_t.set(r%2Ce))%2Ce%7Dvar%20Dt%3Dtypeof%20self%3D%3D%22object%22%26%26self.constructor%26%26self.constructor.name%3D%3D%3D%22DedicatedWorkerGlobalScope%22%3Bfunction%20ne()%7Breturn%20Dt%7Dvar%20re%3Dclass%7Bconstructor(e%2Ct)%7Bthis.model%3De%3Bthis.operation%3Dt%3Bthis.oldPos%3D%7B...e.lastChangeBufferPos%7D%2Cthis.model.updateLastChangeBufferPos(t)%2Cthis.newPos%3D%7B...e.lastChangeBufferPos%7D%7DupdateBufferPos(e)%7Bthis.model.lastChangeBufferPos%3D%7B...e%3Fthis.oldPos%3Athis.newPos%7D%7D%7D%2Cbe%3Dclass%20extends%20re%7Bexecute()%7Bthis.model.pieceTree.insert(this.operation.rangeOffset%2Cthis.operation.newText)%2Cthis.updateBufferPos(!1)%7Dundo()%7Bthis.model.pieceTree.delete(this.operation.rangeOffset%2Cthis.operation.newText.length)%2Cthis.updateBufferPos(!0)%7D%7D%2C_e%3Dclass%20extends%20re%7Bexecute()%7Bthis.model.pieceTree.delete(this.operation.rangeOffset%2Cthis.operation.rangeLength)%2Cthis.updateBufferPos(!1)%7Dundo()%7Bthis.model.pieceTree.insert(this.operation.rangeOffset%2Cthis.operation.oldText)%2Cthis.updateBufferPos(!0)%7D%7D%2CNe%3Dclass%20extends%20re%7Bexecute()%7Bthis.model.pieceTree.delete(this.operation.rangeOffset%2Cthis.operation.oldText.length)%2Cthis.model.pieceTree.insert(this.operation.rangeOffset%2Cthis.operation.newText)%2Cthis.updateBufferPos(!1)%7Dundo()%7Bthis.model.pieceTree.delete(this.operation.rangeOffset%2Cthis.operation.newText.length)%2Cthis.model.pieceTree.insert(this.operation.rangeOffset%2Cthis.operation.oldText)%2Cthis.updateBufferPos(!0)%7D%7D%2Cxe%3Dclass%7Bconstructor(e%2Ct)%7Bthis.model%3De%3Bthis.operation%3Dt%3Bthis.oldPos%3D%7B...e.lastChangeBufferPos%7D%2Cthis.newPos%3D%7B...e.lastChangeBufferPos%7D%7Dexecute()%7Bfor(let%20e%3D0%3Be%3Cthis.operation.length%3Be%2B%2B)%7Blet%20t%3Dthis.operation%5Be%5D%3Bswitch(t.type)%7Bcase%22insert%22%3Athis.model.pieceTree.insert(t.rangeOffset%2Ct.newText)%3Bbreak%3Bcase%22delete%22%3Athis.model.pieceTree.delete(t.rangeOffset%2Ct.rangeLength)%3Bbreak%3Bcase%22replace%22%3Athis.model.pieceTree.delete(t.rangeOffset%2Ct.oldText.length)%2Cthis.model.pieceTree.insert(t.rangeOffset%2Ct.newText)%3Bbreak%7D%7Dthis.model.lastChangeBufferPos%3D%7B...this.newPos%7D%7Dundo()%7Bfor(let%20e%3Dthis.operation.length-1%3Be%3E%3D0%3Be--)%7Blet%20t%3Dthis.operation%5Be%5D%3Bt.newText%26%26t.oldText%3F(this.model.pieceTree.delete(t.rangeOffset%2Ct.newText.length)%2Cthis.model.pieceTree.insert(t.rangeOffset%2Ct.oldText))%3At.newText%3Fthis.model.pieceTree.delete(t.rangeOffset%2Ct.newText.length)%3Athis.model.pieceTree.insert(t.rangeOffset%2Ct.oldText)%7Dthis.model.lastChangeBufferPos%3D%7B...this.oldPos%7D%7D%7D%3Bvar%20Te%3Dclass%7Bconstructor(e%2Ct%3D!0)%7Bthis._undoStack%3D%5B%5D%3Bthis._redoStack%3D%5B%5D%3Bthis.MAX_STACK_SIZE%3D20%3Bthis.lastChangeBufferPos%3D%7BlineNumber%3A1%2Ccolumn%3A1%7D%3Bthis._jsonWorkerManager%3Dnull%3Bthis.emitter%3Dnull%3Bthis._normalizeEOL%3Dt%2Cthis._pieceTree%3Dthis.createTextBuffer(e)%2Cne()%7C%7C(this._jsonWorkerManager%3DNt()%2Cthis.emitter%3Dbt())%7Dget%20pieceTree()%7Breturn%20this._pieceTree%7DcreateTextBufferFactory(e)%7Blet%20t%3Dnew%20te%3Breturn%20t.acceptChunk(e)%2Ct.finish(this._normalizeEOL)%7DcreateTextBuffer(e)%7Breturn%20this.createTextBufferFactory(e).create(1)%7DgetLineCount()%7Breturn%20this._pieceTree.getLineCount()%7DgetLineContent(e)%7Breturn%20this._pieceTree.getLineContent(e)%7DgetLineLength(e)%7Breturn%20this._pieceTree.getLineLength(e)%7DgetOffsetAt(e%2Ct)%7Breturn%20this._pieceTree.getOffsetAt(e%2Ct)%7DpositionAt(e)%7Breturn%20e%3DMath.min(this._pieceTree.getLength()%2CMath.max(0%2Ce))%2Cthis._pieceTree.getPositionAt(e)%7D_createCommand(e)%7Bif(Array.isArray(e))return%20new%20xe(this%2Ce)%3Bswitch(e.type)%7Bcase%22insert%22%3Areturn%20new%20be(this%2Ce)%3Bcase%22delete%22%3Areturn%20new%20_e(this%2Ce)%3Bcase%22replace%22%3Areturn%20new%20Ne(this%2Ce)%3Bdefault%3Athrow%20new%20Error(%22Unknown%20operation%20type%22)%7D%7DapplyOperation(e)%7Bthis._redoStack%3D%5B%5D%3Blet%20t%3Dthis._createCommand(e)%3Bthis.pushUndoStack(t)%2Ct.execute()%2Cne()%7C%7Cthis.emitter%3F.emit(%22contentChanged%22%2Ce)%2Cthis._jsonWorkerManager%26%26this._jsonWorkerManager.updateModel(e).then(n%3D%3Ethis._jsonWorkerManager%3F.validate()).then(n%3D%3E%7Bthis.emitter%3F.emit(%22problemsChanged%22%2C%7Bproblems%3An.problems%2Croot%3An.root%7D)%7D)%7DupdateLastChangeBufferPos(e)%7Bif(e.keepPosition)%7Bthis.lastChangeBufferPos%3De.keepPosition%3Breturn%7Dswitch(e.type)%7Bcase%22insert%22%3Athis.lastChangeBufferPos.column%2B%3De.newText.length%3Bbreak%3Bcase%22delete%22%3Aif(this.lastChangeBufferPos.column%3D%3D%3D1)this.lastChangeBufferPos.lineNumber-%3D1%2Cthis.lastChangeBufferPos.column%3Dthis.getLineLength(this.lastChangeBufferPos.lineNumber)%2B1%3Belse%7Blet%20i%3De.range.startColumn%2Cs%3De.rangeLength%3D%3D%3D1%3Fi-1%3Ai%3Bthis.lastChangeBufferPos.column%3Ds%7Dbreak%3Bcase%22replace%22%3Alet%20t%3De.range.startLineNumber%2Cn%3De.range.startColumn%2Be.newText.length%3Bthis.lastChangeBufferPos.lineNumber%3Dt%2Cthis.lastChangeBufferPos.column%3Dn%3Bbreak%7D%7DpushUndoStack(e)%7Bthis._undoStack.push(e)%2Cthis._undoStack.length%3Ethis.MAX_STACK_SIZE%26%26this._undoStack.shift()%7DpushRedoStack(e)%7Bthis._redoStack.push(e)%2Cthis._redoStack.length%3Ethis.MAX_STACK_SIZE%26%26this._redoStack.shift()%7DcanUndo()%7Breturn%20this._undoStack.length%3E0%7DcanRedo()%7Breturn%20this._redoStack.length%3E0%7Dundo()%7Bif(!this.canUndo())return%3Blet%20e%3Dthis._undoStack.pop()%3Be.undo()%2Cthis._redoStack.push(e)%2Cne()%7C%7Cthis.emitter%3F.emit(%22contentChanged%22%2Ce.operation)%2Cthis._jsonWorkerManager%26%26this._jsonWorkerManager.undo().then(t%3D%3Ethis._jsonWorkerManager%3F.validate()).then(t%3D%3E%7Bthis.emitter%3F.emit(%22problemsChanged%22%2C%7Bproblems%3At.problems%2Croot%3At.root%7D)%7D)%7Dredo()%7Bif(!this.canRedo())return%3Blet%20e%3Dthis._redoStack.pop()%3Be.execute()%2Cthis._undoStack.push(e)%2Cne()%7C%7Cthis.emitter%3F.emit(%22contentChanged%22%2Ce.operation)%2Cthis._jsonWorkerManager%26%26this._jsonWorkerManager.redo().then(t%3D%3Ethis._jsonWorkerManager%3F.validate()).then(t%3D%3E%7Bthis.emitter%3F.emit(%22problemsChanged%22%2C%7Bproblems%3At.problems%2Croot%3At.root%7D)%7D)%7DgetValue()%7Breturn%20this._pieceTree.getValueInRange(%7BstartLineNumber%3A1%2CstartColumn%3A1%2CendLineNumber%3Athis._pieceTree.getLineCount()%2CendColumn%3Athis._pieceTree.getLineContent(this._pieceTree.getLineCount()).length%2B1%7D)%7DsetValue(e)%7Blet%20t%3Dnew%20te%3Bt.acceptChunk(e)%2Cthis._pieceTree%3Dt.finish(this._normalizeEOL).create(1)%7DgetEOL()%7Breturn%20this._pieceTree.getEOL()%7D_getEndOfLine(e)%7Bswitch(e)%7Bcase%201%3Areturn%60%0A%60%3Bcase%202%3Areturn%60%5Cr%0A%60%3Bcase%200%3Areturn%20this.getEOL()%3Bdefault%3Athrow%20new%20Error(%22Unknown%20EOL%20preference%22)%7D%7DgetValueInRange(e%2Ct%3D0)%7Breturn%20this._pieceTree.getValueInRange(e%2Cthis._getEndOfLine(t))%7DgetFullModelRange()%7Blet%20e%3Dthis.getLineCount()%3Breturn%20new%20A(1%2C1%2Ce%2Cthis.getLineLength(e)%2B1)%7DfindMatchesLineByLine(e%2Ct%2Cn%2Ci)%7Breturn%20this._pieceTree.findMatchesLineByLine(e%2Ct%2Cn%2Ci)%7DfindMatches(e%2Ct%2Cn%2Ci%2Cs%2Co%2Ca%3D1%2F0)%7Blet%20l%3Dnull%3Bl%3D%3D%3Dnull%26%26(l%3D%5Bthis.getFullModelRange()%5D)%2Cl%3Dl.sort((c%2Cd)%3D%3Ec.startLineNumber-d.startLineNumber%7C%7Cc.startColumn-d.startColumn)%3Blet%20f%3D%5B%5D%3Bf.push(l.reduce((c%2Cd)%3D%3EA.areIntersecting(c%2Cd)%3Fc.plusRange(d)%3A(f.push(c)%2Cd)))%3Blet%20u%3Bif(!n%26%26e.indexOf(%60%0A%60)%3C0)%7Blet%20d%3Dnew%20Y(e%2Cn%2Ci%2Cs).parseSearchRequest()%3Bif(!d)return%5B%5D%3Bu%3Db%3D%3Ethis.findMatchesLineByLine(b%2Cd%2Co%2Ca)%7Delse%20u%3Dc%3D%3Ehe.findMatches(this%2Cnew%20Y(e%2Cn%2Ci%2Cs)%2Cc%2Co%2Ca)%3Breturn%20f.map(u).reduce((c%2Cd)%3D%3Ec.concat(d)%2C%5B%5D)%7D%7D%3Bfunction%20xt(r%2Ce%3D!0)%7Breturn%20new%20Te(r%2Ce)%7Dvar%20ke%3Dclass%7Bconstructor(e)%7Bthis._model%3Dnull%3Bthis._model%3Dxt(e)%7DgetModel()%7Breturn%20this._model%7Dformat(e)%7Bif(!this._model)throw%20new%20Error(%22Model%20not%20initialized%22)%3Breturn%20ot(this._model%2Ce)%7DfoldRange()%7Bif(!this._model)throw%20new%20Error(%22Model%20not%20initialized%22)%3Breturn%20Fe(this._model)%7Dvalidate()%7Bif(!this._model)throw%20new%20Error(%22Model%20not%20initialized%22)%3Breturn%20lt(this._model)%7DupdateModel(e)%7Breturn%20this._model%3F.applyOperation(e)%2Ce%7Dundo()%7Bthis._model%3F.undo()%7Dredo()%7Bthis._model%3F.redo()%7Dparse()%7Bif(!this._model)throw%20new%20Error(%22Model%20not%20initialized%22)%3Breturn%20at(this._model)%7D%7D%3Bvar%20W%3Dnull%3Bself.onmessage%3Dr%3D%3E%7Blet%7Bmethod%3Ae%2Cparams%3At%2CmessageId%3An%7D%3Dr.data%3Bif(e%3D%3D%3D%22init%22)%7BW%3Dnew%20ke(t.value)%2Cself.postMessage(%7BmessageId%3An%2Cresult%3A%22Worker%20initialized%22%7D)%3Breturn%7Dif(!W)%7Bself.postMessage(%7BmessageId%3An%2Cerror%3A%22Worker%20not%20initialized%22%7D)%3Breturn%7Dlet%20i%3Bswitch(e)%7Bcase%22updateModel%22%3AW.updateModel(t.op)%3Bbreak%3Bcase%22undo%22%3AW.undo()%3Bbreak%3Bcase%22redo%22%3AW.redo()%3Bbreak%3Bcase%22format%22%3Ai%3DW.format(t.options)%3Bbreak%3Bcase%22foldRange%22%3Ai%3DW.foldRange()%3Bbreak%3Bcase%22validate%22%3Ai%3DW.validate()%3Bbreak%3Bdefault%3Ai%3D%7Berror%3A%22Unknown%20method%22%7D%7Dself.postMessage(%7BmessageId%3An%2Cresult%3Ai%7D)%7D%3B%7D)()%3B%0A`);
|
|
432
|
+
const workerRaw = decodeURIComponent(`(()%3D%3E%7Bfunction%20%24(r%2Ce%3D!1)%7Blet%20t%3Dr.length%2Cn%3D0%2Ci%3D%22%22%2Cs%3D0%2Co%3D16%2Ca%3D0%2Cl%3D0%2Cf%3D0%2Cu%3D0%2Cc%3D0%3Bfunction%20d(N%2C_)%7Blet%20g%3D0%2Ch%3D0%3Bfor(%3Bg%3CN%7C%7C!_%3B)%7Blet%20p%3Dr.charCodeAt(n)%3Bif(p%3E%3D48%26%26p%3C%3D57)h%3Dh*16%2Bp-48%3Belse%20if(p%3E%3D65%26%26p%3C%3D70)h%3Dh*16%2Bp-65%2B10%3Belse%20if(p%3E%3D97%26%26p%3C%3D102)h%3Dh*16%2Bp-97%2B10%3Belse%20break%3Bn%2B%2B%2Cg%2B%2B%7Dreturn%20g%3CN%26%26(h%3D-1)%2Ch%7Dfunction%20b(N)%7Bn%3DN%2Ci%3D%22%22%2Cs%3D0%2Co%3D16%2Cc%3D0%7Dfunction%20k()%7Blet%20N%3Dn%3Bif(r.charCodeAt(n)%3D%3D%3D48)n%2B%2B%3Belse%20for(n%2B%2B%3Bn%3Cr.length%26%26U(r.charCodeAt(n))%3B)n%2B%2B%3Bif(n%3Cr.length%26%26r.charCodeAt(n)%3D%3D%3D46)if(n%2B%2B%2Cn%3Cr.length%26%26U(r.charCodeAt(n)))for(n%2B%2B%3Bn%3Cr.length%26%26U(r.charCodeAt(n))%3B)n%2B%2B%3Belse%20return%20c%3D3%2Cr.substring(N%2Cn)%3Blet%20_%3Dn%3Bif(n%3Cr.length%26%26(r.charCodeAt(n)%3D%3D%3D69%7C%7Cr.charCodeAt(n)%3D%3D%3D101))if(n%2B%2B%2C(n%3Cr.length%26%26r.charCodeAt(n)%3D%3D%3D43%7C%7Cr.charCodeAt(n)%3D%3D%3D45)%26%26n%2B%2B%2Cn%3Cr.length%26%26U(r.charCodeAt(n)))%7Bfor(n%2B%2B%3Bn%3Cr.length%26%26U(r.charCodeAt(n))%3B)n%2B%2B%3B_%3Dn%7Delse%20c%3D3%3Breturn%20r.substring(N%2C_)%7Dfunction%20L()%7Blet%20N%3D%22%22%2C_%3Dn%3Bfor(%3B%3B)%7Bif(n%3E%3Dt)%7BN%2B%3Dr.substring(_%2Cn)%2Cc%3D2%3Bbreak%7Dlet%20g%3Dr.charCodeAt(n)%3Bif(g%3D%3D%3D34)%7BN%2B%3Dr.substring(_%2Cn)%2Cn%2B%2B%3Bbreak%7Dif(g%3D%3D%3D92)%7Bif(N%2B%3Dr.substring(_%2Cn)%2Cn%2B%2B%2Cn%3E%3Dt)%7Bc%3D2%3Bbreak%7Dswitch(r.charCodeAt(n%2B%2B))%7Bcase%2034%3AN%2B%3D'%22'%3Bbreak%3Bcase%2092%3AN%2B%3D%22%5C%5C%22%3Bbreak%3Bcase%2047%3AN%2B%3D%22%2F%22%3Bbreak%3Bcase%2098%3AN%2B%3D%22%5Cb%22%3Bbreak%3Bcase%20102%3AN%2B%3D%22%5Cf%22%3Bbreak%3Bcase%20110%3AN%2B%3D%60%0A%60%3Bbreak%3Bcase%20114%3AN%2B%3D%22%5Cr%22%3Bbreak%3Bcase%20116%3AN%2B%3D%22%09%22%3Bbreak%3Bcase%20117%3Alet%20p%3Dd(4%2C!0)%3Bp%3E%3D0%3FN%2B%3DString.fromCharCode(p)%3Ac%3D4%3Bbreak%3Bdefault%3Ac%3D5%7D_%3Dn%3Bcontinue%7Dif(g%3E%3D0%26%26g%3C%3D31)if(q(g))%7BN%2B%3Dr.substring(_%2Cn)%2Cc%3D2%3Bbreak%7Delse%20c%3D6%3Bn%2B%2B%7Dreturn%20N%7Dfunction%20S()%7Bif(i%3D%22%22%2Cc%3D0%2Cs%3Dn%2Cl%3Da%2Cu%3Df%2Cn%3E%3Dt)return%20s%3Dt%2Co%3D17%3Blet%20N%3Dr.charCodeAt(n)%3Bif(Le(N))%7Bdo%20n%2B%2B%2Ci%2B%3DString.fromCharCode(N)%2CN%3Dr.charCodeAt(n)%3Bwhile(Le(N))%3Breturn%20o%3D15%7Dif(q(N))return%20n%2B%2B%2Ci%2B%3DString.fromCharCode(N)%2CN%3D%3D%3D13%26%26r.charCodeAt(n)%3D%3D%3D10%26%26(n%2B%2B%2Ci%2B%3D%60%0A%60)%2Ca%2B%2B%2Cf%3Dn%2Co%3D14%3Bswitch(N)%7Bcase%20123%3Areturn%20n%2B%2B%2Co%3D1%3Bcase%20125%3Areturn%20n%2B%2B%2Co%3D2%3Bcase%2091%3Areturn%20n%2B%2B%2Co%3D3%3Bcase%2093%3Areturn%20n%2B%2B%2Co%3D4%3Bcase%2058%3Areturn%20n%2B%2B%2Co%3D6%3Bcase%2044%3Areturn%20n%2B%2B%2Co%3D5%3Bcase%2034%3Areturn%20n%2B%2B%2Ci%3DL()%2Co%3D10%3Bcase%2047%3Alet%20_%3Dn-1%3Bif(r.charCodeAt(n%2B1)%3D%3D%3D47)%7Bfor(n%2B%3D2%3Bn%3Ct%26%26!q(r.charCodeAt(n))%3B)n%2B%2B%3Breturn%20i%3Dr.substring(_%2Cn)%2Co%3D12%7Dif(r.charCodeAt(n%2B1)%3D%3D%3D42)%7Bn%2B%3D2%3Blet%20g%3Dt-1%2Ch%3D!1%3Bfor(%3Bn%3Cg%3B)%7Blet%20p%3Dr.charCodeAt(n)%3Bif(p%3D%3D%3D42%26%26r.charCodeAt(n%2B1)%3D%3D%3D47)%7Bn%2B%3D2%2Ch%3D!0%3Bbreak%7Dn%2B%2B%2Cq(p)%26%26(p%3D%3D%3D13%26%26r.charCodeAt(n)%3D%3D%3D10%26%26n%2B%2B%2Ca%2B%2B%2Cf%3Dn)%7Dreturn%20h%7C%7C(n%2B%2B%2Cc%3D1)%2Ci%3Dr.substring(_%2Cn)%2Co%3D13%7Dreturn%20i%2B%3DString.fromCharCode(N)%2Cn%2B%2B%2Co%3D16%3Bcase%2045%3Aif(i%2B%3DString.fromCharCode(N)%2Cn%2B%2B%2Cn%3D%3D%3Dt%7C%7C!U(r.charCodeAt(n)))return%20o%3D16%3Bcase%2048%3Acase%2049%3Acase%2050%3Acase%2051%3Acase%2052%3Acase%2053%3Acase%2054%3Acase%2055%3Acase%2056%3Acase%2057%3Areturn%20i%2B%3Dk()%2Co%3D11%3Bdefault%3Afor(%3Bn%3Ct%26%26w(N)%3B)n%2B%2B%2CN%3Dr.charCodeAt(n)%3Bif(s!%3D%3Dn)%7Bswitch(i%3Dr.substring(s%2Cn)%2Ci)%7Bcase%22true%22%3Areturn%20o%3D8%3Bcase%22false%22%3Areturn%20o%3D9%3Bcase%22null%22%3Areturn%20o%3D7%7Dreturn%20o%3D16%7Dreturn%20i%2B%3DString.fromCharCode(N)%2Cn%2B%2B%2Co%3D16%7D%7Dfunction%20w(N)%7Bif(Le(N)%7C%7Cq(N))return!1%3Bswitch(N)%7Bcase%20125%3Acase%2093%3Acase%20123%3Acase%2091%3Acase%2034%3Acase%2058%3Acase%2044%3Acase%2047%3Areturn!1%7Dreturn!0%7Dfunction%20I()%7Blet%20N%3Bdo%20N%3DS()%3Bwhile(N%3E%3D12%26%26N%3C%3D15)%3Breturn%20N%7Dreturn%7BsetPosition%3Ab%2CgetPosition%3A()%3D%3En%2Cscan%3Ae%3FI%3AS%2CgetToken%3A()%3D%3Eo%2CgetTokenValue%3A()%3D%3Ei%2CgetTokenOffset%3A()%3D%3Es%2CgetTokenLength%3A()%3D%3En-s%2CgetTokenStartLine%3A()%3D%3El%2CgetTokenStartCharacter%3A()%3D%3Es-u%2CgetTokenError%3A()%3D%3Ec%7D%7Dfunction%20Le(r)%7Breturn%20r%3D%3D%3D32%7C%7Cr%3D%3D%3D9%7Dfunction%20q(r)%7Breturn%20r%3D%3D%3D10%7C%7Cr%3D%3D%3D13%7Dfunction%20U(r)%7Breturn%20r%3E%3D48%26%26r%3C%3D57%7Dvar%20Qe%3B(function(r)%7Br%5Br.lineFeed%3D10%5D%3D%22lineFeed%22%2Cr%5Br.carriageReturn%3D13%5D%3D%22carriageReturn%22%2Cr%5Br.space%3D32%5D%3D%22space%22%2Cr%5Br._0%3D48%5D%3D%22_0%22%2Cr%5Br._1%3D49%5D%3D%22_1%22%2Cr%5Br._2%3D50%5D%3D%22_2%22%2Cr%5Br._3%3D51%5D%3D%22_3%22%2Cr%5Br._4%3D52%5D%3D%22_4%22%2Cr%5Br._5%3D53%5D%3D%22_5%22%2Cr%5Br._6%3D54%5D%3D%22_6%22%2Cr%5Br._7%3D55%5D%3D%22_7%22%2Cr%5Br._8%3D56%5D%3D%22_8%22%2Cr%5Br._9%3D57%5D%3D%22_9%22%2Cr%5Br.a%3D97%5D%3D%22a%22%2Cr%5Br.b%3D98%5D%3D%22b%22%2Cr%5Br.c%3D99%5D%3D%22c%22%2Cr%5Br.d%3D100%5D%3D%22d%22%2Cr%5Br.e%3D101%5D%3D%22e%22%2Cr%5Br.f%3D102%5D%3D%22f%22%2Cr%5Br.g%3D103%5D%3D%22g%22%2Cr%5Br.h%3D104%5D%3D%22h%22%2Cr%5Br.i%3D105%5D%3D%22i%22%2Cr%5Br.j%3D106%5D%3D%22j%22%2Cr%5Br.k%3D107%5D%3D%22k%22%2Cr%5Br.l%3D108%5D%3D%22l%22%2Cr%5Br.m%3D109%5D%3D%22m%22%2Cr%5Br.n%3D110%5D%3D%22n%22%2Cr%5Br.o%3D111%5D%3D%22o%22%2Cr%5Br.p%3D112%5D%3D%22p%22%2Cr%5Br.q%3D113%5D%3D%22q%22%2Cr%5Br.r%3D114%5D%3D%22r%22%2Cr%5Br.s%3D115%5D%3D%22s%22%2Cr%5Br.t%3D116%5D%3D%22t%22%2Cr%5Br.u%3D117%5D%3D%22u%22%2Cr%5Br.v%3D118%5D%3D%22v%22%2Cr%5Br.w%3D119%5D%3D%22w%22%2Cr%5Br.x%3D120%5D%3D%22x%22%2Cr%5Br.y%3D121%5D%3D%22y%22%2Cr%5Br.z%3D122%5D%3D%22z%22%2Cr%5Br.A%3D65%5D%3D%22A%22%2Cr%5Br.B%3D66%5D%3D%22B%22%2Cr%5Br.C%3D67%5D%3D%22C%22%2Cr%5Br.D%3D68%5D%3D%22D%22%2Cr%5Br.E%3D69%5D%3D%22E%22%2Cr%5Br.F%3D70%5D%3D%22F%22%2Cr%5Br.G%3D71%5D%3D%22G%22%2Cr%5Br.H%3D72%5D%3D%22H%22%2Cr%5Br.I%3D73%5D%3D%22I%22%2Cr%5Br.J%3D74%5D%3D%22J%22%2Cr%5Br.K%3D75%5D%3D%22K%22%2Cr%5Br.L%3D76%5D%3D%22L%22%2Cr%5Br.M%3D77%5D%3D%22M%22%2Cr%5Br.N%3D78%5D%3D%22N%22%2Cr%5Br.O%3D79%5D%3D%22O%22%2Cr%5Br.P%3D80%5D%3D%22P%22%2Cr%5Br.Q%3D81%5D%3D%22Q%22%2Cr%5Br.R%3D82%5D%3D%22R%22%2Cr%5Br.S%3D83%5D%3D%22S%22%2Cr%5Br.T%3D84%5D%3D%22T%22%2Cr%5Br.U%3D85%5D%3D%22U%22%2Cr%5Br.V%3D86%5D%3D%22V%22%2Cr%5Br.W%3D87%5D%3D%22W%22%2Cr%5Br.X%3D88%5D%3D%22X%22%2Cr%5Br.Y%3D89%5D%3D%22Y%22%2Cr%5Br.Z%3D90%5D%3D%22Z%22%2Cr%5Br.asterisk%3D42%5D%3D%22asterisk%22%2Cr%5Br.backslash%3D92%5D%3D%22backslash%22%2Cr%5Br.closeBrace%3D125%5D%3D%22closeBrace%22%2Cr%5Br.closeBracket%3D93%5D%3D%22closeBracket%22%2Cr%5Br.colon%3D58%5D%3D%22colon%22%2Cr%5Br.comma%3D44%5D%3D%22comma%22%2Cr%5Br.dot%3D46%5D%3D%22dot%22%2Cr%5Br.doubleQuote%3D34%5D%3D%22doubleQuote%22%2Cr%5Br.minus%3D45%5D%3D%22minus%22%2Cr%5Br.openBrace%3D123%5D%3D%22openBrace%22%2Cr%5Br.openBracket%3D91%5D%3D%22openBracket%22%2Cr%5Br.plus%3D43%5D%3D%22plus%22%2Cr%5Br.slash%3D47%5D%3D%22slash%22%2Cr%5Br.formFeed%3D12%5D%3D%22formFeed%22%2Cr%5Br.tab%3D9%5D%3D%22tab%22%7D)(Qe%7C%7C(Qe%3D%7B%7D))%3Bvar%20O%3Dnew%20Array(20).fill(0).map((r%2Ce)%3D%3E%22%20%22.repeat(e))%2CJ%3D200%2CSe%3D%7B%22%20%22%3A%7B%22%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%0A%60%2B%22%20%22.repeat(e))%2C%22%5Cr%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%22%5Cr%22%2B%22%20%22.repeat(e))%2C%22%5Cr%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%5Cr%0A%60%2B%22%20%22.repeat(e))%7D%2C%22%09%22%3A%7B%22%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%0A%60%2B%22%09%22.repeat(e))%2C%22%5Cr%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%22%5Cr%22%2B%22%09%22.repeat(e))%2C%22%5Cr%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%5Cr%0A%60%2B%22%09%22.repeat(e))%7D%7D%2CYe%3D%5B%60%0A%60%2C%22%5Cr%22%2C%60%5Cr%0A%60%5D%3Bfunction%20we(r%2Ce%2Ct)%7Blet%20n%2Ci%2Cs%2Co%2Ca%3Bif(e)%7Bfor(o%3De.offset%2Ca%3Do%2Be.length%2Cs%3Do%3Bs%3E0%26%26!ye(r%2Cs-1)%3B)s--%3Blet%20g%3Da%3Bfor(%3Bg%3Cr.length%26%26!ye(r%2Cg)%3B)g%2B%2B%3Bi%3Dr.substring(s%2Cg)%2Cn%3Dkt(i%2Ct)%7Delse%20i%3Dr%2Cn%3D0%2Cs%3D0%2Co%3D0%2Ca%3Dr.length%3Blet%20l%3DLt(t%2Cr)%2Cf%3DYe.includes(l)%2Cu%3D0%2Cc%3D0%2Cd%3Bt.insertSpaces%3Fd%3DO%5Bt.tabSize%7C%7C4%5D%3F%3Fz(O%5B1%5D%2Ct.tabSize%7C%7C4)%3Ad%3D%22%09%22%3Blet%20b%3Dd%3D%3D%3D%22%09%22%3F%22%09%22%3A%22%20%22%2Ck%3D%24(i%2C!1)%2CL%3D!1%3Bfunction%20S()%7Bif(u%3E1)return%20z(l%2Cu)%2Bz(d%2Cn%2Bc)%3Blet%20g%3Dd.length*(n%2Bc)%3Breturn!f%7C%7Cg%3ESe%5Bb%5D%5Bl%5D.length%3Fl%2Bz(d%2Cn%2Bc)%3Ag%3C%3D0%3Fl%3ASe%5Bb%5D%5Bl%5D%5Bg%5D%7Dfunction%20w()%7Blet%20g%3Dk.scan()%3Bfor(u%3D0%3Bg%3D%3D%3D15%7C%7Cg%3D%3D%3D14%3B)g%3D%3D%3D14%26%26t.keepLines%3Fu%2B%3D1%3Ag%3D%3D%3D14%26%26(u%3D1)%2Cg%3Dk.scan()%3Breturn%20L%3Dg%3D%3D%3D16%7C%7Ck.getTokenError()!%3D%3D0%2Cg%7Dlet%20I%3D%5B%5D%3Bfunction%20N(g%2Ch%2Cp)%7B!L%26%26(!e%7C%7Ch%3Ca%26%26p%3Eo)%26%26r.substring(h%2Cp)!%3D%3Dg%26%26I.push(%7Boffset%3Ah%2Clength%3Ap-h%2Ccontent%3Ag%7D)%7Dlet%20_%3Dw()%3Bif(t.keepLines%26%26u%3E0%26%26N(z(l%2Cu)%2C0%2C0)%2C_!%3D%3D17)%7Blet%20g%3Dk.getTokenOffset()%2Bs%2Ch%3Dd.length*n%3C20%26%26t.insertSpaces%3FO%5Bd.length*n%5D%3Az(d%2Cn)%3BN(h%2Cs%2Cg)%7Dfor(%3B_!%3D%3D17%3B)%7Blet%20g%3Dk.getTokenOffset()%2Bk.getTokenLength()%2Bs%2Ch%3Dw()%2Cp%3D%22%22%2Cy%3D!1%3Bfor(%3Bu%3D%3D%3D0%26%26(h%3D%3D%3D12%7C%7Ch%3D%3D%3D13)%3B)%7Blet%20D%3Dk.getTokenOffset()%2Bs%3BN(O%5B1%5D%2Cg%2CD)%2Cg%3Dk.getTokenOffset()%2Bk.getTokenLength()%2Bs%2Cy%3Dh%3D%3D%3D12%2Cp%3Dy%3FS()%3A%22%22%2Ch%3Dw()%7Dif(h%3D%3D%3D2)_!%3D%3D1%26%26c--%2Ct.keepLines%26%26u%3E0%7C%7C!t.keepLines%26%26_!%3D%3D1%3Fp%3DS()%3At.keepLines%26%26(p%3DO%5B1%5D)%3Belse%20if(h%3D%3D%3D4)_!%3D%3D3%26%26c--%2Ct.keepLines%26%26u%3E0%7C%7C!t.keepLines%26%26_!%3D%3D3%3Fp%3DS()%3At.keepLines%26%26(p%3DO%5B1%5D)%3Belse%7Bswitch(_)%7Bcase%203%3Acase%201%3Ac%2B%2B%2Ct.keepLines%26%26u%3E0%7C%7C!t.keepLines%3Fp%3DS()%3Ap%3DO%5B1%5D%3Bbreak%3Bcase%205%3At.keepLines%26%26u%3E0%7C%7C!t.keepLines%3Fp%3DS()%3Ap%3DO%5B1%5D%3Bbreak%3Bcase%2012%3Ap%3DS()%3Bbreak%3Bcase%2013%3Au%3E0%3Fp%3DS()%3Ay%7C%7C(p%3DO%5B1%5D)%3Bbreak%3Bcase%206%3At.keepLines%26%26u%3E0%3Fp%3DS()%3Ay%7C%7C(p%3DO%5B1%5D)%3Bbreak%3Bcase%2010%3At.keepLines%26%26u%3E0%3Fp%3DS()%3Ah%3D%3D%3D6%26%26!y%26%26(p%3D%22%22)%3Bbreak%3Bcase%207%3Acase%208%3Acase%209%3Acase%2011%3Acase%202%3Acase%204%3At.keepLines%26%26u%3E0%3Fp%3DS()%3A(h%3D%3D%3D12%7C%7Ch%3D%3D%3D13)%26%26!y%3Fp%3DO%5B1%5D%3Ah!%3D%3D5%26%26h!%3D%3D17%26%26(L%3D!0)%3Bbreak%3Bcase%2016%3AL%3D!0%3Bbreak%7Du%3E0%26%26(h%3D%3D%3D12%7C%7Ch%3D%3D%3D13)%26%26(p%3DS())%7Dh%3D%3D%3D17%26%26(t.keepLines%26%26u%3E0%3Fp%3DS()%3Ap%3Dt.insertFinalNewline%3Fl%3A%22%22)%3Blet%20x%3Dk.getTokenOffset()%2Bs%3BN(p%2Cg%2Cx)%2C_%3Dh%7Dreturn%20I%7Dfunction%20z(r%2Ce)%7Blet%20t%3D%22%22%3Bfor(let%20n%3D0%3Bn%3Ce%3Bn%2B%2B)t%2B%3Dr%3Breturn%20t%7Dfunction%20kt(r%2Ce)%7Blet%20t%3D0%2Cn%3D0%2Ci%3De.tabSize%7C%7C4%3Bfor(%3Bt%3Cr.length%3B)%7Blet%20s%3Dr.charAt(t)%3Bif(s%3D%3D%3DO%5B1%5D)n%2B%2B%3Belse%20if(s%3D%3D%3D%22%09%22)n%2B%3Di%3Belse%20break%3Bt%2B%2B%7Dreturn%20Math.floor(n%2Fi)%7Dfunction%20Lt(r%2Ce)%7Bfor(let%20t%3D0%3Bt%3Ce.length%3Bt%2B%2B)%7Blet%20n%3De.charAt(t)%3Bif(n%3D%3D%3D%22%5Cr%22)return%20t%2B1%3Ce.length%26%26e.charAt(t%2B1)%3D%3D%3D%60%0A%60%3F%60%5Cr%0A%60%3A%22%5Cr%22%3Bif(n%3D%3D%3D%60%0A%60)return%60%0A%60%7Dreturn%20r%26%26r.eol%7C%7C%60%0A%60%7Dfunction%20ye(r%2Ce)%7Breturn%60%5Cr%0A%60.indexOf(r.charAt(e))!%3D%3D-1%7Dvar%20et%3B(function(r)%7Br.DEFAULT%3D%7BallowTrailingComma%3A!1%7D%7D)(et%7C%7C(et%3D%7B%7D))%3Bfunction%20yt(r%2Ce%2Ct%3D!1)%7Breturn%20e%3E%3Dr.offset%26%26e%3Cr.offset%2Br.length%7C%7Ct%26%26e%3D%3D%3Dr.offset%2Br.length%7Dfunction%20ve(r%2Ce%2Ct%3D!1)%7Bif(yt(r%2Ce%2Ct))%7Blet%20n%3Dr.children%3Bif(Array.isArray(n))for(let%20i%3D0%3Bi%3Cn.length%26%26n%5Bi%5D.offset%3C%3De%3Bi%2B%2B)%7Blet%20s%3Dve(n%5Bi%5D%2Ce%2Ct)%3Bif(s)return%20s%7Dreturn%20r%7D%7Dvar%20se%3D%24%2CB%3B(function(r)%7Br%5Br.None%3D0%5D%3D%22None%22%2Cr%5Br.UnexpectedEndOfComment%3D1%5D%3D%22UnexpectedEndOfComment%22%2Cr%5Br.UnexpectedEndOfString%3D2%5D%3D%22UnexpectedEndOfString%22%2Cr%5Br.UnexpectedEndOfNumber%3D3%5D%3D%22UnexpectedEndOfNumber%22%2Cr%5Br.InvalidUnicode%3D4%5D%3D%22InvalidUnicode%22%2Cr%5Br.InvalidEscapeCharacter%3D5%5D%3D%22InvalidEscapeCharacter%22%2Cr%5Br.InvalidCharacter%3D6%5D%3D%22InvalidCharacter%22%7D)(B%7C%7C(B%3D%7B%7D))%3Bvar%20T%3B(function(r)%7Br%5Br.OpenBraceToken%3D1%5D%3D%22OpenBraceToken%22%2Cr%5Br.CloseBraceToken%3D2%5D%3D%22CloseBraceToken%22%2Cr%5Br.OpenBracketToken%3D3%5D%3D%22OpenBracketToken%22%2Cr%5Br.CloseBracketToken%3D4%5D%3D%22CloseBracketToken%22%2Cr%5Br.CommaToken%3D5%5D%3D%22CommaToken%22%2Cr%5Br.ColonToken%3D6%5D%3D%22ColonToken%22%2Cr%5Br.NullKeyword%3D7%5D%3D%22NullKeyword%22%2Cr%5Br.TrueKeyword%3D8%5D%3D%22TrueKeyword%22%2Cr%5Br.FalseKeyword%3D9%5D%3D%22FalseKeyword%22%2Cr%5Br.StringLiteral%3D10%5D%3D%22StringLiteral%22%2Cr%5Br.NumericLiteral%3D11%5D%3D%22NumericLiteral%22%2Cr%5Br.LineCommentTrivia%3D12%5D%3D%22LineCommentTrivia%22%2Cr%5Br.BlockCommentTrivia%3D13%5D%3D%22BlockCommentTrivia%22%2Cr%5Br.LineBreakTrivia%3D14%5D%3D%22LineBreakTrivia%22%2Cr%5Br.Trivia%3D15%5D%3D%22Trivia%22%2Cr%5Br.Unknown%3D16%5D%3D%22Unknown%22%2Cr%5Br.EOF%3D17%5D%3D%22EOF%22%7D)(T%7C%7C(T%3D%7B%7D))%3Bvar%20nt%3Dve%3Bvar%20tt%3B(function(r)%7Br%5Br.InvalidSymbol%3D1%5D%3D%22InvalidSymbol%22%2Cr%5Br.InvalidNumberFormat%3D2%5D%3D%22InvalidNumberFormat%22%2Cr%5Br.PropertyNameExpected%3D3%5D%3D%22PropertyNameExpected%22%2Cr%5Br.ValueExpected%3D4%5D%3D%22ValueExpected%22%2Cr%5Br.ColonExpected%3D5%5D%3D%22ColonExpected%22%2Cr%5Br.CommaExpected%3D6%5D%3D%22CommaExpected%22%2Cr%5Br.CloseBraceExpected%3D7%5D%3D%22CloseBraceExpected%22%2Cr%5Br.CloseBracketExpected%3D8%5D%3D%22CloseBracketExpected%22%2Cr%5Br.EndOfFileExpected%3D9%5D%3D%22EndOfFileExpected%22%2Cr%5Br.InvalidCommentToken%3D10%5D%3D%22InvalidCommentToken%22%2Cr%5Br.UnexpectedEndOfComment%3D11%5D%3D%22UnexpectedEndOfComment%22%2Cr%5Br.UnexpectedEndOfString%3D12%5D%3D%22UnexpectedEndOfString%22%2Cr%5Br.UnexpectedEndOfNumber%3D13%5D%3D%22UnexpectedEndOfNumber%22%2Cr%5Br.InvalidUnicode%3D14%5D%3D%22InvalidUnicode%22%2Cr%5Br.InvalidEscapeCharacter%3D15%5D%3D%22InvalidEscapeCharacter%22%2Cr%5Br.InvalidCharacter%3D16%5D%3D%22InvalidCharacter%22%7D)(tt%7C%7C(tt%3D%7B%7D))%3Bfunction%20rt(r%2Ce%2Ct)%7Breturn%20we(r%2Ce%2Ct)%7Dvar%20oe%3Dclass%20r%7Bconstructor(e%2Ct%2Cn)%7Bthis.message%3De%2Cthis.code%3Dt%2Cthis.range%3Dn%7Dstatic%20create(e%2Ct%2Cn)%7Breturn%20new%20r(e%2Ct%2Cn)%7D%7D%2Cle%3Dclass%20r%7Bconstructor(e%2Ct)%7Bthis.start%3De%2Cthis.end%3Dt%7Dstatic%20create(e%2Ct)%7Breturn%20new%20r(e%2Ct)%7D%7D%2CBt%3B(x%3D%3E(x.Text%3D1%2Cx.Method%3D2%2Cx.Function%3D3%2Cx.Constructor%3D4%2Cx.Field%3D5%2Cx.Variable%3D6%2Cx.Class%3D7%2Cx.Interface%3D8%2Cx.Module%3D9%2Cx.Property%3D10%2Cx.Unit%3D11%2Cx.Value%3D12%2Cx.Enum%3D13%2Cx.Keyword%3D14%2Cx.Snippet%3D15%2Cx.Color%3D16%2Cx.File%3D17%2Cx.Reference%3D18%2Cx.Folder%3D19%2Cx.EnumMember%3D20%2Cx.Constant%3D21%2Cx.Struct%3D22%2Cx.Event%3D23%2Cx.Operator%3D24%2Cx.TypeParameter%3D25))(Bt%7C%7C%3D%7B%7D)%3Bvar%20Ct%3B(t%3D%3E(t.PlainText%3D1%2Ct.Snippet%3D2))(Ct%7C%7C%3D%7B%7D)%3Bvar%20Et%3B(e%3D%3E%7Bfunction%20r(t%2Cn)%7Breturn%7Brange%3At%2CnewText%3An%7D%7De.replace%3Dr%7D)(Et%7C%7C%3D%7B%7D)%3Bvar%20Mt%3B(e%3D%3E%7Bfunction%20r(t)%7Breturn%7Blabel%3At%7D%7De.create%3Dr%7D)(Mt%7C%7C%3D%7B%7D)%3Bfunction%20it(r)%7Breturn%20typeof%20r%3D%3D%22object%22%26%26r!%3D%3Dnull%26%26!Array.isArray(r)%7Dfunction%20st(r)%7Breturn%20typeof%20r%3D%3D%22number%22%7Dvar%20F%3Dclass%7Bconstructor(e%2Ct%2Cn%3D0)%7Bthis.offset%3Dt%2Cthis.length%3Dn%2Cthis.parent%3De%7Dget%20children()%7Breturn%5B%5D%7DtoString()%7Breturn%22type%3A%20%22%2Bthis.type%2B%22%20(%22%2Bthis.offset%2B%22%2F%22%2Bthis.length%2B%22)%22%2B(this.parent%3F%22%20parent%3A%20%7B%22%2Bthis.parent.toString()%2B%22%7D%22%3A%22%22)%7D%7D%2CIe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22null%22%3Bthis.value%3Dnull%7D%7D%2Cae%3Dclass%20extends%20F%7Bconstructor(t%2Cn%2Ci)%7Bsuper(t%2Ci)%3Bthis.type%3D%22boolean%22%3Bthis.value%3Dn%7D%7D%2COe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22array%22%3Bthis.items%3D%5B%5D%7Dget%20children()%7Breturn%20this.items%7D%7D%2CAe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22number%22%3Bthis.isInteger%3D!0%2Cthis.value%3DNumber.NaN%7D%7D%2CBe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22object%22%3Bthis.properties%3D%5B%5D%7Dget%20children()%7Breturn%20this.properties%7D%7D%2CX%3Dclass%20extends%20F%7Bconstructor(t%2Cn%2Ci)%7Bsuper(t%2Cn%2Ci)%3Bthis.type%3D%22string%22%3Bthis.value%3D%22%22%7D%7D%2CCe%3Dclass%20extends%20F%7Bconstructor(t%2Cn%2Ci)%7Bsuper(t%2Cn)%3Bthis.type%3D%22property%22%3Bthis.colonOffset%3D-1%2Cthis.keyNode%3Di%7Dget%20children()%7Breturn%20this.valueNode%3F%5Bthis.keyNode%2Cthis.valueNode%5D%3A%5Bthis.keyNode%5D%7D%7D%2CEe%3Dclass%7Bconstructor(e)%7Bthis.root%3De%7DgetNodeFromOffset(e%2Ct%3D!1)%7Bif(this.root)return%20nt(this.root%2Ce%2Ct)%7Dvisit(e)%7Bif(this.root)%7Blet%20t%3Dn%3D%3E%7Blet%20i%3De(n)%2Cs%3Dn.children%3Bif(Array.isArray(s))for(let%20o%3D0%3Bo%3Cs.length%26%26i%3Bo%2B%2B)i%3Dt(s%5Bo%5D)%3Breturn%20i%7D%3Bt(this.root)%7D%7D%7D%3Bfunction%20Me(r)%7Blet%20e%3D%5B%5D%2Ct%3D-1%2Cn%3Dr.getValue()%2Ci%3Dse(n%2C!1)%3Bfunction%20s()%7Bfor(%3B%3B)%7Blet%20_%3Di.scan()%3Bswitch(o()%2C_)%7Bcase%20T.LineBreakTrivia%3Acase%20T.Trivia%3Abreak%3Bdefault%3Areturn%20_%7D%7D%7Dfunction%20o()%7Bswitch(i.getTokenError())%7Bcase%20B.InvalidUnicode%3Areturn%20f(%22Invalid%20unicode%20sequence%20in%20string.%22%2C260)%2C!0%3Bcase%20B.InvalidEscapeCharacter%3Areturn%20f(%22Invalid%20escape%20character%20in%20string.%22%2C261)%2C!0%3Bcase%20B.UnexpectedEndOfNumber%3Areturn%20f(%22Unexpected%20end%20of%20number.%22%2C259)%2C!0%3Bcase%20B.UnexpectedEndOfComment%3Areturn%20f(%22Unexpected%20end%20of%20comment.%22%2C257)%2C!0%3Bcase%20B.UnexpectedEndOfString%3Areturn%20f(%22Unexpected%20end%20of%20string.%22%2C258)%2C!0%3Bcase%20B.InvalidCharacter%3Areturn%20f(%22Invalid%20characters%20in%20string.%20Control%20characters%20must%20be%20escaped.%22%2C262)%2C!0%7Dreturn!1%7Dfunction%20a(_%2Cg%2Ch%2Cp)%7Bif(e.length%3D%3D%3D0%7C%7Ch!%3D%3Dt)%7Blet%20y%3Dle.create(r.positionAt(h)%2Cr.positionAt(p))%3Be.push(oe.create(_%2Cg%2Cy))%2Ct%3Dh%7D%7Dfunction%20l(_%2Cg)%7Breturn%20_.length%3Di.getTokenOffset()%2Bi.getTokenLength()-_.offset%2Cg%26%26s()%2C_%7Dfunction%20f(_%2Cg%2Ch%3Dvoid%200%2Cp%3D%5B%5D%2Cy%3D%5B%5D)%7Blet%20x%3Di.getTokenOffset()%2CD%3Di.getTokenOffset()%2Bi.getTokenLength()%3Bif(x%3D%3D%3DD%26%26x%3E0)%7Bfor(x--%3Bx%3E0%26%26%2F%5Cs%2F.test(n.charAt(x))%3B)x--%3BD%3Dx%2B1%7Dif(a(_%2Cg%2Cx%2CD)%2Ch%26%26l(h%2C!1)%2Cp.length%2By.length%3E0)%7Blet%20ie%3Di.getToken()%3Bfor(%3Bie!%3D%3DT.EOF%3B)%7Bif(p.indexOf(ie)!%3D%3D-1)%7Bs()%3Bbreak%7Delse%20if(y.indexOf(ie)!%3D%3D-1)break%3Bie%3Ds()%7D%7Dreturn%20h%7Dfunction%20u(_)%7Bif(i.getToken()!%3D%3DT.OpenBracketToken)return%3Blet%20g%3Dnew%20Oe(_%2Ci.getTokenOffset())%3Bs()%3Blet%20h%3D!1%3Bfor(%3Bi.getToken()!%3D%3DT.CloseBracketToken%26%26i.getToken()!%3D%3DT.EOF%3B)%7Bif(i.getToken()%3D%3D%3DT.CommaToken)%7Bh%7C%7Cf(%22Value%20expected.%22%2C516)%3Blet%20y%3Di.getTokenOffset()%3Bif(s()%2Ci.getToken()%3D%3D%3DT.CloseBracketToken)%7Bh%26%26a(%22Trailing%20comma%22%2C519%2Cy%2Cy%2B1)%3Bcontinue%7D%7Delse%20if(h)%7Bf(%22Comma%20expected.%22%2C514%2Cvoid%200%2C%5B%5D%2C%5BT.CloseBracketToken%5D)%3Bbreak%7Dlet%20p%3Dw(g)%3Bif(p)g.items.push(p)%3Belse%7Bf(%22Value%20expected.%22%2C516%2Cvoid%200%2C%5B%5D%2C%5BT.CloseBracketToken%5D)%3Bbreak%7Dh%3D!0%7Dreturn%20i.getToken()!%3D%3DT.CloseBracketToken%3Ff(%22Expected%20comma%20or%20closing%20bracket%22%2C518%2Cg)%3Al(g%2C!0)%7Dlet%20c%3Dnew%20X(void%200%2C0%2C0)%3Bfunction%20d(_%2Cg)%7Blet%20h%3Dnew%20Ce(_%2Ci.getTokenOffset()%2Cc)%2Cp%3Dk(h)%3Bif(!p)if(i.getToken()%3D%3D%3DT.Unknown)%7Bf(%22Property%20keys%20must%20be%20doublequoted%22%2C528)%3Blet%20x%3Dnew%20X(h%2Ci.getTokenOffset()%2Ci.getTokenLength())%3Bx.value%3Di.getTokenValue()%2Cp%3Dx%2Cs()%7Delse%20return%3Bif(h.keyNode%3Dp%2Cp.value!%3D%3D%22%2F%2F%22)%7Blet%20x%3Dg%5Bp.value%5D%3Bx%3F(a(%22Duplicate%20object%20key%22%2C520%2Ch.keyNode.offset%2Ch.keyNode.offset%2Bh.keyNode.length)%2Cit(x)%26%26a(%22Duplicate%20object%20key%22%2C520%2Cx.keyNode.offset%2Cx.keyNode.offset%2Bx.keyNode.length)%2Cg%5Bp.value%5D%3D!0)%3Ag%5Bp.value%5D%3Dh%7Dif(i.getToken()%3D%3D%3DT.ColonToken)h.colonOffset%3Di.getTokenOffset()%2Cs()%3Belse%20if(f(%22Colon%20expected%22%2C515)%2Ci.getToken()%3D%3D%3DT.StringLiteral%26%26r.positionAt(p.offset%2Bp.length).lineNumber%3Cr.positionAt(i.getTokenOffset()).lineNumber)return%20h.length%3Dp.length%2Ch%3Blet%20y%3Dw(h)%3Breturn%20y%3F(h.valueNode%3Dy%2Ch.length%3Dy.offset%2By.length-h.offset%2Ch)%3Af(%22Value%20expected%22%2C516%2Ch%2C%5B%5D%2C%5BT.CloseBraceToken%2CT.CommaToken%5D)%7Dfunction%20b(_)%7Bif(i.getToken()!%3D%3DT.OpenBraceToken)return%3Blet%20g%3Dnew%20Be(_%2Ci.getTokenOffset())%2Ch%3DObject.create(null)%3Bs()%3Blet%20p%3D!1%3Bfor(%3Bi.getToken()!%3D%3DT.CloseBraceToken%26%26i.getToken()!%3D%3DT.EOF%3B)%7Bif(i.getToken()%3D%3D%3DT.CommaToken)%7Bp%7C%7Cf(%22Property%20expected%22%2C513)%3Blet%20x%3Di.getTokenOffset()%3Bif(s()%2Ci.getToken()%3D%3D%3DT.CloseBraceToken)%7Bp%26%26a(%22Trailing%20comma%22%2C519%2Cx%2Cx%2B1)%3Bcontinue%7D%7Delse%20p%26%26f(%22Expected%20comma%22%2C514)%3Blet%20y%3Dd(g%2Ch)%3By%3Fg.properties.push(y)%3Af(%22Property%20expected%22%2C513%2Cvoid%200%2C%5B%5D%2C%5BT.CloseBraceToken%2CT.CommaToken%5D)%2Cp%3D!0%7Dreturn%20i.getToken()!%3D%3DT.CloseBraceToken%3Ff(%22Expected%20comma%20or%20closing%20brace%22%2C518%2Cg)%3Al(g%2C!0)%7Dfunction%20k(_)%7Bif(i.getToken()!%3D%3DT.StringLiteral)return%3Blet%20g%3Dnew%20X(_%2Ci.getTokenOffset())%3Breturn%20g.value%3Di.getTokenValue()%2Cl(g%2C!0)%7Dfunction%20L(_)%7Bif(i.getToken()!%3D%3DT.NumericLiteral)return%3Blet%20g%3Dnew%20Ae(_%2Ci.getTokenOffset())%3Bif(i.getTokenError()%3D%3D%3DB.None)%7Blet%20h%3Di.getTokenValue()%3Btry%7Blet%20p%3DJSON.parse(h)%3Bif(!st(p))return%20f(%22Invalid%20number%20format.%22%2C0%2Cg)%3Bg.value%3Dp%7Dcatch%7Breturn%20f(%22Invalid%20number%20format.%22%2C0%2Cg)%7Dg.isInteger%3Dh.indexOf(%22.%22)%3D%3D%3D-1%7Dreturn%20l(g%2C!0)%7Dfunction%20S(_)%7Blet%20g%3Bswitch(i.getToken())%7Bcase%20T.NullKeyword%3Areturn%20l(new%20Ie(_%2Ci.getTokenOffset())%2C!0)%3Bcase%20T.TrueKeyword%3Areturn%20l(new%20ae(_%2C!0%2Ci.getTokenOffset())%2C!0)%3Bcase%20T.FalseKeyword%3Areturn%20l(new%20ae(_%2C!1%2Ci.getTokenOffset())%2C!0)%3Bdefault%3Areturn%7D%7Dfunction%20w(_)%7Breturn%20u(_)%7C%7Cb(_)%7C%7Ck(_)%7C%7CL(_)%7C%7CS(_)%7Dlet%20I%3Breturn%20s()!%3D%3DT.EOF%26%26(I%3Dw(I)%2CI%3Fi.getToken()!%3D%3DT.EOF%26%26f(%22End%20of%20file%20expected.%22%2C0)%3Af(%22Expected%20a%20JSON%20object%2C%20array%20or%20literal%22%2C0))%2C%7Bproblems%3Ae%2Croot%3Anew%20Ee(I)%7D%7Dfunction%20Fe(r)%7Blet%20e%3D%5B%5D%2Ct%3D%5B%5D%2Cn%3D-1%2Ci%3Dse(r.getValue()%2C!1)%2Cs%3Di.scan()%3Bfunction%20o(a)%7Be.push(a)%7Dfor(%3Bs!%3D%3DT.EOF%3B)%7Bswitch(s)%7Bcase%20T.OpenBraceToken%3Acase%20T.OpenBracketToken%3A%7Blet%20l%3D%7BstartLineNumber%3Ar.positionAt(i.getPosition()).lineNumber%2Ctype%3As%3D%3D%3DT.OpenBraceToken%3F%22object%22%3A%22array%22%7D%3Bt.push(l)%3Bbreak%7Dcase%20T.CloseBraceToken%3Acase%20T.CloseBracketToken%3A%7Blet%20a%3Ds%3D%3D%3DT.CloseBraceToken%3F%22object%22%3A%22array%22%3Bif(t.length%3E0%26%26t%5Bt.length-1%5D.type%3D%3D%3Da)%7Blet%20l%3Dt.pop()%2Cf%3Dr.positionAt(i.getTokenOffset()).lineNumber%3Bif(l%26%26f%3El.startLineNumber%2B1%26%26n!%3D%3Dl.startLineNumber)%7Blet%20u%3D%7BstartLineNumber%3Al.startLineNumber%2CendLineNumber%3Af-1%2Ctype%3Al.type%2CisCollapsed%3A!1%2Csource%3A0%7D%3Bo(u)%2Cn%3Dl.startLineNumber%7D%7Dbreak%7D%7Ds%3Di.scan()%7Dreturn%20e%7Dfunction%20ot(r%2Ce)%7Breturn%20rt(r.getValue()%2Cvoid%200%2Ce)%7Dfunction%20lt(r)%7Blet%7Broot%3Ae%2Cproblems%3At%7D%3DMe(r)%3Breturn%7Bproblems%3At%2Croot%3Ae%7D%7Dfunction%20at(r)%7Breturn%20Me(r).root%7Dvar%20P%3Dclass%7Bconstructor(e%2Ct)%7Bthis.lineNumber%3De%2Cthis.column%3Dt%7D%7D%3Bvar%20A%3Dclass%20r%7Bconstructor(e%2Ct%2Cn%2Ci)%7Be%3En%7C%7Ce%3D%3D%3Dn%26%26t%3Ei%3F(this.startLineNumber%3Dn%2Cthis.startColumn%3Di%2Cthis.endLineNumber%3De%2Cthis.endColumn%3Dt)%3A(this.startLineNumber%3De%2Cthis.startColumn%3Dt%2Cthis.endLineNumber%3Dn%2Cthis.endColumn%3Di)%7Dstatic%20create(e%2Ct)%7Breturn%20new%20r(e.lineNumber%2Ce.column%2Ct.lineNumber%2Ct.column)%7Dstatic%20areIntersecting(e%2Ct)%7Breturn!(e.endLineNumber%3Ct.startLineNumber%7C%7Ce.endLineNumber%3D%3D%3Dt.startLineNumber%26%26e.endColumn%3C%3Dt.startColumn%7C%7Ct.endLineNumber%3Ce.startLineNumber%7C%7Ct.endLineNumber%3D%3D%3De.startLineNumber%26%26t.endColumn%3C%3De.startColumn)%7DplusRange(e)%7Breturn%20r.plusRange(this%2Ce)%7Dstatic%20plusRange(e%2Ct)%7Blet%20n%2Ci%2Cs%2Co%3Breturn%20t.startLineNumber%3Ce.startLineNumber%3F(n%3Dt.startLineNumber%2Ci%3Dt.startColumn)%3At.startLineNumber%3D%3D%3De.startLineNumber%3F(n%3Dt.startLineNumber%2Ci%3DMath.min(t.startColumn%2Ce.startColumn))%3A(n%3De.startLineNumber%2Ci%3De.startColumn)%2Ct.endLineNumber%3Ee.endLineNumber%3F(s%3Dt.endLineNumber%2Co%3Dt.endColumn)%3At.endLineNumber%3D%3D%3De.endLineNumber%3F(s%3Dt.endLineNumber%2Co%3DMath.max(t.endColumn%2Ce.endColumn))%3A(s%3De.endLineNumber%2Co%3De.endColumn)%2Cnew%20r(n%2Ci%2Cs%2Co)%7DgetStartPosition()%7Breturn%20r.getStartPosition(this)%7Dstatic%20getStartPosition(e)%7Breturn%20new%20P(e.startLineNumber%2Ce.startColumn)%7D%7D%3Bvar%20V%3Dclass%7Bconstructor(e%2Ct)%7Bthis._findMatchBrand%3Dvoid%200%3Bthis.range%3De%2Cthis.matches%3Dt%7D%7D%2Cfe%3Dclass%7Bconstructor(e%2Ct%2Cn)%7Bthis.regex%3De%2Cthis.wordSeparators%3Dt%2Cthis.simpleSearch%3Dn%7D%7D%3Bvar%20j%3Dclass%7Bconstructor(e%2Ct)%7Bthis.piece%3De%2Cthis.color%3Dt%2Cthis.size_left%3D0%2Cthis.lf_left%3D0%2Cthis.parent%3Dthis%2Cthis.left%3Dthis%2Cthis.right%3Dthis%7Dnext()%7Bif(this.right!%3D%3Dm)return%20ue(this.right)%3Blet%20e%3Dthis%3Bfor(%3Be.parent!%3D%3Dm%26%26e.parent.left!%3D%3De%3B)e%3De.parent%3Breturn%20e.parent%3D%3D%3Dm%3Fm%3Ae.parent%7Dprev()%7Bif(this.left!%3D%3Dm)return%20Re(this.left)%3Blet%20e%3Dthis%3Bfor(%3Be.parent!%3D%3Dm%26%26e.parent.right!%3D%3De%3B)e%3De.parent%3Breturn%20e.parent%3D%3D%3Dm%3Fm%3Ae.parent%7Ddetach()%7Bthis.parent%3Dnull%2Cthis.left%3Dnull%2Cthis.right%3Dnull%7D%7D%3Bvar%20m%3Dnew%20j(null%2C0)%3Bm.parent%3Dm%3Bm.left%3Dm%3Bm.right%3Dm%3Bm.color%3D0%3Bfunction%20ue(r)%7Bfor(%3Br.left!%3D%3Dm%3B)r%3Dr.left%3Breturn%20r%7Dfunction%20Re(r)%7Bfor(%3Br.right!%3D%3Dm%3B)r%3Dr.right%3Breturn%20r%7Dfunction%20Ve(r)%7Breturn%20r%3D%3D%3Dm%3F0%3Ar.size_left%2Br.piece.length%2BVe(r.right)%7Dfunction%20We(r)%7Breturn%20r%3D%3D%3Dm%3F0%3Ar.lf_left%2Br.piece.lineFeedCnt%2BWe(r.right)%7Dfunction%20Pe()%7Bm.parent%3Dm%7Dfunction%20G(r%2Ce)%7Blet%20t%3De.right%3Bt.size_left%2B%3De.size_left%2B(e.piece%3Fe.piece.length%3A0)%2Ct.lf_left%2B%3De.lf_left%2B(e.piece%3Fe.piece.lineFeedCnt%3A0)%2Ce.right%3Dt.left%2Ct.left!%3D%3Dm%26%26(t.left.parent%3De)%2Ct.parent%3De.parent%2Ce.parent%3D%3D%3Dm%3Fr.root%3Dt%3Ae.parent.left%3D%3D%3De%3Fe.parent.left%3Dt%3Ae.parent.right%3Dt%2Ct.left%3De%2Ce.parent%3Dt%7Dfunction%20Z(r%2Ce)%7Blet%20t%3De.left%3Be.left%3Dt.right%2Ct.right!%3D%3Dm%26%26(t.right.parent%3De)%2Ct.parent%3De.parent%2Ce.size_left-%3Dt.size_left%2B(t.piece%3Ft.piece.length%3A0)%2Ce.lf_left-%3Dt.lf_left%2B(t.piece%3Ft.piece.lineFeedCnt%3A0)%2Ce.parent%3D%3D%3Dm%3Fr.root%3Dt%3Ae%3D%3D%3De.parent.right%3Fe.parent.right%3Dt%3Ae.parent.left%3Dt%2Ct.right%3De%2Ce.parent%3Dt%7Dfunction%20Q(r%2Ce)%7Blet%20t%2Cn%3Bif(e.left%3D%3D%3Dm%3F(n%3De%2Ct%3Dn.right)%3Ae.right%3D%3D%3Dm%3F(n%3De%2Ct%3Dn.left)%3A(n%3Due(e.right)%2Ct%3Dn.right)%2Cn%3D%3D%3Dr.root)%7Br.root%3Dt%2Ct.color%3D0%2Ce.detach()%2CPe()%2Cr.root.parent%3Dm%3Breturn%7Dlet%20i%3Dn.color%3D%3D%3D1%3Bif(n%3D%3D%3Dn.parent.left%3Fn.parent.left%3Dt%3An.parent.right%3Dt%2Cn%3D%3D%3De%3F(t.parent%3Dn.parent%2CH(r%2Ct))%3A(n.parent%3D%3D%3De%3Ft.parent%3Dn%3At.parent%3Dn.parent%2CH(r%2Ct)%2Cn.left%3De.left%2Cn.right%3De.right%2Cn.parent%3De.parent%2Cn.color%3De.color%2Ce%3D%3D%3Dr.root%3Fr.root%3Dn%3Ae%3D%3D%3De.parent.left%3Fe.parent.left%3Dn%3Ae.parent.right%3Dn%2Cn.left!%3D%3Dm%26%26(n.left.parent%3Dn)%2Cn.right!%3D%3Dm%26%26(n.right.parent%3Dn)%2Cn.size_left%3De.size_left%2Cn.lf_left%3De.lf_left%2CH(r%2Cn))%2Ce.detach()%2Ct.parent.left%3D%3D%3Dt)%7Blet%20o%3DVe(t)%2Ca%3DWe(t)%3Bif(o!%3D%3Dt.parent.size_left%7C%7Ca!%3D%3Dt.parent.lf_left)%7Blet%20l%3Do-t.parent.size_left%2Cf%3Da-t.parent.lf_left%3Bt.parent.size_left%3Do%2Ct.parent.lf_left%3Da%2CC(r%2Ct.parent%2Cl%2Cf)%7D%7Dif(H(r%2Ct.parent)%2Ci)%7BPe()%3Breturn%7Dlet%20s%3Bfor(%3Bt!%3D%3Dr.root%26%26t.color%3D%3D%3D0%3B)t%3D%3D%3Dt.parent.left%3F(s%3Dt.parent.right%2Cs.color%3D%3D%3D1%26%26(s.color%3D0%2Ct.parent.color%3D1%2CG(r%2Ct.parent)%2Cs%3Dt.parent.right)%2Cs.left.color%3D%3D%3D0%26%26s.right.color%3D%3D%3D0%3F(s.color%3D1%2Ct%3Dt.parent)%3A(s.right.color%3D%3D%3D0%26%26(s.left.color%3D0%2Cs.color%3D1%2CZ(r%2Cs)%2Cs%3Dt.parent.right)%2Cs.color%3Dt.parent.color%2Ct.parent.color%3D0%2Cs.right.color%3D0%2CG(r%2Ct.parent)%2Ct%3Dr.root))%3A(s%3Dt.parent.left%2Cs.color%3D%3D%3D1%26%26(s.color%3D0%2Ct.parent.color%3D1%2CZ(r%2Ct.parent)%2Cs%3Dt.parent.left)%2Cs.left.color%3D%3D%3D0%26%26s.right.color%3D%3D%3D0%3F(s.color%3D1%2Ct%3Dt.parent)%3A(s.left.color%3D%3D%3D0%26%26(s.right.color%3D0%2Cs.color%3D1%2CG(r%2Cs)%2Cs%3Dt.parent.left)%2Cs.color%3Dt.parent.color%2Ct.parent.color%3D0%2Cs.left.color%3D0%2CZ(r%2Ct.parent)%2Ct%3Dr.root))%3Bt.color%3D0%2CPe()%7Dfunction%20Ue(r%2Ce)%7Bfor(H(r%2Ce)%3Be!%3D%3Dr.root%26%26e.parent.color%3D%3D%3D1%3B)if(e.parent%3D%3D%3De.parent.parent.left)%7Blet%20t%3De.parent.parent.right%3Bt.color%3D%3D%3D1%3F(e.parent.color%3D0%2Ct.color%3D0%2Ce.parent.parent.color%3D1%2Ce%3De.parent.parent)%3A(e%3D%3D%3De.parent.right%26%26(e%3De.parent%2CG(r%2Ce))%2Ce.parent.color%3D0%2Ce.parent.parent.color%3D1%2CZ(r%2Ce.parent.parent))%7Delse%7Blet%20t%3De.parent.parent.left%3Bt.color%3D%3D%3D1%3F(e.parent.color%3D0%2Ct.color%3D0%2Ce.parent.parent.color%3D1%2Ce%3De.parent.parent)%3A(e%3D%3D%3De.parent.left%26%26(e%3De.parent%2CZ(r%2Ce))%2Ce.parent.color%3D0%2Ce.parent.parent.color%3D1%2CG(r%2Ce.parent.parent))%7Dr.root.color%3D0%7Dfunction%20C(r%2Ce%2Ct%2Cn)%7Bfor(%3Be!%3D%3Dr.root%26%26e!%3D%3Dm%3B)e.parent.left%3D%3D%3De%26%26(e.parent.size_left%2B%3Dt%2Ce.parent.lf_left%2B%3Dn)%2Ce%3De.parent%7Dfunction%20H(r%2Ce)%7Blet%20t%3D0%2Cn%3D0%3Bif(e!%3D%3Dr.root)%7Bfor(%3Be!%3D%3Dr.root%26%26e%3D%3D%3De.parent.right%3B)e%3De.parent%3Bif(e!%3D%3Dr.root)for(e%3De.parent%2Ct%3DVe(e.left)-e.size_left%2Cn%3DWe(e.left)-e.lf_left%2Ce.size_left%2B%3Dt%2Ce.lf_left%2B%3Dn%3Be!%3D%3Dr.root%26%26(t!%3D%3D0%7C%7Cn!%3D%3D0)%3B)e.parent.left%3D%3D%3De%26%26(e.parent.size_left%2B%3Dt%2Ce.parent.lf_left%2B%3Dn)%2Ce%3De.parent%7D%7Dvar%20ft%2CJe%3Dclass%7Bconstructor()%7Bthis%5Bft%5D%3D%22LinkedMap%22%3Bthis._map%3Dnew%20Map%2Cthis._head%3Dvoid%200%2Cthis._tail%3Dvoid%200%2Cthis._size%3D0%2Cthis._state%3D0%7Dclear()%7Bthis._map.clear()%2Cthis._head%3Dvoid%200%2Cthis._tail%3Dvoid%200%2Cthis._size%3D0%2Cthis._state%2B%2B%7DisEmpty()%7Breturn!this._head%26%26!this._tail%7Dget%20size()%7Breturn%20this._size%7Dget%20first()%7Breturn%20this._head%3F.value%7Dget%20last()%7Breturn%20this._tail%3F.value%7Dhas(e)%7Breturn%20this._map.has(e)%7Dget(e%2Ct%3D0)%7Blet%20n%3Dthis._map.get(e)%3Bif(n)return%20t!%3D%3D0%26%26this.touch(n%2Ct)%2Cn.value%7Dset(e%2Ct%2Cn%3D0)%7Blet%20i%3Dthis._map.get(e)%3Bif(i)i.value%3Dt%2Cn!%3D%3D0%26%26this.touch(i%2Cn)%3Belse%7Bswitch(i%3D%7Bkey%3Ae%2Cvalue%3At%2Cnext%3Avoid%200%2Cprevious%3Avoid%200%7D%2Cn)%7Bcase%200%3Athis.addItemLast(i)%3Bbreak%3Bcase%201%3Athis.addItemFirst(i)%3Bbreak%3Bcase%202%3Athis.addItemLast(i)%3Bbreak%3Bdefault%3Athis.addItemLast(i)%3Bbreak%7Dthis._map.set(e%2Ci)%2Cthis._size%2B%2B%7Dreturn%20this%7Ddelete(e)%7Breturn!!this.remove(e)%7Dremove(e)%7Blet%20t%3Dthis._map.get(e)%3Bif(t)return%20this._map.delete(e)%2Cthis.removeItem(t)%2Cthis._size--%2Ct.value%7Dshift()%7Bif(!this._head%26%26!this._tail)return%3Bif(!this._head%7C%7C!this._tail)throw%20new%20Error(%22Invalid%20list%22)%3Blet%20e%3Dthis._head%3Breturn%20this._map.delete(e.key)%2Cthis.removeItem(e)%2Cthis._size--%2Ce.value%7DforEach(e%2Ct)%7Blet%20n%3Dthis._state%2Ci%3Dthis._head%3Bfor(%3Bi%3B)%7Bif(t%3Fe.bind(t)(i.value%2Ci.key%2Cthis)%3Ae(i.value%2Ci.key%2Cthis)%2Cthis._state!%3D%3Dn)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bi%3Di.next%7D%7Dkeys()%7Blet%20e%3Dthis%2Ct%3Dthis._state%2Cn%3Dthis._head%2Ci%3D%7B%5BSymbol.iterator%5D()%7Breturn%20i%7D%2Cnext()%7Bif(e._state!%3D%3Dt)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bif(n)%7Blet%20s%3D%7Bvalue%3An.key%2Cdone%3A!1%7D%3Breturn%20n%3Dn.next%2Cs%7Delse%20return%7Bvalue%3Avoid%200%2Cdone%3A!0%7D%7D%7D%3Breturn%20i%7Dvalues()%7Blet%20e%3Dthis%2Ct%3Dthis._state%2Cn%3Dthis._head%2Ci%3D%7B%5BSymbol.iterator%5D()%7Breturn%20i%7D%2Cnext()%7Bif(e._state!%3D%3Dt)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bif(n)%7Blet%20s%3D%7Bvalue%3An.value%2Cdone%3A!1%7D%3Breturn%20n%3Dn.next%2Cs%7Delse%20return%7Bvalue%3Avoid%200%2Cdone%3A!0%7D%7D%7D%3Breturn%20i%7Dentries()%7Blet%20e%3Dthis%2Ct%3Dthis._state%2Cn%3Dthis._head%2Ci%3D%7B%5BSymbol.iterator%5D()%7Breturn%20i%7D%2Cnext()%7Bif(e._state!%3D%3Dt)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bif(n)%7Blet%20s%3D%7Bvalue%3A%5Bn.key%2Cn.value%5D%2Cdone%3A!1%7D%3Breturn%20n%3Dn.next%2Cs%7Delse%20return%7Bvalue%3Avoid%200%2Cdone%3A!0%7D%7D%7D%3Breturn%20i%7D%5B(ft%3DSymbol.toStringTag%2CSymbol.iterator)%5D()%7Breturn%20this.entries()%7DtrimOld(e)%7Bif(e%3E%3Dthis.size)return%3Bif(e%3D%3D%3D0)%7Bthis.clear()%3Breturn%7Dlet%20t%3Dthis._head%2Cn%3Dthis.size%3Bfor(%3Bt%26%26n%3Ee%3B)this._map.delete(t.key)%2Ct%3Dt.next%2Cn--%3Bthis._head%3Dt%2Cthis._size%3Dn%2Ct%26%26(t.previous%3Dvoid%200)%2Cthis._state%2B%2B%7DtrimNew(e)%7Bif(e%3E%3Dthis.size)return%3Bif(e%3D%3D%3D0)%7Bthis.clear()%3Breturn%7Dlet%20t%3Dthis._tail%2Cn%3Dthis.size%3Bfor(%3Bt%26%26n%3Ee%3B)this._map.delete(t.key)%2Ct%3Dt.previous%2Cn--%3Bthis._tail%3Dt%2Cthis._size%3Dn%2Ct%26%26(t.next%3Dvoid%200)%2Cthis._state%2B%2B%7DaddItemFirst(e)%7Bif(!this._head%26%26!this._tail)this._tail%3De%3Belse%20if(this._head)e.next%3Dthis._head%2Cthis._head.previous%3De%3Belse%20throw%20new%20Error(%22Invalid%20list%22)%3Bthis._head%3De%2Cthis._state%2B%2B%7DaddItemLast(e)%7Bif(!this._head%26%26!this._tail)this._head%3De%3Belse%20if(this._tail)e.previous%3Dthis._tail%2Cthis._tail.next%3De%3Belse%20throw%20new%20Error(%22Invalid%20list%22)%3Bthis._tail%3De%2Cthis._state%2B%2B%7DremoveItem(e)%7Bif(e%3D%3D%3Dthis._head%26%26e%3D%3D%3Dthis._tail)this._head%3Dvoid%200%2Cthis._tail%3Dvoid%200%3Belse%20if(e%3D%3D%3Dthis._head)%7Bif(!e.next)throw%20new%20Error(%22Invalid%20list%22)%3Be.next.previous%3Dvoid%200%2Cthis._head%3De.next%7Delse%20if(e%3D%3D%3Dthis._tail)%7Bif(!e.previous)throw%20new%20Error(%22Invalid%20list%22)%3Be.previous.next%3Dvoid%200%2Cthis._tail%3De.previous%7Delse%7Blet%20t%3De.next%2Cn%3De.previous%3Bif(!t%7C%7C!n)throw%20new%20Error(%22Invalid%20list%22)%3Bt.previous%3Dn%2Cn.next%3Dt%7De.next%3Dvoid%200%2Ce.previous%3Dvoid%200%2Cthis._state%2B%2B%7Dtouch(e%2Ct)%7Bif(!this._head%7C%7C!this._tail)throw%20new%20Error(%22Invalid%20list%22)%3Bif(!(t!%3D%3D1%26%26t!%3D%3D2))%7Bif(t%3D%3D%3D1)%7Bif(e%3D%3D%3Dthis._head)return%3Blet%20n%3De.next%2Ci%3De.previous%3Be%3D%3D%3Dthis._tail%3F(i.next%3Dvoid%200%2Cthis._tail%3Di)%3A(n.previous%3Di%2Ci.next%3Dn)%2Ce.previous%3Dvoid%200%2Ce.next%3Dthis._head%2Cthis._head.previous%3De%2Cthis._head%3De%2Cthis._state%2B%2B%7Delse%20if(t%3D%3D%3D2)%7Bif(e%3D%3D%3Dthis._tail)return%3Blet%20n%3De.next%2Ci%3De.previous%3Be%3D%3D%3Dthis._head%3F(n.previous%3Dvoid%200%2Cthis._head%3Dn)%3A(n.previous%3Di%2Ci.next%3Dn)%2Ce.next%3Dvoid%200%2Ce.previous%3Dthis._tail%2Cthis._tail.next%3De%2Cthis._tail%3De%2Cthis._state%2B%2B%7D%7D%7DtoJSON()%7Blet%20e%3D%5B%5D%3Breturn%20this.forEach((t%2Cn)%3D%3E%7Be.push(%5Bn%2Ct%5D)%7D)%2Ce%7DfromJSON(e)%7Bthis.clear()%3Bfor(let%5Bt%2Cn%5Dof%20e)this.set(t%2Cn)%7D%7D%2Cze%3Dclass%20extends%20Je%7Bconstructor(e%2Ct%3D1)%7Bsuper()%2Cthis._limit%3De%2Cthis._ratio%3DMath.min(Math.max(0%2Ct)%2C1)%7Dget%20limit()%7Breturn%20this._limit%7Dset%20limit(e)%7Bthis._limit%3De%2Cthis.checkTrim()%7Dget%20ratio()%7Breturn%20this._ratio%7Dset%20ratio(e)%7Bthis._ratio%3DMath.min(Math.max(0%2Ce)%2C1)%2Cthis.checkTrim()%7Dget(e%2Ct%3D2)%7Breturn%20super.get(e%2Ct)%7Dpeek(e)%7Breturn%20super.get(e%2C0)%7Dset(e%2Ct)%7Breturn%20super.set(e%2Ct%2C2)%2Cthis%7DcheckTrim()%7Bthis.size%3Ethis._limit%26%26this.trim(Math.round(this._limit*this._ratio))%7D%7D%2Cce%3Dclass%20extends%20ze%7Bconstructor(e%2Ct%3D1)%7Bsuper(e%2Ct)%7Dtrim(e)%7Bthis.trimOld(e)%7Dset(e%2Ct)%7Breturn%20super.set(e%2Ct)%2Cthis.checkTrim()%2Cthis%7D%7D%3Bfunction%20je(r)%7Breturn%20r%3C0%3F0%3Ar%3E255%3F255%3Ar%7C0%7Dvar%20de%3Dclass%20r%7Bconstructor(e)%7Blet%20t%3Dje(e)%3Bthis._defaultValue%3Dt%2Cthis._asciiMap%3Dr._createAsciiMap(t)%2Cthis._map%3Dnew%20Map%7Dstatic%20_createAsciiMap(e)%7Blet%20t%3Dnew%20Uint8Array(256)%3Breturn%20t.fill(e)%2Ct%7Dset(e%2Ct)%7Blet%20n%3Dje(t)%3Be%3E%3D0%26%26e%3C256%3Fthis._asciiMap%5Be%5D%3Dn%3Athis._map.set(e%2Cn)%7Dget(e)%7Breturn%20e%3E%3D0%26%26e%3C256%3Fthis._asciiMap%5Be%5D%3Athis._map.get(e)%7C%7Cthis._defaultValue%7Dclear()%7Bthis._asciiMap.fill(this._defaultValue)%2Cthis._map.clear()%7D%7D%3Bvar%20Ke%3Dclass%20extends%20de%7Bconstructor(t%2Cn)%7Bsuper(0)%3Bthis._segmenter%3Dnull%3Bthis._cachedLine%3Dnull%3Bthis._cachedSegments%3D%5B%5D%3Bthis.intlSegmenterLocales%3Dn%2Cthis.intlSegmenterLocales.length%3E0%3Fthis._segmenter%3Dnew%20Intl.Segmenter(this.intlSegmenterLocales%2C%7Bgranularity%3A%22word%22%7D)%3Athis._segmenter%3Dnull%3Bfor(let%20i%3D0%2Cs%3Dt.length%3Bi%3Cs%3Bi%2B%2B)this.set(t.charCodeAt(i)%2C2)%3Bthis.set(32%2C1)%2Cthis.set(9%2C1)%7DfindPrevIntlWordBeforeOrAtOffset(t%2Cn)%7Blet%20i%3Dnull%3Bfor(let%20s%20of%20this._getIntlSegmenterWordsOnLine(t))%7Bif(s.index%3En)break%3Bi%3Ds%7Dreturn%20i%7DfindNextIntlWordAtOrAfterOffset(t%2Cn)%7Bfor(let%20i%20of%20this._getIntlSegmenterWordsOnLine(t))if(!(i.index%3Cn))return%20i%3Breturn%20null%7D_getIntlSegmenterWordsOnLine(t)%7Breturn%20this._segmenter%3Fthis._cachedLine%3D%3D%3Dt%3Fthis._cachedSegments%3A(this._cachedLine%3Dt%2Cthis._cachedSegments%3Dthis._filterWordSegments(this._segmenter.segment(t))%2Cthis._cachedSegments)%3A%5B%5D%7D_filterWordSegments(t)%7Blet%20n%3D%5B%5D%3Bfor(let%20i%20of%20t)this._isWordLike(i)%26%26n.push(i)%3Breturn%20n%7D_isWordLike(t)%7Breturn!!t.isWordLike%7D%7D%2Cut%3Dnew%20ce(10)%3Bfunction%20ct(r%2Ce)%7Blet%20t%3D%60%24%7Br%7D%2F%24%7Be.join(%22%2C%22)%7D%60%2Cn%3Dut.get(t)%3Breturn%20n%7C%7C(n%3Dnew%20Ke(r%2Ce)%2Cut.set(t%2Cn))%2Cn%7Dfunction%20Ft(r)%7Breturn%20r.replace(%2F%5B%5C%5C%5C%7B%5C%7D%5C*%5C%2B%5C%3F%5C%7C%5C%5E%5C%24%5C.%5C%5B%5C%5D%5C(%5C)%5D%2Fg%2C%22%5C%5C%24%26%22)%7Dfunction%20Pt(r)%7Breturn%2055296%3C%3Dr%26%26r%3C%3D56319%7Dfunction%20Rt(r)%7Breturn%2056320%3C%3Dr%26%26r%3C%3D57343%7Dfunction%20Vt(r%2Ce)%7Breturn(r-55296%3C%3C10)%2B(e-56320)%2B65536%7Dfunction%20dt(r%2Ce%2Ct)%7Blet%20n%3Dr.charCodeAt(t)%3Bif(Pt(n)%26%26t%2B1%3Ce)%7Blet%20i%3Dr.charCodeAt(t%2B1)%3Bif(Rt(i))return%20Vt(n%2Ci)%7Dreturn%20n%7Dfunction%20ht(r%2Ce%2Ct%3D%7B%7D)%7Bif(!r)throw%20new%20Error(%22Cannot%20create%20regex%20from%20empty%20string%22)%3Be%7C%7C(r%3DFt(r))%2Ct.wholeWord%26%26(%2F%5CB%2F.test(r.charAt(0))%7C%7C(r%3D%22%5C%5Cb%22%2Br)%2C%2F%5CB%2F.test(r.charAt(r.length-1))%7C%7C(r%3Dr%2B%22%5C%5Cb%22))%3Blet%20n%3D%22%22%3Breturn%20t.global%26%26(n%2B%3D%22g%22)%2Ct.matchCase%7C%7C(n%2B%3D%22i%22)%2Ct.multiline%26%26(n%2B%3D%22m%22)%2Ct.unicode%26%26(n%2B%3D%22u%22)%2Cnew%20RegExp(r%2Cn)%7Dvar%20De%3Dclass%7Bconstructor(e)%7Blet%20t%3D%5B%5D%2Cn%3D0%3Bfor(let%20i%3D0%2Cs%3De.length%3Bi%3Cs%3Bi%2B%2B)e.charCodeAt(i)%3D%3D%3D10%26%26(t%5Bn%2B%2B%5D%3Di)%3Bthis._lineFeedsOffsets%3Dt%7DfindLineFeedCountBeforeOffset(e)%7Blet%20t%3Dthis._lineFeedsOffsets%2Cn%3D0%2Ci%3Dt.length-1%3Bif(i%3D%3D%3D-1%7C%7Ce%3C%3Dt%5B0%5D)return%200%3Bfor(%3Bn%3Ci%3B)%7Blet%20s%3Dn%2B((i-n)%2F2%3E%3E0)%3Bt%5Bs%5D%3E%3De%3Fi%3Ds-1%3At%5Bs%2B1%5D%3E%3De%3F(n%3Ds%2Ci%3Ds)%3An%3Ds%2B1%7Dreturn%20n%2B1%7D%7D%2Che%3Dclass%7Bstatic%20findMatches(e%2Ct%2Cn%2Ci%2Cs)%7Blet%20o%3Dt.parseSearchRequest()%3Breturn%20o%3Fo.regex.multiline%3Fthis._doFindMatchesMultiline(e%2Cn%2Cnew%20K(o.wordSeparators%2Co.regex)%2Ci%2Cs)%3Athis._doFindMatchesLineByLine(e%2Cn%2Co%2Ci%2Cs)%3A%5B%5D%7Dstatic%20_doFindMatchesMultiline(e%2Ct%2Cn%2Ci%2Cs)%7Blet%20o%3Dt.getStartPosition()%2Ca%3De.getOffsetAt(o.lineNumber%2Co.column)%2Cl%3De.getValueInRange(t%2C1)%2Cf%3De.getEOL()%3D%3D%3D%60%5Cr%0A%60%3Fnew%20De(l)%3Anull%2Cu%3D%5B%5D%2Cc%3D0%2Cd%3Bfor(n.reset(0)%3Bd%3Dn.next(l)%3B)if(u%5Bc%2B%2B%5D%3Dee(this._getMultilineMatchRange(e%2Ca%2Cl%2Cf%2Cd.index%2Cd%5B0%5D)%2Cd%2Ci)%2Cc%3E%3Ds)return%20u%3Breturn%20u%7Dstatic%20_getMultilineMatchRange(e%2Ct%2Cn%2Ci%2Cs%2Co)%7Blet%20a%2Cl%3D0%3Bi%3F(l%3Di.findLineFeedCountBeforeOffset(s)%2Ca%3Dt%2Bs%2Bl)%3Aa%3Dt%2Bs%3Blet%20f%3Bif(i)%7Blet%20b%3Di.findLineFeedCountBeforeOffset(s%2Bo.length)-l%3Bf%3Da%2Bo.length%2Bb%7Delse%20f%3Da%2Bo.length%3Blet%20u%3De.positionAt(a)%2Cc%3De.positionAt(f)%3Breturn%20new%20A(u.lineNumber%2Cu.column%2Cc.lineNumber%2Cc.column)%7Dstatic%20_doFindMatchesLineByLine(e%2Ct%2Cn%2Ci%2Cs)%7Blet%20o%3D%5B%5D%2Ca%3D0%3Bif(t.startLineNumber%3D%3D%3Dt.endLineNumber)%7Blet%20f%3De.getLineContent(t.startLineNumber).substring(t.startColumn-1%2Ct.endColumn-1)%3Ba%3Dthis._findMatchesInLine(n%2Cf%2Ct.startLineNumber%2Ct.startColumn-1%2Ca%2Co%2Ci%2Cs)%7Dlet%20l%3De.getLineContent(t.startLineNumber).substring(t.startColumn-1)%3Ba%3Dthis._findMatchesInLine(n%2Cl%2Ct.startLineNumber%2Ct.startColumn-1%2Ca%2Co%2Ci%2Cs)%3Bfor(let%20f%3Dt.startLineNumber%2B1%3Bf%3Ct.endLineNumber%26%26a%3Cs%3Bf%2B%2B)a%3Dthis._findMatchesInLine(n%2Ce.getLineContent(f)%2Cf%2C0%2Ca%2Co%2Ci%2Cs)%3Bif(a%3Cs)%7Blet%20f%3De.getLineContent(t.endLineNumber).substring(0%2Ct.endColumn-1)%3Ba%3Dthis._findMatchesInLine(n%2Cf%2Ct.endLineNumber%2C0%2Ca%2Co%2Ci%2Cs)%7Dreturn%20o%7Dstatic%20_findMatchesInLine(e%2Ct%2Cn%2Ci%2Cs%2Co%2Ca%2Cl)%7Blet%20f%3De.wordSeparators%3Bif(!a%26%26e.simpleSearch)%7Blet%20d%3De.simpleSearch%2Cb%3Dd.length%2Ck%3Dt.length%2CL%3D-b%3Bfor(%3B(L%3Dt.indexOf(d%2CL%2Bb))!%3D%3D-1%3B)if((!f%7C%7Cpe(f%2Ct%2Ck%2CL%2Cb))%26%26(o%5Bs%2B%2B%5D%3Dnew%20V(new%20A(n%2CL%2B1%2Bi%2Cn%2CL%2B1%2Bb%2Bi)%2Cnull)%2Cs%3E%3Dl))return%20s%7Dlet%20u%3Dnew%20K(e.wordSeparators%2Ce.regex)%2Cc%3Bu.reset(0)%3Bdo%20if(c%3Du.next(t)%2Cc%26%26(o%5Bs%2B%2B%5D%3Dee(new%20A(n%2Cc.index%2B1%2Bi%2Cn%2Cc.index%2B1%2Bc%5B0%5D.length%2Bi)%2Cc%2Ca)%2Cs%3E%3Dl))return%20s%3Bwhile(c)%3Breturn%20s%7D%7D%2CY%3Dclass%7Bconstructor(e%2Ct%2Cn%2Ci)%7Bthis.searchString%3De%2Cthis.isRegex%3Dt%2Cthis.matchCase%3Dn%2Cthis.wordSeparators%3Di%7DparseSearchRequest()%7Bif(this.searchString%3D%3D%3D%22%22)return%20null%3Blet%20e%3Bthis.isRegex%3Fe%3DWt(this.searchString)%3Ae%3Dthis.searchString.indexOf(%60%0A%60)%3E%3D0%3Blet%20t%3Dnull%3Btry%7Bt%3Dht(this.searchString%2Cthis.isRegex%2C%7BmatchCase%3Athis.matchCase%2CwholeWord%3A!1%2Cmultiline%3Ae%2Cglobal%3A!0%2Cunicode%3A!0%7D)%7Dcatch%7Breturn%20null%7Dif(!t)return%20null%3Blet%20n%3D!this.isRegex%26%26!e%3Breturn%20n%26%26this.searchString.toLowerCase()!%3D%3Dthis.searchString.toUpperCase()%26%26(n%3Dthis.matchCase)%2Cnew%20fe(t%2Cthis.wordSeparators%3Fct(this.wordSeparators%2C%5B%5D)%3Anull%2Cn%3Fthis.searchString%3Anull)%7D%7D%3Bfunction%20Wt(r)%7Bif(!r%7C%7Cr.length%3D%3D%3D0)return!1%3Bfor(let%20e%3D0%2Ct%3Dr.length%3Be%3Ct%3Be%2B%2B)%7Blet%20n%3Dr.charCodeAt(e)%3Bif(n%3D%3D%3D10)return!0%3Bif(n%3D%3D%3D92)%7Bif(e%2B%2B%2Ce%3E%3Dt)break%3Blet%20i%3Dr.charCodeAt(e)%3Bif(i%3D%3D%3D110%7C%7Ci%3D%3D%3D114%7C%7Ci%3D%3D%3D87)return!0%7D%7Dreturn!1%7Dfunction%20Ut(r%2Ce%2Ct%2Cn%2Ci)%7Bif(n%3D%3D%3D0)return!0%3Blet%20s%3De.charCodeAt(n-1)%3Bif(r.get(s)!%3D%3D0%7C%7Cs%3D%3D%3D13%7C%7Cs%3D%3D%3D10)return!0%3Bif(i%3E0)%7Blet%20o%3De.charCodeAt(n)%3Bif(r.get(o)!%3D%3D0)return!0%7Dreturn!1%7Dfunction%20Jt(r%2Ce%2Ct%2Cn%2Ci)%7Bif(n%2Bi%3D%3D%3Dt)return!0%3Blet%20s%3De.charCodeAt(n%2Bi)%3Bif(r.get(s)!%3D%3D0%7C%7Cs%3D%3D%3D13%7C%7Cs%3D%3D%3D10)return!0%3Bif(i%3E0)%7Blet%20o%3De.charCodeAt(n%2Bi-1)%3Bif(r.get(o)!%3D%3D0)return!0%7Dreturn!1%7Dfunction%20pe(r%2Ce%2Ct%2Cn%2Ci)%7Breturn%20Ut(r%2Ce%2Ct%2Cn%2Ci)%26%26Jt(r%2Ce%2Ct%2Cn%2Ci)%7Dvar%20K%3Dclass%7Bconstructor(e%2Ct)%7Bthis._wordSeparators%3De%2Cthis._searchRegex%3Dt%2Cthis._prevMatchStartIndex%3D-1%2Cthis._prevMatchLength%3D0%7Dreset(e)%7Bthis._searchRegex.lastIndex%3De%2Cthis._prevMatchStartIndex%3D-1%2Cthis._prevMatchLength%3D0%7Dnext(e)%7Blet%20t%3De.length%2Cn%3Bdo%7Bif(this._prevMatchStartIndex%2Bthis._prevMatchLength%3D%3D%3Dt%7C%7C(n%3Dthis._searchRegex.exec(e)%2C!n))return%20null%3Blet%20i%3Dn.index%2Cs%3Dn%5B0%5D.length%3Bif(i%3D%3D%3Dthis._prevMatchStartIndex%26%26s%3D%3D%3Dthis._prevMatchLength)%7Bif(s%3D%3D%3D0)%7Bdt(e%2Ct%2Cthis._searchRegex.lastIndex)%3E65535%3Fthis._searchRegex.lastIndex%2B%3D2%3Athis._searchRegex.lastIndex%2B%3D1%3Bcontinue%7Dreturn%20null%7Dif(this._prevMatchStartIndex%3Di%2Cthis._prevMatchLength%3Ds%2C!this._wordSeparators%7C%7Cpe(this._wordSeparators%2Ce%2Ct%2Ci%2Cs))return%20n%7Dwhile(n)%3Breturn%20null%7D%7D%3Bfunction%20ee(r%2Ce%2Ct)%7Bif(!t)return%20new%20V(r%2Cnull)%3Blet%20n%3D%5B%5D%3Bfor(let%20i%3D0%2Cs%3De.length%3Bi%3Cs%3Bi%2B%2B)n%5Bi%5D%3De%5Bi%5D%3Breturn%20new%20V(r%2Cn)%7Dvar%20R%3D65535%3Bfunction%20pt(r)%7Blet%20e%3Breturn%20r%5Br.length-1%5D%3C65536%3Fe%3Dnew%20Uint16Array(r.length)%3Ae%3Dnew%20Uint32Array(r.length)%2Ce.set(r%2C0)%2Ce%7Dvar%20qe%3Dclass%7Bconstructor(e%2Ct%2Cn%2Ci%2Cs)%7Bthis.lineStarts%3De%3Bthis.cr%3Dt%3Bthis.lf%3Dn%3Bthis.crlf%3Di%3Bthis.isBasicASCII%3Ds%7D%7D%3Bfunction%20E(r%2Ce%3D!0)%7Blet%20t%3D%5B0%5D%2Cn%3D1%3Bfor(let%20i%3D0%2Cs%3Dr.length%3Bi%3Cs%3Bi%2B%2B)%7Blet%20o%3Dr.charCodeAt(i)%3Bo%3D%3D%3D13%3Fi%2B1%3Cs%26%26r.charCodeAt(i%2B1)%3D%3D%3D10%3F(t%5Bn%2B%2B%5D%3Di%2B2%2Ci%2B%2B)%3At%5Bn%2B%2B%5D%3Di%2B1%3Ao%3D%3D%3D10%26%26(t%5Bn%2B%2B%5D%3Di%2B1)%7Dreturn%20e%3Fpt(t)%3At%7Dfunction%20gt(r%2Ce)%7Br.length%3D0%2Cr%5B0%5D%3D0%3Blet%20t%3D1%2Cn%3D0%2Ci%3D0%2Cs%3D0%2Co%3D!0%3Bfor(let%20l%3D0%2Cf%3De.length%3Bl%3Cf%3Bl%2B%2B)%7Blet%20u%3De.charCodeAt(l)%3Bu%3D%3D%3D13%3Fl%2B1%3Cf%26%26e.charCodeAt(l%2B1)%3D%3D%3D10%3F(s%2B%2B%2Cr%5Bt%2B%2B%5D%3Dl%2B2%2Cl%2B%2B)%3A(n%2B%2B%2Cr%5Bt%2B%2B%5D%3Dl%2B1)%3Au%3D%3D%3D10%3F(i%2B%2B%2Cr%5Bt%2B%2B%5D%3Dl%2B1)%3Ao%26%26u!%3D%3D9%26%26(u%3C32%7C%7Cu%3E126)%26%26(o%3D!1)%7Dlet%20a%3Dnew%20qe(pt(r)%2Cn%2Ci%2Cs%2Co)%3Breturn%20r.length%3D0%2Ca%7Dvar%20v%3Dclass%7Bconstructor(e%2Ct%2Cn%2Ci%2Cs)%7Bthis.bufferIndex%3De%2Cthis.start%3Dt%2Cthis.end%3Dn%2Cthis.lineFeedCnt%3Di%2Cthis.length%3Ds%7D%7D%2CM%3Dclass%7Bconstructor(e%2Ct)%7Bthis.buffer%3De%2Cthis.lineStarts%3Dt%7D%7D%2C%24e%3Dclass%7Bconstructor(e%2Ct)%7Bthis._pieces%3D%5B%5D%2Cthis._tree%3De%2Cthis._BOM%3Dt%2Cthis._index%3D0%2Ce.root!%3D%3Dm%26%26e.iterate(e.root%2Cn%3D%3E(n!%3D%3Dm%26%26this._pieces.push(n.piece)%2C!0))%7Dread()%7Breturn%20this._pieces.length%3D%3D%3D0%3Fthis._index%3D%3D%3D0%3F(this._index%2B%2B%2Cthis._BOM)%3Anull%3Athis._index%3Ethis._pieces.length-1%3Fnull%3Athis._index%3D%3D%3D0%3Fthis._BOM%2Bthis._tree.getPieceContent(this._pieces%5Bthis._index%2B%2B%5D)%3Athis._tree.getPieceContent(this._pieces%5Bthis._index%2B%2B%5D)%7D%7D%2CXe%3Dclass%7Bconstructor(e)%7Bthis._limit%3De%2Cthis._cache%3D%5B%5D%7Dget(e)%7Bfor(let%20t%3Dthis._cache.length-1%3Bt%3E%3D0%3Bt--)%7Blet%20n%3Dthis._cache%5Bt%5D%3Bif(n.nodeStartOffset%3C%3De%26%26n.nodeStartOffset%2Bn.node.piece.length%3E%3De)return%20n%7Dreturn%20null%7Dget2(e)%7Bfor(let%20t%3Dthis._cache.length-1%3Bt%3E%3D0%3Bt--)%7Blet%20n%3Dthis._cache%5Bt%5D%3Bif(n.nodeStartLineNumber%26%26n.nodeStartLineNumber%3Ce%26%26n.nodeStartLineNumber%2Bn.node.piece.lineFeedCnt%3E%3De)return%20n%7Dreturn%20null%7Dset(e)%7Bthis._cache.length%3E%3Dthis._limit%26%26this._cache.shift()%2Cthis._cache.push(e)%7Dvalidate(e)%7Blet%20t%3D!1%2Cn%3Dthis._cache%3Bfor(let%20i%3D0%3Bi%3Cn.length%3Bi%2B%2B)%7Blet%20s%3Dn%5Bi%5D%3Bif(s.node.parent%3D%3D%3Dnull%7C%7Cs.nodeStartOffset%3E%3De)%7Bn%5Bi%5D%3Dnull%2Ct%3D!0%3Bcontinue%7D%7Dif(t)%7Blet%20i%3D%5B%5D%3Bfor(let%20s%20of%20n)s!%3D%3Dnull%26%26i.push(s)%3Bthis._cache%3Di%7D%7D%7D%2Cge%3Dclass%7Bconstructor(e%2Ct%2Cn)%7Bthis.create(e%2Ct%2Cn)%7Dcreate(e%2Ct%2Cn)%7Bthis._buffers%3D%5Bnew%20M(%22%22%2C%5B0%5D)%5D%2Cthis._lastChangeBufferPos%3D%7Bline%3A0%2Ccolumn%3A0%7D%2Cthis.root%3Dm%2Cthis._lineCnt%3D1%2Cthis._length%3D0%2Cthis._EOL%3Dt%2Cthis._EOLLength%3Dt.length%2Cthis._EOLNormalized%3Dn%3Blet%20i%3Dnull%3Bfor(let%20s%3D0%2Co%3De.length%3Bs%3Co%3Bs%2B%2B)if(e%5Bs%5D.buffer.length%3E0)%7Be%5Bs%5D.lineStarts%7C%7C(e%5Bs%5D.lineStarts%3DE(e%5Bs%5D.buffer))%3Blet%20a%3Dnew%20v(s%2B1%2C%7Bline%3A0%2Ccolumn%3A0%7D%2C%7Bline%3Ae%5Bs%5D.lineStarts.length-1%2Ccolumn%3Ae%5Bs%5D.buffer.length-e%5Bs%5D.lineStarts%5Be%5Bs%5D.lineStarts.length-1%5D%7D%2Ce%5Bs%5D.lineStarts.length-1%2Ce%5Bs%5D.buffer.length)%3Bthis._buffers.push(e%5Bs%5D)%2Ci%3Dthis.rbInsertRight(i%2Ca)%7Dthis._searchCache%3Dnew%20Xe(1)%2Cthis._lastVisitedLine%3D%7BlineNumber%3A0%2Cvalue%3A%22%22%7D%2Cthis.computeBufferMetadata()%7DnormalizeEOL(e)%7Blet%20t%3DR%2Cn%3Dt-Math.floor(t%2F3)%2Ci%3Dn*2%2Cs%3D%22%22%2Co%3D0%2Ca%3D%5B%5D%3Bif(this.iterate(this.root%2Cl%3D%3E%7Blet%20f%3Dthis.getNodeContent(l)%2Cu%3Df.length%3Bif(o%3C%3Dn%7C%7Co%2Bu%3Ci)return%20s%2B%3Df%2Co%2B%3Du%2C!0%3Blet%20c%3Ds.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ce)%3Breturn%20a.push(new%20M(c%2CE(c)))%2Cs%3Df%2Co%3Du%2C!0%7D)%2Co%3E0)%7Blet%20l%3Ds.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ce)%3Ba.push(new%20M(l%2CE(l)))%7Dthis.create(a%2Ce%2C!0)%7DgetEOL()%7Breturn%20this._EOL%7DsetEOL(e)%7Bthis._EOL%3De%2Cthis._EOLLength%3Dthis._EOL.length%2Cthis.normalizeEOL(e)%7DcreateSnapshot(e)%7Breturn%20new%20%24e(this%2Ce)%7Dequal(e)%7Bif(this.getLength()!%3D%3De.getLength()%7C%7Cthis.getLineCount()!%3D%3De.getLineCount())return!1%3Blet%20t%3D0%3Breturn%20this.iterate(this.root%2Ci%3D%3E%7Bif(i%3D%3D%3Dm)return!0%3Blet%20s%3Dthis.getNodeContent(i)%2Co%3Ds.length%2Ca%3De.nodeAt(t)%2Cl%3De.nodeAt(t%2Bo)%2Cf%3De.getValueInRange2(a%2Cl)%3Breturn%20t%2B%3Do%2Cs%3D%3D%3Df%7D)%7DgetOffsetAt(e%2Ct)%7Blet%20n%3D0%2Ci%3Dthis.root%3Bfor(%3Bi!%3D%3Dm%3B)if(i.left!%3D%3Dm%26%26i.lf_left%2B1%3E%3De)i%3Di.left%3Belse%20if(i.lf_left%2Bi.piece.lineFeedCnt%2B1%3E%3De)%7Bn%2B%3Di.size_left%3Blet%20s%3Dthis.getAccumulatedValue(i%2Ce-i.lf_left-2)%3Breturn%20n%2B%3Ds%2Bt-1%7Delse%20e-%3Di.lf_left%2Bi.piece.lineFeedCnt%2Cn%2B%3Di.size_left%2Bi.piece.length%2Ci%3Di.right%3Breturn%20n%7DgetPositionAt(e)%7Be%3DMath.floor(e)%2Ce%3DMath.max(0%2Ce)%3Blet%20t%3Dthis.root%2Cn%3D0%2Ci%3De%3Bfor(%3Bt!%3D%3Dm%3B)if(t.size_left!%3D%3D0%26%26t.size_left%3E%3De)t%3Dt.left%3Belse%20if(t.size_left%2Bt.piece.length%3E%3De)%7Blet%20s%3Dthis.getIndexOf(t%2Ce-t.size_left)%3Bif(n%2B%3Dt.lf_left%2Bs.index%2Cs.index%3D%3D%3D0)%7Blet%20o%3Dthis.getOffsetAt(n%2B1%2C1)%2Ca%3Di-o%3Breturn%20new%20P(n%2B1%2Ca%2B1)%7Dreturn%20new%20P(n%2B1%2Cs.remainder%2B1)%7Delse%20if(e-%3Dt.size_left%2Bt.piece.length%2Cn%2B%3Dt.lf_left%2Bt.piece.lineFeedCnt%2Ct.right%3D%3D%3Dm)%7Blet%20s%3Dthis.getOffsetAt(n%2B1%2C1)%2Co%3Di-e-s%3Breturn%20new%20P(n%2B1%2Co%2B1)%7Delse%20t%3Dt.right%3Breturn%20new%20P(1%2C1)%7DgetValueInRange(e%2Ct)%7Bif(e.startLineNumber%3D%3D%3De.endLineNumber%26%26e.startColumn%3D%3D%3De.endColumn)return%22%22%3Blet%20n%3Dthis.nodeAt2(e.startLineNumber%2Ce.startColumn)%2Ci%3Dthis.nodeAt2(e.endLineNumber%2Ce.endColumn)%2Cs%3Dthis.getValueInRange2(n%2Ci)%3Breturn%20t%3Ft!%3D%3Dthis._EOL%7C%7C!this._EOLNormalized%3Fs.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ct)%3At%3D%3D%3Dthis.getEOL()%26%26this._EOLNormalized%3Fs%3As.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ct)%3As%7DgetValueInRange2(e%2Ct)%7Bif(e.node%3D%3D%3Dt.node)%7Blet%20a%3De.node%2Cl%3Dthis._buffers%5Ba.piece.bufferIndex%5D.buffer%2Cf%3Dthis.offsetInBuffer(a.piece.bufferIndex%2Ca.piece.start)%3Breturn%20l.substring(f%2Be.remainder%2Cf%2Bt.remainder)%7Dlet%20n%3De.node%2Ci%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cs%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%2Co%3Di.substring(s%2Be.remainder%2Cs%2Bn.piece.length)%3Bfor(n%3Dn.next()%3Bn!%3D%3Dm%3B)%7Blet%20a%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cl%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Bif(n%3D%3D%3Dt.node)%7Bo%2B%3Da.substring(l%2Cl%2Bt.remainder)%3Bbreak%7Delse%20o%2B%3Da.substr(l%2Cn.piece.length)%3Bn%3Dn.next()%7Dreturn%20o%7DgetLinesContent()%7Blet%20e%3D%5B%5D%2Ct%3D0%2Cn%3D%22%22%2Ci%3D!1%3Breturn%20this.iterate(this.root%2Cs%3D%3E%7Bif(s%3D%3D%3Dm)return!0%3Blet%20o%3Ds.piece%2Ca%3Do.length%3Bif(a%3D%3D%3D0)return!0%3Blet%20l%3Dthis._buffers%5Bo.bufferIndex%5D.buffer%2Cf%3Dthis._buffers%5Bo.bufferIndex%5D.lineStarts%2Cu%3Do.start.line%2Cc%3Do.end.line%2Cd%3Df%5Bu%5D%2Bo.start.column%3Bif(i%26%26(l.charCodeAt(d)%3D%3D%3D10%26%26(d%2B%2B%2Ca--)%2Ce%5Bt%2B%2B%5D%3Dn%2Cn%3D%22%22%2Ci%3D!1%2Ca%3D%3D%3D0))return!0%3Bif(u%3D%3D%3Dc)return!this._EOLNormalized%26%26l.charCodeAt(d%2Ba-1)%3D%3D%3D13%3F(i%3D!0%2Cn%2B%3Dl.substr(d%2Ca-1))%3An%2B%3Dl.substr(d%2Ca)%2C!0%3Bn%2B%3Dthis._EOLNormalized%3Fl.substring(d%2CMath.max(d%2Cf%5Bu%2B1%5D-this._EOLLength))%3Al.substring(d%2Cf%5Bu%2B1%5D).replace(%2F(%5Cr%5Cn%7C%5Cr%7C%5Cn)%24%2F%2C%22%22)%2Ce%5Bt%2B%2B%5D%3Dn%3Bfor(let%20b%3Du%2B1%3Bb%3Cc%3Bb%2B%2B)n%3Dthis._EOLNormalized%3Fl.substring(f%5Bb%5D%2Cf%5Bb%2B1%5D-this._EOLLength)%3Al.substring(f%5Bb%5D%2Cf%5Bb%2B1%5D).replace(%2F(%5Cr%5Cn%7C%5Cr%7C%5Cn)%24%2F%2C%22%22)%2Ce%5Bt%2B%2B%5D%3Dn%3Breturn!this._EOLNormalized%26%26l.charCodeAt(f%5Bc%5D%2Bo.end.column-1)%3D%3D%3D13%3F(i%3D!0%2Co.end.column%3D%3D%3D0%3Ft--%3An%3Dl.substr(f%5Bc%5D%2Co.end.column-1))%3An%3Dl.substr(f%5Bc%5D%2Co.end.column)%2C!0%7D)%2Ci%26%26(e%5Bt%2B%2B%5D%3Dn%2Cn%3D%22%22)%2Ce%5Bt%2B%2B%5D%3Dn%2Ce%7DgetLength()%7Breturn%20this._length%7DgetLineCount()%7Breturn%20this._lineCnt%7DgetLineContent(e)%7Breturn%20this._lastVisitedLine.lineNumber%3D%3D%3De%3Fthis._lastVisitedLine.value%3A(this._lastVisitedLine.lineNumber%3De%2Ce%3D%3D%3Dthis._lineCnt%3Fthis._lastVisitedLine.value%3Dthis.getLineRawContent(e)%3Athis._EOLNormalized%3Fthis._lastVisitedLine.value%3Dthis.getLineRawContent(e%2Cthis._EOLLength)%3Athis._lastVisitedLine.value%3Dthis.getLineRawContent(e).replace(%2F(%5Cr%5Cn%7C%5Cr%7C%5Cn)%24%2F%2C%22%22)%2Cthis._lastVisitedLine.value)%7D_getCharCode(e)%7Bif(e.remainder%3D%3D%3De.node.piece.length)%7Blet%20t%3De.node.next()%3Bif(!t)return%200%3Blet%20n%3Dthis._buffers%5Bt.piece.bufferIndex%5D%2Ci%3Dthis.offsetInBuffer(t.piece.bufferIndex%2Ct.piece.start)%3Breturn%20n.buffer.charCodeAt(i)%7Delse%7Blet%20t%3Dthis._buffers%5Be.node.piece.bufferIndex%5D%2Ci%3Dthis.offsetInBuffer(e.node.piece.bufferIndex%2Ce.node.piece.start)%2Be.remainder%3Breturn%20t.buffer.charCodeAt(i)%7D%7DgetLineCharCode(e%2Ct)%7Blet%20n%3Dthis.nodeAt2(e%2Ct%2B1)%3Breturn%20this._getCharCode(n)%7DgetLineLength(e)%7Bif(e%3D%3D%3Dthis.getLineCount())%7Blet%20t%3Dthis.getOffsetAt(e%2C1)%3Breturn%20this.getLength()-t%7Dreturn%20this.getOffsetAt(e%2B1%2C1)-this.getOffsetAt(e%2C1)-this._EOLLength%7DgetCharCode(e)%7Blet%20t%3Dthis.nodeAt(e)%3Breturn%20this._getCharCode(t)%7DgetNearestChunk(e)%7Blet%20t%3Dthis.nodeAt(e)%3Bif(t.remainder%3D%3D%3Dt.node.piece.length)%7Blet%20n%3Dt.node.next()%3Bif(!n%7C%7Cn%3D%3D%3Dm)return%22%22%3Blet%20i%3Dthis._buffers%5Bn.piece.bufferIndex%5D%2Cs%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Breturn%20i.buffer.substring(s%2Cs%2Bn.piece.length)%7Delse%7Blet%20n%3Dthis._buffers%5Bt.node.piece.bufferIndex%5D%2Ci%3Dthis.offsetInBuffer(t.node.piece.bufferIndex%2Ct.node.piece.start)%2Cs%3Di%2Bt.remainder%2Co%3Di%2Bt.node.piece.length%3Breturn%20n.buffer.substring(s%2Co)%7D%7DfindMatchesInNode(e%2Ct%2Cn%2Ci%2Cs%2Co%2Ca%2Cl%2Cf%2Cu%2Cc)%7Blet%20d%3Dthis._buffers%5Be.piece.bufferIndex%5D%2Cb%3Dthis.offsetInBuffer(e.piece.bufferIndex%2Ce.piece.start)%2Ck%3Dthis.offsetInBuffer(e.piece.bufferIndex%2Cs)%2CL%3Dthis.offsetInBuffer(e.piece.bufferIndex%2Co)%2CS%2Cw%3D%7Bline%3A0%2Ccolumn%3A0%7D%2CI%2CN%3Bt._wordSeparators%3F(I%3Dd.buffer.substring(k%2CL)%2CN%3D_%3D%3E_%2Bk%2Ct.reset(0))%3A(I%3Dd.buffer%2CN%3D_%3D%3E_%2Ct.reset(k))%3Bdo%20if(S%3Dt.next(I)%2CS)%7Bif(N(S.index)%3E%3DL)return%20u%3Bthis.positionInBuffer(e%2CN(S.index)-b%2Cw)%3Blet%20_%3Dthis.getLineFeedCnt(e.piece.bufferIndex%2Cs%2Cw)%2Cg%3Dw.line%3D%3D%3Ds.line%3Fw.column-s.column%2Bi%3Aw.column%2B1%2Ch%3Dg%2BS%5B0%5D.length%3Bif(c%5Bu%2B%2B%5D%3Dee(new%20A(n%2B_%2Cg%2Cn%2B_%2Ch)%2CS%2Cl)%2CN(S.index)%2BS%5B0%5D.length%3E%3DL%7C%7Cu%3E%3Df)return%20u%7Dwhile(S)%3Breturn%20u%7DfindMatchesLineByLine(e%2Ct%2Cn%2Ci)%7Blet%20s%3D%5B%5D%2Co%3D0%2Ca%3Dnew%20K(t.wordSeparators%2Ct.regex)%2Cl%3Dthis.nodeAt2(e.startLineNumber%2Ce.startColumn)%3Bif(l%3D%3D%3Dnull)return%5B%5D%3Blet%20f%3Dthis.nodeAt2(e.endLineNumber%2Ce.endColumn)%3Bif(f%3D%3D%3Dnull)return%5B%5D%3Blet%20u%3Dthis.positionInBuffer(l.node%2Cl.remainder)%2Cc%3Dthis.positionInBuffer(f.node%2Cf.remainder)%3Bif(l.node%3D%3D%3Df.node)return%20this.findMatchesInNode(l.node%2Ca%2Ce.startLineNumber%2Ce.startColumn%2Cu%2Cc%2Ct%2Cn%2Ci%2Co%2Cs)%2Cs%3Blet%20d%3De.startLineNumber%2Cb%3Dl.node%3Bfor(%3Bb!%3D%3Df.node%3B)%7Blet%20L%3Dthis.getLineFeedCnt(b.piece.bufferIndex%2Cu%2Cb.piece.end)%3Bif(L%3E%3D1)%7Blet%20w%3Dthis._buffers%5Bb.piece.bufferIndex%5D.lineStarts%2CI%3Dthis.offsetInBuffer(b.piece.bufferIndex%2Cb.piece.start)%2CN%3Dw%5Bu.line%2BL%5D%2C_%3Dd%3D%3D%3De.startLineNumber%3Fe.startColumn%3A1%3Bif(o%3Dthis.findMatchesInNode(b%2Ca%2Cd%2C_%2Cu%2Cthis.positionInBuffer(b%2CN-I)%2Ct%2Cn%2Ci%2Co%2Cs)%2Co%3E%3Di)return%20s%3Bd%2B%3DL%7Dlet%20S%3Dd%3D%3D%3De.startLineNumber%3Fe.startColumn-1%3A0%3Bif(d%3D%3D%3De.endLineNumber)%7Blet%20w%3Dthis.getLineContent(d).substring(S%2Ce.endColumn-1)%3Breturn%20o%3Dthis._findMatchesInLine(t%2Ca%2Cw%2Ce.endLineNumber%2CS%2Co%2Cs%2Cn%2Ci)%2Cs%7Dif(o%3Dthis._findMatchesInLine(t%2Ca%2Cthis.getLineContent(d).substr(S)%2Cd%2CS%2Co%2Cs%2Cn%2Ci)%2Co%3E%3Di)return%20s%3Bd%2B%2B%2Cl%3Dthis.nodeAt2(d%2C1)%2Cb%3Dl.node%2Cu%3Dthis.positionInBuffer(l.node%2Cl.remainder)%7Dif(d%3D%3D%3De.endLineNumber)%7Blet%20L%3Dd%3D%3D%3De.startLineNumber%3Fe.startColumn-1%3A0%2CS%3Dthis.getLineContent(d).substring(L%2Ce.endColumn-1)%3Breturn%20o%3Dthis._findMatchesInLine(t%2Ca%2CS%2Ce.endLineNumber%2CL%2Co%2Cs%2Cn%2Ci)%2Cs%7Dlet%20k%3Dd%3D%3D%3De.startLineNumber%3Fe.startColumn%3A1%3Breturn%20o%3Dthis.findMatchesInNode(f.node%2Ca%2Cd%2Ck%2Cu%2Cc%2Ct%2Cn%2Ci%2Co%2Cs)%2Cs%7D_findMatchesInLine(e%2Ct%2Cn%2Ci%2Cs%2Co%2Ca%2Cl%2Cf)%7Blet%20u%3De.wordSeparators%3Bif(!l%26%26e.simpleSearch)%7Blet%20d%3De.simpleSearch%2Cb%3Dd.length%2Ck%3Dn.length%2CL%3D-b%3Bfor(%3B(L%3Dn.indexOf(d%2CL%2Bb))!%3D%3D-1%3B)if((!u%7C%7Cpe(u%2Cn%2Ck%2CL%2Cb))%26%26(a%5Bo%2B%2B%5D%3Dnew%20V(new%20A(i%2CL%2B1%2Bs%2Ci%2CL%2B1%2Bb%2Bs)%2Cnull)%2Co%3E%3Df))return%20o%3Breturn%20o%7Dlet%20c%3Bt.reset(0)%3Bdo%20if(c%3Dt.next(n)%2Cc%26%26(a%5Bo%2B%2B%5D%3Dee(new%20A(i%2Cc.index%2B1%2Bs%2Ci%2Cc.index%2B1%2Bc%5B0%5D.length%2Bs)%2Cc%2Cl)%2Co%3E%3Df))return%20o%3Bwhile(c)%3Breturn%20o%7Dinsert(e%2Ct%2Cn%3D!1)%7Bif(this._EOLNormalized%3Dthis._EOLNormalized%26%26n%2Cthis._lastVisitedLine.lineNumber%3D0%2Cthis._lastVisitedLine.value%3D%22%22%2Cthis.root!%3D%3Dm)%7Blet%7Bnode%3Ai%2Cremainder%3As%2CnodeStartOffset%3Ao%7D%3Dthis.nodeAt(e)%2Ca%3Di.piece%2Cl%3Da.bufferIndex%2Cf%3Dthis.positionInBuffer(i%2Cs)%3Bif(i.piece.bufferIndex%3D%3D%3D0%26%26a.end.line%3D%3D%3Dthis._lastChangeBufferPos.line%26%26a.end.column%3D%3D%3Dthis._lastChangeBufferPos.column%26%26o%2Ba.length%3D%3D%3De%26%26t.length%3CR)%7Bthis.appendToNode(i%2Ct)%2Cthis.computeBufferMetadata()%3Breturn%7Dif(o%3D%3D%3De)this.insertContentToNodeLeft(t%2Ci)%2Cthis._searchCache.validate(e)%3Belse%20if(o%2Bi.piece.length%3Ee)%7Blet%20u%3D%5B%5D%2Cc%3Dnew%20v(a.bufferIndex%2Cf%2Ca.end%2Cthis.getLineFeedCnt(a.bufferIndex%2Cf%2Ca.end)%2Cthis.offsetInBuffer(l%2Ca.end)-this.offsetInBuffer(l%2Cf))%3Bif(this.shouldCheckCRLF()%26%26this.endWithCR(t)%26%26this.nodeCharCodeAt(i%2Cs)%3D%3D%3D10)%7Blet%20L%3D%7Bline%3Ac.start.line%2B1%2Ccolumn%3A0%7D%3Bc%3Dnew%20v(c.bufferIndex%2CL%2Cc.end%2Cthis.getLineFeedCnt(c.bufferIndex%2CL%2Cc.end)%2Cc.length-1)%2Ct%2B%3D%60%0A%60%7Dif(this.shouldCheckCRLF()%26%26this.startWithLF(t))if(this.nodeCharCodeAt(i%2Cs-1)%3D%3D%3D13)%7Blet%20L%3Dthis.positionInBuffer(i%2Cs-1)%3Bthis.deleteNodeTail(i%2CL)%2Ct%3D%22%5Cr%22%2Bt%2Ci.piece.length%3D%3D%3D0%26%26u.push(i)%7Delse%20this.deleteNodeTail(i%2Cf)%3Belse%20this.deleteNodeTail(i%2Cf)%3Blet%20d%3Dthis.createNewPieces(t)%3Bc.length%3E0%26%26this.rbInsertRight(i%2Cc)%3Blet%20b%3Di%3Bfor(let%20k%3D0%3Bk%3Cd.length%3Bk%2B%2B)b%3Dthis.rbInsertRight(b%2Cd%5Bk%5D)%3Bthis.deleteNodes(u)%7Delse%20this.insertContentToNodeRight(t%2Ci)%7Delse%7Blet%20i%3Dthis.createNewPieces(t)%2Cs%3Dthis.rbInsertLeft(null%2Ci%5B0%5D)%3Bfor(let%20o%3D1%3Bo%3Ci.length%3Bo%2B%2B)s%3Dthis.rbInsertRight(s%2Ci%5Bo%5D)%7Dthis.computeBufferMetadata()%7Ddelete(e%2Ct)%7Bif(this._lastVisitedLine.lineNumber%3D0%2Cthis._lastVisitedLine.value%3D%22%22%2Ct%3C%3D0%7C%7Cthis.root%3D%3D%3Dm)return%3Blet%20n%3Dthis.nodeAt(e)%2Ci%3Dthis.nodeAt(e%2Bt)%2Cs%3Dn.node%2Co%3Di.node%3Bif(s%3D%3D%3Do)%7Blet%20d%3Dthis.positionInBuffer(s%2Cn.remainder)%2Cb%3Dthis.positionInBuffer(s%2Ci.remainder)%3Bif(n.nodeStartOffset%3D%3D%3De)%7Bif(t%3D%3D%3Ds.piece.length)%7Blet%20k%3Ds.next()%3BQ(this%2Cs)%2Cthis.validateCRLFWithPrevNode(k)%2Cthis.computeBufferMetadata()%3Breturn%7Dthis.deleteNodeHead(s%2Cb)%2Cthis._searchCache.validate(e)%2Cthis.validateCRLFWithPrevNode(s)%2Cthis.computeBufferMetadata()%3Breturn%7Dif(n.nodeStartOffset%2Bs.piece.length%3D%3D%3De%2Bt)%7Bthis.deleteNodeTail(s%2Cd)%2Cthis.validateCRLFWithNextNode(s)%2Cthis.computeBufferMetadata()%3Breturn%7Dthis.shrinkNode(s%2Cd%2Cb)%2Cthis.computeBufferMetadata()%3Breturn%7Dlet%20a%3D%5B%5D%2Cl%3Dthis.positionInBuffer(s%2Cn.remainder)%3Bthis.deleteNodeTail(s%2Cl)%2Cthis._searchCache.validate(e)%2Cs.piece.length%3D%3D%3D0%26%26a.push(s)%3Blet%20f%3Dthis.positionInBuffer(o%2Ci.remainder)%3Bthis.deleteNodeHead(o%2Cf)%2Co.piece.length%3D%3D%3D0%26%26a.push(o)%3Blet%20u%3Ds.next()%3Bfor(let%20d%3Du%3Bd!%3D%3Dm%26%26d!%3D%3Do%3Bd%3Dd.next())a.push(d)%3Blet%20c%3Ds.piece.length%3D%3D%3D0%3Fs.prev()%3As%3Bthis.deleteNodes(a)%2Cthis.validateCRLFWithNextNode(c)%2Cthis.computeBufferMetadata()%7DinsertContentToNodeLeft(e%2Ct)%7Blet%20n%3D%5B%5D%3Bif(this.shouldCheckCRLF()%26%26this.endWithCR(e)%26%26this.startWithLF(t))%7Blet%20o%3Dt.piece%2Ca%3D%7Bline%3Ao.start.line%2B1%2Ccolumn%3A0%7D%2Cl%3Dnew%20v(o.bufferIndex%2Ca%2Co.end%2Cthis.getLineFeedCnt(o.bufferIndex%2Ca%2Co.end)%2Co.length-1)%3Bt.piece%3Dl%2Ce%2B%3D%60%0A%60%2CC(this%2Ct%2C-1%2C-1)%2Ct.piece.length%3D%3D%3D0%26%26n.push(t)%7Dlet%20i%3Dthis.createNewPieces(e)%2Cs%3Dthis.rbInsertLeft(t%2Ci%5Bi.length-1%5D)%3Bfor(let%20o%3Di.length-2%3Bo%3E%3D0%3Bo--)s%3Dthis.rbInsertLeft(s%2Ci%5Bo%5D)%3Bthis.validateCRLFWithPrevNode(s)%2Cthis.deleteNodes(n)%7DinsertContentToNodeRight(e%2Ct)%7Bthis.adjustCarriageReturnFromNext(e%2Ct)%26%26(e%2B%3D%60%0A%60)%3Blet%20n%3Dthis.createNewPieces(e)%2Ci%3Dthis.rbInsertRight(t%2Cn%5B0%5D)%2Cs%3Di%3Bfor(let%20o%3D1%3Bo%3Cn.length%3Bo%2B%2B)s%3Dthis.rbInsertRight(s%2Cn%5Bo%5D)%3Bthis.validateCRLFWithPrevNode(i)%7DpositionInBuffer(e%2Ct%2Cn)%7Blet%20i%3De.piece%2Cs%3De.piece.bufferIndex%2Co%3Dthis._buffers%5Bs%5D.lineStarts%2Cl%3Do%5Bi.start.line%5D%2Bi.start.column%2Bt%2Cf%3Di.start.line%2Cu%3Di.end.line%2Cc%3D0%2Cd%3D0%2Cb%3D0%3Bfor(%3Bf%3C%3Du%26%26(c%3Df%2B(u-f)%2F2%7C0%2Cb%3Do%5Bc%5D%2Cc!%3D%3Du)%3B)if(d%3Do%5Bc%2B1%5D%2Cl%3Cb)u%3Dc-1%3Belse%20if(l%3E%3Dd)f%3Dc%2B1%3Belse%20break%3Breturn%20n%3F(n.line%3Dc%2Cn.column%3Dl-b%2Cnull)%3A%7Bline%3Ac%2Ccolumn%3Al-b%7D%7DgetLineFeedCnt(e%2Ct%2Cn)%7Bif(n.column%3D%3D%3D0)return%20n.line-t.line%3Blet%20i%3Dthis._buffers%5Be%5D.lineStarts%3Bif(n.line%3D%3D%3Di.length-1)return%20n.line-t.line%3Blet%20s%3Di%5Bn.line%2B1%5D%2Co%3Di%5Bn.line%5D%2Bn.column%3Bif(s%3Eo%2B1)return%20n.line-t.line%3Blet%20a%3Do-1%3Breturn%20this._buffers%5Be%5D.buffer.charCodeAt(a)%3D%3D%3D13%3Fn.line-t.line%2B1%3An.line-t.line%7DoffsetInBuffer(e%2Ct)%7Breturn%20this._buffers%5Be%5D.lineStarts%5Bt.line%5D%2Bt.column%7DdeleteNodes(e)%7Bfor(let%20t%3D0%3Bt%3Ce.length%3Bt%2B%2B)Q(this%2Ce%5Bt%5D)%7DcreateNewPieces(e)%7Bif(e.length%3ER)%7Blet%20u%3D%5B%5D%3Bfor(%3Be.length%3ER%3B)%7Blet%20d%3De.charCodeAt(R-1)%2Cb%3Bd%3D%3D%3D13%7C%7Cd%3E%3D55296%26%26d%3C%3D56319%3F(b%3De.substring(0%2CR-1)%2Ce%3De.substring(R-1))%3A(b%3De.substring(0%2CR)%2Ce%3De.substring(R))%3Blet%20k%3DE(b)%3Bu.push(new%20v(this._buffers.length%2C%7Bline%3A0%2Ccolumn%3A0%7D%2C%7Bline%3Ak.length-1%2Ccolumn%3Ab.length-k%5Bk.length-1%5D%7D%2Ck.length-1%2Cb.length))%2Cthis._buffers.push(new%20M(b%2Ck))%7Dlet%20c%3DE(e)%3Breturn%20u.push(new%20v(this._buffers.length%2C%7Bline%3A0%2Ccolumn%3A0%7D%2C%7Bline%3Ac.length-1%2Ccolumn%3Ae.length-c%5Bc.length-1%5D%7D%2Cc.length-1%2Ce.length))%2Cthis._buffers.push(new%20M(e%2Cc))%2Cu%7Dlet%20t%3Dthis._buffers%5B0%5D.buffer.length%2Cn%3DE(e%2C!1)%2Ci%3Dthis._lastChangeBufferPos%3Bif(this._buffers%5B0%5D.lineStarts%5Bthis._buffers%5B0%5D.lineStarts.length-1%5D%3D%3D%3Dt%26%26t!%3D%3D0%26%26this.startWithLF(e)%26%26this.endWithCR(this._buffers%5B0%5D.buffer))%7Bthis._lastChangeBufferPos%3D%7Bline%3Athis._lastChangeBufferPos.line%2Ccolumn%3Athis._lastChangeBufferPos.column%2B1%7D%2Ci%3Dthis._lastChangeBufferPos%3Bfor(let%20u%3D0%3Bu%3Cn.length%3Bu%2B%2B)n%5Bu%5D%2B%3Dt%2B1%3Bthis._buffers%5B0%5D.lineStarts%3Dthis._buffers%5B0%5D.lineStarts.concat(n.slice(1))%2Cthis._buffers%5B0%5D.buffer%2B%3D%22_%22%2Be%2Ct%2B%3D1%7Delse%7Bif(t!%3D%3D0)for(let%20u%3D0%3Bu%3Cn.length%3Bu%2B%2B)n%5Bu%5D%2B%3Dt%3Bthis._buffers%5B0%5D.lineStarts%3Dthis._buffers%5B0%5D.lineStarts.concat(n.slice(1))%2Cthis._buffers%5B0%5D.buffer%2B%3De%7Dlet%20s%3Dthis._buffers%5B0%5D.buffer.length%2Co%3Dthis._buffers%5B0%5D.lineStarts.length-1%2Ca%3Ds-this._buffers%5B0%5D.lineStarts%5Bo%5D%2Cl%3D%7Bline%3Ao%2Ccolumn%3Aa%7D%2Cf%3Dnew%20v(0%2Ci%2Cl%2Cthis.getLineFeedCnt(0%2Ci%2Cl)%2Cs-t)%3Breturn%20this._lastChangeBufferPos%3Dl%2C%5Bf%5D%7DgetLinesRawContent()%7Breturn%20this.getContentOfSubTree(this.root)%7DgetLineRawContent(e%2Ct%3D0)%7Blet%20n%3Dthis.root%2Ci%3D%22%22%2Cs%3Dthis._searchCache.get2(e)%3Bif(s)%7Bn%3Ds.node%3Blet%20o%3Dthis.getAccumulatedValue(n%2Ce-s.nodeStartLineNumber-1)%2Ca%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cl%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Bif(s.nodeStartLineNumber%2Bn.piece.lineFeedCnt%3D%3D%3De)i%3Da.substring(l%2Bo%2Cl%2Bn.piece.length)%3Belse%7Blet%20f%3Dthis.getAccumulatedValue(n%2Ce-s.nodeStartLineNumber)%3Breturn%20a.substring(l%2Bo%2Cl%2Bf-t)%7D%7Delse%7Blet%20o%3D0%2Ca%3De%3Bfor(%3Bn!%3D%3Dm%3B)if(n.left!%3D%3Dm%26%26n.lf_left%3E%3De-1)n%3Dn.left%3Belse%20if(n.lf_left%2Bn.piece.lineFeedCnt%3Ee-1)%7Blet%20l%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-2)%2Cf%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-1)%2Cu%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cc%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Breturn%20o%2B%3Dn.size_left%2Cthis._searchCache.set(%7Bnode%3An%2CnodeStartOffset%3Ao%2CnodeStartLineNumber%3Aa-(e-1-n.lf_left)%7D)%2Cu.substring(c%2Bl%2Cc%2Bf-t)%7Delse%20if(n.lf_left%2Bn.piece.lineFeedCnt%3D%3D%3De-1)%7Blet%20l%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-2)%2Cf%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%2Cu%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Bi%3Df.substring(u%2Bl%2Cu%2Bn.piece.length)%3Bbreak%7Delse%20e-%3Dn.lf_left%2Bn.piece.lineFeedCnt%2Co%2B%3Dn.size_left%2Bn.piece.length%2Cn%3Dn.right%7Dfor(n%3Dn.next()%3Bn!%3D%3Dm%3B)%7Blet%20o%3Dthis._buffers%5Bn.piece.bufferIndex%5D.buffer%3Bif(n.piece.lineFeedCnt%3E0)%7Blet%20a%3Dthis.getAccumulatedValue(n%2C0)%2Cl%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Breturn%20i%2B%3Do.substring(l%2Cl%2Ba-t)%2Ci%7Delse%7Blet%20a%3Dthis.offsetInBuffer(n.piece.bufferIndex%2Cn.piece.start)%3Bi%2B%3Do.substr(a%2Cn.piece.length)%7Dn%3Dn.next()%7Dreturn%20i%7DcomputeBufferMetadata()%7Blet%20e%3Dthis.root%2Ct%3D1%2Cn%3D0%3Bfor(%3Be!%3D%3Dm%3B)t%2B%3De.lf_left%2Be.piece.lineFeedCnt%2Cn%2B%3De.size_left%2Be.piece.length%2Ce%3De.right%3Bthis._lineCnt%3Dt%2Cthis._length%3Dn%2Cthis._searchCache.validate(this._length)%7DgetIndexOf(e%2Ct)%7Blet%20n%3De.piece%2Ci%3Dthis.positionInBuffer(e%2Ct)%2Cs%3Di.line-n.start.line%3Bif(this.offsetInBuffer(n.bufferIndex%2Cn.end)-this.offsetInBuffer(n.bufferIndex%2Cn.start)%3D%3D%3Dt)%7Blet%20o%3Dthis.getLineFeedCnt(e.piece.bufferIndex%2Cn.start%2Ci)%3Bif(o!%3D%3Ds)return%7Bindex%3Ao%2Cremainder%3A0%7D%7Dreturn%7Bindex%3As%2Cremainder%3Ai.column%7D%7DgetAccumulatedValue(e%2Ct)%7Bif(t%3C0)return%200%3Blet%20n%3De.piece%2Ci%3Dthis._buffers%5Bn.bufferIndex%5D.lineStarts%2Cs%3Dn.start.line%2Bt%2B1%3Breturn%20s%3En.end.line%3Fi%5Bn.end.line%5D%2Bn.end.column-i%5Bn.start.line%5D-n.start.column%3Ai%5Bs%5D-i%5Bn.start.line%5D-n.start.column%7DdeleteNodeTail(e%2Ct)%7Blet%20n%3De.piece%2Ci%3Dn.lineFeedCnt%2Cs%3Dthis.offsetInBuffer(n.bufferIndex%2Cn.end)%2Co%3Dt%2Ca%3Dthis.offsetInBuffer(n.bufferIndex%2Co)%2Cl%3Dthis.getLineFeedCnt(n.bufferIndex%2Cn.start%2Co)%2Cf%3Dl-i%2Cu%3Da-s%2Cc%3Dn.length%2Bu%3Be.piece%3Dnew%20v(n.bufferIndex%2Cn.start%2Co%2Cl%2Cc)%2CC(this%2Ce%2Cu%2Cf)%7DdeleteNodeHead(e%2Ct)%7Blet%20n%3De.piece%2Ci%3Dn.lineFeedCnt%2Cs%3Dthis.offsetInBuffer(n.bufferIndex%2Cn.start)%2Co%3Dt%2Ca%3Dthis.getLineFeedCnt(n.bufferIndex%2Co%2Cn.end)%2Cl%3Dthis.offsetInBuffer(n.bufferIndex%2Co)%2Cf%3Da-i%2Cu%3Ds-l%2Cc%3Dn.length%2Bu%3Be.piece%3Dnew%20v(n.bufferIndex%2Co%2Cn.end%2Ca%2Cc)%2CC(this%2Ce%2Cu%2Cf)%7DshrinkNode(e%2Ct%2Cn)%7Blet%20i%3De.piece%2Cs%3Di.start%2Co%3Di.end%2Ca%3Di.length%2Cl%3Di.lineFeedCnt%2Cf%3Dt%2Cu%3Dthis.getLineFeedCnt(i.bufferIndex%2Ci.start%2Cf)%2Cc%3Dthis.offsetInBuffer(i.bufferIndex%2Ct)-this.offsetInBuffer(i.bufferIndex%2Cs)%3Be.piece%3Dnew%20v(i.bufferIndex%2Ci.start%2Cf%2Cu%2Cc)%2CC(this%2Ce%2Cc-a%2Cu-l)%3Blet%20d%3Dnew%20v(i.bufferIndex%2Cn%2Co%2Cthis.getLineFeedCnt(i.bufferIndex%2Cn%2Co)%2Cthis.offsetInBuffer(i.bufferIndex%2Co)-this.offsetInBuffer(i.bufferIndex%2Cn))%2Cb%3Dthis.rbInsertRight(e%2Cd)%3Bthis.validateCRLFWithPrevNode(b)%7DappendToNode(e%2Ct)%7Bthis.adjustCarriageReturnFromNext(t%2Ce)%26%26(t%2B%3D%60%0A%60)%3Blet%20n%3Dthis.shouldCheckCRLF()%26%26this.startWithLF(t)%26%26this.endWithCR(e)%2Ci%3Dthis._buffers%5B0%5D.buffer.length%3Bthis._buffers%5B0%5D.buffer%2B%3Dt%3Blet%20s%3DE(t%2C!1)%3Bfor(let%20b%3D0%3Bb%3Cs.length%3Bb%2B%2B)s%5Bb%5D%2B%3Di%3Bif(n)%7Blet%20b%3Dthis._buffers%5B0%5D.lineStarts%5Bthis._buffers%5B0%5D.lineStarts.length-2%5D%3Bthis._buffers%5B0%5D.lineStarts.pop()%2Cthis._lastChangeBufferPos%3D%7Bline%3Athis._lastChangeBufferPos.line-1%2Ccolumn%3Ai-b%7D%7Dthis._buffers%5B0%5D.lineStarts%3Dthis._buffers%5B0%5D.lineStarts.concat(s.slice(1))%3Blet%20o%3Dthis._buffers%5B0%5D.lineStarts.length-1%2Ca%3Dthis._buffers%5B0%5D.buffer.length-this._buffers%5B0%5D.lineStarts%5Bo%5D%2Cl%3D%7Bline%3Ao%2Ccolumn%3Aa%7D%2Cf%3De.piece.length%2Bt.length%2Cu%3De.piece.lineFeedCnt%2Cc%3Dthis.getLineFeedCnt(0%2Ce.piece.start%2Cl)%2Cd%3Dc-u%3Be.piece%3Dnew%20v(e.piece.bufferIndex%2Ce.piece.start%2Cl%2Cc%2Cf)%2Cthis._lastChangeBufferPos%3Dl%2CC(this%2Ce%2Ct.length%2Cd)%7DnodeAt(e)%7Blet%20t%3Dthis.root%2Cn%3Dthis._searchCache.get(e)%3Bif(n)return%7Bnode%3An.node%2CnodeStartOffset%3An.nodeStartOffset%2Cremainder%3Ae-n.nodeStartOffset%7D%3Blet%20i%3D0%3Bfor(%3Bt!%3D%3Dm%3B)if(t.size_left%3Ee)t%3Dt.left%3Belse%20if(t.size_left%2Bt.piece.length%3E%3De)%7Bi%2B%3Dt.size_left%3Blet%20s%3D%7Bnode%3At%2Cremainder%3Ae-t.size_left%2CnodeStartOffset%3Ai%7D%3Breturn%20this._searchCache.set(s)%2Cs%7Delse%20e-%3Dt.size_left%2Bt.piece.length%2Ci%2B%3Dt.size_left%2Bt.piece.length%2Ct%3Dt.right%3Breturn%20null%7DnodeAt2(e%2Ct)%7Blet%20n%3Dthis.root%2Ci%3D0%3Bfor(%3Bn!%3D%3Dm%3B)if(n.left!%3D%3Dm%26%26n.lf_left%3E%3De-1)n%3Dn.left%3Belse%20if(n.lf_left%2Bn.piece.lineFeedCnt%3Ee-1)%7Blet%20s%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-2)%2Co%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-1)%3Breturn%20i%2B%3Dn.size_left%2C%7Bnode%3An%2Cremainder%3AMath.min(s%2Bt-1%2Co)%2CnodeStartOffset%3Ai%7D%7Delse%20if(n.lf_left%2Bn.piece.lineFeedCnt%3D%3D%3De-1)%7Blet%20s%3Dthis.getAccumulatedValue(n%2Ce-n.lf_left-2)%3Bif(s%2Bt-1%3C%3Dn.piece.length)return%7Bnode%3An%2Cremainder%3As%2Bt-1%2CnodeStartOffset%3Ai%7D%3Bt-%3Dn.piece.length-s%3Bbreak%7Delse%20e-%3Dn.lf_left%2Bn.piece.lineFeedCnt%2Ci%2B%3Dn.size_left%2Bn.piece.length%2Cn%3Dn.right%3Bfor(n%3Dn.next()%3Bn!%3D%3Dm%3B)%7Bif(n.piece.lineFeedCnt%3E0)%7Blet%20s%3Dthis.getAccumulatedValue(n%2C0)%2Co%3Dthis.offsetOfNode(n)%3Breturn%7Bnode%3An%2Cremainder%3AMath.min(t-1%2Cs)%2CnodeStartOffset%3Ao%7D%7Delse%20if(n.piece.length%3E%3Dt-1)%7Blet%20s%3Dthis.offsetOfNode(n)%3Breturn%7Bnode%3An%2Cremainder%3At-1%2CnodeStartOffset%3As%7D%7Delse%20t-%3Dn.piece.length%3Bn%3Dn.next()%7Dreturn%20null%7DnodeCharCodeAt(e%2Ct)%7Bif(e.piece.lineFeedCnt%3C1)return-1%3Blet%20n%3Dthis._buffers%5Be.piece.bufferIndex%5D%2Ci%3Dthis.offsetInBuffer(e.piece.bufferIndex%2Ce.piece.start)%2Bt%3Breturn%20n.buffer.charCodeAt(i)%7DoffsetOfNode(e)%7Bif(!e)return%200%3Blet%20t%3De.size_left%3Bfor(%3Be!%3D%3Dthis.root%3B)e.parent.right%3D%3D%3De%26%26(t%2B%3De.parent.size_left%2Be.parent.piece.length)%2Ce%3De.parent%3Breturn%20t%7DshouldCheckCRLF()%7Breturn!(this._EOLNormalized%26%26this._EOL%3D%3D%3D%60%0A%60)%7DstartWithLF(e)%7Bif(typeof%20e%3D%3D%22string%22)return%20e.charCodeAt(0)%3D%3D%3D10%3Bif(e%3D%3D%3Dm%7C%7Ce.piece.lineFeedCnt%3D%3D%3D0)return!1%3Blet%20t%3De.piece%2Cn%3Dthis._buffers%5Bt.bufferIndex%5D.lineStarts%2Ci%3Dt.start.line%2Cs%3Dn%5Bi%5D%2Bt.start.column%3Breturn%20i%3D%3D%3Dn.length-1%7C%7Cn%5Bi%2B1%5D%3Es%2B1%3F!1%3Athis._buffers%5Bt.bufferIndex%5D.buffer.charCodeAt(s)%3D%3D%3D10%7DendWithCR(e)%7Breturn%20typeof%20e%3D%3D%22string%22%3Fe.charCodeAt(e.length-1)%3D%3D%3D13%3Ae%3D%3D%3Dm%7C%7Ce.piece.lineFeedCnt%3D%3D%3D0%3F!1%3Athis.nodeCharCodeAt(e%2Ce.piece.length-1)%3D%3D%3D13%7DvalidateCRLFWithPrevNode(e)%7Bif(this.shouldCheckCRLF()%26%26this.startWithLF(e))%7Blet%20t%3De.prev()%3Bthis.endWithCR(t)%26%26this.fixCRLF(t%2Ce)%7D%7DvalidateCRLFWithNextNode(e)%7Bif(this.shouldCheckCRLF()%26%26this.endWithCR(e))%7Blet%20t%3De.next()%3Bthis.startWithLF(t)%26%26this.fixCRLF(e%2Ct)%7D%7DfixCRLF(e%2Ct)%7Blet%20n%3D%5B%5D%2Ci%3Dthis._buffers%5Be.piece.bufferIndex%5D.lineStarts%2Cs%3Be.piece.end.column%3D%3D%3D0%3Fs%3D%7Bline%3Ae.piece.end.line-1%2Ccolumn%3Ai%5Be.piece.end.line%5D-i%5Be.piece.end.line-1%5D-1%7D%3As%3D%7Bline%3Ae.piece.end.line%2Ccolumn%3Ae.piece.end.column-1%7D%3Blet%20o%3De.piece.length-1%2Ca%3De.piece.lineFeedCnt-1%3Be.piece%3Dnew%20v(e.piece.bufferIndex%2Ce.piece.start%2Cs%2Ca%2Co)%2CC(this%2Ce%2C-1%2C-1)%2Ce.piece.length%3D%3D%3D0%26%26n.push(e)%3Blet%20l%3D%7Bline%3At.piece.start.line%2B1%2Ccolumn%3A0%7D%2Cf%3Dt.piece.length-1%2Cu%3Dthis.getLineFeedCnt(t.piece.bufferIndex%2Cl%2Ct.piece.end)%3Bt.piece%3Dnew%20v(t.piece.bufferIndex%2Cl%2Ct.piece.end%2Cu%2Cf)%2CC(this%2Ct%2C-1%2C-1)%2Ct.piece.length%3D%3D%3D0%26%26n.push(t)%3Blet%20c%3Dthis.createNewPieces(%60%5Cr%0A%60)%3Bthis.rbInsertRight(e%2Cc%5B0%5D)%3Bfor(let%20d%3D0%3Bd%3Cn.length%3Bd%2B%2B)Q(this%2Cn%5Bd%5D)%7DadjustCarriageReturnFromNext(e%2Ct)%7Bif(this.shouldCheckCRLF()%26%26this.endWithCR(e))%7Blet%20n%3Dt.next()%3Bif(this.startWithLF(n))%7Bif(e%2B%3D%60%0A%60%2Cn.piece.length%3D%3D%3D1)Q(this%2Cn)%3Belse%7Blet%20i%3Dn.piece%2Cs%3D%7Bline%3Ai.start.line%2B1%2Ccolumn%3A0%7D%2Co%3Di.length-1%2Ca%3Dthis.getLineFeedCnt(i.bufferIndex%2Cs%2Ci.end)%3Bn.piece%3Dnew%20v(i.bufferIndex%2Cs%2Ci.end%2Ca%2Co)%2CC(this%2Cn%2C-1%2C-1)%7Dreturn!0%7D%7Dreturn!1%7Diterate(e%2Ct)%7Bif(e%3D%3D%3Dm)return%20t(m)%3Blet%20n%3Dthis.iterate(e.left%2Ct)%3Breturn%20n%26%26t(e)%26%26this.iterate(e.right%2Ct)%7DgetNodeContent(e)%7Bif(e%3D%3D%3Dm)return%22%22%3Blet%20t%3Dthis._buffers%5Be.piece.bufferIndex%5D%2Cn%3De.piece%2Ci%3Dthis.offsetInBuffer(n.bufferIndex%2Cn.start)%2Cs%3Dthis.offsetInBuffer(n.bufferIndex%2Cn.end)%3Breturn%20t.buffer.substring(i%2Cs)%7DgetPieceContent(e)%7Blet%20t%3Dthis._buffers%5Be.bufferIndex%5D%2Cn%3Dthis.offsetInBuffer(e.bufferIndex%2Ce.start)%2Ci%3Dthis.offsetInBuffer(e.bufferIndex%2Ce.end)%3Breturn%20t.buffer.substring(n%2Ci)%7DrbInsertRight(e%2Ct)%7Blet%20n%3Dnew%20j(t%2C1)%3Bif(n.left%3Dm%2Cn.right%3Dm%2Cn.parent%3Dm%2Cn.size_left%3D0%2Cn.lf_left%3D0%2Cthis.root%3D%3D%3Dm)this.root%3Dn%2Cn.color%3D0%3Belse%20if(e.right%3D%3D%3Dm)e.right%3Dn%2Cn.parent%3De%3Belse%7Blet%20s%3Due(e.right)%3Bs.left%3Dn%2Cn.parent%3Ds%7Dreturn%20Ue(this%2Cn)%2Cn%7DrbInsertLeft(e%2Ct)%7Blet%20n%3Dnew%20j(t%2C1)%3Bif(n.left%3Dm%2Cn.right%3Dm%2Cn.parent%3Dm%2Cn.size_left%3D0%2Cn.lf_left%3D0%2Cthis.root%3D%3D%3Dm)this.root%3Dn%2Cn.color%3D0%3Belse%20if(e.left%3D%3D%3Dm)e.left%3Dn%2Cn.parent%3De%3Belse%7Blet%20i%3DRe(e.left)%3Bi.right%3Dn%2Cn.parent%3Di%7Dreturn%20Ue(this%2Cn)%2Cn%7DgetContentOfSubTree(e)%7Blet%20t%3D%22%22%3Breturn%20this.iterate(e%2Cn%3D%3E(t%2B%3Dthis.getNodeContent(n)%2C!0))%2Ct%7D%7D%3Bvar%20zt%3DString.fromCharCode(65279)%3Bfunction%20jt(r)%7Breturn!!(r%26%26r.length%3E0%26%26r.charCodeAt(0)%3D%3D%3D65279)%7Dvar%20He%3Dclass%7Bconstructor(e%2Ct%2Cn%2Ci%2Cs%2Co)%7Bthis._chunks%3De%3Bthis._bom%3Dt%3Bthis._cr%3Dn%3Bthis._lf%3Di%3Bthis._crlf%3Ds%3Bthis._normalizeEOL%3Do%7D_getEOL(e)%7Blet%20t%3Dthis._cr%2Bthis._lf%2Bthis._crlf%2Cn%3Dthis._cr%2Bthis._crlf%3Breturn%20t%3D%3D%3D0%3Fe%3D%3D%3D1%3F%60%0A%60%3A%60%5Cr%0A%60%3An%3Et%2F2%3F%60%5Cr%0A%60%3A%60%0A%60%7Dcreate(e)%7Blet%20t%3Dthis._getEOL(e)%2Cn%3Dthis._chunks%3Bif(this._normalizeEOL%26%26(t%3D%3D%3D%60%5Cr%0A%60%26%26(this._cr%3E0%7C%7Cthis._lf%3E0)%7C%7Ct%3D%3D%3D%60%0A%60%26%26(this._cr%3E0%7C%7Cthis._crlf%3E0)))for(let%20i%3D0%2Cs%3Dn.length%3Bi%3Cs%3Bi%2B%2B)%7Blet%20o%3Dn%5Bi%5D.buffer.replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2Ct)%2Ca%3DE(o)%3Bn%5Bi%5D%3Dnew%20M(o%2Ca)%7Dreturn%20new%20ge(n%2Ct%2Cthis._normalizeEOL)%7DgetFirstLineText(e)%7Breturn%20this._chunks%5B0%5D.buffer.substr(0%2C100).split(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2F)%5B0%5D%7D%7D%2Cte%3Dclass%7Bconstructor()%7Bthis.chunks%3D%5B%5D%2Cthis.BOM%3D%22%22%2Cthis._hasPreviousChar%3D!1%2Cthis._previousChar%3D0%2Cthis._tmpLineStarts%3D%5B%5D%2Cthis.cr%3D0%2Cthis.lf%3D0%2Cthis.crlf%3D0%7DacceptChunk(e)%7Bif(e.length%3D%3D%3D0)return%3Bthis.chunks.length%3D%3D%3D0%26%26jt(e)%26%26(this.BOM%3Dzt%2Ce%3De.substr(1))%3Blet%20t%3De.charCodeAt(e.length-1)%3Bt%3D%3D%3D13%7C%7Ct%3E%3D55296%26%26t%3C%3D56319%3F(this._acceptChunk1(e.substr(0%2Ce.length-1)%2C!1)%2Cthis._hasPreviousChar%3D!0%2Cthis._previousChar%3Dt)%3A(this._acceptChunk1(e%2C!1)%2Cthis._hasPreviousChar%3D!1%2Cthis._previousChar%3Dt)%7D_acceptChunk1(e%2Ct)%7B!t%26%26e.length%3D%3D%3D0%7C%7C(this._hasPreviousChar%3Fthis._acceptChunk2(String.fromCharCode(this._previousChar)%2Be)%3Athis._acceptChunk2(e))%7D_acceptChunk2(e)%7Blet%20t%3Dgt(this._tmpLineStarts%2Ce)%3Bthis.chunks.push(new%20M(e%2Ct.lineStarts))%2Cthis.cr%2B%3Dt.cr%2Cthis.lf%2B%3Dt.lf%2Cthis.crlf%2B%3Dt.crlf%7Dfinish(e%3D!0)%7Breturn%20this._finish()%2Cnew%20He(this.chunks%2Cthis.BOM%2Cthis.cr%2Cthis.lf%2Cthis.crlf%2Ce)%7D_finish()%7Bif(this.chunks.length%3D%3D%3D0%26%26this._acceptChunk1(%22%22%2C!0)%2Cthis._hasPreviousChar)%7Bthis._hasPreviousChar%3D!1%3Blet%20e%3Dthis.chunks%5Bthis.chunks.length-1%5D%3Be.buffer%2B%3DString.fromCharCode(this._previousChar)%3Blet%20t%3DE(e.buffer)%3Be.lineStarts%3Dt%2Cthis._previousChar%3D%3D%3D13%26%26this.cr%2B%2B%7D%7D%7D%3Bvar%20Kt%3D%22default%22%3Bfunction%20me()%7Breturn%20Kt%7Dvar%20mt%3Dnew%20Map%2CGe%3Dclass%7Bconstructor()%7Bthis.listeners%3D%7B%7D%7Don(e%2Ct)%7Bthis.listeners%5Be%5D%7C%7C(this.listeners%5Be%5D%3D%5B%5D)%2Cthis.listeners%5Be%5D%3F.push(t)%7Doff(e%2Ct)%7Bthis.listeners%5Be%5D%26%26(this.listeners%5Be%5D%3Dthis.listeners%5Be%5D%3F.filter(n%3D%3En!%3D%3Dt))%7Ddispose()%7Bthis.listeners%3D%7B%7D%7DremoveAllListeners()%7Bthis.listeners%3D%7B%7D%7Demit(e%2Ct)%7Bif(this.listeners%5Be%5D)for(let%20n%20of%20this.listeners%5Be%5D)n(t)%7D%7D%2Cbt%3D()%3D%3E%7Blet%20r%3Dme()%3Bif(!r)throw%20new%20Error(%22currentNameSpaceId%20is%20not%20set%22)%3Blet%20e%3Dmt.get(r)%3Breturn%20e%7C%7C(e%3Dnew%20Ge%2Cmt.set(r%2Ce))%2Ce%7D%3Bvar%20_t%3Dnew%20Map%2CZe%3Dclass%7Bconstructor()%7Blet%20e%3DdecodeURIComponent(%22%25WORKER_RAW%25%22)%2Ct%3Dnew%20Blob(%5Be%5D%2C%7Btype%3A%22application%2Fjavascript%22%7D)%2Cn%3DURL.createObjectURL(t)%3Bthis._worker%3Dnew%20Worker(n)%2Cthis._callbacks%3Dnew%20Map%2Cthis._worker.onmessage%3Dthis._handleWorkerMessage.bind(this)%7Dasync%20init(e)%7Bawait%20this._sendRequest(%22init%22%2C%7Bvalue%3Ae%7D)%7DupdateModel(e)%7Breturn%20this._sendRequest(%22updateModel%22%2C%7Bop%3Ae%7D)%7Dundo()%7Breturn%20this._sendRequest(%22undo%22%2C%7B%7D)%7Dredo()%7Breturn%20this._sendRequest(%22redo%22%2C%7B%7D)%7DformatJson(e)%7Breturn%20this._sendRequest(%22format%22%2C%7Boptions%3Ae%7D)%7DfoldRange()%7Breturn%20this._sendRequest(%22foldRange%22%2C%7B%7D)%7Dvalidate()%7Breturn%20this._sendRequest(%22validate%22%2C%7B%7D)%7D_sendRequest(e%2Ct)%7Breturn%20new%20Promise((n%2Ci)%3D%3E%7Blet%20s%3DDate.now()%2BMath.random()%3Bthis._callbacks.set(s%2Cn)%2Cthis._worker.postMessage(%7BmessageId%3As%2Cmethod%3Ae%2Cparams%3At%7D)%7D)%7D_handleWorkerMessage(e)%7Blet%7BmessageId%3At%2Cresult%3An%2Cerror%3Ai%7D%3De.data%2Cs%3Dthis._callbacks.get(t)%3Bs%26%26(s(i%3Fnew%20Error(i)%3An)%2Cthis._callbacks.delete(t))%7Ddispose()%7Bthis._worker.terminate()%2Cthis._callbacks.clear()%7D%7D%3Bfunction%20Nt()%7Blet%20r%3Dme()%3Bif(!r)throw%20new%20Error(%22No%20active%20worker%20ID%20set%22)%3Blet%20e%3D_t.get(r)%3Breturn%20e%7C%7C(e%3Dnew%20Ze%2C_t.set(r%2Ce))%2Ce%7Dvar%20Dt%3Dtypeof%20self%3D%3D%22object%22%26%26self.constructor%26%26self.constructor.name%3D%3D%3D%22DedicatedWorkerGlobalScope%22%3Bfunction%20ne()%7Breturn%20Dt%7Dvar%20re%3Dclass%7Bconstructor(e%2Ct)%7Bthis.model%3De%3Bthis.operation%3Dt%3Bthis.oldPos%3D%7B...e.lastChangeBufferPos%7D%2Cthis.model.updateLastChangeBufferPos(t)%2Cthis.newPos%3D%7B...e.lastChangeBufferPos%7D%7DupdateBufferPos(e)%7Bthis.model.lastChangeBufferPos%3D%7B...e%3Fthis.oldPos%3Athis.newPos%7D%7D%7D%2Cbe%3Dclass%20extends%20re%7Bexecute()%7Bthis.model.pieceTree.insert(this.operation.rangeOffset%2Cthis.operation.newText)%2Cthis.updateBufferPos(!1)%7Dundo()%7Bthis.model.pieceTree.delete(this.operation.rangeOffset%2Cthis.operation.newText.length)%2Cthis.updateBufferPos(!0)%7D%7D%2C_e%3Dclass%20extends%20re%7Bexecute()%7Bthis.model.pieceTree.delete(this.operation.rangeOffset%2Cthis.operation.rangeLength)%2Cthis.updateBufferPos(!1)%7Dundo()%7Bthis.model.pieceTree.insert(this.operation.rangeOffset%2Cthis.operation.oldText)%2Cthis.updateBufferPos(!0)%7D%7D%2CNe%3Dclass%20extends%20re%7Bexecute()%7Bthis.model.pieceTree.delete(this.operation.rangeOffset%2Cthis.operation.oldText.length)%2Cthis.model.pieceTree.insert(this.operation.rangeOffset%2Cthis.operation.newText)%2Cthis.updateBufferPos(!1)%7Dundo()%7Bthis.model.pieceTree.delete(this.operation.rangeOffset%2Cthis.operation.newText.length)%2Cthis.model.pieceTree.insert(this.operation.rangeOffset%2Cthis.operation.oldText)%2Cthis.updateBufferPos(!0)%7D%7D%2Cxe%3Dclass%7Bconstructor(e%2Ct)%7Bthis.model%3De%3Bthis.operation%3Dt%3Bthis.oldPos%3D%7B...e.lastChangeBufferPos%7D%2Cthis.newPos%3D%7B...e.lastChangeBufferPos%7D%7Dexecute()%7Bfor(let%20e%3D0%3Be%3Cthis.operation.length%3Be%2B%2B)%7Blet%20t%3Dthis.operation%5Be%5D%3Bswitch(t.type)%7Bcase%22insert%22%3Athis.model.pieceTree.insert(t.rangeOffset%2Ct.newText)%3Bbreak%3Bcase%22delete%22%3Athis.model.pieceTree.delete(t.rangeOffset%2Ct.rangeLength)%3Bbreak%3Bcase%22replace%22%3Athis.model.pieceTree.delete(t.rangeOffset%2Ct.oldText.length)%2Cthis.model.pieceTree.insert(t.rangeOffset%2Ct.newText)%3Bbreak%7D%7Dthis.model.lastChangeBufferPos%3D%7B...this.newPos%7D%7Dundo()%7Bfor(let%20e%3Dthis.operation.length-1%3Be%3E%3D0%3Be--)%7Blet%20t%3Dthis.operation%5Be%5D%3Bt.newText%26%26t.oldText%3F(this.model.pieceTree.delete(t.rangeOffset%2Ct.newText.length)%2Cthis.model.pieceTree.insert(t.rangeOffset%2Ct.oldText))%3At.newText%3Fthis.model.pieceTree.delete(t.rangeOffset%2Ct.newText.length)%3Athis.model.pieceTree.insert(t.rangeOffset%2Ct.oldText)%7Dthis.model.lastChangeBufferPos%3D%7B...this.oldPos%7D%7D%7D%3Bvar%20Te%3Dclass%7Bconstructor(e%2Ct%3D!0)%7Bthis._undoStack%3D%5B%5D%3Bthis._redoStack%3D%5B%5D%3Bthis.MAX_STACK_SIZE%3D20%3Bthis.lastChangeBufferPos%3D%7BlineNumber%3A1%2Ccolumn%3A1%7D%3Bthis._jsonWorkerManager%3Dnull%3Bthis.emitter%3Dnull%3Bthis._normalizeEOL%3Dt%2Cthis._pieceTree%3Dthis.createTextBuffer(e)%2Cne()%7C%7C(this._jsonWorkerManager%3DNt()%2Cthis.emitter%3Dbt())%7Dget%20pieceTree()%7Breturn%20this._pieceTree%7DcreateTextBufferFactory(e)%7Blet%20t%3Dnew%20te%3Breturn%20t.acceptChunk(e)%2Ct.finish(this._normalizeEOL)%7DcreateTextBuffer(e)%7Breturn%20this.createTextBufferFactory(e).create(1)%7DgetLineCount()%7Breturn%20this._pieceTree.getLineCount()%7DgetLineContent(e)%7Breturn%20this._pieceTree.getLineContent(e)%7DgetLineLength(e)%7Breturn%20this._pieceTree.getLineLength(e)%7DgetOffsetAt(e%2Ct)%7Breturn%20this._pieceTree.getOffsetAt(e%2Ct)%7DpositionAt(e)%7Breturn%20e%3DMath.min(this._pieceTree.getLength()%2CMath.max(0%2Ce))%2Cthis._pieceTree.getPositionAt(e)%7D_createCommand(e)%7Bif(Array.isArray(e))return%20new%20xe(this%2Ce)%3Bswitch(e.type)%7Bcase%22insert%22%3Areturn%20new%20be(this%2Ce)%3Bcase%22delete%22%3Areturn%20new%20_e(this%2Ce)%3Bcase%22replace%22%3Areturn%20new%20Ne(this%2Ce)%3Bdefault%3Athrow%20new%20Error(%22Unknown%20operation%20type%22)%7D%7DapplyOperation(e)%7Bthis._redoStack%3D%5B%5D%3Blet%20t%3Dthis._createCommand(e)%3Bthis.pushUndoStack(t)%2Ct.execute()%2Cne()%7C%7Cthis.emitter%3F.emit(%22contentChanged%22%2Ce)%2Cthis._jsonWorkerManager%26%26this._jsonWorkerManager.updateModel(e).then(n%3D%3Ethis._jsonWorkerManager%3F.validate()).then(n%3D%3E%7Bthis.emitter%3F.emit(%22problemsChanged%22%2C%7Bproblems%3An.problems%2Croot%3An.root%7D)%7D)%7DupdateLastChangeBufferPos(e)%7Bif(e.keepPosition)%7Bthis.lastChangeBufferPos%3De.keepPosition%3Breturn%7Dswitch(e.type)%7Bcase%22insert%22%3Athis.lastChangeBufferPos.column%2B%3De.newText.length%3Bbreak%3Bcase%22delete%22%3Aif(this.lastChangeBufferPos.column%3D%3D%3D1)this.lastChangeBufferPos.lineNumber-%3D1%2Cthis.lastChangeBufferPos.column%3Dthis.getLineLength(this.lastChangeBufferPos.lineNumber)%2B1%3Belse%7Blet%20i%3De.range.startColumn%2Cs%3De.rangeLength%3D%3D%3D1%3Fi-1%3Ai%3Bthis.lastChangeBufferPos.column%3Ds%7Dbreak%3Bcase%22replace%22%3Alet%20t%3De.range.startLineNumber%2Cn%3De.range.startColumn%2Be.newText.length%3Bthis.lastChangeBufferPos.lineNumber%3Dt%2Cthis.lastChangeBufferPos.column%3Dn%3Bbreak%7D%7DpushUndoStack(e)%7Bthis._undoStack.push(e)%2Cthis._undoStack.length%3Ethis.MAX_STACK_SIZE%26%26this._undoStack.shift()%7DpushRedoStack(e)%7Bthis._redoStack.push(e)%2Cthis._redoStack.length%3Ethis.MAX_STACK_SIZE%26%26this._redoStack.shift()%7DcanUndo()%7Breturn%20this._undoStack.length%3E0%7DcanRedo()%7Breturn%20this._redoStack.length%3E0%7Dundo()%7Bif(!this.canUndo())return%3Blet%20e%3Dthis._undoStack.pop()%3Be.undo()%2Cthis._redoStack.push(e)%2Cne()%7C%7Cthis.emitter%3F.emit(%22contentChanged%22%2Ce.operation)%2Cthis._jsonWorkerManager%26%26this._jsonWorkerManager.undo().then(t%3D%3Ethis._jsonWorkerManager%3F.validate()).then(t%3D%3E%7Bthis.emitter%3F.emit(%22problemsChanged%22%2C%7Bproblems%3At.problems%2Croot%3At.root%7D)%7D)%7Dredo()%7Bif(!this.canRedo())return%3Blet%20e%3Dthis._redoStack.pop()%3Be.execute()%2Cthis._undoStack.push(e)%2Cne()%7C%7Cthis.emitter%3F.emit(%22contentChanged%22%2Ce.operation)%2Cthis._jsonWorkerManager%26%26this._jsonWorkerManager.redo().then(t%3D%3Ethis._jsonWorkerManager%3F.validate()).then(t%3D%3E%7Bthis.emitter%3F.emit(%22problemsChanged%22%2C%7Bproblems%3At.problems%2Croot%3At.root%7D)%7D)%7DgetValue()%7Breturn%20this._pieceTree.getValueInRange(%7BstartLineNumber%3A1%2CstartColumn%3A1%2CendLineNumber%3Athis._pieceTree.getLineCount()%2CendColumn%3Athis._pieceTree.getLineContent(this._pieceTree.getLineCount()).length%2B1%7D)%7DsetValue(e)%7Blet%20t%3Dnew%20te%3Bt.acceptChunk(e)%2Cthis._pieceTree%3Dt.finish(this._normalizeEOL).create(1)%7DgetEOL()%7Breturn%20this._pieceTree.getEOL()%7D_getEndOfLine(e)%7Bswitch(e)%7Bcase%201%3Areturn%60%0A%60%3Bcase%202%3Areturn%60%5Cr%0A%60%3Bcase%200%3Areturn%20this.getEOL()%3Bdefault%3Athrow%20new%20Error(%22Unknown%20EOL%20preference%22)%7D%7DgetValueInRange(e%2Ct%3D0)%7Breturn%20this._pieceTree.getValueInRange(e%2Cthis._getEndOfLine(t))%7DgetFullModelRange()%7Blet%20e%3Dthis.getLineCount()%3Breturn%20new%20A(1%2C1%2Ce%2Cthis.getLineLength(e)%2B1)%7DfindMatchesLineByLine(e%2Ct%2Cn%2Ci)%7Breturn%20this._pieceTree.findMatchesLineByLine(e%2Ct%2Cn%2Ci)%7DfindMatches(e%2Ct%2Cn%2Ci%2Cs%2Co%2Ca%3D1%2F0)%7Blet%20l%3Dnull%3Bl%3D%3D%3Dnull%26%26(l%3D%5Bthis.getFullModelRange()%5D)%2Cl%3Dl.sort((c%2Cd)%3D%3Ec.startLineNumber-d.startLineNumber%7C%7Cc.startColumn-d.startColumn)%3Blet%20f%3D%5B%5D%3Bf.push(l.reduce((c%2Cd)%3D%3EA.areIntersecting(c%2Cd)%3Fc.plusRange(d)%3A(f.push(c)%2Cd)))%3Blet%20u%3Bif(!n%26%26e.indexOf(%60%0A%60)%3C0)%7Blet%20d%3Dnew%20Y(e%2Cn%2Ci%2Cs).parseSearchRequest()%3Bif(!d)return%5B%5D%3Bu%3Db%3D%3Ethis.findMatchesLineByLine(b%2Cd%2Co%2Ca)%7Delse%20u%3Dc%3D%3Ehe.findMatches(this%2Cnew%20Y(e%2Cn%2Ci%2Cs)%2Cc%2Co%2Ca)%3Breturn%20f.map(u).reduce((c%2Cd)%3D%3Ec.concat(d)%2C%5B%5D)%7D%7D%3Bfunction%20xt(r%2Ce%3D!0)%7Breturn%20new%20Te(r%2Ce)%7Dvar%20ke%3Dclass%7Bconstructor(e)%7Bthis._model%3Dnull%3Bthis._model%3Dxt(e)%7DgetModel()%7Breturn%20this._model%7Dformat(e)%7Bif(!this._model)throw%20new%20Error(%22Model%20not%20initialized%22)%3Breturn%20ot(this._model%2Ce)%7DfoldRange()%7Bif(!this._model)throw%20new%20Error(%22Model%20not%20initialized%22)%3Breturn%20Fe(this._model)%7Dvalidate()%7Bif(!this._model)throw%20new%20Error(%22Model%20not%20initialized%22)%3Breturn%20lt(this._model)%7DupdateModel(e)%7Breturn%20this._model%3F.applyOperation(e)%2Ce%7Dundo()%7Bthis._model%3F.undo()%7Dredo()%7Bthis._model%3F.redo()%7Dparse()%7Bif(!this._model)throw%20new%20Error(%22Model%20not%20initialized%22)%3Breturn%20at(this._model)%7D%7D%3Bvar%20W%3Dnull%3Bself.onmessage%3Dr%3D%3E%7Blet%7Bmethod%3Ae%2Cparams%3At%2CmessageId%3An%7D%3Dr.data%3Bif(e%3D%3D%3D%22init%22)%7BW%3Dnew%20ke(t.value)%2Cself.postMessage(%7BmessageId%3An%2Cresult%3A%22Worker%20initialized%22%7D)%3Breturn%7Dif(!W)%7Bself.postMessage(%7BmessageId%3An%2Cerror%3A%22Worker%20not%20initialized%22%7D)%3Breturn%7Dlet%20i%3Bswitch(e)%7Bcase%22updateModel%22%3AW.updateModel(t.op)%3Bbreak%3Bcase%22undo%22%3AW.undo()%3Bbreak%3Bcase%22redo%22%3AW.redo()%3Bbreak%3Bcase%22format%22%3Ai%3DW.format(t.options)%3Bbreak%3Bcase%22foldRange%22%3Ai%3DW.foldRange()%3Bbreak%3Bcase%22validate%22%3Ai%3DW.validate()%3Bbreak%3Bdefault%3Ai%3D%7Berror%3A%22Unknown%20method%22%7D%7Dself.postMessage(%7BmessageId%3An%2Cresult%3Ai%7D)%7D%3B%7D)()%3B%0A`);
|
|
231
433
|
const blob = new Blob([workerRaw], { type: "application/javascript" });
|
|
232
434
|
const workerURL = URL.createObjectURL(blob);
|
|
233
435
|
this._worker = new Worker(workerURL);
|
|
@@ -2064,209 +2266,25 @@ var JsonBackgroundTokenizer = class {
|
|
|
2064
2266
|
}
|
|
2065
2267
|
};
|
|
2066
2268
|
|
|
2067
|
-
// src/tokens/
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
}
|
|
2075
|
-
var TOKEN_DELIM_OBJECT = "semi-json-viewer-delimiter-bracket";
|
|
2076
|
-
var TOKEN_DELIM_ARRAY = "semi-json-viewer-delimiter-array";
|
|
2077
|
-
var TOKEN_DELIM_COLON = "semi-json-viewer-delimiter-colon";
|
|
2078
|
-
var TOKEN_DELIM_COMMA = "semi-json-viewer-delimiter-comma";
|
|
2079
|
-
var TOKEN_VALUE_BOOLEAN = "semi-json-viewer-keyword";
|
|
2080
|
-
var TOKEN_VALUE_NULL = "semi-json-viewer-keyword";
|
|
2081
|
-
var TOKEN_VALUE_STRING = "semi-json-viewer-string-value";
|
|
2082
|
-
var TOKEN_VALUE_NUMBER = "semi-json-viewer-number";
|
|
2083
|
-
var TOKEN_PROPERTY_NAME = "semi-json-viewer-string-key";
|
|
2084
|
-
var TOKEN_COMMENT_BLOCK = "semi-json-viewer-comment-block";
|
|
2085
|
-
var TOKEN_COMMENT_LINE = "semi-json-viewer-comment-line";
|
|
2086
|
-
var ParentsStack = class _ParentsStack {
|
|
2087
|
-
constructor(parent, type, depth) {
|
|
2088
|
-
this.parent = parent;
|
|
2089
|
-
this.type = type;
|
|
2090
|
-
this.depth = depth;
|
|
2269
|
+
// src/tokens/tokenizationJsonModelPart.ts
|
|
2270
|
+
var TokenizationJsonModelPart = class {
|
|
2271
|
+
constructor(jsonModel) {
|
|
2272
|
+
this._jsonModel = null;
|
|
2273
|
+
this.emitter = getEmitter();
|
|
2274
|
+
this._jsonModel = jsonModel;
|
|
2275
|
+
this.tokens = new GrammarTokens(this._jsonModel);
|
|
2091
2276
|
}
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
return parents.parent;
|
|
2095
|
-
}
|
|
2096
|
-
return null;
|
|
2277
|
+
getLineTokens(lineNumber) {
|
|
2278
|
+
return this.tokens.getLineTokens(lineNumber);
|
|
2097
2279
|
}
|
|
2098
|
-
|
|
2099
|
-
|
|
2280
|
+
handleDidChangeContent(e) {
|
|
2281
|
+
this.tokens.handleDidChangeContent(e);
|
|
2100
2282
|
}
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
return false;
|
|
2107
|
-
}
|
|
2108
|
-
while (a && b) {
|
|
2109
|
-
if (a.type !== b.type || a.depth !== b.depth) {
|
|
2110
|
-
return false;
|
|
2111
|
-
}
|
|
2112
|
-
a = a.parent;
|
|
2113
|
-
b = b.parent;
|
|
2114
|
-
}
|
|
2115
|
-
return a === null && b === null;
|
|
2116
|
-
}
|
|
2117
|
-
};
|
|
2118
|
-
var JSONState = class _JSONState {
|
|
2119
|
-
constructor(state, scanError, lastWasColon, parents) {
|
|
2120
|
-
this._state = state;
|
|
2121
|
-
this.scanError = scanError;
|
|
2122
|
-
this.lastWasColon = lastWasColon;
|
|
2123
|
-
this.parents = parents;
|
|
2124
|
-
}
|
|
2125
|
-
clone() {
|
|
2126
|
-
return new _JSONState(this._state, this.scanError, this.lastWasColon, this.parents);
|
|
2127
|
-
}
|
|
2128
|
-
equals(other) {
|
|
2129
|
-
if (other === this) {
|
|
2130
|
-
return true;
|
|
2131
|
-
}
|
|
2132
|
-
if (!other || !(other instanceof _JSONState)) {
|
|
2133
|
-
return false;
|
|
2134
|
-
}
|
|
2135
|
-
return this.scanError === other.scanError && this.lastWasColon === other.lastWasColon && ParentsStack.equals(this.parents, other.parents);
|
|
2136
|
-
}
|
|
2137
|
-
getStateData() {
|
|
2138
|
-
return this._state;
|
|
2139
|
-
}
|
|
2140
|
-
setStateData(state) {
|
|
2141
|
-
this._state = state;
|
|
2142
|
-
}
|
|
2143
|
-
};
|
|
2144
|
-
function tokenize(comments, line, state, offsetDelta = 0) {
|
|
2145
|
-
let numberOfInsertedCharacters = 0;
|
|
2146
|
-
let adjustOffset = false;
|
|
2147
|
-
switch (state.scanError) {
|
|
2148
|
-
case 2 /* UnexpectedEndOfString */:
|
|
2149
|
-
line = '"' + line;
|
|
2150
|
-
numberOfInsertedCharacters = 1;
|
|
2151
|
-
break;
|
|
2152
|
-
case 1 /* UnexpectedEndOfComment */:
|
|
2153
|
-
line = "/*" + line;
|
|
2154
|
-
numberOfInsertedCharacters = 2;
|
|
2155
|
-
break;
|
|
2156
|
-
}
|
|
2157
|
-
const scanner = json.createScanner(line);
|
|
2158
|
-
let lastWasColon = state.lastWasColon;
|
|
2159
|
-
let parents = state.parents;
|
|
2160
|
-
const ret = {
|
|
2161
|
-
tokens: [],
|
|
2162
|
-
endState: state.clone()
|
|
2163
|
-
};
|
|
2164
|
-
while (true) {
|
|
2165
|
-
let offset = offsetDelta + scanner.getPosition();
|
|
2166
|
-
let type = "";
|
|
2167
|
-
const kind = scanner.scan();
|
|
2168
|
-
if (kind === 17 /* EOF */) {
|
|
2169
|
-
break;
|
|
2170
|
-
}
|
|
2171
|
-
if (offset === offsetDelta + scanner.getPosition()) {
|
|
2172
|
-
throw new Error("Scanner did not advance, next 3 characters are: " + line.substr(scanner.getPosition(), 3));
|
|
2173
|
-
}
|
|
2174
|
-
if (adjustOffset) {
|
|
2175
|
-
offset -= numberOfInsertedCharacters;
|
|
2176
|
-
}
|
|
2177
|
-
adjustOffset = numberOfInsertedCharacters > 0;
|
|
2178
|
-
switch (kind) {
|
|
2179
|
-
case 1 /* OpenBraceToken */:
|
|
2180
|
-
parents = ParentsStack.push(parents, 0 /* Object */);
|
|
2181
|
-
type = `${TOKEN_DELIM_OBJECT}-${parents ? parents.depth % 3 : 0}`;
|
|
2182
|
-
lastWasColon = false;
|
|
2183
|
-
break;
|
|
2184
|
-
case 2 /* CloseBraceToken */:
|
|
2185
|
-
type = `${TOKEN_DELIM_OBJECT}-${parents ? parents.depth % 3 : 0}`;
|
|
2186
|
-
parents = ParentsStack.pop(parents);
|
|
2187
|
-
lastWasColon = false;
|
|
2188
|
-
break;
|
|
2189
|
-
case 3 /* OpenBracketToken */:
|
|
2190
|
-
parents = ParentsStack.push(parents, 1 /* Array */);
|
|
2191
|
-
type = `${TOKEN_DELIM_ARRAY}-${parents ? parents.depth % 3 : 0}`;
|
|
2192
|
-
lastWasColon = false;
|
|
2193
|
-
break;
|
|
2194
|
-
case 4 /* CloseBracketToken */:
|
|
2195
|
-
type = `${TOKEN_DELIM_ARRAY}-${parents ? parents.depth % 3 : 0}`;
|
|
2196
|
-
parents = ParentsStack.pop(parents);
|
|
2197
|
-
lastWasColon = false;
|
|
2198
|
-
break;
|
|
2199
|
-
case 6 /* ColonToken */:
|
|
2200
|
-
type = TOKEN_DELIM_COLON;
|
|
2201
|
-
lastWasColon = true;
|
|
2202
|
-
break;
|
|
2203
|
-
case 5 /* CommaToken */:
|
|
2204
|
-
type = TOKEN_DELIM_COMMA;
|
|
2205
|
-
lastWasColon = false;
|
|
2206
|
-
break;
|
|
2207
|
-
case 8 /* TrueKeyword */:
|
|
2208
|
-
case 9 /* FalseKeyword */:
|
|
2209
|
-
type = TOKEN_VALUE_BOOLEAN;
|
|
2210
|
-
lastWasColon = false;
|
|
2211
|
-
break;
|
|
2212
|
-
case 7 /* NullKeyword */:
|
|
2213
|
-
type = TOKEN_VALUE_NULL;
|
|
2214
|
-
lastWasColon = false;
|
|
2215
|
-
break;
|
|
2216
|
-
case 10 /* StringLiteral */:
|
|
2217
|
-
const currentParent = parents ? parents.type : 0 /* Object */;
|
|
2218
|
-
const inArray = currentParent === 1 /* Array */;
|
|
2219
|
-
type = lastWasColon || inArray ? TOKEN_VALUE_STRING : TOKEN_PROPERTY_NAME;
|
|
2220
|
-
lastWasColon = false;
|
|
2221
|
-
break;
|
|
2222
|
-
case 11 /* NumericLiteral */:
|
|
2223
|
-
type = TOKEN_VALUE_NUMBER;
|
|
2224
|
-
lastWasColon = false;
|
|
2225
|
-
break;
|
|
2226
|
-
}
|
|
2227
|
-
if (comments) {
|
|
2228
|
-
switch (kind) {
|
|
2229
|
-
case 12 /* LineCommentTrivia */:
|
|
2230
|
-
type = TOKEN_COMMENT_LINE;
|
|
2231
|
-
break;
|
|
2232
|
-
case 13 /* BlockCommentTrivia */:
|
|
2233
|
-
type = TOKEN_COMMENT_BLOCK;
|
|
2234
|
-
break;
|
|
2235
|
-
}
|
|
2236
|
-
}
|
|
2237
|
-
ret.endState = new JSONState(
|
|
2238
|
-
state.getStateData(),
|
|
2239
|
-
scanner.getTokenError(),
|
|
2240
|
-
lastWasColon,
|
|
2241
|
-
parents
|
|
2242
|
-
);
|
|
2243
|
-
ret.tokens.push({
|
|
2244
|
-
startIndex: offset,
|
|
2245
|
-
scopes: type
|
|
2246
|
-
});
|
|
2247
|
-
}
|
|
2248
|
-
return ret;
|
|
2249
|
-
}
|
|
2250
|
-
|
|
2251
|
-
// src/tokens/tokenizationJsonModelPart.ts
|
|
2252
|
-
var TokenizationJsonModelPart = class {
|
|
2253
|
-
constructor(jsonModel) {
|
|
2254
|
-
this._jsonModel = null;
|
|
2255
|
-
this.emitter = getEmitter();
|
|
2256
|
-
this._jsonModel = jsonModel;
|
|
2257
|
-
this.tokens = new GrammarTokens(this._jsonModel);
|
|
2258
|
-
}
|
|
2259
|
-
getLineTokens(lineNumber) {
|
|
2260
|
-
return this.tokens.getLineTokens(lineNumber);
|
|
2261
|
-
}
|
|
2262
|
-
handleDidChangeContent(e) {
|
|
2263
|
-
this.tokens.handleDidChangeContent(e);
|
|
2264
|
-
}
|
|
2265
|
-
forceTokenize(lineNumber) {
|
|
2266
|
-
this.tokens.forceTokenize(lineNumber);
|
|
2267
|
-
}
|
|
2268
|
-
requestTokens(range) {
|
|
2269
|
-
this.tokens.backgroundTokenizer?.requestTokens(range);
|
|
2283
|
+
forceTokenize(lineNumber) {
|
|
2284
|
+
this.tokens.forceTokenize(lineNumber);
|
|
2285
|
+
}
|
|
2286
|
+
requestTokens(range) {
|
|
2287
|
+
this.tokens.backgroundTokenizer?.requestTokens(range);
|
|
2270
2288
|
}
|
|
2271
2289
|
};
|
|
2272
2290
|
var GrammarTokens = class {
|
|
@@ -2710,6 +2728,20 @@ var CompletionItem;
|
|
|
2710
2728
|
})(CompletionItem || (CompletionItem = {}));
|
|
2711
2729
|
|
|
2712
2730
|
// src/service/parse.ts
|
|
2731
|
+
function getNodePath2(node) {
|
|
2732
|
+
return Json.getNodePath(node);
|
|
2733
|
+
}
|
|
2734
|
+
function getPathChain(path) {
|
|
2735
|
+
let result = "root";
|
|
2736
|
+
for (let i = 0; i < path.length; i++) {
|
|
2737
|
+
if (typeof path[i] === "number") {
|
|
2738
|
+
result += "[" + path[i] + "]";
|
|
2739
|
+
} else {
|
|
2740
|
+
result += "." + path[i];
|
|
2741
|
+
}
|
|
2742
|
+
}
|
|
2743
|
+
return result;
|
|
2744
|
+
}
|
|
2713
2745
|
function contains(node, offset, includeRightBound = false) {
|
|
2714
2746
|
return offset >= node.offset && offset < node.offset + node.length || includeRightBound && offset === node.offset + node.length;
|
|
2715
2747
|
}
|
|
@@ -3859,9 +3891,87 @@ var ErrorWidget = class {
|
|
|
3859
3891
|
}
|
|
3860
3892
|
};
|
|
3861
3893
|
|
|
3894
|
+
// src/view/viewDOMBuilder.ts
|
|
3895
|
+
var ViewDOMBuilder = class {
|
|
3896
|
+
constructor(lineHeight, totalLines, options) {
|
|
3897
|
+
this._lineHeight = lineHeight;
|
|
3898
|
+
this._totalLines = totalLines;
|
|
3899
|
+
this._options = options;
|
|
3900
|
+
}
|
|
3901
|
+
createRenderContainer() {
|
|
3902
|
+
const renderContainer = elt("div", "json-viewer-container");
|
|
3903
|
+
setStyles(renderContainer, {
|
|
3904
|
+
position: "relative",
|
|
3905
|
+
height: "100%",
|
|
3906
|
+
width: "100%",
|
|
3907
|
+
overflow: "auto"
|
|
3908
|
+
});
|
|
3909
|
+
return renderContainer;
|
|
3910
|
+
}
|
|
3911
|
+
createLineNumberContainer() {
|
|
3912
|
+
const lineNumberClass = "semi-json-viewer-line-number-container";
|
|
3913
|
+
const lineNumberContainer = elt("div", lineNumberClass);
|
|
3914
|
+
setStyles(lineNumberContainer, {
|
|
3915
|
+
position: "absolute",
|
|
3916
|
+
left: "0",
|
|
3917
|
+
top: "0",
|
|
3918
|
+
width: "50px"
|
|
3919
|
+
});
|
|
3920
|
+
return lineNumberContainer;
|
|
3921
|
+
}
|
|
3922
|
+
createContentContainer() {
|
|
3923
|
+
const contentClass = "semi-json-viewer-content-container";
|
|
3924
|
+
const contentContainer = elt("div", contentClass);
|
|
3925
|
+
setStyles(contentContainer, {
|
|
3926
|
+
position: "absolute",
|
|
3927
|
+
left: "50px",
|
|
3928
|
+
top: "0",
|
|
3929
|
+
right: "0",
|
|
3930
|
+
overflowX: "auto",
|
|
3931
|
+
overflowY: "scroll",
|
|
3932
|
+
outline: "none"
|
|
3933
|
+
});
|
|
3934
|
+
if (!this._options?.readOnly) {
|
|
3935
|
+
contentContainer.contentEditable = "true";
|
|
3936
|
+
contentContainer.style.caretColor = "black";
|
|
3937
|
+
contentContainer.spellcheck = false;
|
|
3938
|
+
}
|
|
3939
|
+
return contentContainer;
|
|
3940
|
+
}
|
|
3941
|
+
createScrollElement() {
|
|
3942
|
+
const scrollEl = elt("div", "lines-content");
|
|
3943
|
+
setStyles(scrollEl, {
|
|
3944
|
+
position: "relative",
|
|
3945
|
+
overflow: "hidden",
|
|
3946
|
+
top: "0",
|
|
3947
|
+
left: "0",
|
|
3948
|
+
tabSize: (this._options?.formatOptions?.tabSize || 4).toString(),
|
|
3949
|
+
height: `${this._lineHeight * this._totalLines}px`
|
|
3950
|
+
});
|
|
3951
|
+
if (this._options?.autoWrap) {
|
|
3952
|
+
scrollEl.style.width = "100%";
|
|
3953
|
+
}
|
|
3954
|
+
return scrollEl;
|
|
3955
|
+
}
|
|
3956
|
+
createLineScrollContainer() {
|
|
3957
|
+
const lineScrollContainer = elt("div", "line-scroll-container");
|
|
3958
|
+
setStyles(lineScrollContainer, {
|
|
3959
|
+
position: "absolute",
|
|
3960
|
+
top: "0",
|
|
3961
|
+
left: "0",
|
|
3962
|
+
height: `${this._lineHeight * this._totalLines}px`,
|
|
3963
|
+
width: "100%",
|
|
3964
|
+
overflow: "hidden"
|
|
3965
|
+
});
|
|
3966
|
+
return lineScrollContainer;
|
|
3967
|
+
}
|
|
3968
|
+
};
|
|
3969
|
+
|
|
3862
3970
|
// src/view/view.ts
|
|
3863
3971
|
var View = class {
|
|
3864
3972
|
constructor(container, model, options) {
|
|
3973
|
+
this._root = null;
|
|
3974
|
+
this._customRenderMap = /* @__PURE__ */ new Map();
|
|
3865
3975
|
this.startLineNumber = 1;
|
|
3866
3976
|
this.visibleLineCount = 0;
|
|
3867
3977
|
this._verticalOffsetAdjustment = 0;
|
|
@@ -3874,11 +3984,13 @@ var View = class {
|
|
|
3874
3984
|
this._foldingModel = new FoldingModel(model);
|
|
3875
3985
|
this._lineHeight = options?.lineHeight || 20;
|
|
3876
3986
|
this._options = options;
|
|
3877
|
-
this.
|
|
3878
|
-
this.
|
|
3879
|
-
this.
|
|
3880
|
-
this.
|
|
3881
|
-
this.
|
|
3987
|
+
this._customRenderRule = options?.customRenderRule || null;
|
|
3988
|
+
this._domBuilder = new ViewDOMBuilder(this._lineHeight, model.getLineCount(), options);
|
|
3989
|
+
this._jsonViewerDom = this._domBuilder.createRenderContainer();
|
|
3990
|
+
this._lineNumberDom = this._domBuilder.createLineNumberContainer();
|
|
3991
|
+
this._contentDom = this._domBuilder.createContentContainer();
|
|
3992
|
+
this._scrollDom = this._domBuilder.createScrollElement();
|
|
3993
|
+
this._lineScrollDom = this._domBuilder.createLineScrollContainer();
|
|
3882
3994
|
this._contentDom.appendChild(this._scrollDom);
|
|
3883
3995
|
this._lineNumberDom.appendChild(this._lineScrollDom);
|
|
3884
3996
|
this._jsonViewerDom.appendChild(this._lineNumberDom);
|
|
@@ -3932,9 +4044,14 @@ var View = class {
|
|
|
3932
4044
|
this._container.removeChild(this._jsonViewerDom);
|
|
3933
4045
|
}
|
|
3934
4046
|
_attachEventListeners() {
|
|
4047
|
+
if (this._options?.readOnly && this._options.customRenderRule) {
|
|
4048
|
+
const { root } = parseJson(this._jsonModel);
|
|
4049
|
+
this._root = root;
|
|
4050
|
+
}
|
|
3935
4051
|
this._jsonViewerDom.addEventListener("scroll", (e) => {
|
|
3936
4052
|
this.onScroll(this._jsonViewerDom.scrollTop);
|
|
3937
4053
|
});
|
|
4054
|
+
if (this._options?.readOnly) return;
|
|
3938
4055
|
this._jsonViewerDom.addEventListener("click", (e) => {
|
|
3939
4056
|
e.preventDefault();
|
|
3940
4057
|
this._selectionModel.toLastPosition();
|
|
@@ -3977,58 +4094,6 @@ var View = class {
|
|
|
3977
4094
|
this._contentDom.scrollTop = scrollTop;
|
|
3978
4095
|
this.onScroll(scrollTop);
|
|
3979
4096
|
}
|
|
3980
|
-
createRenderContainer() {
|
|
3981
|
-
const renderContainer = elt("div", "json-viewer-container");
|
|
3982
|
-
setStyles(renderContainer, {
|
|
3983
|
-
position: "relative",
|
|
3984
|
-
height: "100%",
|
|
3985
|
-
width: "100%",
|
|
3986
|
-
overflow: "auto"
|
|
3987
|
-
});
|
|
3988
|
-
return renderContainer;
|
|
3989
|
-
}
|
|
3990
|
-
createLineNumberContainer() {
|
|
3991
|
-
const lineNumberClass = "semi-json-viewer-line-number-container";
|
|
3992
|
-
const lineNumberContainer = elt("div", lineNumberClass);
|
|
3993
|
-
setStyles(lineNumberContainer, {
|
|
3994
|
-
position: "absolute",
|
|
3995
|
-
left: "0",
|
|
3996
|
-
top: "0",
|
|
3997
|
-
width: "50px"
|
|
3998
|
-
});
|
|
3999
|
-
return lineNumberContainer;
|
|
4000
|
-
}
|
|
4001
|
-
createLineScrollContainerElement() {
|
|
4002
|
-
const lineScrollContainer = elt("div", "line-scroll-container");
|
|
4003
|
-
setStyles(lineScrollContainer, {
|
|
4004
|
-
position: "absolute",
|
|
4005
|
-
top: "0",
|
|
4006
|
-
left: "0",
|
|
4007
|
-
height: `${this._lineHeight * this._jsonModel.getLineCount()}px`,
|
|
4008
|
-
width: "100%",
|
|
4009
|
-
overflow: "hidden"
|
|
4010
|
-
});
|
|
4011
|
-
return lineScrollContainer;
|
|
4012
|
-
}
|
|
4013
|
-
createContentContainer() {
|
|
4014
|
-
const contentClass = "semi-json-viewer-content-container";
|
|
4015
|
-
const contentContainer = elt("div", contentClass);
|
|
4016
|
-
setStyles(contentContainer, {
|
|
4017
|
-
position: "absolute",
|
|
4018
|
-
left: "50px",
|
|
4019
|
-
top: "0",
|
|
4020
|
-
right: "0",
|
|
4021
|
-
overflowX: "auto",
|
|
4022
|
-
overflowY: "scroll",
|
|
4023
|
-
outline: "none"
|
|
4024
|
-
});
|
|
4025
|
-
if (!this._options?.readOnly) {
|
|
4026
|
-
contentContainer.contentEditable = "true";
|
|
4027
|
-
contentContainer.style.caretColor = "black";
|
|
4028
|
-
contentContainer.spellcheck = false;
|
|
4029
|
-
}
|
|
4030
|
-
return contentContainer;
|
|
4031
|
-
}
|
|
4032
4097
|
createLineNumberElement(actualLineNumber, visibleLineNumber) {
|
|
4033
4098
|
const lineNumberClass = "semi-json-viewer-line-number";
|
|
4034
4099
|
const lineNumberElement = elt("div", lineNumberClass);
|
|
@@ -4053,26 +4118,11 @@ var View = class {
|
|
|
4053
4118
|
lineNumberElement.dataset.lineNumber = actualLineNumber.toString();
|
|
4054
4119
|
return lineNumberElement;
|
|
4055
4120
|
}
|
|
4056
|
-
|
|
4057
|
-
const scrollEl = elt("div", "lines-content");
|
|
4058
|
-
setStyles(scrollEl, {
|
|
4059
|
-
position: "relative",
|
|
4060
|
-
overflow: "hidden",
|
|
4061
|
-
top: "0",
|
|
4062
|
-
left: "0",
|
|
4063
|
-
tabSize: (this._options?.formatOptions?.tabSize || 4).toString(),
|
|
4064
|
-
height: `${this._lineHeight * this._jsonModel.getLineCount()}px`
|
|
4065
|
-
});
|
|
4066
|
-
if (this._options?.autoWrap) {
|
|
4067
|
-
scrollEl.style.width = "100%";
|
|
4068
|
-
}
|
|
4069
|
-
return scrollEl;
|
|
4070
|
-
}
|
|
4071
|
-
createLineContentElement(lineContent, actualLineNumber, visibleLineNumber) {
|
|
4072
|
-
const rowDatum = this._scalingCellSizeAndPositionManager.getSizeAndPositionOfCell(visibleLineNumber);
|
|
4121
|
+
createLineContentElement(actualLineNumber, visibleLineNumber) {
|
|
4073
4122
|
const lineElementClass = "semi-json-viewer-view-line";
|
|
4074
4123
|
const lineElement = elt("div", lineElementClass);
|
|
4075
4124
|
lineElement.setAttribute("data-line-element", "true");
|
|
4125
|
+
const rowDatum = this._scalingCellSizeAndPositionManager.getSizeAndPositionOfCell(visibleLineNumber);
|
|
4076
4126
|
setStyles(lineElement, {
|
|
4077
4127
|
lineHeight: `${this._lineHeight}px`,
|
|
4078
4128
|
width: "100%",
|
|
@@ -4082,7 +4132,6 @@ var View = class {
|
|
|
4082
4132
|
if (!this._options?.autoWrap) {
|
|
4083
4133
|
lineElement.style.height = `${this._lineHeight}px`;
|
|
4084
4134
|
}
|
|
4085
|
-
lineElement.innerHTML = lineContent;
|
|
4086
4135
|
lineElement.dataset.lineNumber = actualLineNumber.toString();
|
|
4087
4136
|
lineElement.lineNumber = actualLineNumber;
|
|
4088
4137
|
return lineElement;
|
|
@@ -4095,7 +4144,7 @@ var View = class {
|
|
|
4095
4144
|
}
|
|
4096
4145
|
_measureAndUpdateItemHeight(item, index) {
|
|
4097
4146
|
const height = item.offsetHeight;
|
|
4098
|
-
const width = item.
|
|
4147
|
+
const width = item.children[0].getBoundingClientRect().width * 2;
|
|
4099
4148
|
if (!this._options?.autoWrap && width > this._scrollDom.offsetWidth) {
|
|
4100
4149
|
this._scrollDom.style.width = `${width}px`;
|
|
4101
4150
|
}
|
|
@@ -4123,6 +4172,7 @@ var View = class {
|
|
|
4123
4172
|
}
|
|
4124
4173
|
layout() {
|
|
4125
4174
|
this.clearContainers();
|
|
4175
|
+
this._customRenderMap.clear();
|
|
4126
4176
|
const visibleLineCount = this._foldingModel.getVisibleLineCount();
|
|
4127
4177
|
this._scalingCellSizeAndPositionManager.configure({
|
|
4128
4178
|
cellCount: visibleLineCount,
|
|
@@ -4147,6 +4197,14 @@ var View = class {
|
|
|
4147
4197
|
const totalSize = this._scalingCellSizeAndPositionManager.getTotalSize();
|
|
4148
4198
|
this._scrollDom.style.height = `${totalSize}px`;
|
|
4149
4199
|
this._lineScrollDom.style.height = `${totalSize}px`;
|
|
4200
|
+
if (this._options?.readOnly && this._customRenderMap.size > 0) {
|
|
4201
|
+
this._customRenderMap.forEach((value, key) => {
|
|
4202
|
+
key.innerHTML = "";
|
|
4203
|
+
});
|
|
4204
|
+
this.emitter.emit("customRender", {
|
|
4205
|
+
customRenderMap: this._customRenderMap
|
|
4206
|
+
});
|
|
4207
|
+
}
|
|
4150
4208
|
}
|
|
4151
4209
|
renderVisibleLines(startVisibleLine, endVisibleLine) {
|
|
4152
4210
|
this._tokenizationJsonModelPart.forceTokenize(endVisibleLine + 1);
|
|
@@ -4172,14 +4230,15 @@ var View = class {
|
|
|
4172
4230
|
return lineNumberElement;
|
|
4173
4231
|
}
|
|
4174
4232
|
renderLineContent(actualLineNumber, visibleLineNumber, tokens, line) {
|
|
4175
|
-
const
|
|
4176
|
-
const
|
|
4233
|
+
const lineElement = this.createLineContentElement(actualLineNumber, visibleLineNumber);
|
|
4234
|
+
const contentContainer = this.renderTokensWithHighlight(tokens, line, actualLineNumber);
|
|
4235
|
+
lineElement.appendChild(contentContainer);
|
|
4177
4236
|
this._scrollDom.appendChild(lineElement);
|
|
4178
4237
|
this._measureAndUpdateItemHeight(lineElement, visibleLineNumber);
|
|
4179
4238
|
return lineElement;
|
|
4180
4239
|
}
|
|
4181
4240
|
renderTokensWithHighlight(tokens, text, lineNumber) {
|
|
4182
|
-
|
|
4241
|
+
const container = document.createElement("span");
|
|
4183
4242
|
let currentOffset = 0;
|
|
4184
4243
|
const searchResults = this._searchWidget.binarySearchByLine(lineNumber);
|
|
4185
4244
|
for (let i = 0; i < tokens.length; i++) {
|
|
@@ -4188,45 +4247,94 @@ var View = class {
|
|
|
4188
4247
|
const end = i + 1 < tokens.length ? tokens[i + 1].startIndex : text.length;
|
|
4189
4248
|
let content = text.substring(start, end);
|
|
4190
4249
|
if (searchResults && searchResults.length > 0) {
|
|
4191
|
-
|
|
4250
|
+
const highlightedSpan = this.createHighlightedContent(content, currentOffset, searchResults, token.scopes);
|
|
4251
|
+
container.appendChild(highlightedSpan);
|
|
4192
4252
|
} else {
|
|
4193
|
-
|
|
4194
|
-
|
|
4253
|
+
if (this._options?.readOnly && this._tryApplyCustomRender(token.scopes, content)) {
|
|
4254
|
+
const offset = this._jsonModel.getOffsetAt(lineNumber, (start + end) / 2);
|
|
4255
|
+
const node = this._root?.getNodeFromOffset(offset);
|
|
4256
|
+
const path = getNodePath2(node);
|
|
4257
|
+
const pathChain = getPathChain(path);
|
|
4258
|
+
const customElement = this._renderCustomToken(content, this._customRenderRule, token, pathChain);
|
|
4259
|
+
if (customElement instanceof HTMLElement) {
|
|
4260
|
+
container.appendChild(customElement);
|
|
4261
|
+
continue;
|
|
4262
|
+
} else if (customElement !== null) {
|
|
4263
|
+
const span2 = document.createElement("span");
|
|
4264
|
+
span2.className = token.scopes;
|
|
4265
|
+
span2.textContent = content;
|
|
4266
|
+
container.appendChild(span2);
|
|
4267
|
+
this._customRenderMap.set(span2, customElement);
|
|
4268
|
+
continue;
|
|
4269
|
+
}
|
|
4270
|
+
}
|
|
4271
|
+
const span = document.createElement("span");
|
|
4272
|
+
span.className = token.scopes;
|
|
4273
|
+
span.textContent = content;
|
|
4274
|
+
container.appendChild(span);
|
|
4195
4275
|
}
|
|
4196
4276
|
currentOffset += content.length;
|
|
4197
4277
|
}
|
|
4198
|
-
return
|
|
4278
|
+
return container;
|
|
4199
4279
|
}
|
|
4200
|
-
|
|
4201
|
-
|
|
4280
|
+
createHighlightedContent(content, offset, searchResults, tokenClass) {
|
|
4281
|
+
const container = document.createElement("span");
|
|
4202
4282
|
let lastIndex = 0;
|
|
4203
4283
|
for (const match of searchResults) {
|
|
4204
4284
|
const startIndex = Math.max(0, match.range.startColumn - 1 - offset);
|
|
4205
4285
|
const endIndex = Math.min(content.length, match.range.endColumn - 1 - offset);
|
|
4206
4286
|
if (startIndex >= content.length || endIndex <= 0) continue;
|
|
4207
4287
|
if (startIndex > lastIndex) {
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
)
|
|
4288
|
+
const normalSpan = document.createElement("span");
|
|
4289
|
+
normalSpan.className = tokenClass;
|
|
4290
|
+
normalSpan.textContent = content.substring(lastIndex, startIndex);
|
|
4291
|
+
container.appendChild(normalSpan);
|
|
4211
4292
|
}
|
|
4212
|
-
const
|
|
4293
|
+
const highlightSpan = document.createElement("span");
|
|
4294
|
+
highlightSpan.textContent = content.substring(startIndex, endIndex);
|
|
4213
4295
|
const currentMatch = this._searchWidget.searchResults?.[this._searchWidget._currentResultIndex];
|
|
4214
|
-
const
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
result += `<span class="${tokenClass} ${searchResultClass}" data-start-column="${match.range.startColumn}" data-end-column="${match.range.endColumn}">${highlightedText}</span>`;
|
|
4220
|
-
}
|
|
4296
|
+
const isCurrentMatch = match.range.startLineNumber === currentMatch?.range.startLineNumber && match.range.endLineNumber === currentMatch?.range.endLineNumber && match.range.startColumn === currentMatch?.range.startColumn && match.range.endColumn === currentMatch?.range.endColumn;
|
|
4297
|
+
highlightSpan.className = `${tokenClass} semi-json-viewer-search-result${isCurrentMatch ? " semi-json-viewer-current-search-result" : ""}`;
|
|
4298
|
+
highlightSpan.dataset.startColumn = match.range.startColumn.toString();
|
|
4299
|
+
highlightSpan.dataset.endColumn = match.range.endColumn.toString();
|
|
4300
|
+
container.appendChild(highlightSpan);
|
|
4221
4301
|
lastIndex = endIndex;
|
|
4222
4302
|
}
|
|
4223
4303
|
if (lastIndex < content.length) {
|
|
4224
|
-
|
|
4304
|
+
const remainingSpan = document.createElement("span");
|
|
4305
|
+
remainingSpan.className = tokenClass;
|
|
4306
|
+
remainingSpan.textContent = content.substring(lastIndex);
|
|
4307
|
+
container.appendChild(remainingSpan);
|
|
4225
4308
|
}
|
|
4226
|
-
return
|
|
4309
|
+
return container;
|
|
4227
4310
|
}
|
|
4228
|
-
|
|
4229
|
-
|
|
4311
|
+
_tryApplyCustomRender(tokenClass, content) {
|
|
4312
|
+
if (!this._customRenderRule || this._customRenderRule.length <= 0) return false;
|
|
4313
|
+
if (tokenClass === TOKEN_VALUE_BOOLEAN || tokenClass === TOKEN_VALUE_NULL || tokenClass === TOKEN_VALUE_STRING || tokenClass === TOKEN_VALUE_NUMBER || tokenClass === TOKEN_PROPERTY_NAME) {
|
|
4314
|
+
return true;
|
|
4315
|
+
}
|
|
4316
|
+
return false;
|
|
4317
|
+
}
|
|
4318
|
+
isMatch(content, pathChain, rule) {
|
|
4319
|
+
const match = rule.match;
|
|
4320
|
+
if (typeof match === "function") {
|
|
4321
|
+
return match(content, pathChain);
|
|
4322
|
+
} else if (typeof match === "string") {
|
|
4323
|
+
return match === content;
|
|
4324
|
+
} else if (match instanceof RegExp) {
|
|
4325
|
+
return match.test(content);
|
|
4326
|
+
}
|
|
4327
|
+
return false;
|
|
4328
|
+
}
|
|
4329
|
+
_renderCustomToken(content, rule, token, pathChain) {
|
|
4330
|
+
const realContent = content.replace(/^"|"$/g, "");
|
|
4331
|
+
for (const item of rule) {
|
|
4332
|
+
if (this.isMatch(realContent, pathChain, item)) {
|
|
4333
|
+
const element = item.render(content);
|
|
4334
|
+
return element;
|
|
4335
|
+
}
|
|
4336
|
+
}
|
|
4337
|
+
return null;
|
|
4230
4338
|
}
|
|
4231
4339
|
};
|
|
4232
4340
|
|